Dsphinx.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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/pt_BR/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)}(hjh]hstruct vme_driver}(hj!hhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypetype refexplicitrefwarnj  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 }(hjFhhhNhNubh)}(h(:c:type:`struct vme_driver `h]h)}(hjPh]hstruct vme_driver}(hjRhhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhjNubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypetype refexplicitrefwarnj  vme_driveruh1hhhhKhjFubhn should be correctly set. The ‘.name’ element is a pointer to a string holding the device driver’s name.}(hjFhhhNhNubeh}(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:}(hjwhhhNhNubah}(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; }}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveforcelanguagehhighlight_args}uh1jhhhKhhhhubh)}(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&]refdocj refdomainhreftypetype refexplicitrefwarnj vme_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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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.}(hj$hhhNhNubah}(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 (}(hj2hhhNhNubh)}(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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_master_requestuh1hhhhK;hj2ubh), slave windows (}(hj2hhhNhNubh)}(h:c:func:`vme_slave_request`h]h)}(hj_h]hvme_slave_request()}(hjahhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_slave_requestuh1hhhhK;hj2ubh) and/or dma channels (}(hj2hhhNhNubh)}(h:c:func:`vme_dma_request`h]h)}(hjh]hvme_dma_request()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_dma_requestuh1hhhhK;hj2ubhX). 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.}(hj2hhhNhNubeh}(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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hhhhhKUubh)}(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.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj(hhubh)}(hhh](h)}(hMaster window configurationh]hMaster window configuration}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhhhhhK]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 }(hjXhhhNhNubh)}(h:c:func:`vme_master_set`h]h)}(hjbh]hvme_master_set()}(hjdhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_master_setuh1hhhhK_hjXubh! can be used to configure it and }(hjXhhhNhNubh)}(h:c:func:`vme_master_get`h]h)}(hjh]hvme_master_get()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_master_getuh1hhhhK_hjXubh 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.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK_hjGhhubeh}(h]master-window-configurationah ]h"]master window configurationah$]h&]uh1hhj(hhhhhK]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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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_prepare`.h](h(In addition to simple reads and writes, }(hjhhhNhNubh)}(h:c:func:`vme_master_rmw`h]h)}(hj#h]hvme_master_rmw()}(hj%hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj!ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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_prepare`h]h)}(hjFh]hvme_master_mmap_prepare()}(hjHhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_master_mmap_prepareuh1hhhhKlhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKlhjhhubeh}(h]master-window-accessah ]h"]master window accessah$]h&]uh1hhj(hhhhhKgubeh}(h]master-windowsah ]h"]master windowsah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(h Slave windowsh]h Slave windows}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hhhhhKrubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj}hhubh)}(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&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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&]uh1hhj}hhhhhK{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 (}(hj(hhhNhNubh)}(h:c:func:`vme_alloc_consistent`h]h)}(hj2h]hvme_alloc_consistent()}(hj4hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj0ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_alloc_consistentuh1hhhhKhj(ubh ) and free (}(hj(hhhNhNubh)}(h:c:func:`vme_free_consistent`h]h)}(hjUh]hvme_free_consistent()}(hjWhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjSubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_free_consistentuh1hhhhKhj(ubh) 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.}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]slave-window-buffer-allocationah ]h"]slave window buffer allocationah$]h&]uh1hhj}hhhhhKubh)}(hhh](h)}(hSlave window accessh]hSlave window access}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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&]uh1hhhhKhjhhubeh}(h]slave-window-accessah ]h"]slave window accessah$]h&]uh1hhj}hhhhhKubeh}(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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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}(hjBhhhNhNubah}(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 }(hjPhhhNhNubh)}(h:c:func:`vme_dma_list_add`h]h)}(hjZh]hvme_dma_list_add()}(hj\hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_dma_list_adduh1hhhhKhjPubh (the source and destination attributes need to be created before calling this function, this is covered under “Transfer Attributes”).}(hjPhhhNhNubeh}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj?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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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: }(hj hhhNhNubh)}(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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_dma_vme_attributeuh1hhhhKhj ubeh}(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)}(hjIh]hvme_dma_pattern_attribute()}(hjKhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjGubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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 }(hjhhhNhNubh)}(h :c:func:`vme_dma_free_attribute`h]h)}(hjh]hvme_dma_free_attribute()}(hjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_dma_free_attributeuh1hhhhKhjubh% should be used to free an attribute.}(hjhhhNhNubeh}(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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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&]uh1hhj hhhhhKubh)}(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&]uh1hhhhKhj hhubh)}(hhh](h)}(hAttaching Interrupt Handlersh]hAttaching Interrupt Handlers}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hhhhhKubh)}(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)}(hjEh]hvme_irq_request()}(hjGhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjCubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_irq_requestuh1hhhhKhj;ubh can be used to attach and }(hj;hhhNhNubh)}(h:c:func:`vme_irq_free`h]h)}(hjhh]hvme_irq_free()}(hjjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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&]uh1hhhhKhj*hhubj)}(h1void callback(int level, int statid, void *priv);h]h1void callback(int level, int statid, void *priv);}hjsbah}(h]h ]h"]h$]h&]jjjjhj}uh1jhhhKhj*hhubeh}(h]attaching-interrupt-handlersah ]h"]attaching interrupt handlersah$]h&]uh1hhj hhhhhKubh)}(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&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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&]uh1hhj hhhhhKubeh}(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.}(hj hhhNhNubah}(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)}(hj2 h]hvme_lm_request()}(hj4 hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj0 ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj vme_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)}(hjU h]h vme_lm_free()}(hjW hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjS ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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)}(hjx h]hvme_lm_count()}(hjz hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjv ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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()}(hj1 hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj- ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj  vme_lm_attachuh1hhhhM hj% ubh' enables a callback to be attached and }(hj% hhhNhNubh)}(h:c:func:`vme_lm_detach`h]h)}(hjR h]hvme_lm_detach()}(hjT hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjP ubah}(h]h ]h"]h$]h&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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 hhubj)}(hvoid callback(void *data);h]hvoid callback(void *data);}hjy sbah}(h]h ]h"]h$]h&]jjjjhj}uh1jhhhMhj 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&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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&]refdocj refdomainhreftypefunc refexplicitrefwarnj  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}(hja hhhNhNubah}(h]h ]kah"]h$]h&]uh1j_ hj[ hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKubhdesc_sig_space)}(h h]h }(hjs hhhNhNubah}(h]h ]wah"]h$]h&]uh1jq hj[ hhhjp hKubh desc_name)}(hvme_devh]h desc_sig_name)}(hjW h]hvme_dev}(hj hhhNhNubah}(h]h ]nah"]h$]h&]uh1j hj ubah}(h]h ](sig-namedescnameeh"]h$]h&]jjuh1j hj[ hhhjp hKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jY sphinx_line_type declaratorhjU hhhjp hKubah}(h]jL ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jS hjp hKhjP 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 hjP hhhjp hKubeh}(h]h ](hstructeh"]h$]h&]domainhobjtypej desctypej noindex noindexentrynocontentsentryuh1jN 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 ubj)}(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&]jjuh1jh^/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)}(hj6 h]hnum}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4 ubah}(h]h ]h"]h$]h&]uh1j2 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}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK hKchjN ubah}(h]h ]h"]h$]h&]uh1jL hj. ubeh}(h]h ]h"]h$]h&]uh1j, hjK hKchj) ubj- )}(h:``bridge`` Pointer to the bridge device this device is on h](j3 )}(h ``bridge``h]h)}(hjq h]hbridge}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKdhjk ubjM )}(hhh]h)}(h.Pointer to the bridge device this device is onh]h.Pointer to the bridge device this device is on}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKdhj ubah}(h]h ]h"]h$]h&]uh1jL hjk ubeh}(h]h ]h"]h$]h&]uh1j, hj hKdhj) ubj- )}(h"``dev`` Internal device structure h](j3 )}(h``dev``h]h)}(hj h]hdev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKehj ubjM )}(hhh]h)}(hInternal device structureh]hInternal device structure}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKehj ubah}(h]h ]h"]h$]h&]uh1jL hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKehj) ubj- )}(h*``drv_list`` List of devices (per driver) h](j3 )}(h ``drv_list``h]h)}(hj h]hdrv_list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKfhj ubjM )}(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&]uh1jL hj ubeh}(h]h ]h"]h$]h&]uh1j, hj hKfhj) ubj- )}(h,``bridge_list`` List of devices (per bridge)h](j3 )}(h``bridge_list``h]h)}(hj h]h bridge_list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKfhj ubjM )}(hhh]h)}(hList of devices (per bridge)h]hList of devices (per bridge)}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKghj2 ubah}(h]h ]h"]h$]h&]uh1jL hj ubeh}(h]h ]h"]h$]h&]uh1j, hj1 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](jJ vme_driver (C struct) c.vme_driverhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h vme_driverh]jZ )}(hstruct vme_driverh](j` )}(hjc h]hstruct}(hjv hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjr hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKmubjr )}(h h]h }(hj hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjr hhhj hKmubj )}(h vme_driverh]j )}(hjp h]h vme_driver}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubah}(h]h ](j j eh"]h$]h&]jjuh1j hjr hhhj hKmubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjn hhhj hKmubah}(h]ji ah ](j j eh"]h$]h&]j j )j huh1jS hj hKmhjk 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 hjk hhhj hKmubeh}(h]h ](hstructeh"]h$]h&]j hj j j j j j j uh1jN hhhj, hNhNubj )}(hX**Definition**:: struct vme_driver { const char *name; int (*match)(struct vme_dev *vdev); int (*probe)(struct vme_dev *vdev); void (*remove)(struct vme_dev *vdev); 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 ubj)}(hstruct vme_driver { const char *name; int (*match)(struct vme_dev *vdev); int (*probe)(struct vme_dev *vdev); void (*remove)(struct vme_dev *vdev); struct device_driver driver; struct list_head devices; };h]hstruct vme_driver { const char *name; int (*match)(struct vme_dev *vdev); int (*probe)(struct vme_dev *vdev); void (*remove)(struct vme_dev *vdev); struct device_driver driver; struct list_head devices; };}hj sbah}(h]h ]h"]h$]h&]jjuh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKwhj ubh)}(h **Members**h]j )}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(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](j3 )}(h``name``h]h)}(hj%h]hname}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKthjubjM )}(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&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hj:hKthjubj- )}(hB``match`` Callback used to determine whether probe should be run. h](j3 )}(h ``match``h]h)}(hj_h]hmatch}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKuhjYubjM )}(hhh]h)}(h7Callback used to determine whether probe should be run.h]h7Callback used to determine whether probe should be run.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthKuhjuubah}(h]h ]h"]h$]h&]uh1jL hjYubeh}(h]h ]h"]h$]h&]uh1j, hjthKuhjubj- )}(hK``probe`` Callback for device binding, called when new device is detected. h](j3 )}(h ``probe``h]h)}(hjh]hprobe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKvhjubjM )}(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&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhKvhjubj- )}(h/``remove`` Callback, called on device removal. h](j3 )}(h ``remove``h]h)}(hjh]hremove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKwhjubjM )}(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&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhKwhjubj- )}(h7``driver`` Underlying generic device driver structure. h](j3 )}(h ``driver``h]h)}(hj h]hdriver}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKxhjubjM )}(hhh]h)}(h+Underlying generic device driver structure.h]h+Underlying generic device driver structure.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKxhj ubah}(h]h ]h"]h$]h&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhKxhjubj- )}(hM``devices`` List of VME devices (struct vme_dev) associated with this driver.h](j3 )}(h ``devices``h]h)}(hjCh]hdevices}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKxhj=ubjM )}(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.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKyhjYubah}(h]h ]h"]h$]h&]uh1jL hj=ubeh}(h]h ]h"]h$]h&]uh1j, hjXhKxhjubeh}(h]h ]h"]h$]h&]uh1j' hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ !vme_alloc_consistent (C function)c.vme_alloc_consistenthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hYvoid * vme_alloc_consistent (struct vme_resource *resource, size_t size, dma_addr_t *dma)h]jZ )}(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.chKFubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjhhhjhKFubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhKFubj )}(hvme_alloc_consistenth]j )}(hvme_alloc_consistenth]hvme_alloc_consistent}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ](j j eh"]h$]h&]jjuh1j hjhhhjhKFubhdesc_parameterlist)}(h=(struct vme_resource *resource, size_t size, dma_addr_t *dma)h](hdesc_parameter)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&] refdomainhreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j+ ASTIdentifier)}j&jsbc.vme_alloc_consistentasbuh1hhjubjr )}(h h]h }(hj8hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hresourceh]hresource}(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h size_t sizeh](h)}(hhh]j )}(hsize_th]hsize_t}(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjlubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjqmodnameN classnameNj*j-)}j0]j4c.vme_alloc_consistentasbuh1hhjhubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjhubj )}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hdma_addr_t *dmah](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]j4c.vme_alloc_consistentasbuh1hhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hdmah]hdma}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKFubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjhhhjhKFubah}(h]jah ](j j eh"]h$]h&]j j )j huh1jS hjhKFhjhhubj )}(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 hjhhhjhKFubeh}(h]h ](hfunctioneh"]h$]h&]j hj j2j j2j j j uh1jN 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.chKJhj6ubj( )}(hhh](j- )}(h;``struct vme_resource *resource`` Pointer to VME resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hj[h]hstruct vme_resource *resource}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKGhjUubjM )}(hhh]h)}(hPointer to VME resource.h]hPointer to VME resource.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphKGhjqubah}(h]h ]h"]h$]h&]uh1jL hjUubeh}(h]h ]h"]h$]h&]uh1j, hjphKGhjRubj- )}(h-``size_t size`` Size of allocation required. h](j3 )}(h``size_t size``h]h)}(hjh]h size_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKHhjubjM )}(hhh]h)}(hSize of allocation required.h]hSize of allocation required.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKHhjubah}(h]h ]h"]h$]h&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhKHhjRubj- )}(hQ``dma_addr_t *dma`` Pointer to variable to store physical address of allocation. h](j3 )}(h``dma_addr_t *dma``h]h)}(hjh]hdma_addr_t *dma}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKIhjubjM )}(hhh]h)}(h )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_free_consistent (C function)c.vme_free_consistenthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hbvoid vme_free_consistent (struct vme_resource *resource, size_t size, void *vaddr, dma_addr_t dma)h]jZ )}(havoid vme_free_consistent(struct vme_resource *resource, size_t size, void *vaddr, dma_addr_t dma)h](j)}(hvoidh]hvoid}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKaubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjphhhjhKaubj )}(hvme_free_consistenth]j )}(hvme_free_consistenth]hvme_free_consistent}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ](j j eh"]h$]h&]jjuh1j hjphhhjhKaubj)}(hI(struct vme_resource *resource, size_t size, void *vaddr, dma_addr_t dma)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]j3)}j&jsbc.vme_free_consistentasbuh1hhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hresourceh]hresource}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h size_t sizeh](h)}(hhh]j )}(hsize_th]hsize_t}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj#ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj(modnameN classnameNj*j-)}j0]jc.vme_free_consistentasbuh1hhjubjr )}(h h]h }(hjDhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj )}(hsizeh]hsize}(hjRhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h void *vaddrh](j)}(hvoidh]hvoid}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjr )}(h h]h }(hjyhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj )}(hvaddrh]hvaddr}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hdma_addr_t dmah](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]jc.vme_free_consistentasbuh1hhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj )}(hdmah]hdma}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjphhhjhKaubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjlhhhjhKaubah}(h]jgah ](j j eh"]h$]h&]j j )j huh1jS hjhKahjihhubj )}(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 hjihhhjhKaubeh}(h]h ](hfunctioneh"]h$]h&]j hj jj jj j j uh1jN 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 )}(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.chKehj"ubj( )}(hhh](j- )}(h;``struct vme_resource *resource`` Pointer to VME resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjGh]hstruct vme_resource *resource}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKbhjAubjM )}(hhh]h)}(hPointer to VME resource.h]hPointer to VME resource.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hKbhj]ubah}(h]h ]h"]h$]h&]uh1jL hjAubeh}(h]h ]h"]h$]h&]uh1j, hj\hKbhj>ubj- )}(h,``size_t size`` Size of allocation to free. h](j3 )}(h``size_t size``h]h)}(hjh]h size_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKchjzubjM )}(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&]uh1jL hjzubeh}(h]h ]h"]h$]h&]uh1j, hjhKchj>ubj- )}(h/``void *vaddr`` Virtual address of allocation. h](j3 )}(h``void *vaddr``h]h)}(hjh]h void *vaddr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKdhjubjM )}(hhh]h)}(hVirtual address of allocation.h]hVirtual address of allocation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKdhjubah}(h]h ]h"]h$]h&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhKdhj>ubj- )}(h3``dma_addr_t dma`` Physical address of allocation. h](j3 )}(h``dma_addr_t dma``h]h)}(hjh]hdma_addr_t dma}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKehjubjM )}(hhh]h)}(hPhysical address of allocation.h]hPhysical address of allocation.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKehjubah}(h]h ]h"]h$]h&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhKehj>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.chKghj"ubh)}(h5Free previously allocated block of contiguous memory.h]h5Free previously allocated block of contiguous memory.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKfhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_get_size (C function)c.vme_get_sizehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h3size_t vme_get_size (struct vme_resource *resource)h]jZ )}(h2size_t vme_get_size(struct vme_resource *resource)h](h)}(hhh]j )}(hsize_th]hsize_t}(hjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjrubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjwmodnameN classnameNj*j-)}j0]j3)}j& vme_get_sizesbc.vme_get_sizeasbuh1hhjnhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKzubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjnhhhjhKzubj )}(h vme_get_sizeh]j )}(hjh]h vme_get_size}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ](j j eh"]h$]h&]jjuh1j hjnhhhjhKzubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]jc.vme_get_sizeasbuh1hhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hresourceh]hresource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhjnhhhjhKzubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjjhhhjhKzubah}(h]jeah ](j j eh"]h$]h&]j j )j huh1jS hjhKzhjghhubj )}(hhh]h)}(h.Helper function returning size of a VME windowh]h.Helper function returning size of a VME window}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKzhjBhhubah}(h]h ]h"]h$]h&]uh1j hjghhhjhKzubeh}(h]h ](hfunctioneh"]h$]h&]j hj j]j j]j j j uh1jN 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 )}(hjgh]h Parameters}(hjihhhNhNubah}(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.chK~hjaubj( )}(hhh]j- )}(hK``struct vme_resource *resource`` Pointer to VME slave or master resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjh]hstruct vme_resource *resource}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chK{hjubjM )}(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&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhK{hj}ubah}(h]h ]h"]h$]h&]uh1j' hjaubh)}(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}hjaubh)}(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|hjaubh)}(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.chKhjaubh)}(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.chKhjaubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_slave_request (C function)c.vme_slave_requesthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hVstruct vme_resource * vme_slave_request (struct vme_dev *vdev, u32 address, u32 cycle)h]jZ )}(hTstruct vme_resource *vme_slave_request(struct vme_dev *vdev, u32 address, u32 cycle)h](j` )}(hjc h]hstruct}(hj-hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj)hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKubjr )}(h h]h }(hj;hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj)hhhj:hKubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjNmodnameN classnameNj*j-)}j0]j3)}j&vme_slave_requestsbc.vme_slave_requestasbuh1hhj)hhhj:hKubjr )}(h h]h }(hjmhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj)hhhj:hKubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj:hKubj )}(hvme_slave_requesth]j )}(hjjh]hvme_slave_request}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ](j j eh"]h$]h&]jjuh1j hj)hhhj:hKubj)}(h.(struct vme_dev *vdev, u32 address, u32 cycle)h](j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hjhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubh)}(hhh]j )}(hvme_devh]hvme_dev}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]jhc.vme_slave_requestasbuh1hhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hvdevh]hvdev}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 addressh](h)}(hhh]j )}(hu32h]hu32}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]jhc.vme_slave_requestasbuh1hhjubjr )}(h h]h }(hj8hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj )}(haddressh]haddress}(hjFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj_ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjdmodnameN classnameNj*j-)}j0]jhc.vme_slave_requestasbuh1hhj[ubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj[ubj )}(hcycleh]hcycle}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhj)hhhj:hKubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj%hhhj:hKubah}(h]j ah ](j j eh"]h$]h&]j j )j huh1jS hj:hKhj"hhubj )}(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 hj"hhhj:hKubeh}(h]h ](hfunctioneh"]h$]h&]j hj jj jj j j uh1jN 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](j3 )}(h``struct vme_dev *vdev``h]h)}(hjh]hstruct vme_dev *vdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjubjM )}(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&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhKhjubj- )}(h,``u32 address`` Required VME address space. h](j3 )}(h``u32 address``h]h)}(hj2h]h u32 address}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhj,ubjM )}(hhh]h)}(hRequired VME address space.h]hRequired VME address space.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhKhjHubah}(h]h ]h"]h$]h&]uh1jL hj,ubeh}(h]h ]h"]h$]h&]uh1j, hjGhKhjubj- )}(h5``u32 cycle`` Required VME data transfer cycle type. h](j3 )}(h ``u32 cycle``h]h)}(hjkh]h u32 cycle}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKhjeubjM )}(hhh]h)}(h&Required VME data transfer cycle type.h]h&Required VME data transfer cycle type.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jL hjeubeh}(h]h ]h"]h$]h&]uh1j, hjhKhjubeh}(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](jJ vme_slave_set (C function)c.vme_slave_sethNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(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]jZ )}(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.chM7ubjr )}(h h]h }(hj!hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjhhhj hM7ubj )}(h vme_slave_seth]j )}(h vme_slave_seth]h vme_slave_set}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubah}(h]h ](j j eh"]h$]h&]jjuh1j hjhhhj hM7ubj)}(h(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, dma_addr_t buf_base, u32 aspace, u32 cycle)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjOhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjKubjr )}(h h]h }(hj\hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjKubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjomodnameN classnameNj*j-)}j0]j3)}j&j5sbc.vme_slave_setasbuh1hhjKubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj )}(hresourceh]hresource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjGubj)}(h int enabledh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj )}(henabledh]henabled}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjGubj)}(hunsigned long long vme_baseh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hj hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hlongh]hlong}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hj<hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj )}(hvme_baseh]hvme_base}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjGubj)}(hunsigned long long sizeh](j)}(hunsignedh]hunsigned}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubjr )}(h h]h }(hjqhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj_ubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj_ubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj_ubj )}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj_ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjGubj)}(hdma_addr_t buf_baseh](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]jc.vme_slave_setasbuh1hhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj )}(hbuf_baseh]hbuf_base}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjGubj)}(h u32 aspaceh](h)}(hhh]j )}(hu32h]hu32}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjmodnameN classnameNj*j-)}j0]jc.vme_slave_setasbuh1hhjubjr )}(h h]h }(hj9hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj )}(haspaceh]haspace}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjGubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hjchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjemodnameN classnameNj*j-)}j0]jc.vme_slave_setasbuh1hhj\ubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj\ubj )}(hcycleh]hcycle}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj\ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjGubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhj hM7ubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj hhhj hM7ubah}(h]jah ](j j eh"]h$]h&]j j )j huh1jS hj hM7hjhhubj )}(hhh]h)}(h#Set VME slave window configuration.h]h#Set VME slave window configuration.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hjhhubah}(h]h ]h"]h$]h&]uh1j hjhhhj hM7ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jj jj j j uh1jN 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](j3 )}(h!``struct vme_resource *resource``h]h)}(hjh]hstruct vme_resource *resource}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hjubjM )}(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&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhM8hjubj- )}(h@``int enabled`` State to which the window should be configured. h](j3 )}(h``int enabled``h]h)}(hj3h]h int enabled}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj-ubjM )}(hhh]h)}(h/State to which the window should be configured.h]h/State to which the window should be configured.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhM9hjIubah}(h]h ]h"]h$]h&]uh1jL hj-ubeh}(h]h ]h"]h$]h&]uh1j, hjHhM9hjubj- )}(h=``unsigned long long vme_base`` Base address for the window. h](j3 )}(h``unsigned long long vme_base``h]h)}(hjlh]hunsigned long long vme_base}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hjfubjM )}(hhh]h)}(hBase address for the window.h]hBase address for the window.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM:hjubah}(h]h ]h"]h$]h&]uh1jL hjfubeh}(h]h ]h"]h$]h&]uh1j, hjhM:hjubj- )}(h4``unsigned long long size`` Size of the VME window. h](j3 )}(h``unsigned long long size``h]h)}(hjh]hunsigned long long size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hjubjM )}(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&]uh1jL 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hjubjM )}(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&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hjhM<hjubj- )}(h5``u32 aspace`` VME address space for the VME window. h](j3 )}(h``u32 aspace``h]h)}(hjh]h u32 aspace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM=hjubjM )}(hhh]h)}(h%VME address space for the VME window.h]h%VME address space for the VME window.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hM=hj-ubah}(h]h ]h"]h$]h&]uh1jL hjubeh}(h]h ]h"]h$]h&]uh1j, hj,hM=hjubj- )}(h?``u32 cycle`` VME data transfer cycle type for the VME window. h](j3 )}(h ``u32 cycle``h]h)}(hjPh]h u32 cycle}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM>hjJubjM )}(hhh]h)}(h0VME data transfer cycle type for the VME window.h]h0VME data transfer cycle type for the VME window.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehM>hjfubah}(h]h ]h"]h$]h&]uh1jL hjJubeh}(h]h ]h"]h$]h&]uh1j, hjehM>hjubeh}(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.chM@hjubh)}(h0Set configuration for provided VME slave window.h]h0Set configuration for provided VME slave window.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM?hjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMAhjubh)}(hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMBhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_slave_get (C function)c.vme_slave_gethNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(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]jZ )}(hint vme_slave_get(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, dma_addr_t *buf_base, u32 *aspace, u32 *cycle)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjhhhjhMkubj )}(h vme_slave_geth]j )}(h vme_slave_geth]h vme_slave_get}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ](j j eh"]h$]h&]jjuh1j hjhhhjhMkubj)}(h(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, dma_addr_t *buf_base, u32 *aspace, u32 *cycle)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj4hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj0ubjr )}(h h]h }(hjAhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj0ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjRhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjTmodnameN classnameNj*j-)}j0]j3)}j&jsbc.vme_slave_getasbuh1hhj0ubjr )}(h h]h }(hjrhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj0ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(hresourceh]hresource}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubj)}(h int *enabledh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(henabledh]henabled}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubj)}(hunsigned long long *vme_baseh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hj hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjr )}(h h]h }(hj. hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjubj)}(hjh]h*}(hj< hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hvme_baseh]hvme_base}(hjI hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubj)}(hunsigned long long *sizeh](j)}(hunsignedh]hunsigned}(hjb hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ ubjr )}(h h]h }(hjp hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj^ ubj)}(hlongh]hlong}(hj~ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ ubjr )}(h h]h }(hj hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj^ ubj)}(hlongh]hlong}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ ubjr )}(h h]h }(hj hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj^ ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ ubj )}(hsizeh]hsize}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj^ ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubj)}(hdma_addr_t *buf_baseh](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj modnameN classnameNj*j-)}j0]jnc.vme_slave_getasbuh1hhj ubjr )}(h h]h }(hj hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj ubj)}(hjh]h*}(hj !hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hbuf_baseh]hbuf_base}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubj)}(h u32 *aspaceh](h)}(hhh]j )}(hu32h]hu32}(hj4!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj1!ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj6!modnameN classnameNj*j-)}j0]jnc.vme_slave_getasbuh1hhj-!ubjr )}(h h]h }(hjR!hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj-!ubj)}(hjh]h*}(hj`!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-!ubj )}(haspaceh]haspace}(hjm!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj-!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubj)}(h u32 *cycleh](h)}(hhh]j )}(hu32h]hu32}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj!modnameN classnameNj*j-)}j0]jnc.vme_slave_getasbuh1hhj!ubjr )}(h h]h }(hj!hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj )}(hcycleh]hcycle}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhMkubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjhhhjhMkubah}(h]jah ](j j eh"]h$]h&]j j )j huh1jS hjhMkhjhhubj )}(hhh]h)}(h(Retrieve VME slave window configuration.h]h(Retrieve VME slave window configuration.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhj!hhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhMkubeh}(h]h ](hfunctioneh"]h$]h&]j hj j"j j"j j j uh1jN 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlhj'"ubjM )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hjF"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB"hMlhjC"ubah}(h]h ]h"]h$]h&]uh1jL hj'"ubeh}(h]h ]h"]h$]h&]uh1j, hjB"hMlhj$"ubj- )}(h8``int *enabled`` Pointer to variable for storing state. h](j3 )}(h``int *enabled``h]h)}(hjf"h]h int *enabled}(hjh"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd"ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMmhj`"ubjM )}(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&]uh1jL hj`"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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhj"ubjM )}(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&]uh1jL hj"ubeh}(h]h ]h"]h$]h&]uh1j, hj"hMnhj$"ubj- )}(hJ``unsigned long long *size`` Pointer to variable for storing window size. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohj"ubjM )}(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&]uh1jL 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphj #ubjM )}(hhh]h)}(h:Pointer to variable for storing slave buffer base address.h]h:Pointer to variable for storing slave buffer base address.}(hj*#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&#hMphj'#ubah}(h]h ]h"]h$]h&]uh1jL hj #ubeh}(h]h ]h"]h$]h&]uh1j, hj&#hMphj$"ubj- )}(hC``u32 *aspace`` Pointer to variable for storing VME address space. h](j3 )}(h``u32 *aspace``h]h)}(hjJ#h]h u32 *aspace}(hjL#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH#ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhjD#ubjM )}(hhh]h)}(h2Pointer to variable for storing VME address space.h]h2Pointer to variable for storing VME address space.}(hjc#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_#hMqhj`#ubah}(h]h ]h"]h$]h&]uh1jL hjD#ubeh}(h]h ]h"]h$]h&]uh1j, hj_#hMqhj$"ubj- )}(hM``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. h](j3 )}(h``u32 *cycle``h]h)}(hj#h]h u32 *cycle}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMrhj}#ubjM )}(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&]uh1jL 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.chMshj"ubh)}(h **Return**h]j )}(hj#h]hReturn}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMuhj"ubh)}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h]hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_slave_free (C function)c.vme_slave_freehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h3void vme_slave_free (struct vme_resource *resource)h]jZ )}(h2void vme_slave_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hj*$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&$hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj9$hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj&$hhhj8$hMubj )}(hvme_slave_freeh]j )}(hvme_slave_freeh]hvme_slave_free}(hjK$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjG$ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj&$hhhj8$hMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjg$hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjc$ubjr )}(h h]h }(hjt$hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjc$ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj$modnameN classnameNj*j-)}j0]j3)}j&jM$sbc.vme_slave_freeasbuh1hhjc$ubjr )}(h h]h }(hj$hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjc$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc$ubj )}(hresourceh]hresource}(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjc$ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj_$ubah}(h]h ]h"]h$]h&]jjuh1jhj&$hhhj8$hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj"$hhhj8$hMubah}(h]j$ah ](j j eh"]h$]h&]j j )j huh1jS hj8$hMhj$hhubj )}(hhh]h)}(hFree VME slave windowh]hFree VME slave window}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$hhubah}(h]h ]h"]h$]h&]uh1j hj$hhhj8$hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j%j j%j j j uh1jN hhhj, hNhNubj )}(h**Parameters** ``struct vme_resource *resource`` Pointer to VME slave resource. **Description** Free the provided slave resource so that it may be reallocated.h](h)}(h**Parameters**h]j )}(hj %h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj %ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj%ubj( )}(hhh]j- )}(hA``struct vme_resource *resource`` Pointer to VME slave resource. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj%%ubjM )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hjD%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@%hMhjA%ubah}(h]h ]h"]h$]h&]uh1jL hj%%ubeh}(h]h ]h"]h$]h&]uh1j, hj@%hMhj"%ubah}(h]h ]h"]h$]h&]uh1j' hj%ubh)}(h**Description**h]j )}(hjf%h]h Description}(hjh%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjd%ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj%ubh)}(h?Free the provided slave resource so that it may be reallocated.h]h?Free the provided slave resource so that it may be reallocated.}(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](jJ vme_master_request (C function)c.vme_master_requesthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hcstruct vme_resource * vme_master_request (struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h]jZ )}(hastruct vme_resource *vme_master_request(struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h](j` )}(hjc h]hstruct}(hj%hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj%hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj%hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj%hhhj%hMubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj%modnameN classnameNj*j-)}j0]j3)}j&vme_master_requestsbc.vme_master_requestasbuh1hhj%hhhj%hMubjr )}(h h]h }(hj%hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj%hhhj%hMubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hMubj )}(hvme_master_requesth]j )}(hj%h]hvme_master_request}(hj &hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj%hhhj%hMubj)}(h:(struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h](j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hj%&hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj!&ubjr )}(h h]h }(hj2&hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj!&ubh)}(hhh]j )}(hvme_devh]hvme_dev}(hjC&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@&ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjE&modnameN classnameNj*j-)}j0]j%c.vme_master_requestasbuh1hhj!&ubjr )}(h h]h }(hja&hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj!&ubj)}(hjh]h*}(hjo&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!&ubj )}(hvdevh]hvdev}(hj|&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!&ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj&ubj)}(h u32 addressh](h)}(hhh]j )}(hu32h]hu32}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj&modnameN classnameNj*j-)}j0]j%c.vme_master_requestasbuh1hhj&ubjr )}(h h]h }(hj&hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj&ubj )}(haddressh]haddress}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj&ubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj&modnameN classnameNj*j-)}j0]j%c.vme_master_requestasbuh1hhj&ubjr )}(h h]h }(hj&hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj&ubj )}(hcycleh]hcycle}(hj 'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj&ubj)}(h u32 dwidthh](h)}(hhh]j )}(hu32h]hu32}(hj('hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%'ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj*'modnameN classnameNj*j-)}j0]j%c.vme_master_requestasbuh1hhj!'ubjr )}(h h]h }(hjF'hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj!'ubj )}(hdwidthh]hdwidth}(hjT'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!'ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj&ubeh}(h]h ]h"]h$]h&]jjuh1jhj%hhhj%hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj%hhhj%hMubah}(h]j%ah ](j j eh"]h$]h&]j j )j huh1jS 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 uh1jN 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubjM )}(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&]uh1jL hj'ubeh}(h]h ]h"]h$]h&]uh1j, hj'hMhj'ubj- )}(h,``u32 address`` Required VME address space. h](j3 )}(h``u32 address``h]h)}(hj'h]h u32 address}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'ubjM )}(hhh]h)}(hRequired VME address space.h]hRequired VME address space.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj (hMhj(ubah}(h]h ]h"]h$]h&]uh1jL hj'ubeh}(h]h ]h"]h$]h&]uh1j, hj (hMhj'ubj- )}(h5``u32 cycle`` Required VME data transfer cycle type. h](j3 )}(h ``u32 cycle``h]h)}(hj1(h]h u32 cycle}(hj3(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/(ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+(ubjM )}(hhh]h)}(h&Required VME data transfer cycle type.h]h&Required VME data transfer cycle type.}(hjJ(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF(hMhjG(ubah}(h]h ]h"]h$]h&]uh1jL hj+(ubeh}(h]h ]h"]h$]h&]uh1j, hjF(hMhj'ubj- )}(h1``u32 dwidth`` Required VME data transfer width. h](j3 )}(h``u32 dwidth``h]h)}(hjj(h]h u32 dwidth}(hjl(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh(ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjd(ubjM )}(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&]uh1jL hjd(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](jJ vme_master_set (C function)c.vme_master_sethNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(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]jZ )}(hint vme_master_set(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hinth]hint}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj )hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj )hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj )hhhj)hMubj )}(hvme_master_seth]j )}(hvme_master_seth]hvme_master_set}(hj2)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.)ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj )hhhj)hMubj)}(h(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjN)hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjJ)ubjr )}(h h]h }(hj[)hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJ)ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjl)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hji)ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjn)modnameN classnameNj*j-)}j0]j3)}j&j4)sbc.vme_master_setasbuh1hhjJ)ubjr )}(h h]h }(hj)hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJ)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ)ubj )}(hresourceh]hresource}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJ)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjF)ubj)}(h int enabledh](j)}(hinth]hint}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubjr )}(h h]h }(hj)hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj)ubj )}(henabledh]henabled}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjF)ubj)}(hunsigned long long vme_baseh](j)}(hunsignedh]hunsigned}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubjr )}(h h]h }(hj*hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj)ubj)}(hlongh]hlong}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubjr )}(h h]h }(hj*hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj)ubj)}(hlongh]hlong}(hj-*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubjr )}(h h]h }(hj;*hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj)ubj )}(hvme_baseh]hvme_base}(hjI*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjF)ubj)}(hunsigned long long sizeh](j)}(hunsignedh]hunsigned}(hjb*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^*ubjr )}(h h]h }(hjp*hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj^*ubj)}(hlongh]hlong}(hj~*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^*ubjr )}(h h]h }(hj*hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj^*ubj)}(hlongh]hlong}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^*ubjr )}(h h]h }(hj*hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj^*ubj )}(hsizeh]hsize}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj^*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjF)ubj)}(h u32 aspaceh](h)}(hhh]j )}(hu32h]hu32}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj*modnameN classnameNj*j-)}j0]j)c.vme_master_setasbuh1hhj*ubjr )}(h h]h }(hj*hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj*ubj )}(haspaceh]haspace}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjF)ubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj+modnameN classnameNj*j-)}j0]j)c.vme_master_setasbuh1hhj+ubjr )}(h h]h }(hj8+hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj+ubj )}(hcycleh]hcycle}(hjF+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjF)ubj)}(h u32 dwidthh](h)}(hhh]j )}(hu32h]hu32}(hjb+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj_+ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjd+modnameN classnameNj*j-)}j0]j)c.vme_master_setasbuh1hhj[+ubjr )}(h h]h }(hj+hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj[+ubj )}(hdwidthh]hdwidth}(hj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[+ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjF)ubeh}(h]h ]h"]h$]h&]jjuh1jhj )hhhj)hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj )hhhj)hMubah}(h]j)ah ](j j eh"]h$]h&]j j )j huh1jS hj)hMhj)hhubj )}(hhh]h)}(h$Set VME master window configuration.h]h$Set VME master window configuration.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+hhubah}(h]h ]h"]h$]h&]uh1j hj)hhhj)hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j+j j+j j j uh1jN 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubjM )}(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&]uh1jL hj+ubeh}(h]h ]h"]h$]h&]uh1j, hj,hMhj+ubj- )}(h@``int enabled`` State to which the window should be configured. h](j3 )}(h``int enabled``h]h)}(hj2,h]h int enabled}(hj4,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0,ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,,ubjM )}(hhh]h)}(h/State to which the window should be configured.h]h/State to which the window should be configured.}(hjK,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG,hMhjH,ubah}(h]h ]h"]h$]h&]uh1jL hj,,ubeh}(h]h ]h"]h$]h&]uh1j, hjG,hMhj+ubj- )}(h=``unsigned long long vme_base`` Base address for the window. h](j3 )}(h``unsigned long long vme_base``h]h)}(hjk,h]hunsigned long long vme_base}(hjm,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji,ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhje,ubjM )}(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&]uh1jL hje,ubeh}(h]h ]h"]h$]h&]uh1j, hj,hMhj+ubj- )}(h4``unsigned long long size`` Size of the VME window. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubjM )}(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&]uh1jL hj,ubeh}(h]h ]h"]h$]h&]uh1j, hj,hMhj+ubj- )}(h5``u32 aspace`` VME address space for the VME window. h](j3 )}(h``u32 aspace``h]h)}(hj,h]h u32 aspace}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubjM )}(hhh]h)}(h%VME address space for the VME window.h]h%VME address space for the VME window.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1jL hj,ubeh}(h]h ]h"]h$]h&]uh1j, hj,hMhj+ubj- )}(h?``u32 cycle`` VME data transfer cycle type for the VME window. h](j3 )}(h ``u32 cycle``h]h)}(hj-h]h u32 cycle}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-ubjM )}(hhh]h)}(h0VME data transfer cycle type for the VME window.h]h0VME data transfer cycle type for the VME window.}(hj/-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+-hMhj,-ubah}(h]h ]h"]h$]h&]uh1jL hj-ubeh}(h]h ]h"]h$]h&]uh1j, hj+-hMhj+ubj- )}(h;``u32 dwidth`` VME data transfer width for the VME window. h](j3 )}(h``u32 dwidth``h]h)}(hjO-h]h u32 dwidth}(hjQ-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM-ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjI-ubjM )}(hhh]h)}(h+VME data transfer width for the VME window.h]h+VME data transfer width for the VME window.}(hjh-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd-hMhje-ubah}(h]h ]h"]h$]h&]uh1jL hjI-ubeh}(h]h ]h"]h$]h&]uh1j, hjd-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)}(h1Set configuration for provided VME master window.h]h1Set configuration for provided VME master window.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubh)}(h **Return**h]j )}(hj-h]hReturn}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubh)}(hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_master_get (C function)c.vme_master_gethNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(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]jZ )}(hint vme_master_get(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, u32 *aspace, u32 *cycle, u32 *dwidth)h](j)}(hinth]hint}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1ubjr )}(h h]h }(hj.hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj-hhhj.hM1ubj )}(hvme_master_geth]j )}(hvme_master_geth]hvme_master_get}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj-hhhj.hM1ubj)}(h(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, u32 *aspace, u32 *cycle, u32 *dwidth)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj3.hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj/.ubjr )}(h h]h }(hj@.hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj/.ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjQ.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjN.ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjS.modnameN classnameNj*j-)}j0]j3)}j&j.sbc.vme_master_getasbuh1hhj/.ubjr )}(h h]h }(hjq.hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj/.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/.ubj )}(hresourceh]hresource}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+.ubj)}(h int *enabledh](j)}(hinth]hint}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjr )}(h h]h }(hj.hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj )}(henabledh]henabled}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+.ubj)}(hunsigned long long *vme_baseh](j)}(hunsignedh]hunsigned}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjr )}(h h]h }(hj.hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj.ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjr )}(h h]h }(hj/hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj.ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjr )}(h h]h }(hj-/hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj.ubj)}(hjh]h*}(hj;/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj )}(hvme_baseh]hvme_base}(hjH/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+.ubj)}(hunsigned long long *sizeh](j)}(hunsignedh]hunsigned}(hja/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]/ubjr )}(h h]h }(hjo/hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj]/ubj)}(hlongh]hlong}(hj}/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]/ubjr )}(h h]h }(hj/hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj]/ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]/ubjr )}(h h]h }(hj/hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj]/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]/ubj )}(hsizeh]hsize}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+.ubj)}(h u32 *aspaceh](h)}(hhh]j )}(hu32h]hu32}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj/modnameN classnameNj*j-)}j0]jm.c.vme_master_getasbuh1hhj/ubjr )}(h h]h }(hj/hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj/ubj)}(hjh]h*}(hj 0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj )}(haspaceh]haspace}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+.ubj)}(h u32 *cycleh](h)}(hhh]j )}(hu32h]hu32}(hj30hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj00ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj50modnameN classnameNj*j-)}j0]jm.c.vme_master_getasbuh1hhj,0ubjr )}(h h]h }(hjQ0hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj,0ubj)}(hjh]h*}(hj_0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,0ubj )}(hcycleh]hcycle}(hjl0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj,0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+.ubj)}(h u32 *dwidthh](h)}(hhh]j )}(hu32h]hu32}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj0modnameN classnameNj*j-)}j0]jm.c.vme_master_getasbuh1hhj0ubjr )}(h h]h }(hj0hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(hdwidthh]hdwidth}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+.ubeh}(h]h ]h"]h$]h&]jjuh1jhj-hhhj.hM1ubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj-hhhj.hM1ubah}(h]j-ah ](j j eh"]h$]h&]j j )j huh1jS hj.hM1hj-hhubj )}(hhh]h)}(h)Retrieve VME master window configuration.h]h)Retrieve VME master window configuration.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hj0hhubah}(h]h ]h"]h$]h&]uh1j hj-hhhj.hM1ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j1j j1j j j uh1jN 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 )}(hj 1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj 1ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM5hj1ubj( )}(hhh](j- )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hj,1h]hstruct vme_resource *resource}(hj.1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*1ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM2hj&1ubjM )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hjE1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA1hM2hjB1ubah}(h]h ]h"]h$]h&]uh1jL hj&1ubeh}(h]h ]h"]h$]h&]uh1j, hjA1hM2hj#1ubj- )}(h8``int *enabled`` Pointer to variable for storing state. h](j3 )}(h``int *enabled``h]h)}(hje1h]h int *enabled}(hjg1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc1ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM3hj_1ubjM )}(hhh]h)}(h&Pointer to variable for storing state.h]h&Pointer to variable for storing state.}(hj~1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz1hM3hj{1ubah}(h]h ]h"]h$]h&]uh1jL hj_1ubeh}(h]h ]h"]h$]h&]uh1j, hjz1hM3hj#1ubj- )}(hV``unsigned long long *vme_base`` Pointer to variable for storing window base address. h](j3 )}(h ``unsigned long long *vme_base``h]h)}(hj1h]hunsigned long long *vme_base}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM4hj1ubjM )}(hhh]h)}(h4Pointer to variable for storing window base address.h]h4Pointer to variable for storing window base address.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM4hj1ubah}(h]h ]h"]h$]h&]uh1jL hj1ubeh}(h]h ]h"]h$]h&]uh1j, hj1hM4hj#1ubj- )}(hJ``unsigned long long *size`` Pointer to variable for storing window size. h](j3 )}(h``unsigned long long *size``h]h)}(hj1h]hunsigned long long *size}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM5hj1ubjM )}(hhh]h)}(h,Pointer to variable for storing window size.h]h,Pointer to variable for storing window size.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM5hj1ubah}(h]h ]h"]h$]h&]uh1jL hj1ubeh}(h]h ]h"]h$]h&]uh1j, hj1hM5hj#1ubj- )}(hC``u32 *aspace`` Pointer to variable for storing VME address space. h](j3 )}(h``u32 *aspace``h]h)}(hj2h]h u32 *aspace}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM6hj 2ubjM )}(hhh]h)}(h2Pointer to variable for storing VME address space.h]h2Pointer to variable for storing VME address space.}(hj)2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%2hM6hj&2ubah}(h]h ]h"]h$]h&]uh1jL hj 2ubeh}(h]h ]h"]h$]h&]uh1j, hj%2hM6hj#1ubj- )}(hM``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. h](j3 )}(h``u32 *cycle``h]h)}(hjI2h]h u32 *cycle}(hjK2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG2ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hjC2ubjM )}(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.}(hjb2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^2hM7hj_2ubah}(h]h ]h"]h$]h&]uh1jL hjC2ubeh}(h]h ]h"]h$]h&]uh1j, hj^2hM7hj#1ubj- )}(hI``u32 *dwidth`` Pointer to variable for storing VME data transfer width. h](j3 )}(h``u32 *dwidth``h]h)}(hj2h]h u32 *dwidth}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hj|2ubjM )}(hhh]h)}(h8Pointer to variable for storing VME data transfer width.h]h8Pointer to variable for storing VME data transfer width.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM8hj2ubah}(h]h ]h"]h$]h&]uh1jL hj|2ubeh}(h]h ]h"]h$]h&]uh1j, hj2hM8hj#1ubeh}(h]h ]h"]h$]h&]uh1j' hj1ubh)}(h**Description**h]j )}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hj1ubh)}(h4Return configuration for provided VME master window.h]h4Return configuration for provided VME master window.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj1ubh)}(h **Return**h]j )}(hj2h]hReturn}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hj1ubh)}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h]hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_master_read (C function)c.vme_master_readhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h_ssize_t vme_master_read (struct vme_resource *resource, void *buf, size_t count, loff_t offset)h]jZ )}(h^ssize_t vme_master_read(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](h)}(hhh]j )}(hssize_th]hssize_t}(hj,3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)3ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj.3modnameN classnameNj*j-)}j0]j3)}j&vme_master_readsbc.vme_master_readasbuh1hhj%3hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXubjr )}(h h]h }(hjN3hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj%3hhhjM3hMXubj )}(hvme_master_readh]j )}(hjJ3h]hvme_master_read}(hj`3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj\3ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj%3hhhjM3hMXubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj{3hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjw3ubjr )}(h h]h }(hj3hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjw3ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj3modnameN classnameNj*j-)}j0]jH3c.vme_master_readasbuh1hhjw3ubjr )}(h h]h }(hj3hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjw3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw3ubj )}(hresourceh]hresource}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjw3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjs3ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubjr )}(h h]h }(hj3hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj3ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj )}(hbufh]hbuf}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjs3ubj)}(h size_t counth](h)}(hhh]j )}(hsize_th]hsize_t}(hj04hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj-4ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj24modnameN classnameNj*j-)}j0]jH3c.vme_master_readasbuh1hhj)4ubjr )}(h h]h }(hjN4hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj)4ubj )}(hcounth]hcount}(hj\4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjs3ubj)}(h loff_t offseth](h)}(hhh]j )}(hloff_th]hloff_t}(hjx4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hju4ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjz4modnameN classnameNj*j-)}j0]jH3c.vme_master_readasbuh1hhjq4ubjr )}(h h]h }(hj4hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjq4ubj )}(hoffseth]hoffset}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjq4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjs3ubeh}(h]h ]h"]h$]h&]jjuh1jhj%3hhhjM3hMXubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj!3hhhjM3hMXubah}(h]j3ah ](j j eh"]h$]h&]j j )j huh1jS hjM3hMXhj3hhubj )}(hhh]h)}(h'Read data from VME space into a buffer.h]h'Read data from VME space into a buffer.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXhj4hhubah}(h]h ]h"]h$]h&]uh1j hj3hhhjM3hMXubeh}(h]h ](hfunctioneh"]h$]h&]j hj j4j j4j j j uh1jN hhhj, hNhNubj )}(hXv**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``void *buf`` Pointer to buffer where data should be transferred. ``size_t count`` Number of bytes to transfer. ``loff_t offset`` Offset into VME master window at which to start transfer. **Description** Perform read of count bytes of data from location on VME bus which maps into the VME master window at offset to buf. **Return** Number of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hj4ubj( )}(hhh](j- )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hj5h]hstruct vme_resource *resource}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 5ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMYhj 5ubjM )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj(5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$5hMYhj%5ubah}(h]h ]h"]h$]h&]uh1jL hj 5ubeh}(h]h ]h"]h$]h&]uh1j, hj$5hMYhj5ubj- )}(hB``void *buf`` Pointer to buffer where data should be transferred. h](j3 )}(h ``void *buf``h]h)}(hjH5h]h void *buf}(hjJ5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF5ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMZhjB5ubjM )}(hhh]h)}(h3Pointer to buffer where data should be transferred.h]h3Pointer to buffer where data should be transferred.}(hja5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]5hMZhj^5ubah}(h]h ]h"]h$]h&]uh1jL hjB5ubeh}(h]h ]h"]h$]h&]uh1j, hj]5hMZhj5ubj- )}(h.``size_t count`` Number of bytes to transfer. h](j3 )}(h``size_t count``h]h)}(hj5h]h size_t count}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM[hj{5ubjM )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hM[hj5ubah}(h]h ]h"]h$]h&]uh1jL hj{5ubeh}(h]h ]h"]h$]h&]uh1j, hj5hM[hj5ubj- )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j3 )}(h``loff_t offset``h]h)}(hj5h]h loff_t offset}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hj5ubjM )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hM\hj5ubah}(h]h ]h"]h$]h&]uh1jL hj5ubeh}(h]h ]h"]h$]h&]uh1j, hj5hM\hj5ubeh}(h]h ]h"]h$]h&]uh1j' hj4ubh)}(h**Description**h]j )}(hj5h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj4ubh)}(htPerform read of count bytes of data from location on VME bus which maps into the VME master window at offset to buf.h]htPerform read of count bytes of data from location on VME bus which maps into the VME master window at offset to buf.}(hj 6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM]hj4ubh)}(h **Return**h]j )}(hj6h]hReturn}(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`hj4ubh)}(hNumber of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hNumber of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.}(hj26hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMahj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_master_write (C function)c.vme_master_writehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h`ssize_t vme_master_write (struct vme_resource *resource, void *buf, size_t count, loff_t offset)h]jZ )}(h_ssize_t vme_master_write(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](h)}(hhh]j )}(hssize_th]hssize_t}(hjd6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hja6ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjf6modnameN classnameNj*j-)}j0]j3)}j&vme_master_writesbc.vme_master_writeasbuh1hhj]6hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj6hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj]6hhhj6hMubj )}(hvme_master_writeh]j )}(hj6h]hvme_master_write}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj]6hhhj6hMubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj6hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj6ubjr )}(h h]h }(hj6hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj6ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj6modnameN classnameNj*j-)}j0]j6c.vme_master_writeasbuh1hhj6ubjr )}(h h]h }(hj6hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj )}(hresourceh]hresource}(hj 7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hj#7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubjr )}(h h]h }(hj17hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj7ubj)}(hjh]h*}(hj?7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj )}(hbufh]hbuf}(hjL7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubj)}(h size_t counth](h)}(hhh]j )}(hsize_th]hsize_t}(hjh7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hje7ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjj7modnameN classnameNj*j-)}j0]j6c.vme_master_writeasbuh1hhja7ubjr )}(h h]h }(hj7hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hja7ubj )}(hcounth]hcount}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hja7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubj)}(h loff_t offseth](h)}(hhh]j )}(hloff_th]hloff_t}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj7modnameN classnameNj*j-)}j0]j6c.vme_master_writeasbuh1hhj7ubjr )}(h h]h }(hj7hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj7ubj )}(hoffseth]hoffset}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubeh}(h]h ]h"]h$]h&]jjuh1jhj]6hhhj6hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjY6hhhj6hMubah}(h]jT6ah ](j j eh"]h$]h&]j j )j huh1jS hj6hMhjV6hhubj )}(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 hjV6hhhj6hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j8j j8j j j uh1jN hhhj, hNhNubj )}(hXs**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``void *buf`` Pointer to buffer holding data to transfer. ``size_t count`` Number of bytes to transfer. ``loff_t offset`` Offset into VME master window at which to start transfer. **Description** Perform write of count bytes of data from buf to location on VME bus which maps into the VME master window at offset. **Return** Number of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj(8h]h Parameters}(hj*8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&8ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj"8ubj( )}(hhh](j- )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjG8h]hstruct vme_resource *resource}(hjI8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE8ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjA8ubjM )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj`8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\8hMhj]8ubah}(h]h ]h"]h$]h&]uh1jL hjA8ubeh}(h]h ]h"]h$]h&]uh1j, hj\8hMhj>8ubj- )}(h:``void *buf`` Pointer to buffer holding data to transfer. h](j3 )}(h ``void *buf``h]h)}(hj8h]h void *buf}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~8ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjz8ubjM )}(hhh]h)}(h+Pointer to buffer holding data to transfer.h]h+Pointer to buffer holding data to transfer.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jL hjz8ubeh}(h]h ]h"]h$]h&]uh1j, hj8hMhj>8ubj- )}(h.``size_t count`` Number of bytes to transfer. h](j3 )}(h``size_t count``h]h)}(hj8h]h size_t count}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubjM )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jL hj8ubeh}(h]h ]h"]h$]h&]uh1j, hj8hMhj>8ubj- )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j3 )}(h``loff_t offset``h]h)}(hj8h]h loff_t offset}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj8ubjM )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hj 9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jL hj8ubeh}(h]h ]h"]h$]h&]uh1j, hj9hMhj>8ubeh}(h]h ]h"]h$]h&]uh1j' hj"8ubh)}(h**Description**h]j )}(hj-9h]h Description}(hj/9hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+9ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj"8ubh)}(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.}(hjC9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj"8ubh)}(h **Return**h]j )}(hjT9h]hReturn}(hjV9hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjR9ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj"8ubh)}(hNumber of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hNumber of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.}(hjj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj"8ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_master_rmw (C function)c.vme_master_rmwhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hunsigned int vme_master_rmw (struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h]jZ )}(hunsigned int vme_master_rmw(struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h](j)}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj9hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj9hhhj9hMubj)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9hhhj9hMubjr )}(h h]h }(hj9hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj9hhhj9hMubj )}(hvme_master_rmwh]j )}(hvme_master_rmwh]hvme_master_rmw}(hj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj9ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj9hhhj9hMubj)}(hj(struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj9hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj9ubjr )}(h h]h }(hj9hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj9ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj :ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj:modnameN classnameNj*j-)}j0]j3)}j&j9sbc.vme_master_rmwasbuh1hhj9ubjr )}(h h]h }(hj0:hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj9ubj)}(hjh]h*}(hj>:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj )}(hresourceh]hresource}(hjK:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj9ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjd:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`:ubjr )}(h h]h }(hjr:hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj`:ubj)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`:ubjr )}(h h]h }(hj:hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj`:ubj )}(hmaskh]hmask}(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hunsigned int compareh](j)}(hunsignedh]hunsigned}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubjr )}(h h]h }(hj:hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj:ubj)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubjr )}(h h]h }(hj:hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj:ubj )}(hcompareh]hcompare}(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hunsigned int swaph](j)}(hunsignedh]hunsigned}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubjr )}(h h]h }(hj;hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj;ubj)}(hinth]hint}(hj";hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubjr )}(h h]h }(hj0;hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj;ubj )}(hswaph]hswap}(hj>;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(h loff_t offseth](h)}(hhh]j )}(hloff_th]hloff_t}(hjZ;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjW;ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj\;modnameN classnameNj*j-)}j0]j,:c.vme_master_rmwasbuh1hhjS;ubjr )}(h h]h }(hjx;hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjS;ubj )}(hoffseth]hoffset}(hj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjS;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubeh}(h]h ]h"]h$]h&]jjuh1jhj9hhhj9hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj9hhhj9hMubah}(h]j9ah ](j j eh"]h$]h&]j j )j huh1jS hj9hMhj9hhubj )}(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 hj9hhhj9hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j;j j;j j j uh1jN hhhj, hNhNubj )}(hXM**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``unsigned int mask`` Bits to be compared and swapped in operation. ``unsigned int compare`` Bits to be compared with data read from offset. ``unsigned int swap`` Bits to be swapped in data read from offset. ``loff_t offset`` Offset into VME master window at which to perform operation. **Description** Perform read-modify-write cycle on provided location: - Location on VME bus is read. - Bits selected by mask are compared with compare. - Where a selected bit matches that in compare and are selected in swap, the bit is swapped. - Result written back to location on VME bus. **Return** Bytes written on success, -EINVAL if resource is not a VME master resource or RMW operation is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj;ubj( )}(hhh](j- )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj;ubjM )}(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&]uh1jL hj;ubeh}(h]h ]h"]h$]h&]uh1j, hj<hMhj;ubj- )}(hD``unsigned int mask`` Bits to be compared and swapped in operation. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$<ubjM )}(hhh]h)}(h-Bits to be compared and swapped in operation.h]h-Bits to be compared and swapped in operation.}(hjC<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?<hMhj@<ubah}(h]h ]h"]h$]h&]uh1jL 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](j3 )}(h``unsigned int compare``h]h)}(hjc<h]hunsigned int compare}(hje<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja<ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj]<ubjM )}(hhh]h)}(h/Bits to be compared with data read from offset.h]h/Bits to be compared with data read from offset.}(hj|<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx<hMhjy<ubah}(h]h ]h"]h$]h&]uh1jL hj]<ubeh}(h]h ]h"]h$]h&]uh1j, hjx<hMhj;ubj- )}(hC``unsigned int swap`` Bits to be swapped in data read from offset. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj<ubjM )}(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&]uh1jL 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj<ubjM )}(hhh]h)}(h )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ $vme_master_mmap_prepare (C function)c.vme_master_mmap_preparehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hVint vme_master_mmap_prepare (struct vme_resource *resource, struct vm_area_desc *desc)h]jZ )}(hUint vme_master_mmap_prepare(struct vme_resource *resource, struct vm_area_desc *desc)h](j)}(hinth]hint}(hj|=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx=hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj=hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjx=hhhj=hMubj )}(hvme_master_mmap_prepareh]j )}(hvme_master_mmap_prepareh]hvme_master_mmap_prepare}(hj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj=ubah}(h]h ](j j eh"]h$]h&]jjuh1j hjx=hhhj=hMubj)}(h:(struct vme_resource *resource, struct vm_area_desc *desc)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj=hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj=ubjr )}(h h]h }(hj=hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj=ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj=ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj=modnameN classnameNj*j-)}j0]j3)}j&j=sbc.vme_master_mmap_prepareasbuh1hhj=ubjr )}(h h]h }(hj=hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj=ubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj )}(hresourceh]hresource}(hj>hhhNhNubah}(h]h ]j a!h"]h$]h&]uh1j hj=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=ubj)}(hstruct vm_area_desc *desch](j` )}(hjc h]hstruct}(hj+>hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj'>ubjr )}(h h]h }(hj8>hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj'>ubh)}(hhh]j )}(h vm_area_desch]h vm_area_desc}(hjI>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjF>ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjK>modnameN classnameNj*j-)}j0]j=c.vme_master_mmap_prepareasbuh1hhj'>ubjr )}(h h]h }(hjg>hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj'>ubj)}(hjh]h*}(hju>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'>ubj )}(hdesch]hdesc}(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj'>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=ubeh}(h]h ]h"]h$]h&]jjuh1jhjx=hhhj=hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjt=hhhj=hMubah}(h]jo=ah ](j j eh"]h$]h&]j j )j huh1jS hj=hMhjq=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 hjq=hhhj=hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j>j j>j j j uh1jN hhhj, hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``struct vm_area_desc *desc`` Pointer to descriptor 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubjM )}(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&]uh1jL hj>ubeh}(h]h ]h"]h$]h&]uh1j, hj?hMhj>ubj- )}(hE``struct vm_area_desc *desc`` Pointer to descriptor of user mapping. h](j3 )}(h``struct vm_area_desc *desc``h]h)}(hj&?h]hstruct vm_area_desc *desc}(hj(?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$?ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj ?ubjM )}(hhh]h)}(h&Pointer to descriptor of user mapping.h]h&Pointer to descriptor of user mapping.}(hj??hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;?hMhjubeh}(h]h ]h"]h$]h&]uh1j' hj>ubh)}(h**Description**h]j )}(hja?h]h Description}(hjc?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)}(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.}(hjw?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubh)}(h **Return**h]j )}(hj?h]hReturn}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubh)}(hZero on success, -EINVAL if resource is not a VME master resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.h]hZero on success, -EINVAL if resource is not a VME master resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_master_free (C function)c.vme_master_freehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h4void vme_master_free (struct vme_resource *resource)h]jZ )}(h3void vme_master_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj?hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj?hhhj?hMubj )}(hvme_master_freeh]j )}(hvme_master_freeh]hvme_master_free}(hj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj?hhhj?hMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj @hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj@ubjr )}(h h]h }(hj@hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj@ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj(@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%@ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj*@modnameN classnameNj*j-)}j0]j3)}j&j?sbc.vme_master_freeasbuh1hhj@ubjr )}(h h]h }(hjH@hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj@ubj)}(hjh]h*}(hjV@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj )}(hresourceh]hresource}(hjc@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj@ubah}(h]h ]h"]h$]h&]jjuh1jhj?hhhj?hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj?hhhj?hMubah}(h]j?ah ](j j eh"]h$]h&]j j )j huh1jS hj?hMhj?hhubj )}(hhh]h)}(hFree VME master windowh]hFree 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 uh1jN hhhj, hNhNubj )}(h**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. **Description** Free the provided master resource so that it may be reallocated.h](h)}(h**Parameters**h]j )}(hj@h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj@ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj@ubj( )}(hhh]j- )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj@ubjM )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hM hj@ubah}(h]h ]h"]h$]h&]uh1jL hj@ubeh}(h]h ]h"]h$]h&]uh1j, hj@hM hj@ubah}(h]h ]h"]h$]h&]uh1j' hj@ubh)}(h**Description**h]j )}(hj Ah]h Description}(hj AhhhNhNubah}(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 hj@ubh)}(h@Free the provided master resource so that it may be reallocated.h]h@Free the provided master resource so that it may be reallocated.}(hjAhhhNhNubah}(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](jJ vme_dma_request (C function)c.vme_dma_requesthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hGstruct vme_resource * vme_dma_request (struct vme_dev *vdev, u32 route)h]jZ )}(hEstruct vme_resource *vme_dma_request(struct vme_dev *vdev, u32 route)h](j` )}(hjc h]hstruct}(hjNAhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjJAhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM(ubjr )}(h h]h }(hj\AhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJAhhhj[AhM(ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjmAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjAubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjoAmodnameN classnameNj*j-)}j0]j3)}j&vme_dma_requestsbc.vme_dma_requestasbuh1hhjJAhhhj[AhM(ubjr )}(h h]h }(hjAhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJAhhhj[AhM(ubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJAhhhj[AhM(ubj )}(hvme_dma_requesth]j )}(hjAh]hvme_dma_request}(hjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubah}(h]h ](j j eh"]h$]h&]jjuh1j hjJAhhhj[AhM(ubj)}(h!(struct vme_dev *vdev, u32 route)h](j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hjAhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjAubjr )}(h h]h }(hjAhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjAubh)}(hhh]j )}(hvme_devh]hvme_dev}(hjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjAmodnameN classnameNj*j-)}j0]jAc.vme_dma_requestasbuh1hhjAubjr )}(h h]h }(hjBhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjAubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj )}(hvdevh]hvdev}(hjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjAubj)}(h u32 routeh](h)}(hhh]j )}(hu32h]hu32}(hj;BhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj8Bubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj=BmodnameN classnameNj*j-)}j0]jAc.vme_dma_requestasbuh1hhj4Bubjr )}(h h]h }(hjYBhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj4Bubj )}(hrouteh]hroute}(hjgBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4Bubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjAubeh}(h]h ]h"]h$]h&]jjuh1jhjJAhhhj[AhM(ubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjFAhhhj[AhM(ubah}(h]jAAah ](j j eh"]h$]h&]j j )j huh1jS hj[AhM(hjCAhhubj )}(hhh]h)}(hRequest a DMA controller.h]hRequest a DMA controller.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM(hjBhhubah}(h]h ]h"]h$]h&]uh1j hjCAhhhj[AhM(ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jBj jBj j j uh1jN hhhj, hNhNubj )}(hXo**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``u32 route`` Required src/destination combination. **Description** Request a VME DMA controller with capability to perform transfers between requested source/destination combination. **Return** Pointer to VME DMA resource on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjBubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM,hjBubj( )}(hhh](j- )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j3 )}(h``struct vme_dev *vdev``h]h)}(hjBh]hstruct vme_dev *vdev}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM)hjBubjM )}(hhh]h)}(hAPointer to VME device struct vme_dev assigned to driver instance.h]hAPointer to VME device struct vme_dev assigned to driver instance.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhM)hjBubah}(h]h ]h"]h$]h&]uh1jL hjBubeh}(h]h ]h"]h$]h&]uh1j, hjBhM)hjBubj- )}(h4``u32 route`` Required src/destination combination. h](j3 )}(h ``u32 route``h]h)}(hj Ch]h u32 route}(hj ChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj Cubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM*hjCubjM )}(hhh]h)}(h%Required src/destination combination.h]h%Required src/destination combination.}(hj$ChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ChM*hj!Cubah}(h]h ]h"]h$]h&]uh1jL hjCubeh}(h]h ]h"]h$]h&]uh1j, hj ChM*hjBubeh}(h]h ]h"]h$]h&]uh1j' hjBubh)}(h**Description**h]j )}(hjFCh]h Description}(hjHChhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDCubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM,hjBubh)}(hsRequest a VME DMA controller with capability to perform transfers between requested source/destination combination.h]hsRequest a VME DMA controller with capability to perform transfers between requested source/destination combination.}(hj\ChhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM+hjBubh)}(h **Return**h]j )}(hjmCh]hReturn}(hjoChhhNhNubah}(h]h ]h"]h$]h&]uh1j hjkCubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM.hjBubh)}(h8Pointer to VME DMA resource on success, NULL on failure.h]h8Pointer to VME DMA resource on success, NULL on failure.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM/hjBubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_new_dma_list (C function)c.vme_new_dma_listhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hFstruct vme_dma_list * vme_new_dma_list (struct vme_resource *resource)h]jZ )}(hDstruct vme_dma_list *vme_new_dma_list(struct vme_resource *resource)h](j` )}(hjc h]hstruct}(hjChhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjChhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnubjr )}(h h]h }(hjChhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjChhhjChMnubh)}(hhh]j )}(h vme_dma_listh]h vme_dma_list}(hjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjCubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjCmodnameN classnameNj*j-)}j0]j3)}j&vme_new_dma_listsbc.vme_new_dma_listasbuh1hhjChhhjChMnubjr )}(h h]h }(hjChhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjChhhjChMnubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhjChMnubj )}(hvme_new_dma_listh]j )}(hjCh]hvme_new_dma_list}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj Dubah}(h]h ](j j eh"]h$]h&]jjuh1j hjChhhjChMnubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj,DhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj(Dubjr )}(h h]h }(hj9DhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj(Dubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjJDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjGDubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjLDmodnameN classnameNj*j-)}j0]jCc.vme_new_dma_listasbuh1hhj(Dubjr )}(h h]h }(hjhDhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj(Dubj)}(hjh]h*}(hjvDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(Dubj )}(hresourceh]hresource}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj(Dubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj$Dubah}(h]h ]h"]h$]h&]jjuh1jhjChhhjChMnubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjChhhjChMnubah}(h]jCah ](j j eh"]h$]h&]j j )j huh1jS hjChMnhjChhubj )}(hhh]h)}(hCreate new VME DMA list.h]hCreate new VME DMA list.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhjDhhubah}(h]h ]h"]h$]h&]uh1j hjChhhjChMnubeh}(h]h ](hfunctioneh"]h$]h&]j hj jDj jDj j j uh1jN hhhj, hNhNubj )}(hXM**Parameters** ``struct vme_resource *resource`` Pointer to VME DMA resource. **Description** Create a new VME DMA list. It is the responsibility of the user to free the list once it is no longer required with vme_dma_list_free(). **Return** Pointer to new VME DMA list, NULL on allocation failure or invalid VME DMA resource.h](h)}(h**Parameters**h]j )}(hjDh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMrhjDubj( )}(hhh]j- )}(h?``struct vme_resource *resource`` Pointer to VME DMA resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjDh]hstruct vme_resource *resource}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohjDubjM )}(hhh]h)}(hPointer to VME DMA resource.h]hPointer to VME DMA resource.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMohjEubah}(h]h ]h"]h$]h&]uh1jL hjDubeh}(h]h ]h"]h$]h&]uh1j, hjEhMohjDubah}(h]h ]h"]h$]h&]uh1j' hjDubh)}(h**Description**h]j )}(hj)Eh]h Description}(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.chMqhjDubh)}(hCreate a new VME DMA list. It is the responsibility of the user to free the list once it is no longer required with vme_dma_list_free().h]hCreate a new VME DMA list. It is the responsibility of the user to free the list once it is no longer required with vme_dma_list_free().}(hj?EhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphjDubh)}(h **Return**h]j )}(hjPEh]hReturn}(hjREhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjNEubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjDubh)}(hTPointer to new VME DMA list, NULL on allocation failure or invalid VME DMA resource.h]hTPointer to new VME DMA list, NULL on allocation failure or invalid VME DMA resource.}(hjfEhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjDubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ &vme_dma_pattern_attribute (C function)c.vme_dma_pattern_attributehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hGstruct vme_dma_attr * vme_dma_pattern_attribute (u32 pattern, u32 type)h]jZ )}(hEstruct vme_dma_attr *vme_dma_pattern_attribute(u32 pattern, u32 type)h](j` )}(hjc h]hstruct}(hjEhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjEhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjEhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjEhhhjEhMubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjEmodnameN classnameNj*j-)}j0]j3)}j&vme_dma_pattern_attributesbc.vme_dma_pattern_attributeasbuh1hhjEhhhjEhMubjr )}(h h]h }(hjEhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjEhhhjEhMubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEhhhjEhMubj )}(hvme_dma_pattern_attributeh]j )}(hjEh]hvme_dma_pattern_attribute}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEubah}(h]h ](j j eh"]h$]h&]jjuh1j hjEhhhjEhMubj)}(h(u32 pattern, u32 type)h](j)}(h u32 patternh](h)}(hhh]j )}(hu32h]hu32}(hjFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjFubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjFmodnameN classnameNj*j-)}j0]jEc.vme_dma_pattern_attributeasbuh1hhj Fubjr )}(h h]h }(hj0FhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj Fubj )}(hpatternh]hpattern}(hj>FhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj Fubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjFubj)}(hu32 typeh](h)}(hhh]j )}(hu32h]hu32}(hjZFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWFubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj\FmodnameN classnameNj*j-)}j0]jEc.vme_dma_pattern_attributeasbuh1hhjSFubjr )}(h h]h }(hjxFhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjSFubj )}(htypeh]htype}(hjFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjSFubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjFubeh}(h]h ]h"]h$]h&]jjuh1jhjEhhhjEhMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjEhhhjEhMubah}(h]jEah ](j j eh"]h$]h&]j j )j huh1jS hjEhMhjEhhubj )}(hhh]h)}(h-Create "Pattern" type VME DMA list attribute.h]h1Create “Pattern” type VME DMA list attribute.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFhhubah}(h]h ]h"]h$]h&]uh1j hjEhhhjEhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jFj jFj j j uh1jN hhhj, hNhNubj )}(hXN**Parameters** ``u32 pattern`` Value to use used as pattern ``u32 type`` Type of pattern to be written. **Description** Create VME DMA list attribute for pattern generation. It is the responsibility of the user to free used attributes using vme_dma_free_attribute(). **Return** Pointer to VME DMA attribute, NULL on failure.h](h)}(h**Parameters**h]j )}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjFubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubj( )}(hhh](j- )}(h-``u32 pattern`` Value to use used as pattern h](j3 )}(h``u32 pattern``h]h)}(hjFh]h u32 pattern}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubjM )}(hhh]h)}(hValue to use used as patternh]hValue to use used as pattern}(hj GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhMhjGubah}(h]h ]h"]h$]h&]uh1jL hjFubeh}(h]h ]h"]h$]h&]uh1j, hjGhMhjFubj- )}(h,``u32 type`` Type of pattern to be written. h](j3 )}(h ``u32 type``h]h)}(hj*Gh]hu32 type}(hj,GhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(Gubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$GubjM )}(hhh]h)}(hType of pattern to be written.h]hType of pattern to be written.}(hjCGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?GhMhj@Gubah}(h]h ]h"]h$]h&]uh1jL hj$Gubeh}(h]h ]h"]h$]h&]uh1j, hj?GhMhjFubeh}(h]h ]h"]h$]h&]uh1j' hjFubh)}(h**Description**h]j )}(hjeGh]h Description}(hjgGhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjcGubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubh)}(hCreate VME DMA list attribute for pattern generation. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().h]hCreate VME DMA list attribute for pattern generation. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().}(hj{GhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubh)}(h **Return**h]j )}(hjGh]hReturn}(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.chMhjFubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ "vme_dma_pci_attribute (C function)c.vme_dma_pci_attributehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h@struct vme_dma_attr * vme_dma_pci_attribute (dma_addr_t address)h]jZ )}(h>struct vme_dma_attr *vme_dma_pci_attribute(dma_addr_t address)h](j` )}(hjc h]hstruct}(hjGhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjGhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjGhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjGhhhjGhMubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjGubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjGmodnameN classnameNj*j-)}j0]j3)}j&vme_dma_pci_attributesbc.vme_dma_pci_attributeasbuh1hhjGhhhjGhMubjr )}(h h]h }(hjHhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjGhhhjGhMubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhjGhMubj )}(hvme_dma_pci_attributeh]j )}(hjHh]hvme_dma_pci_attribute}(hj0HhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj,Hubah}(h]h ](j j eh"]h$]h&]jjuh1j hjGhhhjGhMubj)}(h(dma_addr_t address)h]j)}(hdma_addr_t addressh](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hjNHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKHubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjPHmodnameN classnameNj*j-)}j0]j Hc.vme_dma_pci_attributeasbuh1hhjGHubjr )}(h h]h }(hjlHhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjGHubj )}(haddressh]haddress}(hjzHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjGHubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCHubah}(h]h ]h"]h$]h&]jjuh1jhjGhhhjGhMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjGhhhjGhMubah}(h]jGah ](j j eh"]h$]h&]j j )j huh1jS hjGhMhjGhhubj )}(hhh]h)}(h)Create "PCI" type VME DMA list attribute.h]h-Create “PCI” 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 hjGhhhjGhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jHj jHj j j uh1jN 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 )}(hjHh]h Parameters}(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.chMhjHubj( )}(hhh]j- )}(h:``dma_addr_t address`` PCI base address for DMA transfer. h](j3 )}(h``dma_addr_t address``h]h)}(hjHh]hdma_addr_t address}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjHubjM )}(hhh]h)}(h"PCI base address for DMA transfer.h]h"PCI base address for DMA transfer.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jL hjHubeh}(h]h ]h"]h$]h&]uh1j, hjHhMhjHubah}(h]h ]h"]h$]h&]uh1j' hjHubh)}(h**Description**h]j )}(hj Ih]h Description}(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.chMhjHubh)}(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().}(hj6IhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjHubh)}(h **Return**h]j )}(hjGIh]hReturn}(hjIIhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjEIubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjHubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hj]IhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ "vme_dma_vme_attribute (C function)c.vme_dma_vme_attributehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hkstruct vme_dma_attr * vme_dma_vme_attribute (unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h]jZ )}(histruct vme_dma_attr *vme_dma_vme_attribute(unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h](j` )}(hjc h]hstruct}(hjIhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjIhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjIhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjIhhhjIhMubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjImodnameN classnameNj*j-)}j0]j3)}j&vme_dma_vme_attributesbc.vme_dma_vme_attributeasbuh1hhjIhhhjIhMubjr )}(h h]h }(hjIhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjIhhhjIhMubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhjIhMubj )}(hvme_dma_vme_attributeh]j )}(hjIh]hvme_dma_vme_attribute}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIubah}(h]h ](j j eh"]h$]h&]jjuh1j hjIhhhjIhMubj)}(h?(unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hunsigned long long addressh](j)}(hunsignedh]hunsigned}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubjr )}(h h]h }(hjJhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJubj)}(hlongh]hlong}(hj"JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubjr )}(h h]h }(hj0JhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJubj)}(hlongh]hlong}(hj>JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubjr )}(h h]h }(hjLJhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJubj )}(haddressh]haddress}(hjZJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjIubj)}(h u32 aspaceh](h)}(hhh]j )}(hu32h]hu32}(hjvJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsJubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjxJmodnameN classnameNj*j-)}j0]jIc.vme_dma_vme_attributeasbuh1hhjoJubjr )}(h h]h }(hjJhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjoJubj )}(haspaceh]haspace}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjoJubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjIubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjJmodnameN classnameNj*j-)}j0]jIc.vme_dma_vme_attributeasbuh1hhjJubjr )}(h h]h }(hjJhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJubj )}(hcycleh]hcycle}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjIubj)}(h u32 dwidthh](h)}(hhh]j )}(hu32h]hu32}(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjKmodnameN classnameNj*j-)}j0]jIc.vme_dma_vme_attributeasbuh1hhjJubjr )}(h h]h }(hj$KhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjJubj )}(hdwidthh]hdwidth}(hj2KhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjIubeh}(h]h ]h"]h$]h&]jjuh1jhjIhhhjIhMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjIhhhjIhMubah}(h]jIah ](j j eh"]h$]h&]j j )j huh1jS hjIhMhjIhhubj )}(hhh]h)}(h)Create "VME" type VME DMA list attribute.h]h-Create “VME” type VME DMA list attribute.}(hj\KhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjYKhhubah}(h]h ]h"]h$]h&]uh1j hjIhhhjIhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jtKj jtKj j j uh1jN 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 )}(hj~Kh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj|Kubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjxKubj( )}(hhh](j- )}(hB``unsigned long long address`` VME base address for DMA transfer. h](j3 )}(h``unsigned long long address``h]h)}(hjKh]hunsigned long long address}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjKubjM )}(hhh]h)}(h"VME base address for DMA transfer.h]h"VME base address for DMA transfer.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jL hjKubeh}(h]h ]h"]h$]h&]uh1j, hjKhMhjKubj- )}(h:``u32 aspace`` VME address space to use for DMA transfer. h](j3 )}(h``u32 aspace``h]h)}(hjKh]h u32 aspace}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjKubjM )}(hhh]h)}(h*VME address space to use for DMA transfer.h]h*VME address space to use for DMA transfer.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jL hjKubeh}(h]h ]h"]h$]h&]uh1j, hjKhMhjKubj- )}(h5``u32 cycle`` VME bus cycle to use for DMA transfer. h](j3 )}(h ``u32 cycle``h]h)}(hjLh]h u32 cycle}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj Lubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj LubjM )}(hhh]h)}(h&VME bus cycle to use for DMA transfer.h]h&VME bus cycle to use for DMA transfer.}(hj(LhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$LhMhj%Lubah}(h]h ]h"]h$]h&]uh1jL hj Lubeh}(h]h ]h"]h$]h&]uh1j, hj$LhMhjKubj- )}(h7``u32 dwidth`` VME data width to use for DMA transfer. h](j3 )}(h``u32 dwidth``h]h)}(hjHLh]h u32 dwidth}(hjJLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFLubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjBLubjM )}(hhh]h)}(h'VME data width to use for DMA transfer.h]h'VME data width to use for DMA transfer.}(hjaLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]LhMhj^Lubah}(h]h ]h"]h$]h&]uh1jL hjBLubeh}(h]h ]h"]h$]h&]uh1j, hj]LhMhjKubeh}(h]h ]h"]h$]h&]uh1j' hjxKubh)}(h**Description**h]j )}(hjLh]h Description}(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.chMhjxKubh)}(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().}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjxKubh)}(h **Return**h]j )}(hjLh]hReturn}(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.chMhjxKubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjxKubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ #vme_dma_free_attribute (C function)c.vme_dma_free_attributehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h=void vme_dma_free_attribute (struct vme_dma_attr *attributes)h]jZ )}(h )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_dma_list_add (C function)c.vme_dma_list_addhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hsint vme_dma_list_add (struct vme_dma_list *list, struct vme_dma_attr *src, struct vme_dma_attr *dest, size_t count)h]jZ )}(hrint vme_dma_list_add(struct vme_dma_list *list, struct vme_dma_attr *src, struct vme_dma_attr *dest, size_t count)h](j)}(hinth]hint}(hjpNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlNhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjNhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjlNhhhj~NhMubj )}(hvme_dma_list_addh]j )}(hvme_dma_list_addh]hvme_dma_list_add}(hjNhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjNubah}(h]h ](j j eh"]h$]h&]jjuh1j hjlNhhhj~NhMubj)}(h^(struct vme_dma_list *list, struct vme_dma_attr *src, struct vme_dma_attr *dest, size_t count)h](j)}(hstruct vme_dma_list *listh](j` )}(hjc h]hstruct}(hjNhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjNubjr )}(h h]h }(hjNhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjNubh)}(hhh]j )}(h vme_dma_listh]h vme_dma_list}(hjNhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjNubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjNmodnameN classnameNj*j-)}j0]j3)}j&jNsbc.vme_dma_list_addasbuh1hhjNubjr )}(h h]h }(hjNhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjNubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj )}(hlisth]hlist}(hjOhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjNubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjNubj)}(hstruct vme_dma_attr *srch](j` )}(hjc h]hstruct}(hjOhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjOubjr )}(h h]h }(hj,OhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjOubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hj=OhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj:Oubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj?OmodnameN classnameNj*j-)}j0]jNc.vme_dma_list_addasbuh1hhjOubjr )}(h h]h }(hj[OhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjOubj)}(hjh]h*}(hjiOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj )}(hsrch]hsrc}(hjvOhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjNubj)}(hstruct vme_dma_attr *desth](j` )}(hjc h]hstruct}(hjOhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjOubjr )}(h h]h }(hjOhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjOubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hjOhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjOmodnameN classnameNj*j-)}j0]jNc.vme_dma_list_addasbuh1hhjOubjr )}(h h]h }(hjOhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjOubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj )}(hdesth]hdest}(hjOhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjNubj)}(h size_t counth](h)}(hhh]j )}(hsize_th]hsize_t}(hjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjPmodnameN classnameNj*j-)}j0]jNc.vme_dma_list_addasbuh1hhjOubjr )}(h h]h }(hj PhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjOubj )}(hcounth]hcount}(hj.PhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjOubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjNubeh}(h]h ]h"]h$]h&]jjuh1jhjlNhhhj~NhMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjhNhhhj~NhMubah}(h]jcNah ](j j eh"]h$]h&]j j )j huh1jS hj~NhMhjeNhhubj )}(hhh]h)}(hAdd entry to a VME DMA list.h]hAdd entry to a VME DMA list.}(hjXPhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjUPhhubah}(h]h ]h"]h$]h&]uh1j hjeNhhhj~NhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jpPj jpPj j j uh1jN hhhj, hNhNubj )}(hX**Parameters** ``struct vme_dma_list *list`` Pointer to VME list. ``struct vme_dma_attr *src`` Pointer to DMA list attribute to use as source. ``struct vme_dma_attr *dest`` Pointer to DMA list attribute to use as destination. ``size_t count`` Number of bytes to transfer. **Description** Add an entry to the provided VME DMA list. Entry requires pointers to source and destination DMA attributes and a count. Please note, the attributes supported as source and destinations for transfers are hardware dependent. **Return** Zero on success, -EINVAL if operation is not supported on this device or if the link list has already been submitted for execution. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hjzPh]h Parameters}(hj|PhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjxPubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtPubj( )}(hhh](j- )}(h3``struct vme_dma_list *list`` Pointer to VME list. h](j3 )}(h``struct vme_dma_list *list``h]h)}(hjPh]hstruct vme_dma_list *list}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjPubjM )}(hhh]h)}(hPointer to VME list.h]hPointer to VME list.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjPubah}(h]h ]h"]h$]h&]uh1jL hjPubeh}(h]h ]h"]h$]h&]uh1j, hjPhMhjPubj- )}(hM``struct vme_dma_attr *src`` Pointer to DMA list attribute to use as source. h](j3 )}(h``struct vme_dma_attr *src``h]h)}(hjPh]hstruct vme_dma_attr *src}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjPubjM )}(hhh]h)}(h/Pointer to DMA list attribute to use as source.h]h/Pointer to DMA list attribute to use as source.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjPubah}(h]h ]h"]h$]h&]uh1jL hjPubeh}(h]h ]h"]h$]h&]uh1j, hjPhMhjPubj- )}(hS``struct vme_dma_attr *dest`` Pointer to DMA list attribute to use as destination. h](j3 )}(h``struct vme_dma_attr *dest``h]h)}(hj Qh]hstruct vme_dma_attr *dest}(hj QhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj Qubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjQubjM )}(hhh]h)}(h4Pointer to DMA list attribute to use as destination.h]h4Pointer to DMA list attribute to use as destination.}(hj$QhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj QhMhj!Qubah}(h]h ]h"]h$]h&]uh1jL hjQubeh}(h]h ]h"]h$]h&]uh1j, hj QhMhjPubj- )}(h.``size_t count`` Number of bytes to transfer. h](j3 )}(h``size_t count``h]h)}(hjDQh]h size_t count}(hjFQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBQubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>QubjM )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj]QhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYQhMhjZQubah}(h]h ]h"]h$]h&]uh1jL hj>Qubeh}(h]h ]h"]h$]h&]uh1j, hjYQhMhjPubeh}(h]h ]h"]h$]h&]uh1j' hjtPubh)}(h**Description**h]j )}(hjQh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj}Qubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtPubh)}(hxAdd an entry to the provided VME DMA list. Entry requires pointers to source and destination DMA attributes and a count.h]hxAdd an entry to the provided VME DMA list. Entry requires pointers to source and destination DMA attributes and a count.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtPubh)}(hfPlease note, the attributes supported as source and destinations for transfers are hardware dependent.h]hfPlease note, the attributes supported as source and destinations for transfers are hardware dependent.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjtPubh)}(h **Return**h]j )}(hjQh]hReturn}(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.chM#hjtPubh)}(hZero on success, -EINVAL if operation is not supported on this device or if the link list has already been submitted for execution. Hardware specific errors also possible.h]hZero on success, -EINVAL if operation is not supported on this device or if the link list has already been submitted for execution. Hardware specific errors also possible.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM$hjtPubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_dma_list_exec (C function)c.vme_dma_list_exechNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h1int vme_dma_list_exec (struct vme_dma_list *list)h]jZ )}(h0int vme_dma_list_exec(struct vme_dma_list *list)h](j)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMBubjr )}(h h]h }(hj RhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjQhhhjRhMBubj )}(hvme_dma_list_exech]j )}(hvme_dma_list_exech]hvme_dma_list_exec}(hjRhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjRubah}(h]h ](j j eh"]h$]h&]jjuh1j hjQhhhjRhMBubj)}(h(struct vme_dma_list *list)h]j)}(hstruct vme_dma_list *listh](j` )}(hjc h]hstruct}(hj7RhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj3Rubjr )}(h h]h }(hjDRhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj3Rubh)}(hhh]j )}(h vme_dma_listh]h vme_dma_list}(hjURhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjRRubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjWRmodnameN classnameNj*j-)}j0]j3)}j&jRsbc.vme_dma_list_execasbuh1hhj3Rubjr )}(h h]h }(hjuRhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj3Rubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3Rubj )}(hlisth]hlist}(hjRhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj3Rubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj/Rubah}(h]h ]h"]h$]h&]jjuh1jhjQhhhjRhMBubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjQhhhjRhMBubah}(h]jQah ](j j eh"]h$]h&]j j )j huh1jS hjRhMBhjQhhubj )}(hhh]h)}(h#Queue a VME DMA list for execution.h]h#Queue a VME DMA list for execution.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMBhjRhhubah}(h]h ]h"]h$]h&]uh1j hjQhhhjRhMBubeh}(h]h ](hfunctioneh"]h$]h&]j hj jRj jRj j j uh1jN hhhj, hNhNubj )}(hX7**Parameters** ``struct vme_dma_list *list`` Pointer to VME list. **Description** Queue the provided VME DMA list for execution. The call will return once the list has been executed. **Return** Zero on success, -EINVAL if operation is not supported on this device. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjRubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMFhjRubj( )}(hhh]j- )}(h3``struct vme_dma_list *list`` Pointer to VME list. h](j3 )}(h``struct vme_dma_list *list``h]h)}(hjRh]hstruct vme_dma_list *list}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMChjRubjM )}(hhh]h)}(hPointer to VME list.h]hPointer to VME list.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMChjSubah}(h]h ]h"]h$]h&]uh1jL hjRubeh}(h]h ]h"]h$]h&]uh1j, hjShMChjRubah}(h]h ]h"]h$]h&]uh1j' hjRubh)}(h**Description**h]j )}(hj6Sh]h Description}(hj8ShhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4Subah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.c%hMEhjRubh)}(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.}(hjLShhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMDhjRubh)}(h **Return**h]j )}(hj]Sh]hReturn}(hj_ShhhNhNubah}(h]h ]h"]h$]h&]uh1j hj[Subah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMGhjRubh)}(hnZero on success, -EINVAL if operation is not supported on this device. Hardware specific errors also possible.h]hnZero on success, -EINVAL if operation is not supported on this device. Hardware specific errors also possible.}(hjsShhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMHhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_dma_list_free (C function)c.vme_dma_list_freehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h1int vme_dma_list_free (struct vme_dma_list *list)h]jZ )}(h0int vme_dma_list_free(struct vme_dma_list *list)h](j)}(hinth]hint}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMaubjr )}(h h]h }(hjShhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjShhhjShMaubj )}(hvme_dma_list_freeh]j )}(hvme_dma_list_freeh]hvme_dma_list_free}(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjSubah}(h]h ](j j eh"]h$]h&]jjuh1j hjShhhjShMaubj)}(h(struct vme_dma_list *list)h]j)}(hstruct vme_dma_list *listh](j` )}(hjc h]hstruct}(hjShhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjSubjr )}(h h]h }(hjShhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjSubh)}(hhh]j )}(h vme_dma_listh]h vme_dma_list}(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjSubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjSmodnameN classnameNj*j-)}j0]j3)}j&jSsbc.vme_dma_list_freeasbuh1hhjSubjr )}(h h]h }(hjThhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjSubj)}(hjh]h*}(hj+ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj )}(hlisth]hlist}(hj8ThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjSubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjSubah}(h]h ]h"]h$]h&]jjuh1jhjShhhjShMaubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjShhhjShMaubah}(h]jSah ](j j eh"]h$]h&]j j )j huh1jS hjShMahjShhubj )}(hhh]h)}(hFree a VME DMA list.h]hFree a VME DMA list.}(hjbThhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMahj_Thhubah}(h]h ]h"]h$]h&]uh1j hjShhhjShMaubeh}(h]h ](hfunctioneh"]h$]h&]j hj jzTj jzTj j j uh1jN hhhj, hNhNubj )}(hX**Parameters** ``struct vme_dma_list *list`` Pointer to VME list. **Description** Free the provided DMA list and all its entries. **Return** Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still in use. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hjTh]h Parameters}(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.chMehj~Tubj( )}(hhh]j- )}(h3``struct vme_dma_list *list`` Pointer to VME list. h](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMbhjTubjM )}(hhh]h)}(hPointer to VME list.h]hPointer to VME list.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMbhjTubah}(h]h ]h"]h$]h&]uh1jL hjTubeh}(h]h ]h"]h$]h&]uh1j, hjThMbhjTubah}(h]h ]h"]h$]h&]uh1j' hj~Tubh)}(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.chMdhj~Tubh)}(h/Free the provided DMA list and all its entries.h]h/Free the provided DMA list and all its entries.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMchj~Tubh)}(h **Return**h]j )}(hjUh]hReturn}(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.chMehj~Tubh)}(h}Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still in use. Hardware specific errors also possible.h]h}Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still in use. Hardware specific errors also possible.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMfhj~Tubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_dma_free (C function)c.vme_dma_freehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h0int vme_dma_free (struct vme_resource *resource)h]jZ )}(h/int vme_dma_free(struct vme_resource *resource)h](j)}(hinth]hint}(hjJUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFUhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjYUhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjFUhhhjXUhMubj )}(h vme_dma_freeh]j )}(h vme_dma_freeh]h vme_dma_free}(hjkUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgUubah}(h]h ](j j eh"]h$]h&]jjuh1j hjFUhhhjXUhMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjUhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjUubjr )}(h h]h }(hjUhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjUubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjUmodnameN classnameNj*j-)}j0]j3)}j&jmUsbc.vme_dma_freeasbuh1hhjUubjr )}(h h]h }(hjUhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjUubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj )}(hresourceh]hresource}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjUubah}(h]h ]h"]h$]h&]jjuh1jhjFUhhhjXUhMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjBUhhhjXUhMubah}(h]j=Uah ](j j eh"]h$]h&]j j )j huh1jS hjXUhMhj?Uhhubj )}(hhh]h)}(hFree a VME DMA resource.h]hFree a VME DMA resource.}(hj VhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjVhhubah}(h]h ]h"]h$]h&]uh1j hj?UhhhjXUhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j"Vj j"Vj j j uh1jN hhhj, hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME DMA resource. **Description** Free the provided DMA resource so that it may be reallocated. **Return** Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still active.h](h)}(h**Parameters**h]j )}(hj,Vh]h Parameters}(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.chMhj&Vubj( )}(hhh]j- )}(h?``struct vme_resource *resource`` Pointer to VME DMA resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjKVh]hstruct vme_resource *resource}(hjMVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIVubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjEVubjM )}(hhh]h)}(hPointer to VME DMA resource.h]hPointer to VME DMA resource.}(hjdVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`VhMhjaVubah}(h]h ]h"]h$]h&]uh1jL hjEVubeh}(h]h ]h"]h$]h&]uh1j, hj`VhMhjBVubah}(h]h ]h"]h$]h&]uh1j' hj&Vubh)}(h**Description**h]j )}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj&Vubh)}(h=Free the provided DMA resource so that it may be reallocated.h]h=Free the provided DMA resource so that it may be reallocated.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj&Vubh)}(h **Return**h]j )}(hjVh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj&Vubh)}(hUZero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still active.h]hUZero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still active.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj&Vubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_irq_request (C function)c.vme_irq_requesthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hint vme_irq_request (struct vme_dev *vdev, int level, int statid, void (*callback)(int level, int statid, void *priv_data), void *priv_data)h]jZ )}(hint vme_irq_request(struct vme_dev *vdev, int level, int statid, void (*callback)(int level, int statid, void *priv_data), void *priv_data)h](j)}(hinth]hint}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjWhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjVhhhjWhMubj )}(hvme_irq_requesth]j )}(hvme_irq_requesth]hvme_irq_request}(hjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWubah}(h]h ](j j eh"]h$]h&]jjuh1j hjVhhhjWhMubj)}(hx(struct vme_dev *vdev, int level, int statid, void (*callback)(int level, int statid, void *priv_data), void *priv_data)h](j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hj/WhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj+Wubjr )}(h h]h }(hj )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_irq_free (C function)c.vme_irq_freehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h?void vme_irq_free (struct vme_dev *vdev, int level, int statid)h]jZ )}(h>void vme_irq_free(struct vme_dev *vdev, int level, int statid)h](j)}(hvoidh]hvoid}(hje[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja[hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7ubjr )}(h h]h }(hjt[hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hja[hhhjs[hM7ubj )}(h vme_irq_freeh]j )}(h vme_irq_freeh]h vme_irq_free}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[ubah}(h]h ](j j eh"]h$]h&]jjuh1j hja[hhhjs[hM7ubj)}(h-(struct vme_dev *vdev, int level, int statid)h](j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hj[hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj[ubjr )}(h h]h }(hj[hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj[ubh)}(hhh]j )}(hvme_devh]hvme_dev}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj[modnameN classnameNj*j-)}j0]j3)}j&j[sbc.vme_irq_freeasbuh1hhj[ubjr )}(h h]h }(hj[hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj )}(hvdevh]hvdev}(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj[ubj)}(h int levelh](j)}(hinth]hint}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubjr )}(h h]h }(hj"\hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj\ubj )}(hlevelh]hlevel}(hj0\hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj\ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj[ubj)}(h int statidh](j)}(hinth]hint}(hjI\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE\ubjr )}(h h]h }(hjW\hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjE\ubj )}(hstatidh]hstatid}(hje\hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjE\ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj[ubeh}(h]h ]h"]h$]h&]jjuh1jhja[hhhjs[hM7ubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj][hhhjs[hM7ubah}(h]jX[ah ](j j eh"]h$]h&]j j )j huh1jS hjs[hM7hjZ[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.chM7hj\hhubah}(h]h ]h"]h$]h&]uh1j hjZ[hhhjs[hM7ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j\j j\j j j uh1jN 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hj\ubjM )}(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&]uh1jL hj\ubeh}(h]h ]h"]h$]h&]uh1j, hj\hM8hj\ubj- )}(h;``int level`` Interrupt priority of interrupt being freed. h](j3 )}(h ``int level``h]h)}(hj ]h]h int level}(hj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj]ubjM )}(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&]uh1jL hj]ubeh}(h]h ]h"]h$]h&]uh1j, hj]hM9hj\ubj- )}(h:``int statid`` Interrupt vector of interrupt being freed. h](j3 )}(h``int statid``h]h)}(hjB]h]h int statid}(hjD]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@]ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hj<]ubjM )}(hhh]h)}(h*Interrupt vector of interrupt being freed.h]h*Interrupt vector of interrupt being freed.}(hj[]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjW]hM:hjX]ubah}(h]h ]h"]h$]h&]uh1jL hj<]ubeh}(h]h ]h"]h$]h&]uh1j, hjW]hM:hj\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.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](jJ vme_irq_generate (C function)c.vme_irq_generatehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hBint vme_irq_generate (struct vme_dev *vdev, int level, int statid)h]jZ )}(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.chMcubjr )}(h h]h }(hj]hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj]hhhj]hMcubj )}(hvme_irq_generateh]j )}(hvme_irq_generateh]hvme_irq_generate}(hj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj]hhhj]hMcubj)}(h-(struct vme_dev *vdev, int level, int statid)h](j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hj]hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj]ubjr )}(h h]h }(hj ^hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj]ubh)}(hhh]j )}(hvme_devh]hvme_dev}(hj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj^ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj^modnameN classnameNj*j-)}j0]j3)}j&j]sbc.vme_irq_generateasbuh1hhj]ubjr )}(h h]h }(hj=^hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj]ubj)}(hjh]h*}(hjK^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj )}(hvdevh]hvdev}(hjX^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubj)}(h int levelh](j)}(hinth]hint}(hjq^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm^ubjr )}(h h]h }(hj^hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjm^ubj )}(hlevelh]hlevel}(hj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjm^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubj)}(h int statidh](j)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubjr )}(h h]h }(hj^hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj^ubj )}(hstatidh]hstatid}(hj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubeh}(h]h ]h"]h$]h&]jjuh1jhj]hhhj]hMcubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj]hhhj]hMcubah}(h]j]ah ](j j eh"]h$]h&]j j )j huh1jS hj]hMchj]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]hMcubeh}(h]h ](hfunctioneh"]h$]h&]j hj j_j j_j j j uh1jN 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](j3 )}(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&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMdhj'_ubjM )}(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.}(hjF_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB_hMdhjC_ubah}(h]h ]h"]h$]h&]uh1jL hj'_ubeh}(h]h ]h"]h$]h&]uh1j, hjB_hMdhj$_ubj- )}(hC``int level`` Interrupt priority at which to assert the interrupt. h](j3 )}(h ``int level``h]h)}(hjf_h]h int level}(hjh_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd_ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMehj`_ubjM )}(hhh]h)}(h4Interrupt priority at which to assert the interrupt.h]h4Interrupt priority at which to assert the interrupt.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{_hMehj|_ubah}(h]h ]h"]h$]h&]uh1jL hj`_ubeh}(h]h ]h"]h$]h&]uh1j, hj{_hMehj$_ubj- )}(hA``int statid`` Interrupt vector to associate with the interrupt. h](j3 )}(h``int statid``h]h)}(hj_h]h int statid}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMfhj_ubjM )}(hhh]h)}(h1Interrupt vector to associate with the interrupt.h]h1Interrupt vector to associate with the interrupt.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMfhj_ubah}(h]h ]h"]h$]h&]uh1jL hj_ubeh}(h]h ]h"]h$]h&]uh1j, hj_hMfhj$_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.chMhhj_ubh)}(hLGenerate a VME interrupt of the provided level and with the provided statid.h]hLGenerate a VME interrupt of the provided level and with the provided statid.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMghj_ubh)}(h **Return**h]j )}(hj`h]hReturn}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj_ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMjhj_ubh)}(hZero on success, -EINVAL on invalid vme device, level or if the function is not supported. Hardware specific errors also possible.h]hZero on success, -EINVAL on invalid vme device, level or if the function is not supported. Hardware specific errors also possible.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_lm_request (C function)c.vme_lm_requesthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h;struct vme_resource * vme_lm_request (struct vme_dev *vdev)h]jZ )}(h9struct vme_resource *vme_lm_request(struct vme_dev *vdev)h](j` )}(hjc h]hstruct}(hjF`hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjB`hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjT`hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjB`hhhjS`hMubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hje`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjb`ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjg`modnameN classnameNj*j-)}j0]j3)}j&vme_lm_requestsbc.vme_lm_requestasbuh1hhjB`hhhjS`hMubjr )}(h h]h }(hj`hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjB`hhhjS`hMubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjB`hhhjS`hMubj )}(hvme_lm_requesth]j )}(hj`h]hvme_lm_request}(hj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubah}(h]h ](j j eh"]h$]h&]jjuh1j hjB`hhhjS`hMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hj`hhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj`ubjr )}(h h]h }(hj`hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj`ubh)}(hhh]j )}(hvme_devh]hvme_dev}(hj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj`modnameN classnameNj*j-)}j0]j`c.vme_lm_requestasbuh1hhj`ubjr )}(h h]h }(hj`hhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj`ubj)}(hjh]h*}(hj ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj )}(hvdevh]hvdev}(hjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj`ubah}(h]h ]h"]h$]h&]jjuh1jhjB`hhhjS`hMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj>`hhhjS`hMubah}(h]j9`ah ](j j eh"]h$]h&]j j )j huh1jS hjS`hMhj;`hhubj )}(hhh]h)}(hRequest a VME location monitorh]hRequest a VME location monitor}(hjAahhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ahhubah}(h]h ]h"]h$]h&]uh1j hj;`hhhjS`hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jYaj jYaj j j uh1jN 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 )}(hjcah]h Parameters}(hjeahhhNhNubah}(h]h ]h"]h$]h&]uh1j hjaaubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj]aubj( )}(hhh]j- )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j3 )}(h``struct vme_dev *vdev``h]h)}(hjah]hstruct vme_dev *vdev}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj|aubjM )}(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.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMhjaubah}(h]h ]h"]h$]h&]uh1jL hj|aubeh}(h]h ]h"]h$]h&]uh1j, hjahMhjyaubah}(h]h ]h"]h$]h&]uh1j' hj]aubh)}(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.chMhj]aubh)}(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.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj]aubh)}(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.chMhj]aubh)}(h8Pointer to a VME resource on success or NULL on failure.h]h8Pointer to a VME resource on success or NULL on failure.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj]aubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_lm_count (C function)c.vme_lm_counthNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h0int vme_lm_count (struct vme_resource *resource)h]jZ )}(h/int vme_lm_count(struct vme_resource *resource)h](j)}(hinth]hint}(hj)bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%bhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hj8bhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj%bhhhj7bhMubj )}(h vme_lm_counth]j )}(h vme_lm_counth]h vme_lm_count}(hjJbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjFbubah}(h]h ](j j eh"]h$]h&]jjuh1j hj%bhhhj7bhMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjfbhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjbbubjr )}(h h]h }(hjsbhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjbbubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjbubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjbmodnameN classnameNj*j-)}j0]j3)}j&jLbsbc.vme_lm_countasbuh1hhjbbubjr )}(h h]h }(hjbhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjbbubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbbubj )}(hresourceh]hresource}(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjbbubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj^bubah}(h]h ]h"]h$]h&]jjuh1jhj%bhhhj7bhMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj!bhhhj7bhMubah}(h]jbah ](j j eh"]h$]h&]j j )j huh1jS hj7bhMhjbhhubj )}(hhh]h)}(h+Determine number of VME Addresses monitoredh]h+Determine number of VME Addresses monitored}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjbhhubah}(h]h ]h"]h$]h&]uh1j hjbhhhj7bhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jcj jcj j j uh1jN hhhj, hNhNubj )}(hXn**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 ch]h Parameters}(hj chhhNhNubah}(h]h ]h"]h$]h&]uh1j hj cubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubj( )}(hhh]j- )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hj*ch]hstruct vme_resource *resource}(hj,chhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(cubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$cubjM )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjCchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?chMhj@cubah}(h]h ]h"]h$]h&]uh1jL hj$cubeh}(h]h ]h"]h$]h&]uh1j, hj?chMhj!cubah}(h]h ]h"]h$]h&]uh1j' hjcubh)}(h**Description**h]j )}(hjech]h Description}(hjgchhhNhNubah}(h]h ]h"]h$]h&]uh1j hjccubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubh)}(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.}(hj{chhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubh)}(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.chMhjcubh)}(h`Count of addresses monitored or -EINVAL when provided with an invalid location monitor resource.h]h`Count of addresses monitored or -EINVAL when provided with an invalid location monitor resource.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_lm_set (C function) c.vme_lm_sethNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(haint vme_lm_set (struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h]jZ )}(h`int vme_lm_set(struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h](j)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjchhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjchhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjchhhjchMubj )}(h vme_lm_seth]j )}(h vme_lm_seth]h vme_lm_set}(hjchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjcubah}(h]h ](j j eh"]h$]h&]jjuh1j hjchhhjchMubj)}(hR(struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjdhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj dubjr )}(h h]h }(hjdhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj dubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj,dhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)dubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj.dmodnameN classnameNj*j-)}j0]j3)}j&jcsb c.vme_lm_setasbuh1hhj dubjr )}(h h]h }(hjLdhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj dubj)}(hjh]h*}(hjZdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj dubj )}(hresourceh]hresource}(hjgdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj dubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdubj)}(hunsigned long long lm_baseh](j)}(hunsignedh]hunsigned}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|dubjr )}(h h]h }(hjdhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj|dubj)}(hlongh]hlong}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|dubjr )}(h h]h }(hjdhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj|dubj)}(hlongh]hlong}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|dubjr )}(h h]h }(hjdhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj|dubj )}(hlm_baseh]hlm_base}(hjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj|dubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdubj)}(h u32 aspaceh](h)}(hhh]j )}(hu32h]hu32}(hjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjdmodnameN classnameNj*j-)}j0]jHd c.vme_lm_setasbuh1hhjdubjr )}(h h]h }(hjehhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjdubj )}(haspaceh]haspace}(hjehhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hj8ehhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj5eubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj:emodnameN classnameNj*j-)}j0]jHd c.vme_lm_setasbuh1hhj1eubjr )}(h h]h }(hjVehhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj1eubj )}(hcycleh]hcycle}(hjdehhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj1eubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdubeh}(h]h ]h"]h$]h&]jjuh1jhjchhhjchMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjchhhjchMubah}(h]jcah ](j j eh"]h$]h&]j j )j huh1jS hjchMhjchhubj )}(hhh]h)}(hConfigure location monitorh]hConfigure location monitor}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjehhubah}(h]h ]h"]h$]h&]uh1j hjchhhjchMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jej jej j j uh1jN 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 )}(hjeh]h Parameters}(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- )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjeh]hstruct vme_resource *resource}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjeubjM )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jL hjeubeh}(h]h ]h"]h$]h&]uh1j, hjehMhjeubj- )}(h8``unsigned long long lm_base`` Base address to monitor. h](j3 )}(h``unsigned long long lm_base``h]h)}(hjfh]hunsigned long long lm_base}(hj fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjfubjM )}(hhh]h)}(hBase address to monitor.h]hBase address to monitor.}(hj!fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jL hjfubeh}(h]h ]h"]h$]h&]uh1j, hjfhMhjeubj- )}(h-``u32 aspace`` VME address space to monitor. h](j3 )}(h``u32 aspace``h]h)}(hjAfh]h u32 aspace}(hjCfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?fubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj;fubjM )}(hhh]h)}(hVME address space to monitor.h]hVME address space to monitor.}(hjZfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVfhMhjWfubah}(h]h ]h"]h$]h&]uh1jL hj;fubeh}(h]h ]h"]h$]h&]uh1j, hjVfhMhjeubj- )}(h-``u32 cycle`` VME bus cycle type to monitor. h](j3 )}(h ``u32 cycle``h]h)}(hjzfh]h u32 cycle}(hj|fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxfubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtfubjM )}(hhh]h)}(hVME bus cycle type to monitor.h]hVME bus cycle type to monitor.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jL hjtfubeh}(h]h ]h"]h$]h&]uh1j, hjfhMhjeubeh}(h]h ]h"]h$]h&]uh1j' hjeubh)}(h**Description**h]j )}(hjfh]h Description}(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.chMhjeubh)}(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.}(hjfhhhNhNubah}(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 )}(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.chMhjeubh)}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h]hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_lm_get (C function) c.vme_lm_gethNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hdint vme_lm_get (struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h]jZ )}(hcint vme_lm_get(struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h](j)}(hinth]hint}(hj!ghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM ubjr )}(h h]h }(hj0ghhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjghhhj/ghM ubj )}(h vme_lm_geth]j )}(h vme_lm_geth]h vme_lm_get}(hjBghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj>gubah}(h]h ](j j eh"]h$]h&]jjuh1j hjghhhj/ghM ubj)}(hU(struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj^ghhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjZgubjr )}(h h]h }(hjkghhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjZgubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hj|ghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjygubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetj~gmodnameN classnameNj*j-)}j0]j3)}j&jDgsb c.vme_lm_getasbuh1hhjZgubjr )}(h h]h }(hjghhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjZgubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZgubj )}(hresourceh]hresource}(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjZgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjVgubj)}(hunsigned long long *lm_baseh](j)}(hunsignedh]hunsigned}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjr )}(h h]h }(hjghhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjgubj)}(hlongh]hlong}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjr )}(h h]h }(hjghhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjgubj)}(hlongh]hlong}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubjr )}(h h]h }(hjhhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjgubj)}(hjh]h*}(hj$hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj )}(hlm_baseh]hlm_base}(hj1hhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjVgubj)}(h u32 *aspaceh](h)}(hhh]j )}(hu32h]hu32}(hjMhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJhubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjOhmodnameN classnameNj*j-)}j0]jg c.vme_lm_getasbuh1hhjFhubjr )}(h h]h }(hjkhhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjFhubj)}(hjh]h*}(hjyhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhubj )}(haspaceh]haspace}(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjFhubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjVgubj)}(h u32 *cycleh](h)}(hhh]j )}(hu32h]hu32}(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjhmodnameN classnameNj*j-)}j0]jg c.vme_lm_getasbuh1hhjhubjr )}(h h]h }(hjhhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjhubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj )}(hcycleh]hcycle}(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjVgubeh}(h]h ]h"]h$]h&]jjuh1jhjghhhj/ghM ubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjghhhj/ghM ubah}(h]jgah ](j j eh"]h$]h&]j j )j huh1jS hj/ghM hjghhubj )}(hhh]h)}(h"Retrieve location monitor settingsh]h"Retrieve location monitor settings}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjihhubah}(h]h ]h"]h$]h&]uh1j hjghhhj/ghM ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jij jij j j uh1jN hhhj, hNhNubj )}(hXo**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. ``unsigned long long *lm_base`` Pointer used to output the base address monitored. ``u32 *aspace`` Pointer used to output the address space monitored. ``u32 *cycle`` Pointer used to output the VME bus cycle type monitored. **Description** Retrieve 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 )}(hj'ih]h Parameters}(hj)ihhhNhNubah}(h]h ]h"]h$]h&]uh1j hj%iubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj!iubj( )}(hhh](j- )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjFih]hstruct vme_resource *resource}(hjHihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDiubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj@iubjM )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hj_ihhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ihM hj\iubah}(h]h ]h"]h$]h&]uh1jL hj@iubeh}(h]h ]h"]h$]h&]uh1j, hj[ihM hj=iubj- )}(hS``unsigned long long *lm_base`` Pointer used to output the base address monitored. h](j3 )}(h``unsigned long long *lm_base``h]h)}(hjih]hunsigned long long *lm_base}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}iubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjyiubjM )}(hhh]h)}(h2Pointer used to output the base address monitored.h]h2Pointer used to output the base address monitored.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihM hjiubah}(h]h ]h"]h$]h&]uh1jL hjyiubeh}(h]h ]h"]h$]h&]uh1j, hjihM hj=iubj- )}(hD``u32 *aspace`` Pointer used to output the address space monitored. h](j3 )}(h``u32 *aspace``h]h)}(hjih]h u32 *aspace}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjiubjM )}(hhh]h)}(h3Pointer used to output the address space monitored.h]h3Pointer used to output the address space monitored.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihM hjiubah}(h]h ]h"]h$]h&]uh1jL hjiubeh}(h]h ]h"]h$]h&]uh1j, hjihM hj=iubj- )}(hH``u32 *cycle`` Pointer used to output the VME bus cycle type monitored. h](j3 )}(h``u32 *cycle``h]h)}(hjih]h u32 *cycle}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjiubjM )}(hhh]h)}(h8Pointer used to output the VME bus cycle type monitored.h]h8Pointer used to output the VME bus cycle type monitored.}(hj jhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhM hjjubah}(h]h ]h"]h$]h&]uh1jL hjiubeh}(h]h ]h"]h$]h&]uh1j, hjjhM hj=iubeh}(h]h ]h"]h$]h&]uh1j' hj!iubh)}(h**Description**h]j )}(hj,jh]h Description}(hj.jhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*jubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj!iubh)}(hlRetrieve the base address, address space and cycle type of accesses to be monitored by the location monitor.h]hlRetrieve the base address, address space and cycle type of accesses to be monitored by the location monitor.}(hjBjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj!iubh)}(h **Return**h]j )}(hjSjh]hReturn}(hjUjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj!iubh)}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h]hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjijhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj!iubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_lm_attach (C function)c.vme_lm_attachhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hdint vme_lm_attach (struct vme_resource *resource, int monitor, void (*callback)(void *), void *data)h]jZ )}(hbint vme_lm_attach(struct vme_resource *resource, int monitor, void (*callback)(void*), void *data)h](j)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM-ubjr )}(h h]h }(hjjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjjhhhjjhM-ubj )}(h vme_lm_attachh]j )}(h vme_lm_attachh]h vme_lm_attach}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubah}(h]h ](j j eh"]h$]h&]jjuh1j hjjhhhjjhM-ubj)}(hQ(struct vme_resource *resource, int monitor, void (*callback)(void*), void *data)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjjhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjjubjr )}(h h]h }(hjjhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjjubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjjmodnameN classnameNj*j-)}j0]j3)}j&jjsbc.vme_lm_attachasbuh1hhjjubjr )}(h h]h }(hjkhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjjubj)}(hjh]h*}(hj!khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj )}(hresourceh]hresource}(hj.khhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjjubj)}(h int monitorh](j)}(hinth]hint}(hjGkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCkubjr )}(h h]h }(hjUkhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjCkubj )}(hmonitorh]hmonitor}(hjckhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjCkubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjjubj)}(hvoid (*callback)(void*)h](j)}(hvoidh]hvoid}(hj|khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubjr )}(h h]h }(hjkhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjxkubj)}(hj)Xh]h(}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubj )}(hcallbackh]hcallback}(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjxkubj)}(hjRXh]h)}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubj)}(hj)Xh]h(}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubj)}(hvoidh]hvoid}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubj)}(hjRXh]h)}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxkubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjjubj)}(h void *datah](j)}(hvoidh]hvoid}(hj lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj lubjr )}(h h]h }(hjlhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj lubj)}(hjh]h*}(hj)lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj lubj )}(hdatah]hdata}(hj6lhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj lubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjjubeh}(h]h ]h"]h$]h&]jjuh1jhjjhhhjjhM-ubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjjhhhjjhM-ubah}(h]jjah ](j j eh"]h$]h&]j j )j huh1jS hjjhM-hjjhhubj )}(hhh]h)}(h-Provide callback for location monitor addressh]h-Provide callback for location monitor address}(hj`lhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM-hj]lhhubah}(h]h ]h"]h$]h&]uh1j hjjhhhjjhM-ubeh}(h]h ](hfunctioneh"]h$]h&]j hj jxlj jxlj j j uh1jN hhhj, hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. ``int monitor`` Offset to which callback should be attached. ``void (*callback)(void *)`` Pointer to callback function called when triggered. ``void *data`` Generic pointer that will be passed to the callback function. **Description** Attach a callback to the specified offset into the location monitors monitored addresses. A generic pointer is provided to allow data to be passed to the callback when called. **Return** Zero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjlubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hj|lubj( )}(hhh](j- )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hjlh]hstruct vme_resource *resource}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM.hjlubjM )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhM.hjlubah}(h]h ]h"]h$]h&]uh1jL hjlubeh}(h]h ]h"]h$]h&]uh1j, hjlhM.hjlubj- )}(h=``int monitor`` Offset to which callback should be attached. h](j3 )}(h``int monitor``h]h)}(hjlh]h int monitor}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM/hjlubjM )}(hhh]h)}(h,Offset to which callback should be attached.h]h,Offset to which callback should be attached.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhM/hjlubah}(h]h ]h"]h$]h&]uh1jL hjlubeh}(h]h ]h"]h$]h&]uh1j, hjlhM/hjlubj- )}(hQ``void (*callback)(void *)`` Pointer to callback function called when triggered. h](j3 )}(h``void (*callback)(void *)``h]h)}(hjmh]hvoid (*callback)(void *)}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM0hj mubjM )}(hhh]h)}(h3Pointer to callback function called when triggered.h]h3Pointer to callback function called when triggered.}(hj,mhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(mhM0hj)mubah}(h]h ]h"]h$]h&]uh1jL hj mubeh}(h]h ]h"]h$]h&]uh1j, hj(mhM0hjlubj- )}(hM``void *data`` Generic pointer that will be passed to the callback function. h](j3 )}(h``void *data``h]h)}(hjLmh]h void *data}(hjNmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJmubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1hjFmubjM )}(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.}(hjemhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjamhM1hjbmubah}(h]h ]h"]h$]h&]uh1jL hjFmubeh}(h]h ]h"]h$]h&]uh1j, hjamhM1hjlubeh}(h]h ]h"]h$]h&]uh1j' hj|lubh)}(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.chM3hj|lubh)}(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.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM2hj|lubh)}(h **Return**h]j )}(hjmh]hReturn}(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.chM6hj|lubh)}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h]hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hj|lubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_lm_detach (C function)c.vme_lm_detachhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h>int vme_lm_detach (struct vme_resource *resource, int monitor)h]jZ )}(h=int vme_lm_detach(struct vme_resource *resource, int monitor)h](j)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRubjr )}(h h]h }(hjnhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjmhhhjnhMRubj )}(h vme_lm_detachh]j )}(h vme_lm_detachh]h vme_lm_detach}(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjnubah}(h]h ](j j eh"]h$]h&]jjuh1j hjmhhhjnhMRubj)}(h,(struct vme_resource *resource, int monitor)h](j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hj0nhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj,nubjr )}(h h]h }(hj=nhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj,nubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjNnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKnubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjPnmodnameN classnameNj*j-)}j0]j3)}j&jnsbc.vme_lm_detachasbuh1hhj,nubjr )}(h h]h }(hjnnhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj,nubj)}(hjh]h*}(hj|nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,nubj )}(hresourceh]hresource}(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj,nubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj(nubj)}(h int monitorh](j)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubjr )}(h h]h }(hjnhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjnubj )}(hmonitorh]hmonitor}(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjnubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj(nubeh}(h]h ]h"]h$]h&]jjuh1jhjmhhhjnhMRubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjmhhhjnhMRubah}(h]jmah ](j j eh"]h$]h&]j j )j huh1jS hjnhMRhjmhhubj )}(hhh]h)}(h,Remove callback for location monitor addressh]h,Remove callback for location monitor address}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRhjnhhubah}(h]h ]h"]h$]h&]uh1j hjmhhhjnhMRubeh}(h]h ](hfunctioneh"]h$]h&]j hj joj joj j j uh1jN 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 )}(hj oh]h Parameters}(hj ohhhNhNubah}(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.chMVhjoubj( )}(hhh](j- )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hj)oh]hstruct vme_resource *resource}(hj+ohhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'oubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMShj#oubjM )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjBohhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>ohMShj?oubah}(h]h ]h"]h$]h&]uh1jL hj#oubeh}(h]h ]h"]h$]h&]uh1j, hj>ohMShj oubj- )}(h<``int monitor`` Offset to which callback should be removed. h](j3 )}(h``int monitor``h]h)}(hjboh]h int monitor}(hjdohhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`oubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMThj\oubjM )}(hhh]h)}(h+Offset to which callback should be removed.h]h+Offset to which callback should be removed.}(hj{ohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwohMThjxoubah}(h]h ]h"]h$]h&]uh1jL hj\oubeh}(h]h ]h"]h$]h&]uh1j, hjwohMThj oubeh}(h]h ]h"]h$]h&]uh1j' hjoubh)}(h**Description**h]j )}(hjoh]h Description}(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.chMVhjoubh)}(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.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMUhjoubh)}(h **Return**h]j )}(hjoh]hReturn}(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.chMXhjoubh)}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h]hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMYhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_lm_free (C function) c.vme_lm_freehNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h0void vme_lm_free (struct vme_resource *resource)h]jZ )}(h/void vme_lm_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hj phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMsubjr )}(h h]h }(hjphhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjphhhjphMsubj )}(h vme_lm_freeh]j )}(h vme_lm_freeh]h vme_lm_free}(hj*phhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&pubah}(h]h ](j j eh"]h$]h&]jjuh1j hjphhhjphMsubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j` )}(hjc h]hstruct}(hjFphhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjBpubjr )}(h h]h }(hjSphhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjBpubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hjdphhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjapubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjfpmodnameN classnameNj*j-)}j0]j3)}j&j,psb c.vme_lm_freeasbuh1hhjBpubjr )}(h h]h }(hjphhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjBpubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBpubj )}(hresourceh]hresource}(hjphhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBpubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj>pubah}(h]h ]h"]h$]h&]jjuh1jhjphhhjphMsubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjphhhjphMsubah}(h]joah ](j j eh"]h$]h&]j j )j huh1jS hjphMshjohhubj )}(hhh]h)}(h#Free allocated VME location monitorh]h#Free allocated VME location monitor}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjphhubah}(h]h ]h"]h$]h&]uh1j hjohhhjphMsubeh}(h]h ](hfunctioneh"]h$]h&]j hj jpj jpj j j uh1jN hhhj, hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. **Description** Free allocation of a VME location monitor. WARNING: This function currently expects that any callbacks that have been attached to the location monitor have been removed. **Return** Zero on success, -EINVAL when provided with an invalid location monitor resource.h](h)}(h**Parameters**h]j )}(hjph]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1j hjpubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMwhjpubj( )}(hhh]j- )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j3 )}(h!``struct vme_resource *resource``h]h)}(hj qh]hstruct vme_resource *resource}(hj qhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjqubjM )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hj#qhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMthj qubah}(h]h ]h"]h$]h&]uh1jL hjqubeh}(h]h ]h"]h$]h&]uh1j, hjqhMthjqubah}(h]h ]h"]h$]h&]uh1j' hjpubh)}(h**Description**h]j )}(hjEqh]h Description}(hjGqhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjCqubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhjpubh)}(h*Free allocation of a VME location monitor.h]h*Free allocation of a VME location monitor.}(hj[qhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMuhjpubj( )}(hhh]j- )}(hWARNING: This function currently expects that any callbacks that have been attached to the location monitor have been removed. h](j3 )}(hEWARNING: This function currently expects that any callbacks that haveh]hEWARNING: This function currently expects that any callbacks that have}(hjqqhhhNhNubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMxhjmqubjM )}(hhh]h)}(h8been attached to the location monitor have been removed.h]h8been attached to the location monitor have been removed.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMxhjqubah}(h]h ]h"]h$]h&]uh1jL hjmqubeh}(h]h ]h"]h$]h&]uh1j, hjqhMxhjjqubah}(h]h ]h"]h$]h&]uh1j' hjpubh)}(h **Return**h]j )}(hjqh]hReturn}(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.chMzhjpubh)}(hQZero on success, -EINVAL when provided with an invalid location monitor resource.h]hQZero on success, -EINVAL when provided with an invalid location monitor resource.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM{hjpubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_slot_num (C function)c.vme_slot_numhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h'int vme_slot_num (struct vme_dev *vdev)h]jZ )}(h&int vme_slot_num(struct vme_dev *vdev)h](j)}(hinth]hint}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubjr )}(h h]h }(hjqhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjqhhhjqhMubj )}(h vme_slot_numh]j )}(h vme_slot_numh]h vme_slot_num}(hj rhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjrubah}(h]h ](j j eh"]h$]h&]jjuh1j hjqhhhjqhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hj'rhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hj#rubjr )}(h h]h }(hj4rhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj#rubh)}(hhh]j )}(hvme_devh]hvme_dev}(hjErhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBrubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjGrmodnameN classnameNj*j-)}j0]j3)}j&j rsbc.vme_slot_numasbuh1hhj#rubjr )}(h h]h }(hjerhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj#rubj)}(hjh]h*}(hjsrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#rubj )}(hvdevh]hvdev}(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj#rubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjrubah}(h]h ]h"]h$]h&]jjuh1jhjqhhhjqhMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjqhhhjqhMubah}(h]jqah ](j j eh"]h$]h&]j j )j huh1jS hjqhMhjqhhubj )}(hhh]h)}(hRetrieve slot IDh]hRetrieve slot ID}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjrhhubah}(h]h ]h"]h$]h&]uh1j hjqhhhjqhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jrj jrj j j uh1jN hhhj, hNhNubj )}(hX]**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. **Description** Retrieve the slot ID associated with the provided VME device. **Return** The slot ID on success, -EINVAL if VME bridge cannot be determined or the function is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjrh]h Parameters}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjrubj( )}(hhh]j- )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j3 )}(h``struct vme_dev *vdev``h]h)}(hjrh]hstruct vme_dev *vdev}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjrubjM )}(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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshMhjsubah}(h]h ]h"]h$]h&]uh1jL hjrubeh}(h]h ]h"]h$]h&]uh1j, hjshMhjrubah}(h]h ]h"]h$]h&]uh1j' hjrubh)}(h**Description**h]j )}(hj&sh]h Description}(hj(shhhNhNubah}(h]h ]h"]h$]h&]uh1j hj$subah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjrubh)}(h=Retrieve the slot ID associated with the provided VME device.h]h=Retrieve the slot ID associated with the provided VME device.}(hj )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_bus_num (C function) c.vme_bus_numhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h&int vme_bus_num (struct vme_dev *vdev)h]jZ )}(h%int vme_bus_num(struct vme_dev *vdev)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.chMubjr )}(h h]h }(hjshhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjshhhjshMubj )}(h vme_bus_numh]j )}(h vme_bus_numh]h vme_bus_num}(hjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubah}(h]h ](j j eh"]h$]h&]jjuh1j hjshhhjshMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](j` )}(hjc h]hstruct}(hjshhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjsubjr )}(h h]h }(hjshhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjsubh)}(hhh]j )}(hvme_devh]hvme_dev}(hjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjsmodnameN classnameNj*j-)}j0]j3)}j&jssb c.vme_bus_numasbuh1hhjsubjr )}(h h]h }(hj thhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjsubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj )}(hvdevh]hvdev}(hj(thhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjsubah}(h]h ]h"]h$]h&]jjuh1jhjshhhjshMubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjshhhjshMubah}(h]jsah ](j j eh"]h$]h&]j j )j huh1jS hjshMhjshhubj )}(hhh]h)}(hRetrieve bus numberh]hRetrieve bus number}(hjRthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjOthhubah}(h]h ]h"]h$]h&]uh1j hjshhhjshMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jjtj jjtj j j uh1jN 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 )}(hjtth]h Parameters}(hjvthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrtubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjntubj( )}(hhh]j- )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j3 )}(h``struct vme_dev *vdev``h]h)}(hjth]hstruct vme_dev *vdev}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjtubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtubjM )}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjtubah}(h]h ]h"]h$]h&]uh1jL hjtubeh}(h]h ]h"]h$]h&]uh1j, hjthMhjtubah}(h]h ]h"]h$]h&]uh1j' hjntubh)}(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.chMhjntubh)}(hERetrieve the bus enumeration associated with the provided VME device.h]hERetrieve the bus enumeration associated with the provided VME device.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjntubh)}(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.chMhjntubh)}(hFThe bus number on success, -EINVAL if VME bridge cannot be determined.h]hFThe bus number on success, -EINVAL if VME bridge cannot be determined.}(hj uhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjntubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ vme_register_driver (C function)c.vme_register_driverhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(hDint vme_register_driver (struct vme_driver *drv, unsigned int ndevs)h]jZ )}(hCint vme_register_driver(struct vme_driver *drv, unsigned int ndevs)h](j)}(hinth]hint}(hj:uhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6uhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRubjr )}(h h]h }(hjIuhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hj6uhhhjHuhMRubj )}(hvme_register_driverh]j )}(hvme_register_driverh]hvme_register_driver}(hj[uhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWuubah}(h]h ](j j eh"]h$]h&]jjuh1j hj6uhhhjHuhMRubj)}(h,(struct vme_driver *drv, unsigned int ndevs)h](j)}(hstruct vme_driver *drvh](j` )}(hjc h]hstruct}(hjwuhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjsuubjr )}(h h]h }(hjuhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjsuubh)}(hhh]j )}(h vme_driverh]h vme_driver}(hjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjumodnameN classnameNj*j-)}j0]j3)}j&j]usbc.vme_register_driverasbuh1hhjsuubjr )}(h h]h }(hjuhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjsuubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsuubj )}(hdrvh]hdrv}(hjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsuubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjouubj)}(hunsigned int ndevsh](j)}(hunsignedh]hunsigned}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubjr )}(h h]h }(hjuhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjuubj)}(hinth]hint}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubjr )}(h h]h }(hjvhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjuubj )}(hndevsh]hndevs}(hj!vhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjouubeh}(h]h ]h"]h$]h&]jjuh1jhj6uhhhjHuhMRubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hj2uhhhjHuhMRubah}(h]j-uah ](j j eh"]h$]h&]j j )j huh1jS hjHuhMRhj/uhhubj )}(hhh]h)}(hRegister a VME driverh]hRegister a VME driver}(hjKvhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMRhjHvhhubah}(h]h ]h"]h$]h&]uh1j hj/uhhhjHuhMRubeh}(h]h ](hfunctioneh"]h$]h&]j hj jcvj jcvj j j uh1jN hhhj, hNhNubj )}(hX2**Parameters** ``struct vme_driver *drv`` Pointer to VME driver structure to register. ``unsigned int ndevs`` Maximum number of devices to allow to be enumerated. **Description** Register a VME device driver with the VME subsystem. **Return** Zero on success, error value on registration failure.h](h)}(h**Parameters**h]j )}(hjmvh]h Parameters}(hjovhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjkvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjgvubj( )}(hhh](j- )}(hH``struct vme_driver *drv`` Pointer to VME driver structure to register. h](j3 )}(h``struct vme_driver *drv``h]h)}(hjvh]hstruct vme_driver *drv}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMShjvubjM )}(hhh]h)}(h,Pointer to VME driver structure to register.h]h,Pointer to VME driver structure to register.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMShjvubah}(h]h ]h"]h$]h&]uh1jL hjvubeh}(h]h ]h"]h$]h&]uh1j, hjvhMShjvubj- )}(hL``unsigned int ndevs`` Maximum number of devices to allow to be enumerated. h](j3 )}(h``unsigned int ndevs``h]h)}(hjvh]hunsigned int ndevs}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMThjvubjM )}(hhh]h)}(h4Maximum number of devices to allow to be enumerated.h]h4Maximum number of devices to allow to be enumerated.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMThjvubah}(h]h ]h"]h$]h&]uh1jL hjvubeh}(h]h ]h"]h$]h&]uh1j, hjvhMThjvubeh}(h]h ]h"]h$]h&]uh1j' hjgvubh)}(h**Description**h]j )}(hjwh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMVhjgvubh)}(h4Register a VME device driver with the VME subsystem.h]h4Register a VME device driver with the VME subsystem.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMUhjgvubh)}(h **Return**h]j )}(hj'wh]hReturn}(hj)whhhNhNubah}(h]h ]h"]h$]h&]uh1j hj%wubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMWhjgvubh)}(h5Zero on success, error value on registration failure.h]h5Zero on success, error value on registration failure.}(hj=whhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMXhjgvubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubj> )}(hhh]h}(h]h ]h"]h$]h&]entries](jJ "vme_unregister_driver (C function)c.vme_unregister_driverhNtauh1j= hj, hhhNhNubjO )}(hhh](jT )}(h3void vme_unregister_driver (struct vme_driver *drv)h]jZ )}(h2void vme_unregister_driver(struct vme_driver *drv)h](j)}(hvoidh]hvoid}(hjlwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhwhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMoubjr )}(h h]h }(hj{whhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjhwhhhjzwhMoubj )}(hvme_unregister_driverh]j )}(hvme_unregister_driverh]hvme_unregister_driver}(hjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjwubah}(h]h ](j j eh"]h$]h&]jjuh1j hjhwhhhjzwhMoubj)}(h(struct vme_driver *drv)h]j)}(hstruct vme_driver *drvh](j` )}(hjc h]hstruct}(hjwhhhNhNubah}(h]h ]jl ah"]h$]h&]uh1j_ hjwubjr )}(h h]h }(hjwhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjwubh)}(hhh]j )}(h vme_driverh]h vme_driver}(hjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjwubah}(h]h ]h"]h$]h&] refdomainhreftypej& reftargetjwmodnameN classnameNj*j-)}j0]j3)}j&jwsbc.vme_unregister_driverasbuh1hhjwubjr )}(h h]h }(hjwhhhNhNubah}(h]h ]j~ ah"]h$]h&]uh1jq hjwubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj )}(hdrvh]hdrv}(hjxhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjwubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjwubah}(h]h ]h"]h$]h&]jjuh1jhjhwhhhjzwhMoubeh}(h]h ]h"]h$]h&]jjj uh1jY j j hjdwhhhjzwhMoubah}(h]j_wah ](j j eh"]h$]h&]j j )j huh1jS hjzwhMohjawhhubj )}(hhh]h)}(hUnregister a VME driverh]hUnregister a VME driver}(hj,xhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohj)xhhubah}(h]h ]h"]h$]h&]uh1j hjawhhhjzwhMoubeh}(h]h ](hfunctioneh"]h$]h&]j hj jDxj jDxj j j uh1jN hhhj, hNhNubj )}(h**Parameters** ``struct vme_driver *drv`` Pointer to VME driver structure to unregister. **Description** Unregister a VME device driver from the VME subsystem.h](h)}(h**Parameters**h]j )}(hjNxh]h Parameters}(hjPxhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjLxubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjHxubj( )}(hhh]j- )}(hJ``struct vme_driver *drv`` Pointer to VME driver structure to unregister. h](j3 )}(h``struct vme_driver *drv``h]h)}(hjmxh]hstruct vme_driver *drv}(hjoxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkxubah}(h]h ]h"]h$]h&]uh1j2 h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphjgxubjM )}(hhh]h)}(h.Pointer to VME driver structure to unregister.h]h.Pointer to VME driver structure to unregister.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMphjxubah}(h]h ]h"]h$]h&]uh1jL hjgxubeh}(h]h ]h"]h$]h&]uh1j, hjxhMphjdxubah}(h]h ]h"]h$]h&]uh1j' hjHxubh)}(h**Description**h]j )}(hjxh]h Description}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjxubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMrhjHxubh)}(h6Unregister a VME device driver from the VME subsystem.h]h6Unregister a VME device driver from the VME subsystem.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhjHxubeh}(h]h ] kernelindentah"]h$]h&]uh1j hj, hhhNhNubeh}(h]vme-apiah ]h"]vme apiah$]h&]uh1hhhhhhhhM#ubeh}(h]vme-device-driversah ]h"]vme device driversah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjyerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jxjxjj j%j"jzjwjjjrjojjjjjj~jjjjj<j9jjjjjjjjjjjjj j j j j j j j j j j) j& jxjxu nametypes}(jxjj%jzjjrjjjjjj<jjjjjjj j j j j j) jxuh}(jxhj hj"jjwj(jjGjojjj}jjj~jjjjjj9jjj?jjjjjj jj*jjj jj j j j j j j j j& j jxj, jL jU ji jn jjjgjljejjj j%jj jjj$j"$j%j%j)j )j-j-j3j!3jT6jY6j9j9jo=jt=j?j?jAAjFAjCjCjEjEjGjGjIjIjLjLjcNjhNjQjQjSjSj=UjBUjVjVjX[j][j]j]j9`j>`jbj!bjcjcjgjgjjjjjmjmjojpjqjqjsjsj-uj2uj_wjdwu 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.