sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget"/translations/zh_CN/driver-api/vmemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/zh_TW/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/it_IT/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ja_JP/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ko_KR/driver-api/vmemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(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}(hhhhhhhNhNubah}(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 }(h!A pointer to a structure of type hjhhhNhNubh)}(h(:c:type:`struct vme_driver `h]h)}(hjh]hstruct vme_driver}(hhhjhhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypetype refexplicitrefwarnh vme_driveruh1hhhhK hjubhx must be provided to the registration function. Along with the maximum number of devices your driver is able to support.}(hx 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 }(h?At the minimum, the '.name', '.match' and '.probe' elements of hj6hhhNhNubh)}(h(:c:type:`struct vme_driver `h]h)}(hjAh]hstruct vme_driver}(hhhjChhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhj?ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypetype refexplicitrefwarnh vme_driveruh1hhhhKhj6ubhn should be correctly set. The ‘.name’ element is a pointer to a string holding the device driver’s name.}(hh should be correctly set. The '.name' element is a pointer to a string holding the device driver's name.hj6hhhNhNubeh}(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:}(hjkhjihhhNhNubah}(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; }}(hhhjyubah}(h]h ]h"]h$]h&] xml:spacepreserveforcelanguagehhighlight_args}uh1jwhhhKhhhhubh)}(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 }(hbThe '.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}(hhhjhhhNhNubah}(h]h ](hhc-typeeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypetype refexplicitrefwarnhvme_devuh1hhhhK#hjubh pointer as an argument.}(h 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.}(hjhjhhhNhNubah}(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 }(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()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_unregister_driveruh1hhhhK+hjubhF and should usually be called from the device driver’s exit routine.}(hD 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}(hjhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK1ubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hj hhubh)}(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 (}(h@The driver can request ownership of one or more master windows (hj(hhhNhNubh)}(h:c:func:`vme_master_request`h]h)}(hj3h]hvme_master_request()}(hhhj5hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_requestuh1hhhhK;hj(ubh), slave windows (}(h), slave windows (hj(hhhNhNubh)}(h:c:func:`vme_slave_request`h]h)}(hjWh]hvme_slave_request()}(hhhjYhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjUubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_slave_requestuh1hhhhK;hj(ubh) and/or dma channels (}(h) and/or dma channels (hj(hhhNhNubh)}(h:c:func:`vme_dma_request`h]h)}(hj{h]hvme_dma_request()}(hhhj}hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjyubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_requestuh1hhhhK;hj(ubhX). 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.}(hX). 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.hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK;hj hhubh)}(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 (}(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()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_freeuh1hhhhKNhjubh, }(h, hjhhhNhNubh)}(h:c:func:`vme_slave_free`h]h)}(hjh]hvme_slave_free()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_slave_freeuh1hhhhKNhjubh and }(h and hjhhhNhNubh)}(h:c:func:`vme_dma_free`h]h)}(hjh]hvme_dma_free()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_dma_freeuh1hhhhKNhjubhS) should be passed the pointer to the resource provided during resource allocation.}(hS) should be passed the pointer to the resource provided during resource allocation.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKNhj hhubeh}(h]resource-managementah ]h"]resource managementah$]h&]uh1hhhhhhhhK1ubh)}(hhh](h)}(hMaster windowsh]hMaster windows}(hj+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.}(hj9hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj&hhubh)}(hhh](h)}(hMaster window configurationh]hMaster window configuration}(hjJhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhhhhhK]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 }(h'Once a master window has been assigned hjVhhhNhNubh)}(h:c:func:`vme_master_set`h]h)}(hjah]hvme_master_set()}(hhhjchhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_setuh1hhhhK_hjVubh! can be used to configure it and }(h! can be used to configure it and hjVhhhNhNubh)}(h:c:func:`vme_master_get`h]h)}(hjh]hvme_master_get()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_getuh1hhhhK_hjVubh 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 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.hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK_hjEhhubeh}(h]master-window-configurationah ]h"]master window configurationah$]h&]uh1hhj&hhhhhK]ubh)}(hhh](h)}(hMaster window accessh]hMaster window access}(hjhjhhhNhNubah}(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 }(h The function hjhhhNhNubh)}(h:c:func:`vme_master_read`h]h)}(hjh]hvme_master_read()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_readuh1hhhhKihjubh can be used to read from and }(h can be used to read from and hjhhhNhNubh)}(h:c:func:`vme_master_write`h]h)}(hjh]hvme_master_write()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_writeuh1hhhhKihjubh, used to write to configured master windows.}(h, used to write to configured master windows.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKihjhhubh)}(hIn addition to simple reads and writes, :c:func:`vme_master_rmw` is provided to do a read-modify-write transaction. Parts of a VME window can also be mapped into user space memory using :c:func:`vme_master_mmap`.h](h(In addition to simple reads and writes, }(h(In addition to simple reads and writes, hjhhhNhNubh)}(h:c:func:`vme_master_rmw`h]h)}(hj(h]hvme_master_rmw()}(hhhj*hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj&ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_rmwuh1hhhhKlhjubhz is provided to do a read-modify-write transaction. Parts of a VME window can also be mapped into user space memory using }(hz is provided to do a read-modify-write transaction. Parts of a VME window can also be mapped into user space memory using hjhhhNhNubh)}(h:c:func:`vme_master_mmap`h]h)}(hjLh]hvme_master_mmap()}(hhhjNhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjJubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_master_mmapuh1hhhhKlhjubh.}(hhhjhhhNhNubeh}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKrubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjhhubh)}(hhh](h)}(hSlave window configurationh]hSlave window configuration}(hjhjhhhNhNubah}(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 }(h&Once a slave window has been assigned hjhhhNhNubh)}(h:c:func:`vme_slave_set`h]h)}(hjh]hvme_slave_set()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_slave_setuh1hhhhK}hjubh! can be used to configure it and }(h! can be used to configure it and hjhhhNhNubh)}(h:c:func:`vme_slave_get`h]h)}(hjh]hvme_slave_get()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_slave_getuh1hhhhK}hjubh" to retrieve the current settings.}(h" 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.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]slave-window-configurationah ]h"]slave window configurationah$]h&]uh1hhjhhhhhK{ubh)}(hhh](h)}(hSlave window buffer allocationh]hSlave window buffer allocation}(hj%hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(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 (}(h6Functions are provided to allow the user to allocate (hj1hhhNhNubh)}(h:c:func:`vme_alloc_consistent`h]h)}(hj<h]hvme_alloc_consistent()}(hhhj>hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj:ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_alloc_consistentuh1hhhhKhj1ubh ) and free (}(h ) and free (hj1hhhNhNubh)}(h:c:func:`vme_free_consistent`h]h)}(hj`h]hvme_free_consistent()}(hhhjbhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj^ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_free_consistentuh1hhhhKhj1ubh) 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) 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.hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]slave-window-buffer-allocationah ]h"]slave window buffer allocationah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hSlave window accessh]hSlave window access}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]slave-window-accessah ]h"]slave window accessah$]h&]uh1hhjhhhhhKubeh}(h] slave-windowsah ]h"] slave windowsah$]h&]uh1hhhhhhhhKrubh)}(hhh](h)}(h DMA channelsh]h DMA channels}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(hList Managementh]hList Management}(hjhjhhhNhNubah}(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 }(h The function hjhhhNhNubh)}(h:c:func:`vme_new_dma_list`h]h)}(hjh]hvme_new_dma_list()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_new_dma_listuh1hhhhKhjubh is provided to create and }(h is provided to create and hjhhhNhNubh)}(h:c:func:`vme_dma_list_free`h]h)}(hjh]hvme_dma_list_free()}(hhhj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_list_freeuh1hhhhKhjubh to destroy DMA lists. Execution of a list will not automatically destroy the list, thus enabling a list to be reused for repetitive tasks.}(h 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}(hjShjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhhhhhKubh)}(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 }(h%An item can be added to a list using hj_hhhNhNubh)}(h:c:func:`vme_dma_list_add`h]h)}(hjjh]hvme_dma_list_add()}(hhhjlhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_list_adduh1hhhhKhj_ubh (the source and destination attributes need to be created before calling this function, this is covered under “Transfer Attributes”).}(h (the source and destination attributes need to be created before calling this function, this is covered under "Transfer Attributes").hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjNhhubhnote)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjNhhhhhNubeh}(h]list-populationah ]h"]list populationah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(hTransfer Attributesh]hTransfer Attributes}(hjhjhhhNhNubah}(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):}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh block_quote)}(hhh]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: }(hPCI source or destination: hjhhhNhNubh)}(h:c:func:`vme_dma_pci_attribute`h]h)}(hjh]hvme_dma_pci_attribute()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_pci_attributeuh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h:VME source or destination: :c:func:`vme_dma_vme_attribute`h]h)}(hjh](hVME source or destination: }(hVME source or destination: hjhhhNhNubh)}(h:c:func:`vme_dma_vme_attribute`h]h)}(hj$h]hvme_dma_vme_attribute()}(hhhj&hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_vme_attributeuh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h4Pattern source: :c:func:`vme_dma_pattern_attribute` h]h)}(h3Pattern source: :c:func:`vme_dma_pattern_attribute`h](hPattern source: }(hPattern source: hjQhhhNhNubh)}(h#:c:func:`vme_dma_pattern_attribute`h]h)}(hj\h]hvme_dma_pattern_attribute()}(hhhj^hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjZubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_pattern_attributeuh1hhhhKhjQubeh}(h]h ]h"]h$]h&]uh1hhhhKhjMubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hRThe function :c:func:`vme_dma_free_attribute` should be used to free an attribute.h](h The function }(h The function hjhhhNhNubh)}(h :c:func:`vme_dma_free_attribute`h]h)}(hjh]hvme_dma_free_attribute()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_free_attributeuh1hhhhKhjubh% should be used to free an attribute.}(h% 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}(hjhjhhhNhNubah}(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 }(h The function hjhhhNhNubh)}(h:c:func:`vme_dma_list_exec`h]h)}(hjh]hvme_dma_list_exec()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_dma_list_execuh1hhhhKhjubhM queues a list for execution and will return once the list has been executed.}(hM 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}(hj'hj%hhhNhNubah}(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.}(hj5hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj"hhubh)}(hhh](h)}(hAttaching Interrupt Handlersh]hAttaching Interrupt Handlers}(hjFhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhhhhhKubh)}(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 }(h The function hjRhhhNhNubh)}(h:c:func:`vme_irq_request`h]h)}(hj]h]hvme_irq_request()}(hhhj_hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj[ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_irq_requestuh1hhhhKhjRubh can be used to attach and }(h can be used to attach and hjRhhhNhNubh)}(h:c:func:`vme_irq_free`h]h)}(hjh]hvme_irq_free()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_irq_freeuh1hhhhKhjRubhX 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:}(hX 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:hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjAhhubjx)}(h1void callback(int level, int statid, void *priv);h]h1void callback(int level, int statid, void *priv);}(hhhjubah}(h]h ]h"]h$]h&]jjjjhj}uh1jwhhhKhjAhhubeh}(h]attaching-interrupt-handlersah ]h"]attaching interrupt handlersah$]h&]uh1hhj"hhhhhKubh)}(hhh](h)}(hInterrupt Generationh]hInterrupt Generation}(hjhjhhhNhNubah}(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 }(h The function hjhhhNhNubh)}(h:c:func:`vme_irq_generate`h]h)}(hjh]hvme_irq_generate()}(hhhjhhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_irq_generateuh1hhhhKhjubhP can be used to generate a VME interrupt at a given VME level and VME status ID.}(hP 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}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(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' hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hhh](h)}(hLocation Monitor Managementh]hLocation Monitor Management}(hj8 hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3 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 }(h The function hjD hhhNhNubh)}(h:c:func:`vme_lm_request`h]h)}(hjO h]hvme_lm_request()}(hhhjQ hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjM ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnhvme_lm_requestuh1hhhhKhjD ubhD is provided to request the use of a block of location monitors and }(hD is provided to request the use of a block of location monitors and hjD hhhNhNubh)}(h:c:func:`vme_lm_free`h]h)}(hjs h]h vme_lm_free()}(hhhju hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjq ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_freeuh1hhhhKhjD ubh to free them after they are no longer required. Each block may provide a number of location monitors, monitoring adjacent locations. The function }(h to free them after they are no longer required. Each block may provide a number of location monitors, monitoring adjacent locations. The function hjD hhhNhNubh)}(h:c:func:`vme_lm_count`h]h)}(hj h]hvme_lm_count()}(hhhj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_countuh1hhhhKhjD ubh: can be used to determine how many locations are provided.}(h: can be used to determine how many locations are provided.hjD hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj3 hhubeh}(h]location-monitor-managementah ]h"]location monitor managementah$]h&]uh1hhj hhhhhKubh)}(hhh](h)}(hLocation Monitor Configurationh]hLocation Monitor Configuration}(hj 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 }(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()}(hhhj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_setuh1hhhhMhj ubhV is provided to configure the location and mode of the location monitor. The function }(hV 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()}(hhhj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_getuh1hhhhMhj ubh+ can be used to retrieve existing settings.}(h+ 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&]uh1hhj hhhhhMubh)}(hhh](h)}(hLocation Monitor Useh]hLocation Monitor Use}(hj< hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7 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 }(h The function hjH hhhNhNubh)}(h:c:func:`vme_lm_attach`h]h)}(hjS h]hvme_lm_attach()}(hhhjU hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhjQ ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_attachuh1hhhhM hjH ubh' enables a callback to be attached and }(h' enables a callback to be attached and hjH hhhNhNubh)}(h:c:func:`vme_lm_detach`h]h)}(hjw h]hvme_lm_detach()}(hhhjy hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhju ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_lm_detachuh1hhhhM hjH 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.}(h 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.hjH hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj7 hhubjx)}(hvoid callback(void *data);h]hvoid callback(void *data);}(hhhj ubah}(h]h ]h"]h$]h&]jjjjhj}uh1jwhhhMhj7 hhubeh}(h]location-monitor-useah ]h"]location monitor useah$]h&]uh1hhj hhhhhM ubeh}(h]location-monitorsah ]h"]location monitorsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hSlot Detectionh]hSlot Detection}(hj 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 }(h The function hj hhhNhNubh)}(h:c:func:`vme_slot_num`h]h)}(hj h]hvme_slot_num()}(hhhj hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_slot_numuh1hhhhMhj ubh, returns the slot ID of the provided bridge.}(h, 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 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 }(h The function hj hhhNhNubh)}(h:c:func:`vme_bus_num`h]h)}(hj& h]h vme_bus_num()}(hhhj( hhhNhNubah}(h]h ](hhc-funceh"]h$]h&]uh1hhj$ ubah}(h]h ]h"]h$]h&]refdoch refdomainhreftypefunc refexplicitrefwarnh vme_bus_numuh1hhhhMhj ubh+ returns the bus ID of the provided bridge.}(h+ 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[ hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV hhhhhM#ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlevme_dev (C struct) c.vme_devhNtauh1jg hjV hhhNhNubhdesc)}(hhh](hdesc_signature)}(hvme_devh]hdesc_signature_line)}(hstruct vme_devh](hdesc_sig_keyword)}(hstructh]hstruct}(hhhj hhhNhNubah}(h]h ]kah"]h$]h&]uh1j hj hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKbubhdesc_sig_space)}(h h]h }(hhhj hhhNhNubah}(h]h ]wah"]h$]h&]uh1j hj hhhj hKbubh desc_name)}(hvme_devh]h desc_sig_name)}(hj h]hvme_dev}(hhhj hhhNhNubah}(h]h ]nah"]h$]h&]uh1j hj ubah}(h]h ](sig-namedescnameeh"]h$]h&]jjuh1j hj hhhj hKbubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1j sphinx_line_type declaratorhj hhhj hKbubah}(h]jv ah ](sig sig-objecteh"]h$]h&] is_multilineuh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKhjz hhubh desc_content)}(hhh]h)}(h#Structure representing a VME deviceh]h#Structure representing a VME device}(hj 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 hjz hhhj hKbubeh}(h]h ](hstructeh"]h$]h&]domainhobjtypej desctypej noindexuh1jx hhhjV 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}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh:}(h:hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKehj ubjx)}(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; };}(hhhj( ubah}(h]h ]h"]h$]h&]jjuh1jwh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKghj ubh)}(h **Members**h]j )}(hj9 h]hMembers}(hhhj; hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7 ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKohj ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``num`` The device number h](hterm)}(h``num``h]h)}(hj^ h]hnum}(hhhj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKchjV ubh definition)}(hhh]h)}(hThe device numberh]hThe device number}(hj{ hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs hKchjv ubah}(h]h ]h"]h$]h&]uh1jt hjV ubeh}(h]h ]h"]h$]h&]uh1jT hjs hKchjQ ubjU )}(h:``bridge`` Pointer to the bridge device this device is on h](j[ )}(h ``bridge``h]h)}(hj h]hbridge}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKdhj ubju )}(hhh]h)}(h.Pointer to the bridge device this device is onh]h.Pointer to the bridge device this device is on}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKdhj ubah}(h]h ]h"]h$]h&]uh1jt hj ubeh}(h]h ]h"]h$]h&]uh1jT hj hKdhjQ ubjU )}(h"``dev`` Internal device structure h](j[ )}(h``dev``h]h)}(hj h]hdev}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKehj ubju )}(hhh]h)}(hInternal device structureh]hInternal device structure}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKehj ubah}(h]h ]h"]h$]h&]uh1jt hj ubeh}(h]h ]h"]h$]h&]uh1jT hj hKehjQ ubjU )}(h*``drv_list`` List of devices (per driver) h](j[ )}(h ``drv_list``h]h)}(hj h]hdrv_list}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKfhj ubju )}(hhh]h)}(hList of devices (per driver)h]hList of devices (per driver)}(hj& hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKfhj! ubah}(h]h ]h"]h$]h&]uh1jt hj ubeh}(h]h ]h"]h$]h&]uh1jT hj hKfhjQ ubjU )}(h,``bridge_list`` List of devices (per bridge)h](j[ )}(h``bridge_list``h]h)}(hjD h]h bridge_list}(hhhjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKfhj> ubju )}(hhh]h)}(hList of devices (per bridge)h]hList of devices (per bridge)}(hj_ hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKghjZ ubah}(h]h ]h"]h$]h&]uh1jt hj> ubeh}(h]h ]h"]h$]h&]uh1jT hjY hKfhjQ ubeh}(h]h ]h"]h$]h&]uh1jO hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_driver (C struct) c.vme_driverhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h vme_driverh]j )}(hstruct vme_driverh](j )}(hj h]hstruct}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKrubj )}(h h]h }(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj hhhj hKrubj )}(h vme_driverh]j )}(hj h]h vme_driver}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj hhhj hKrubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj hhhj hKrubah}(h]j ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKmhj hhubj )}(hhh]h)}(h#Structure representing a VME driverh]h#Structure representing a VME driver}(hj 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 hj hhhj hKrubeh}(h]h ](hstructeh"]h$]h&]j hj j j j j uh1jx hhhjV hNhNubj )}(hX**Definition**:: struct vme_driver { const char *name; int (*match)(struct vme_dev *); int (*probe)(struct vme_dev *); void (*remove)(struct vme_dev *); struct device_driver driver; struct list_head devices; }; **Members** ``name`` Driver name, should be unique among VME drivers and usually the same as the module name. ``match`` Callback used to determine whether probe should be run. ``probe`` Callback for device binding, called when new device is detected. ``remove`` Callback, called on device removal. ``driver`` Underlying generic device driver structure. ``devices`` List of VME devices (struct vme_dev) associated with this driver.h](h)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh:}(hj hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKuhj ubjx)}(hstruct vme_driver { const char *name; int (*match)(struct vme_dev *); int (*probe)(struct vme_dev *); void (*remove)(struct vme_dev *); struct device_driver driver; struct list_head devices; };h]hstruct vme_driver { const char *name; int (*match)(struct vme_dev *); int (*probe)(struct vme_dev *); void (*remove)(struct vme_dev *); struct device_driver driver; struct list_head devices; };}(hhhjubah}(h]h ]h"]h$]h&]jjuh1jwh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKwhj ubh)}(h **Members**h]j )}(hj/h]hMembers}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKhj ubjP )}(hhh](jU )}(hb``name`` Driver name, should be unique among VME drivers and usually the same as the module name. h](j[ )}(h``name``h]h)}(hjNh]hname}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKthjHubju )}(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.}(hjihjghhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKshjdubah}(h]h ]h"]h$]h&]uh1jt hjHubeh}(h]h ]h"]h$]h&]uh1jT hjchKthjEubjU )}(hB``match`` Callback used to determine whether probe should be run. h](j[ )}(h ``match``h]h)}(hjh]hmatch}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKuhjubju )}(hhh]h)}(h7Callback used to determine whether probe should be run.h]h7Callback used to determine whether probe should be run.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKuhjubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hjhKuhjEubjU )}(hK``probe`` Callback for device binding, called when new device is detected. h](j[ )}(h ``probe``h]h)}(hjh]hprobe}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKvhjubju )}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKvhjubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hjhKvhjEubjU )}(h/``remove`` Callback, called on device removal. h](j[ )}(h ``remove``h]h)}(hjh]hremove}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKwhjubju )}(hhh]h)}(h#Callback, called on device removal.h]h#Callback, called on device removal.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKwhjubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hjhKwhjEubjU )}(h7``driver`` Underlying generic device driver structure. h](j[ )}(h ``driver``h]h)}(hj3h]hdriver}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKxhj-ubju )}(hhh]h)}(h+Underlying generic device driver structure.h]h+Underlying generic device driver structure.}(hjNhjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKxhjIubah}(h]h ]h"]h$]h&]uh1jt hj-ubeh}(h]h ]h"]h$]h&]uh1jT hjHhKxhjEubjU )}(hM``devices`` List of VME devices (struct vme_dev) associated with this driver.h](j[ )}(h ``devices``h]h)}(hjlh]hdevices}(hhhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKxhjfubju )}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:293: ./drivers/staging/vme_user/vme.hhKyhjubah}(h]h ]h"]h$]h&]uh1jt hjfubeh}(h]h ]h"]h$]h&]uh1jT hjhKxhjEubeh}(h]h ]h"]h$]h&]uh1jO hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt !vme_alloc_consistent (C function)c.vme_alloc_consistenthNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hYvoid * vme_alloc_consistent (struct vme_resource *resource, size_t size, dma_addr_t *dma)h]j )}(hWvoid *vme_alloc_consistent(struct vme_resource *resource, size_t size, dma_addr_t *dma)h](hdesc_sig_keyword_type)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKGubj )}(h h]h }(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhhhjhKGubhdesc_sig_punctuation)}(h*h]h*}(hhhjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhKGubj )}(hvme_alloc_consistenth]j )}(hvme_alloc_consistenth]hvme_alloc_consistent}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ](j j eh"]h$]h&]jjuh1j hjhhhjhKGubhdesc_parameterlist)}(h=(struct vme_resource *resource, size_t size, dma_addr_t *dma)h](hdesc_parameter)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj )}(h h]h }(hhhj(hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6ubah}(h]h ]h"]h$]h&] refdomainhreftype identifier reftargetj;modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jT ASTIdentifier)}jOjsbc.vme_alloc_consistentasbuh1hhjubj )}(h h]h }(hhhjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hjh]h*}(hhhjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hresourceh]hresource}(hhhj|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}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjmodnameN classnameNjSjV)}jY]j]c.vme_alloc_consistentasbuh1hhjubj )}(h h]h }(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj )}(hsizeh]hsize}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hdma_addr_t *dmah](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjmodnameN classnameNjSjV)}jY]j]c.vme_alloc_consistentasbuh1hhjubj )}(h h]h }(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hdmah]hdma}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKGubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjhhhjhKGubah}(h]jah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKPhjhhubj )}(hhh]h)}(hAllocate contiguous memory.h]hAllocate contiguous memory.}(hjFhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKFhjAhhubah}(h]h ]h"]h$]h&]uh1j hjhhhjhKGubeh}(h]h ](hfunctioneh"]h$]h&]j hj j\j j\j uh1jx hhhjV 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 )}(hjfh]h Parameters}(hhhjhhhhNhNubah}(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.chKJhj`ubjP )}(hhh](jU )}(h;``struct vme_resource *resource`` Pointer to VME resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjh]hstruct vme_resource *resource}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKGhjubju )}(hhh]h)}(hPointer to VME resource.h]hPointer to VME resource.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKGhjubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hjhKGhj|ubjU )}(h-``size_t size`` Size of allocation required. h](j[ )}(h``size_t size``h]h)}(hjh]h size_t size}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKHhjubju )}(hhh]h)}(hSize of allocation required.h]hSize of allocation required.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKHhjubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hjhKHhj|ubjU )}(hQ``dma_addr_t *dma`` Pointer to variable to store physical address of allocation. h](j[ )}(h``dma_addr_t *dma``h]h)}(hjh]hdma_addr_t *dma}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chKIhjubju )}(hhh]h)}(hubah}(h]h ]h"]h$]h&]uh1jt hj"ubeh}(h]h ]h"]h$]h&]uh1jT hj=hM8hjubjU )}(h@``int enabled`` State to which the window should be configured. h](j[ )}(h``int enabled``h]h)}(hjah]h int enabled}(hhhjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj[ubju )}(hhh]h)}(h/State to which the window should be configured.h]h/State to which the window should be configured.}(hj|hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhM9hjwubah}(h]h ]h"]h$]h&]uh1jt hj[ubeh}(h]h ]h"]h$]h&]uh1jT hjvhM9hjubjU )}(h=``unsigned long long vme_base`` Base address for the window. h](j[ )}(h``unsigned long long vme_base``h]h)}(hjh]hunsigned long long vme_base}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hjubju )}(hhh]h)}(hBase address for the window.h]hBase address for the window.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM:hjubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hjhM:hjubjU )}(h4``unsigned long long size`` Size of the VME window. h](j[ )}(h``unsigned long long size``h]h)}(hjh]hunsigned long long size}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hjubju )}(hhh]h)}(hSize of the VME window.h]hSize of the VME window.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM;hjubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hjhM;hjubjU )}(hZ``dma_addr_t buf_base`` Based address of buffer used to provide VME slave window storage. h](j[ )}(h``dma_addr_t buf_base``h]h)}(hj h]hdma_addr_t buf_base}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hjubju )}(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.}(hj'hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hM<hj"ubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hj!hM<hjubjU )}(h5``u32 aspace`` VME address space for the VME window. h](j[ )}(h``u32 aspace``h]h)}(hjEh]h u32 aspace}(hhhjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM=hj?ubju )}(hhh]h)}(h%VME address space for the VME window.h]h%VME address space for the VME window.}(hj`hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhM=hj[ubah}(h]h ]h"]h$]h&]uh1jt hj?ubeh}(h]h ]h"]h$]h&]uh1jT hjZhM=hjubjU )}(h?``u32 cycle`` VME data transfer cycle type for the VME window. h](j[ )}(h ``u32 cycle``h]h)}(hj~h]h u32 cycle}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM>hjxubju )}(hhh]h)}(h0VME data transfer cycle type for the VME window.h]h0VME data transfer cycle type for the VME window.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM>hjubah}(h]h ]h"]h$]h&]uh1jt hjxubeh}(h]h ]h"]h$]h&]uh1jT hjhM>hjubeh}(h]h ]h"]h$]h&]uh1jO hjubh)}(h**Description**h]j )}(hjh]h Description}(hhhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(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}(hhhjhhhNhNubah}(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.chMBhjubjP )}(hhh]jU )}(hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h](j[ )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMDhjubju )}(hhh]h)}(hdevice, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hdevice, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMChj ubah}(h]h ]h"]h$]h&]uh1jt hjubeh}(h]h ]h"]h$]h&]uh1jT hj hMDhjubah}(h]h ]h"]h$]h&]uh1jO hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_slave_get (C function)c.vme_slave_gethNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hint vme_slave_get (struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, dma_addr_t *buf_base, u32 *aspace, u32 *cycle)h]j )}(hint vme_slave_get(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, dma_addr_t *buf_base, u32 *aspace, u32 *cycle)h](j)}(hinth]hint}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlubj )}(h h]h }(hhhj_hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLhhhj^hMlubj )}(h vme_slave_geth]j )}(h vme_slave_geth]h vme_slave_get}(hhhjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubah}(h]h ](j j eh"]h$]h&]jjuh1j hjLhhhj^hMlubj)}(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 )}(hj h]hstruct}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj )}(h h]h }(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjmodnameN classnameNjSjV)}jY]j\)}jOjssbc.vme_slave_getasbuh1hhjubj )}(h h]h }(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(hresourceh]hresource}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h int *enabledh](j)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(h h]h }(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj )}(henabledh]henabled}(hhhj( hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned long long *vme_baseh](j)}(hunsignedh]hunsigned}(hhhjA hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj= ubj )}(h h]h }(hhhjO hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj= ubj)}(hlongh]hlong}(hhhj] hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj= ubj )}(h h]h }(hhhjk hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj= ubj)}(hlongh]hlong}(hhhjy hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj= ubj )}(h h]h }(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj= ubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj= ubj )}(hvme_baseh]hvme_base}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj= ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned long long *sizeh](j)}(hunsignedh]hunsigned}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(h h]h }(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hlongh]hlong}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(h h]h }(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hlongh]hlong}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(h h]h }(hhhj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hhhj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj )}(hsizeh]hsize}(hhhj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hdma_addr_t *buf_baseh](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hhhj8!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj5!ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj:!modnameN classnameNjSjV)}jY]jc.vme_slave_getasbuh1hhj1!ubj )}(h h]h }(hhhjV!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj1!ubj)}(hjh]h*}(hhhjd!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1!ubj )}(hbuf_baseh]hbuf_base}(hhhjq!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj1!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 *aspaceh](h)}(hhh]j )}(hu32h]hu32}(hhhj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj!modnameN classnameNjSjV)}jY]jc.vme_slave_getasbuh1hhj!ubj )}(h h]h }(hhhj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hhhj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj )}(haspaceh]haspace}(hhhj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h u32 *cycleh](h)}(hhh]j )}(hu32h]hu32}(hhhj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj!modnameN classnameNjSjV)}jY]jc.vme_slave_getasbuh1hhj!ubj )}(h h]h }(hhhj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj )}(hcycleh]hcycle}(hhhj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjLhhhj^hMlubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjHhhhj^hMlubah}(h]jCah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMyhjEhhubj )}(hhh]h)}(h(Retrieve VME slave window configuration.h]h(Retrieve VME slave window configuration.}(hjH"hjF"hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhjC"hhubah}(h]h ]h"]h$]h&]uh1j hjEhhhj^hMlubeh}(h]h ](hfunctioneh"]h$]h&]j hj j^"j j^"j uh1jx hhhjV 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 )}(hjh"h]h Parameters}(hhhjj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjf"ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohjb"ubjP )}(hhh](jU )}(hA``struct vme_resource *resource`` Pointer to VME slave resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hj"h]hstruct vme_resource *resource}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlhj"ubju )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hj"hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMlhj"ubah}(h]h ]h"]h$]h&]uh1jt hj"ubeh}(h]h ]h"]h$]h&]uh1jT hj"hMlhj~"ubjU )}(h8``int *enabled`` Pointer to variable for storing state. h](j[ )}(h``int *enabled``h]h)}(hj"h]h int *enabled}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMmhj"ubju )}(hhh]h)}(h&Pointer to variable for storing state.h]h&Pointer to variable for storing state.}(hj"hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMmhj"ubah}(h]h ]h"]h$]h&]uh1jt hj"ubeh}(h]h ]h"]h$]h&]uh1jT hj"hMmhj~"ubjU )}(hV``unsigned long long *vme_base`` Pointer to variable for storing window base address. h](j[ )}(h ``unsigned long long *vme_base``h]h)}(hj"h]hunsigned long long *vme_base}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhj"ubju )}(hhh]h)}(h4Pointer to variable for storing window base address.h]h4Pointer to variable for storing window base address.}(hj#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMnhj#ubah}(h]h ]h"]h$]h&]uh1jt hj"ubeh}(h]h ]h"]h$]h&]uh1jT hj#hMnhj~"ubjU )}(hJ``unsigned long long *size`` Pointer to variable for storing window size. h](j[ )}(h``unsigned long long *size``h]h)}(hj2#h]hunsigned long long *size}(hhhj4#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0#ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohj,#ubju )}(hhh]h)}(h,Pointer to variable for storing window size.h]h,Pointer to variable for storing window size.}(hjM#hjK#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG#hMohjH#ubah}(h]h ]h"]h$]h&]uh1jt hj,#ubeh}(h]h ]h"]h$]h&]uh1jT hjG#hMohj~"ubjU )}(hT``dma_addr_t *buf_base`` Pointer to variable for storing slave buffer base address. h](j[ )}(h``dma_addr_t *buf_base``h]h)}(hjk#h]hdma_addr_t *buf_base}(hhhjm#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji#ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphje#ubju )}(hhh]h)}(h:Pointer to variable for storing slave buffer base address.h]h:Pointer to variable for storing slave buffer base address.}(hj#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMphj#ubah}(h]h ]h"]h$]h&]uh1jt hje#ubeh}(h]h ]h"]h$]h&]uh1jT hj#hMphj~"ubjU )}(hC``u32 *aspace`` Pointer to variable for storing VME address space. h](j[ )}(h``u32 *aspace``h]h)}(hj#h]h u32 *aspace}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhj#ubju )}(hhh]h)}(h2Pointer to variable for storing VME address space.h]h2Pointer to variable for storing VME address space.}(hj#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMqhj#ubah}(h]h ]h"]h$]h&]uh1jt hj#ubeh}(h]h ]h"]h$]h&]uh1jT hj#hMqhj~"ubjU )}(hM``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. h](j[ )}(h``u32 *cycle``h]h)}(hj#h]h u32 *cycle}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMrhj#ubju )}(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#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMrhj#ubah}(h]h ]h"]h$]h&]uh1jt hj#ubeh}(h]h ]h"]h$]h&]uh1jT hj#hMrhj~"ubeh}(h]h ]h"]h$]h&]uh1jO hjb"ubh)}(h**Description**h]j )}(hj$h]h Description}(hhhj$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.chMthjb"ubh)}(h3Return configuration for provided VME slave window.h]h3Return configuration for provided VME slave window.}(hj0$hj.$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjb"ubh)}(h **Return**h]j )}(hj?$h]hReturn}(hhhjA$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.chMvhjb"ubjP )}(hhh]jU )}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h](j[ )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hj^$hj\$hhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhjX$ubju )}(hhh]h)}(h3device or if an invalid resource has been provided.h]h3device or if an invalid resource has been provided.}(hjp$hjn$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMwhjk$ubah}(h]h ]h"]h$]h&]uh1jt hjX$ubeh}(h]h ]h"]h$]h&]uh1jT hjj$hMvhjU$ubah}(h]h ]h"]h$]h&]uh1jO hjb"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_slave_free (C function)c.vme_slave_freehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h3void vme_slave_free (struct vme_resource *resource)h]j )}(h2void vme_slave_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$hhhj$hMubj )}(hvme_slave_freeh]j )}(hvme_slave_freeh]hvme_slave_free}(hhhj$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 )}(hj h]hstruct}(hhhj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$ubj )}(h h]h }(hhhj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhj %hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj %modnameN classnameNjSjV)}jY]j\)}jOj$sbc.vme_slave_freeasbuh1hhj$ubj )}(h h]h }(hhhj*%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hhhj8%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj )}(hresourceh]hresource}(hhhjE%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 uh1j j j hj$hhhj$hMubah}(h]j$ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj$hhubj )}(hhh]h)}(hFree VME slave windowh]hFree VME slave window}(hjr%hjp%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjm%hhubah}(h]h ]h"]h$]h&]uh1j hj$hhhj$hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j%j j%j uh1jx hhhjV 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}(hhhj%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%ubjP )}(hhh]jU )}(hA``struct vme_resource *resource`` Pointer to VME slave resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hj%h]hstruct vme_resource *resource}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj%ubju )}(hhh]h)}(hPointer to VME slave resource.h]hPointer to VME slave resource.}(hj%hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jt hj%ubeh}(h]h ]h"]h$]h&]uh1jT hj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jO hj%ubh)}(h**Description**h]j )}(hj%h]h Description}(hhhj%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?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&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 hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_request (C function)c.vme_master_requesthNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hcstruct vme_resource * vme_master_request (struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h]j )}(hastruct vme_resource *vme_master_request(struct vme_dev *vdev, u32 address, u32 cycle, u32 dwidth)h](j )}(hj h]hstruct}(hhhj1&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj-&hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhj?&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj-&hhhj>&hMubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjP&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjM&ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjR&modnameN classnameNjSjV)}jY]j\)}jOvme_master_requestsbc.vme_master_requestasbuh1hhj-&hhhj>&hMubj )}(h h]h }(hhhjq&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj-&hhhj>&hMubj)}(hjh]h*}(hhhj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-&hhhj>&hMubj )}(hvme_master_requesth]j )}(hjn&h]hvme_master_request}(hhhj&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 )}(hj h]hstruct}(hhhj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubj )}(h h]h }(hhhj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj&modnameN classnameNjSjV)}jY]jl&c.vme_master_requestasbuh1hhj&ubj )}(h h]h }(hhhj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hhhj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj )}(hvdevh]hvdev}(hhhj'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}(hhhj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj'ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj 'modnameN classnameNjSjV)}jY]jl&c.vme_master_requestasbuh1hhj'ubj )}(h h]h }(hhhj<'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj'ubj )}(haddressh]haddress}(hhhjJ'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}(hhhjf'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjc'ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjh'modnameN classnameNjSjV)}jY]jl&c.vme_master_requestasbuh1hhj_'ubj )}(h h]h }(hhhj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj_'ubj )}(hcycleh]hcycle}(hhhj'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}(hhhj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj'ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj'modnameN classnameNjSjV)}jY]jl&c.vme_master_requestasbuh1hhj'ubj )}(h h]h }(hhhj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj'ubj )}(hdwidthh]hdwidth}(hhhj'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 uh1j j j hj)&hhhj>&hMubah}(h]j$&ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj&&hhubj )}(hhh]h)}(h%Request a VME master window resource.h]h%Request a VME master window resource.}(hj(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 uh1jx hhhjV 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}(hhhj)(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!(ubjP )}(hhh](jU )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j[ )}(h``struct vme_dev *vdev``h]h)}(hjF(h]hstruct vme_dev *vdev}(hhhjH(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD(ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj@(ubju )}(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.}(hja(hj_(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[(hMhj\(ubah}(h]h ]h"]h$]h&]uh1jt hj@(ubeh}(h]h ]h"]h$]h&]uh1jT hj[(hMhj=(ubjU )}(h,``u32 address`` Required VME address space. h](j[ )}(h``u32 address``h]h)}(hj(h]h u32 address}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}(ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjy(ubju )}(hhh]h)}(hRequired VME address space.h]hRequired VME address space.}(hj(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1jt hjy(ubeh}(h]h ]h"]h$]h&]uh1jT hj(hMhj=(ubjU )}(h5``u32 cycle`` Required VME data transfer cycle type. h](j[ )}(h ``u32 cycle``h]h)}(hj(h]h u32 cycle}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj(ubju )}(hhh]h)}(h&Required VME data transfer cycle type.h]h&Required VME data transfer cycle type.}(hj(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1jt hj(ubeh}(h]h ]h"]h$]h&]uh1jT hj(hMhj=(ubjU )}(h1``u32 dwidth`` Required VME data transfer width. h](j[ )}(h``u32 dwidth``h]h)}(hj(h]h u32 dwidth}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj(ubju )}(hhh]h)}(h!Required VME data transfer width.h]h!Required VME data transfer width.}(hj )hj )hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hMhj)ubah}(h]h ]h"]h$]h&]uh1jt hj(ubeh}(h]h ]h"]h$]h&]uh1jT hj)hMhj=(ubeh}(h]h ]h"]h$]h&]uh1jO hj!(ubh)}(h**Description**h]j )}(hj,)h]h Description}(hhhj.)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.}(hjD)hjB)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 )}(hjS)h]hReturn}(hhhjU)hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQ)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.}(hjk)hji)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 hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_set (C function)c.vme_master_sethNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hint vme_master_set (struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, u32 aspace, u32 cycle, u32 dwidth)h]j )}(hint vme_master_set(struct vme_resource *resource, int enabled, unsigned long long vme_base, unsigned long long size, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hinth]hint}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)hhhj)hMubj )}(hvme_master_seth]j )}(hvme_master_seth]hvme_master_set}(hhhj)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 )}(hj h]hstruct}(hhhj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)ubj )}(h h]h }(hhhj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj)modnameN classnameNjSjV)}jY]j\)}jOj)sbc.vme_master_setasbuh1hhj)ubj )}(h h]h }(hhhj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hhhj!*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj )}(hresourceh]hresource}(hhhj.*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(h int enabledh](j)}(hinth]hint}(hhhjG*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC*ubj )}(h h]h }(hhhjU*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjC*ubj )}(henabledh]henabled}(hhhjc*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjC*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(hunsigned long long vme_baseh](j)}(hunsignedh]hunsigned}(hhhj|*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx*ubj )}(h h]h }(hhhj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjx*ubj)}(hlongh]hlong}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx*ubj )}(h h]h }(hhhj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjx*ubj)}(hlongh]hlong}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx*ubj )}(h h]h }(hhhj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjx*ubj )}(hvme_baseh]hvme_base}(hhhj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjx*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(hunsigned long long sizeh](j)}(hunsignedh]hunsigned}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj )}(h h]h }(hhhj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*ubj)}(hlongh]hlong}(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj )}(h h]h }(hhhj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*ubj)}(hlongh]hlong}(hhhj!+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj )}(h h]h }(hhhj/+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*ubj )}(hsizeh]hsize}(hhhj=+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}(hhhjY+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjV+ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj[+modnameN classnameNjSjV)}jY]j*c.vme_master_setasbuh1hhjR+ubj )}(h h]h }(hhhjw+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjR+ubj )}(haspaceh]haspace}(hhhj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjR+ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hhhj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj+modnameN classnameNjSjV)}jY]j*c.vme_master_setasbuh1hhj+ubj )}(h h]h }(hhhj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+ubj )}(hcycleh]hcycle}(hhhj+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}(hhhj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj+modnameN classnameNjSjV)}jY]j*c.vme_master_setasbuh1hhj+ubj )}(h h]h }(hhhj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+ubj )}(hdwidthh]hdwidth}(hhhj,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 uh1j j j hj)hhhj)hMubah}(h]j)ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj)hhubj )}(hhh]h)}(h$Set VME master window configuration.h]h$Set VME master window configuration.}(hjB,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 jX,j jX,j uh1jx hhhjV 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 )}(hjb,h]h Parameters}(hhhjd,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\,ubjP )}(hhh](jU )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hj,h]hstruct vme_resource *resource}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj{,ubju )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj,hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1jt hj{,ubeh}(h]h ]h"]h$]h&]uh1jT hj,hMhjx,ubjU )}(h@``int enabled`` State to which the window should be configured. h](j[ )}(h``int enabled``h]h)}(hj,h]h int enabled}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubju )}(hhh]h)}(h/State to which the window should be configured.h]h/State to which the window should be configured.}(hj,hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1jt hj,ubeh}(h]h ]h"]h$]h&]uh1jT hj,hMhjx,ubjU )}(h=``unsigned long long vme_base`` Base address for the window. h](j[ )}(h``unsigned long long vme_base``h]h)}(hj,h]hunsigned long long vme_base}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,ubju )}(hhh]h)}(hBase address for the window.h]hBase address for the window.}(hj-hj -hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj -ubah}(h]h ]h"]h$]h&]uh1jt hj,ubeh}(h]h ]h"]h$]h&]uh1jT hj-hMhjx,ubjU )}(h4``unsigned long long size`` Size of the VME window. h](j[ )}(h``unsigned long long size``h]h)}(hj,-h]hunsigned long long size}(hhhj.-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*-ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj&-ubju )}(hhh]h)}(hSize of the VME window.h]hSize of the VME window.}(hjG-hjE-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA-hMhjB-ubah}(h]h ]h"]h$]h&]uh1jt hj&-ubeh}(h]h ]h"]h$]h&]uh1jT hjA-hMhjx,ubjU )}(h5``u32 aspace`` VME address space for the VME window. h](j[ )}(h``u32 aspace``h]h)}(hje-h]h u32 aspace}(hhhjg-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc-ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj_-ubju )}(hhh]h)}(h%VME address space for the VME window.h]h%VME address space for the VME window.}(hj-hj~-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz-hMhj{-ubah}(h]h ]h"]h$]h&]uh1jt hj_-ubeh}(h]h ]h"]h$]h&]uh1jT hjz-hMhjx,ubjU )}(h?``u32 cycle`` VME data transfer cycle type for the VME window. h](j[ )}(h ``u32 cycle``h]h)}(hj-h]h u32 cycle}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-ubju )}(hhh]h)}(h0VME data transfer cycle type for the VME window.h]h0VME data transfer cycle type for the VME window.}(hj-hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jt hj-ubeh}(h]h ]h"]h$]h&]uh1jT hj-hMhjx,ubjU )}(h;``u32 dwidth`` VME data transfer width for the VME window. h](j[ )}(h``u32 dwidth``h]h)}(hj-h]h u32 dwidth}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj-ubju )}(hhh]h)}(h+VME data transfer width for the VME window.h]h+VME data transfer width for the VME window.}(hj-hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jt hj-ubeh}(h]h ]h"]h$]h&]uh1jT hj-hMhjx,ubeh}(h]h ]h"]h$]h&]uh1jO hj\,ubh)}(h**Description**h]j )}(hj.h]h Description}(hhhj.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)}(h1Set configuration for provided VME master window.h]h1Set configuration for provided VME master window.}(hj*.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\,ubh)}(h **Return**h]j )}(hj9.h]hReturn}(hhhj;.hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7.ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj\,ubjP )}(hhh]jU )}(hZero on success, -EINVAL if operation is not supported on this device, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h](j[ )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hjX.hjV.hhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjR.ubju )}(hhh]h)}(hdevice, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.h]hdevice, if an invalid resource has been provided or invalid attributes are provided. Hardware specific errors may also be returned.}(hjj.hjh.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hje.ubah}(h]h ]h"]h$]h&]uh1jt hjR.ubeh}(h]h ]h"]h$]h&]uh1jT hjd.hM hjO.ubah}(h]h ]h"]h$]h&]uh1jO hj\,ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_get (C function)c.vme_master_gethNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hint vme_master_get (struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, u32 *aspace, u32 *cycle, u32 *dwidth)h]j )}(hint vme_master_get(struct vme_resource *resource, int *enabled, unsigned long long *vme_base, unsigned long long *size, u32 *aspace, u32 *cycle, u32 *dwidth)h](j)}(hinth]hint}(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM6ubj )}(h h]h }(hhhj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.hhhj.hM6ubj )}(hvme_master_geth]j )}(hvme_master_geth]hvme_master_get}(hhhj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj.hhhj.hM6ubj)}(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 )}(hj h]hstruct}(hhhj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubj )}(h h]h }(hhhj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj/modnameN classnameNjSjV)}jY]j\)}jOj.sbc.vme_master_getasbuh1hhj.ubj )}(h h]h }(hhhj$/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hhhj2/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj )}(hresourceh]hresource}(hhhj?/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h int *enabledh](j)}(hinth]hint}(hhhjX/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT/ubj )}(h h]h }(hhhjf/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjT/ubj)}(hjh]h*}(hhhjt/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT/ubj )}(henabledh]henabled}(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjT/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(hunsigned long long *vme_baseh](j)}(hunsignedh]hunsigned}(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj )}(h h]h }(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubj)}(hlongh]hlong}(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj )}(h h]h }(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubj)}(hlongh]hlong}(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj )}(h h]h }(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj )}(hvme_baseh]hvme_base}(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(hunsigned long long *sizeh](j)}(hunsignedh]hunsigned}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(h h]h }(hhhj"0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubj)}(hlongh]hlong}(hhhj00hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(h h]h }(hhhj>0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubj)}(hlongh]hlong}(hhhjL0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(h h]h }(hhhjZ0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hhhjh0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(hsizeh]hsize}(hhhju0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *aspaceh](h)}(hhh]j )}(hu32h]hu32}(hhhj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj0modnameN classnameNjSjV)}jY]j /c.vme_master_getasbuh1hhj0ubj )}(h h]h }(hhhj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(haspaceh]haspace}(hhhj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *cycleh](h)}(hhh]j )}(hu32h]hu32}(hhhj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj0modnameN classnameNjSjV)}jY]j /c.vme_master_getasbuh1hhj0ubj )}(h h]h }(hhhj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj )}(hcycleh]hcycle}(hhhj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubj)}(h u32 *dwidthh](h)}(hhh]j )}(hu32h]hu32}(hhhj;1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj81ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj=1modnameN classnameNjSjV)}jY]j /c.vme_master_getasbuh1hhj41ubj )}(h h]h }(hhhjY1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj41ubj)}(hjh]h*}(hhhjg1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj41ubj )}(hdwidthh]hdwidth}(hhhjt1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj41ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubeh}(h]h ]h"]h$]h&]jjuh1jhj.hhhj.hM6ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj.hhhj.hM6ubah}(h]j.ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMChj.hhubj )}(hhh]h)}(h)Retrieve VME master window configuration.h]h)Retrieve VME master window configuration.}(hj1hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM5hj1hhubah}(h]h ]h"]h$]h&]uh1j hj.hhhj.hM6ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j1j j1j uh1jx hhhjV 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 )}(hj1h]h Parameters}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj1ubjP )}(hhh](jU )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hj1h]hstruct vme_resource *resource}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM6hj1ubju )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj1hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM6hj1ubah}(h]h ]h"]h$]h&]uh1jt hj1ubeh}(h]h ]h"]h$]h&]uh1jT hj1hM6hj1ubjU )}(h8``int *enabled`` Pointer to variable for storing state. h](j[ )}(h``int *enabled``h]h)}(hj2h]h int *enabled}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM7hj2ubju )}(hhh]h)}(h&Pointer to variable for storing state.h]h&Pointer to variable for storing state.}(hj42hj22hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.2hM7hj/2ubah}(h]h ]h"]h$]h&]uh1jt hj2ubeh}(h]h ]h"]h$]h&]uh1jT hj.2hM7hj1ubjU )}(hV``unsigned long long *vme_base`` Pointer to variable for storing window base address. h](j[ )}(h ``unsigned long long *vme_base``h]h)}(hjR2h]hunsigned long long *vme_base}(hhhjT2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjP2ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM8hjL2ubju )}(hhh]h)}(h4Pointer to variable for storing window base address.h]h4Pointer to variable for storing window base address.}(hjm2hjk2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg2hM8hjh2ubah}(h]h ]h"]h$]h&]uh1jt hjL2ubeh}(h]h ]h"]h$]h&]uh1jT hjg2hM8hj1ubjU )}(hJ``unsigned long long *size`` Pointer to variable for storing window size. h](j[ )}(h``unsigned long long *size``h]h)}(hj2h]hunsigned long long *size}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hj2ubju )}(hhh]h)}(h,Pointer to variable for storing window size.h]h,Pointer to variable for storing window size.}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM9hj2ubah}(h]h ]h"]h$]h&]uh1jt hj2ubeh}(h]h ]h"]h$]h&]uh1jT hj2hM9hj1ubjU )}(hC``u32 *aspace`` Pointer to variable for storing VME address space. h](j[ )}(h``u32 *aspace``h]h)}(hj2h]h u32 *aspace}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM:hj2ubju )}(hhh]h)}(h2Pointer to variable for storing VME address space.h]h2Pointer to variable for storing VME address space.}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM:hj2ubah}(h]h ]h"]h$]h&]uh1jt hj2ubeh}(h]h ]h"]h$]h&]uh1jT hj2hM:hj1ubjU )}(hM``u32 *cycle`` Pointer to variable for storing VME data transfer cycle type. h](j[ )}(h``u32 *cycle``h]h)}(hj2h]h u32 *cycle}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM;hj2ubju )}(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.}(hj3hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hM;hj3ubah}(h]h ]h"]h$]h&]uh1jt hj2ubeh}(h]h ]h"]h$]h&]uh1jT hj3hM;hj1ubjU )}(hI``u32 *dwidth`` Pointer to variable for storing VME data transfer width. h](j[ )}(h``u32 *dwidth``h]h)}(hj63h]h u32 *dwidth}(hhhj83hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj43ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM<hj03ubju )}(hhh]h)}(h8Pointer to variable for storing VME data transfer width.h]h8Pointer to variable for storing VME data transfer width.}(hjQ3hjO3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK3hM<hjL3ubah}(h]h ]h"]h$]h&]uh1jt hj03ubeh}(h]h ]h"]h$]h&]uh1jT hjK3hM<hj1ubeh}(h]h ]h"]h$]h&]uh1jO hj1ubh)}(h**Description**h]j )}(hjq3h]h Description}(hhhjs3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjo3ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM>hj1ubh)}(h4Return configuration for provided VME master window.h]h4Return configuration for provided VME master window.}(hj3hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM>hj1ubh)}(h **Return**h]j )}(hj3h]hReturn}(hhhj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj3ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM@hj1ubjP )}(hhh]jU )}(hrZero on success, -EINVAL if operation is not supported on this device or if an invalid resource has been provided.h](j[ )}(h>Zero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hj3hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM@hj3ubju )}(hhh]h)}(h3device or if an invalid resource has been provided.h]h3device or if an invalid resource has been provided.}(hj3hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMAhj3ubah}(h]h ]h"]h$]h&]uh1jt hj3ubeh}(h]h ]h"]h$]h&]uh1jT hj3hM@hj3ubah}(h]h ]h"]h$]h&]uh1jO hj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_read (C function)c.vme_master_readhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h_ssize_t vme_master_read (struct vme_resource *resource, void *buf, size_t count, loff_t offset)h]j )}(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}(hhhj 4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj 4modnameN classnameNjSjV)}jY]j\)}jOvme_master_readsbc.vme_master_readasbuh1hhj4hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM]ubj )}(h h]h }(hhhj-4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4hhhj,4hM]ubj )}(hvme_master_readh]j )}(hj)4h]hvme_master_read}(hhhj?4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;4ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj4hhhj,4hM]ubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjZ4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjV4ubj )}(h h]h }(hhhjg4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjV4ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjx4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hju4ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjz4modnameN classnameNjSjV)}jY]j'4c.vme_master_readasbuh1hhjV4ubj )}(h h]h }(hhhj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjV4ubj)}(hjh]h*}(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV4ubj )}(hresourceh]hresource}(hhhj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjV4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjR4ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj )}(h h]h }(hhhj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj )}(hbufh]hbuf}(hhhj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjR4ubj)}(h size_t counth](h)}(hhh]j )}(hsize_th]hsize_t}(hhhj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj 5ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj5modnameN classnameNjSjV)}jY]j'4c.vme_master_readasbuh1hhj5ubj )}(h h]h }(hhhj-5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj5ubj )}(hcounth]hcount}(hhhj;5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj5ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjR4ubj)}(h loff_t offseth](h)}(hhh]j )}(hloff_th]hloff_t}(hhhjW5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjT5ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjY5modnameN classnameNjSjV)}jY]j'4c.vme_master_readasbuh1hhjP5ubj )}(h h]h }(hhhju5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjP5ubj )}(hoffseth]hoffset}(hhhj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjP5ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjR4ubeh}(h]h ]h"]h$]h&]jjuh1jhj4hhhj,4hM]ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj4hhhj,4hM]ubah}(h]j3ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMjhj3hhubj )}(hhh]h)}(h'Read data from VME space into a buffer.h]h'Read data from VME space into a buffer.}(hj5hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hj5hhubah}(h]h ]h"]h$]h&]uh1j hj3hhhj,4hM]ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j5j j5j uh1jx hhhjV hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``void *buf`` Pointer to buffer where data should be transferred. ``size_t count`` Number of bytes to transfer. ``loff_t offset`` Offset into VME master window at which to start transfer. **Description** Perform read of count bytes of data from location on VME bus which maps into the VME master window at offset to buf. **Return** Number of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj5h]h Parameters}(hhhj5hhhNhNubah}(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`hj5ubjP )}(hhh](jU )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hj5h]hstruct vme_resource *resource}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM]hj5ubju )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hj 6hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hM]hj6ubah}(h]h ]h"]h$]h&]uh1jt hj5ubeh}(h]h ]h"]h$]h&]uh1jT hj6hM]hj5ubjU )}(hB``void *buf`` Pointer to buffer where data should be transferred. h](j[ )}(h ``void *buf``h]h)}(hj(6h]h void *buf}(hhhj*6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&6ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj"6ubju )}(hhh]h)}(h3Pointer to buffer where data should be transferred.h]h3Pointer to buffer where data should be transferred.}(hjC6hjA6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=6hM^hj>6ubah}(h]h ]h"]h$]h&]uh1jt hj"6ubeh}(h]h ]h"]h$]h&]uh1jT hj=6hM^hj5ubjU )}(h.``size_t count`` Number of bytes to transfer. h](j[ )}(h``size_t count``h]h)}(hja6h]h size_t count}(hhhjc6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_6ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM_hj[6ubju )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj|6hjz6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjv6hM_hjw6ubah}(h]h ]h"]h$]h&]uh1jt hj[6ubeh}(h]h ]h"]h$]h&]uh1jT hjv6hM_hj5ubjU )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j[ )}(h``loff_t offset``h]h)}(hj6h]h loff_t offset}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM`hj6ubju )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hj6hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hM`hj6ubah}(h]h ]h"]h$]h&]uh1jt hj6ubeh}(h]h ]h"]h$]h&]uh1jT hj6hM`hj5ubeh}(h]h ]h"]h$]h&]uh1jO hj5ubh)}(h**Description**h]j )}(hj6h]h Description}(hhhj6hhhNhNubah}(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.chMbhj5ubh)}(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.}(hj6hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMbhj5ubh)}(h **Return**h]j )}(hj6h]hReturn}(hhhj6hhhNhNubah}(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.chMehj5ubjP )}(hhh]jU )}(hNumber of bytes read, -EINVAL if resource is not a VME master resource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](j[ )}(h=Number of bytes read, -EINVAL if resource is not a VME masterh]h=Number of bytes read, -EINVAL if resource is not a VME master}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMghj7ubju )}(hhh]h)}(hresource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hresource or read operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.}(hj-7hj+7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMfhj(7ubah}(h]h ]h"]h$]h&]uh1jt hj7ubeh}(h]h ]h"]h$]h&]uh1jT hj'7hMghj7ubah}(h]h ]h"]h$]h&]uh1jO hj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_write (C function)c.vme_master_writehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h`ssize_t vme_master_write (struct vme_resource *resource, void *buf, size_t count, loff_t offset)h]j )}(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}(hhhjo7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjl7ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjq7modnameN classnameNjSjV)}jY]j\)}jOvme_master_writesbc.vme_master_writeasbuh1hhjh7hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjh7hhhj7hMubj )}(hvme_master_writeh]j )}(hj7h]hvme_master_write}(hhhj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubah}(h]h ](j j eh"]h$]h&]jjuh1j hjh7hhhj7hMubj)}(hG(struct vme_resource *resource, void *buf, size_t count, loff_t offset)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubj )}(h h]h }(hhhj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj7modnameN classnameNjSjV)}jY]j7c.vme_master_writeasbuh1hhj7ubj )}(h h]h }(hhhj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj )}(hresourceh]hresource}(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(h void *bufh](j)}(hvoidh]hvoid}(hhhj.8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*8ubj )}(h h]h }(hhhj<8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*8ubj)}(hjh]h*}(hhhjJ8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*8ubj )}(hbufh]hbuf}(hhhjW8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj*8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(h size_t counth](h)}(hhh]j )}(hsize_th]hsize_t}(hhhjs8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjp8ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetju8modnameN classnameNjSjV)}jY]j7c.vme_master_writeasbuh1hhjl8ubj )}(h h]h }(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjl8ubj )}(hcounth]hcount}(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjl8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(h loff_t offseth](h)}(hhh]j )}(hloff_th]hloff_t}(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj8ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj8modnameN classnameNjSjV)}jY]j7c.vme_master_writeasbuh1hhj8ubj )}(h h]h }(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj8ubj )}(hoffseth]hoffset}(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubeh}(h]h ]h"]h$]h&]jjuh1jhjh7hhhj7hMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjd7hhhj7hMubah}(h]j_7ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhja7hhubj )}(hhh]h)}(h*Write data out to VME space from a buffer.h]h*Write data out to VME space from a buffer.}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9hhubah}(h]h ]h"]h$]h&]uh1j hja7hhhj7hMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j*9j j*9j uh1jx hhhjV hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``void *buf`` Pointer to buffer holding data to transfer. ``size_t count`` Number of bytes to transfer. ``loff_t offset`` Offset into VME master window at which to start transfer. **Description** Perform write of count bytes of data from buf to location on VME bus which maps into the VME master window at offset. **Return** Number of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj49h]h Parameters}(hhhj69hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj29ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj.9ubjP )}(hhh](jU )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjS9h]hstruct vme_resource *resource}(hhhjU9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ9ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjM9ubju )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hjn9hjl9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh9hMhji9ubah}(h]h ]h"]h$]h&]uh1jt hjM9ubeh}(h]h ]h"]h$]h&]uh1jT hjh9hMhjJ9ubjU )}(h:``void *buf`` Pointer to buffer holding data to transfer. h](j[ )}(h ``void *buf``h]h)}(hj9h]h void *buf}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9ubju )}(hhh]h)}(h+Pointer to buffer holding data to transfer.h]h+Pointer to buffer holding data to transfer.}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jt hj9ubeh}(h]h ]h"]h$]h&]uh1jT hj9hMhjJ9ubjU )}(h.``size_t count`` Number of bytes to transfer. h](j[ )}(h``size_t count``h]h)}(hj9h]h size_t count}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9ubju )}(hhh]h)}(hNumber of bytes to transfer.h]hNumber of bytes to transfer.}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jt hj9ubeh}(h]h ]h"]h$]h&]uh1jT hj9hMhjJ9ubjU )}(hL``loff_t offset`` Offset into VME master window at which to start transfer. h](j[ )}(h``loff_t offset``h]h)}(hj9h]h loff_t offset}(hhhj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj9ubju )}(hhh]h)}(h9Offset into VME master window at which to start transfer.h]h9Offset into VME master window at which to start transfer.}(hj:hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1jt hj9ubeh}(h]h ]h"]h$]h&]uh1jT hj:hMhjJ9ubeh}(h]h ]h"]h$]h&]uh1jO hj.9ubh)}(h**Description**h]j )}(hj9:h]h Description}(hhhj;:hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7:ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj.9ubh)}(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.}(hjQ:hjO:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj.9ubh)}(h **Return**h]j )}(hj`:h]hReturn}(hhhjb: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.9ubjP )}(hhh]jU )}(hNumber of bytes written, -EINVAL if resource is not a VME master resource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h](j[ )}(h@Number of bytes written, -EINVAL if resource is not a VME masterh]h@Number of bytes written, -EINVAL if resource is not a VME master}(hj:hj}:hhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjy:ubju )}(hhh]h)}(hresource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.h]hresource or write operation is not supported. -EFAULT returned if invalid offset is provided. Hardware specific errors may also be returned.}(hj:hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj:ubah}(h]h ]h"]h$]h&]uh1jt hjy:ubeh}(h]h ]h"]h$]h&]uh1jT hj:hMhjv:ubah}(h]h ]h"]h$]h&]uh1jO hj.9ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_rmw (C function)c.vme_master_rmwhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hunsigned int vme_master_rmw (struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h]j )}(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}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj:hhhj:hMubj)}(hinth]hint}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhj:hMubj )}(h h]h }(hhhj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj:hhhj:hMubj )}(hvme_master_rmwh]j )}(hvme_master_rmwh]hvme_master_rmw}(hhhj ;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj ;ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj:hhhj:hMubj)}(hj(struct vme_resource *resource, unsigned int mask, unsigned int compare, unsigned int swap, loff_t offset)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhj);hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%;ubj )}(h h]h }(hhhj6;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%;ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjG;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjD;ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjI;modnameN classnameNjSjV)}jY]j\)}jOj;sbc.vme_master_rmwasbuh1hhj%;ubj )}(h h]h }(hhhjg;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%;ubj)}(hjh]h*}(hhhju;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%;ubj )}(hresourceh]hresource}(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj!;ubj)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj )}(h h]h }(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;ubj)}(hinth]hint}(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj )}(h h]h }(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;ubj )}(hmaskh]hmask}(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj!;ubj)}(hunsigned int compareh](j)}(hunsignedh]hunsigned}(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj )}(h h]h }(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;ubj)}(hinth]hint}(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj )}(h h]h }(hhhj<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;ubj )}(hcompareh]hcompare}(hhhj$<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj!;ubj)}(hunsigned int swaph](j)}(hunsignedh]hunsigned}(hhhj=<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9<ubj )}(h h]h }(hhhjK<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj9<ubj)}(hinth]hint}(hhhjY<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9<ubj )}(h h]h }(hhhjg<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj9<ubj )}(hswaph]hswap}(hhhju<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj9<ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj!;ubj)}(h loff_t offseth](h)}(hhh]j )}(hloff_th]hloff_t}(hhhj<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj<ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj<modnameN classnameNjSjV)}jY]jc;c.vme_master_rmwasbuh1hhj<ubj )}(h h]h }(hhhj<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj<ubj )}(hoffseth]hoffset}(hhhj<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 uh1j j j hj:hhhj:hMubah}(h]j:ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj:hhubj )}(hhh]h)}(h Perform read-modify-write cycle.h]h Perform read-modify-write cycle.}(hj<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 uh1jx hhhjV hNhNubj )}(hX]**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``unsigned int mask`` Bits to be compared and swapped in operation. ``unsigned int compare`` Bits to be compared with data read from offset. ``unsigned int swap`` Bits to be swapped in data read from offset. ``loff_t offset`` Offset into VME master window at which to perform operation. **Description** Perform read-modify-write cycle on provided location: - Location on VME bus is read. - Bits selected by mask are compared with compare. - Where a selected bit matches that in compare and are selected in swap, the bit is swapped. - Result written back to location on VME bus. **Return** Bytes written on success, -EINVAL if resource is not a VME master resource or RMW operation is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hj =h]h Parameters}(hhhj =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=ubjP )}(hhh](jU )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hj)=h]hstruct vme_resource *resource}(hhhj+=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'=ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj#=ubju )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hjD=hjB=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>=hMhj?=ubah}(h]h ]h"]h$]h&]uh1jt hj#=ubeh}(h]h ]h"]h$]h&]uh1jT hj>=hMhj =ubjU )}(hD``unsigned int mask`` Bits to be compared and swapped in operation. h](j[ )}(h``unsigned int mask``h]h)}(hjb=h]hunsigned int mask}(hhhjd=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`=ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj\=ubju )}(hhh]h)}(h-Bits to be compared and swapped in operation.h]h-Bits to be compared and swapped in operation.}(hj}=hj{=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw=hMhjx=ubah}(h]h ]h"]h$]h&]uh1jt hj\=ubeh}(h]h ]h"]h$]h&]uh1jT hjw=hMhj =ubjU )}(hI``unsigned int compare`` Bits to be compared with data read from offset. h](j[ )}(h``unsigned int compare``h]h)}(hj=h]hunsigned int compare}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj=ubju )}(hhh]h)}(h/Bits to be compared with data read from offset.h]h/Bits to be compared with data read from offset.}(hj=hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jt hj=ubeh}(h]h ]h"]h$]h&]uh1jT hj=hMhj =ubjU )}(hC``unsigned int swap`` Bits to be swapped in data read from offset. h](j[ )}(h``unsigned int swap``h]h)}(hj=h]hunsigned int swap}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj=ubju )}(hhh]h)}(h,Bits to be swapped in data read from offset.h]h,Bits to be swapped in data read from offset.}(hj=hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jt hj=ubeh}(h]h ]h"]h$]h&]uh1jT hj=hMhj =ubjU )}(hO``loff_t offset`` Offset into VME master window at which to perform operation. h](j[ )}(h``loff_t offset``h]h)}(hj >h]h loff_t offset}(hhhj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj >ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubju )}(hhh]h)}(hhj&>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj">hMhj#>ubah}(h]h ]h"]h$]h&]uh1jt hj>ubeh}(h]h ]h"]h$]h&]uh1jT hj">hMhj =ubeh}(h]h ]h"]h$]h&]uh1jO hj=ubh)}(h**Description**h]j )}(hjH>h]h Description}(hhhjJ>hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjF>ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj=ubh)}(hXPerform read-modify-write cycle on provided location: - Location on VME bus is read. - Bits selected by mask are compared with compare. - Where a selected bit matches that in compare and are selected in swap, the bit is swapped. - Result written back to location on VME bus.h]hXPerform read-modify-write cycle on provided location: - Location on VME bus is read. - Bits selected by mask are compared with compare. - Where a selected bit matches that in compare and are selected in swap, the bit is swapped. - Result written back to location on VME bus.}(hj`>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 )}(hjo>h]hReturn}(hhhjq>hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjm>ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj=ubjP )}(hhh]jU )}(hBytes written on success, -EINVAL if resource is not a VME master resource or RMW operation is not supported. Hardware specific errors may also be returned.h](j[ )}(hABytes written on success, -EINVAL if resource is not a VME masterh]hABytes written on success, -EINVAL if resource is not a VME master}(hj>hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>ubju )}(hhh]h)}(hZresource or RMW operation is not supported. Hardware specific errors may also be returned.h]hZresource or RMW operation is not supported. Hardware specific errors may also be returned.}(hj>hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jt hj>ubeh}(h]h ]h"]h$]h&]uh1jT hj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jO hj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_mmap (C function)c.vme_master_mmaphNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hOint vme_master_mmap (struct vme_resource *resource, struct vm_area_struct *vma)h]j )}(hNint vme_master_mmap(struct vme_resource *resource, struct vm_area_struct *vma)h](j)}(hinth]hint}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj>hhhj>hMubj )}(hvme_master_mmaph]j )}(hvme_master_mmaph]hvme_master_mmap}(hhhj>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, struct vm_area_struct *vma)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubj )}(h h]h }(hhhj(?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhj9?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj6?ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj;?modnameN classnameNjSjV)}jY]j\)}jOj?sbc.vme_master_mmapasbuh1hhj?ubj )}(h h]h }(hhhjY?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hhhjg?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj )}(hresourceh]hresource}(hhhjt?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj?ubj)}(hstruct vm_area_struct *vmah](j )}(hj h]hstruct}(hhhj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubj )}(h h]h }(hhhj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubh)}(hhh]j )}(hvm_area_structh]hvm_area_struct}(hhhj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj?modnameN classnameNjSjV)}jY]jU?c.vme_master_mmapasbuh1hhj?ubj )}(h h]h }(hhhj?hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj )}(hvmah]hvma}(hhhj?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 uh1j j j hj>hhhj>hMubah}(h]j>ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>hhubj )}(hhh]h)}(h!Mmap region of VME master window.h]h!Mmap region of VME master window.}(hj@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 uh1jx hhhjV hNhNubj )}(hX**Parameters** ``struct vme_resource *resource`` Pointer to VME master resource. ``struct vm_area_struct *vma`` Pointer to definition of user mapping. **Description** Memory map a region of the VME master window into user space. **Return** Zero on success, -EINVAL if resource is not a VME master resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.h](h)}(h**Parameters**h]j )}(hj1@h]h Parameters}(hhhj3@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+@ubjP )}(hhh](jU )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjP@h]hstruct vme_resource *resource}(hhhjR@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjN@ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJ@ubju )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hjk@hji@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje@hMhjf@ubah}(h]h ]h"]h$]h&]uh1jt hjJ@ubeh}(h]h ]h"]h$]h&]uh1jT hje@hMhjG@ubjU )}(hF``struct vm_area_struct *vma`` Pointer to definition of user mapping. h](j[ )}(h``struct vm_area_struct *vma``h]h)}(hj@h]hstruct vm_area_struct *vma}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj@ubju )}(hhh]h)}(h&Pointer to definition of user mapping.h]h&Pointer to definition of user mapping.}(hj@hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jt hj@ubeh}(h]h ]h"]h$]h&]uh1jT hj@hMhjG@ubeh}(h]h ]h"]h$]h&]uh1jO hj+@ubh)}(h**Description**h]j )}(hj@h]h Description}(hhhj@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.}(hj@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}(hhhj@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+@ubjP )}(hhh]jU )}(hZero on success, -EINVAL if resource is not a VME master resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.h](j[ )}(h8Zero on success, -EINVAL if resource is not a VME masterh]h8Zero on success, -EINVAL if resource is not a VME master}(hj AhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjAubju )}(hhh]h)}(h_resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.h]h_resource or -EFAULT if map exceeds window size. Other generic mmap errors may also be returned.}(hjAhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jt hjAubeh}(h]h ]h"]h$]h&]uh1jT hjAhMhjAubah}(h]h ]h"]h$]h&]uh1jO hj+@ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_master_free (C function)c.vme_master_freehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h4void vme_master_free (struct vme_resource *resource)h]j )}(h3void vme_master_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hhhjZAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVAhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM ubj )}(h h]h }(hhhjiAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVAhhhjhAhM ubj )}(hvme_master_freeh]j )}(hvme_master_freeh]hvme_master_free}(hhhj{AhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjwAubah}(h]h ](j j eh"]h$]h&]jjuh1j hjVAhhhjhAhM ubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubj )}(h h]h }(hhhjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjAmodnameN classnameNjSjV)}jY]j\)}jOj}Asbc.vme_master_freeasbuh1hhjAubj )}(h h]h }(hhhjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubj)}(hjh]h*}(hhhjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj )}(hresourceh]hresource}(hhhjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjAubah}(h]h ]h"]h$]h&]jjuh1jhjVAhhhjhAhM ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjRAhhhjhAhM ubah}(h]jMAah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjOAhhubj )}(hhh]h)}(hFree VME master windowh]hFree VME master window}(hjBhjBhhhNhNubah}(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 hjOAhhhjhAhM ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j3Bj j3Bj uh1jx hhhjV 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=Bh]h Parameters}(hhhj?BhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;Bubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj7BubjP )}(hhh]jU )}(hB``struct vme_resource *resource`` Pointer to VME master resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hj\Bh]hstruct vme_resource *resource}(hhhj^BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZBubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjVBubju )}(hhh]h)}(hPointer to VME master resource.h]hPointer to VME master resource.}(hjwBhjuBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqBhM hjrBubah}(h]h ]h"]h$]h&]uh1jt hjVBubeh}(h]h ]h"]h$]h&]uh1jT hjqBhM hjSBubah}(h]h ]h"]h$]h&]uh1jO hj7Bubh)}(h**Description**h]j )}(hjBh]h Description}(hhhjBhhhNhNubah}(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.chMhj7Bubh)}(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.}(hjBhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj7Bubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_dma_request (C function)c.vme_dma_requesthNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hGstruct vme_resource * vme_dma_request (struct vme_dev *vdev, u32 route)h]j )}(hEstruct vme_resource *vme_dma_request(struct vme_dev *vdev, u32 route)h](j )}(hj h]hstruct}(hhhjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM1ubj )}(h h]h }(hhhjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBhhhjBhM1ubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjBmodnameN classnameNjSjV)}jY]j\)}jOvme_dma_requestsbc.vme_dma_requestasbuh1hhjBhhhjBhM1ubj )}(h h]h }(hhhjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjBhhhjBhM1ubj)}(hjh]h*}(hhhj*ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjBhM1ubj )}(hvme_dma_requesth]j )}(hjCh]hvme_dma_request}(hhhj;ChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7Cubah}(h]h ](j j eh"]h$]h&]jjuh1j hjBhhhjBhM1ubj)}(h!(struct vme_dev *vdev, u32 route)h](j)}(hstruct vme_dev *vdevh](j )}(hj h]hstruct}(hhhjVChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjRCubj )}(h h]h }(hhhjcChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjRCubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhjtChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjqCubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjvCmodnameN classnameNjSjV)}jY]jCc.vme_dma_requestasbuh1hhjRCubj )}(h h]h }(hhhjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjRCubj)}(hjh]h*}(hhhjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRCubj )}(hvdevh]hvdev}(hhhjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjRCubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjNCubj)}(h u32 routeh](h)}(hhh]j )}(hu32h]hu32}(hhhjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjCubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjCmodnameN classnameNjSjV)}jY]jCc.vme_dma_requestasbuh1hhjCubj )}(h h]h }(hhhjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjCubj )}(hrouteh]hroute}(hhhjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjCubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjNCubeh}(h]h ]h"]h$]h&]jjuh1jhjBhhhjBhM1ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjBhhhjBhM1ubah}(h]jBah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM9hjBhhubj )}(hhh]h)}(hRequest a DMA controller.h]hRequest a DMA controller.}(hj"Dhj DhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM0hjDhhubah}(h]h ]h"]h$]h&]uh1j hjBhhhjBhM1ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j8Dj j8Dj uh1jx hhhjV hNhNubj )}(hXo**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``u32 route`` Required src/destination combination. **Description** Request a VME DMA controller with capability to perform transfers bewteen requested source/destination combination. **Return** Pointer to VME DMA resource on success, NULL on failure.h](h)}(h**Parameters**h]j )}(hjBDh]h Parameters}(hhhjDDhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj@Dubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM4hjstruct vme_dma_attr *vme_dma_pci_attribute(dma_addr_t address)h](j )}(hj h]hstruct}(hhhjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIhhhjIhMubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hhhjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjImodnameN classnameNjSjV)}jY]j\)}jOvme_dma_pci_attributesbc.vme_dma_pci_attributeasbuh1hhjIhhhjIhMubj )}(h h]h }(hhhjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIhhhjIhMubj)}(hjh]h*}(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhjIhMubj )}(hvme_dma_pci_attributeh]j )}(hjIh]hvme_dma_pci_attribute}(hhhjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjIubah}(h]h ](j j eh"]h$]h&]jjuh1j hjIhhhjIhMubj)}(h(dma_addr_t address)h]j)}(hdma_addr_t addressh](h)}(hhh]j )}(h dma_addr_th]h dma_addr_t}(hhhj JhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj JmodnameN classnameNjSjV)}jY]jIc.vme_dma_pci_attributeasbuh1hhjJubj )}(h h]h }(hhhj(JhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubj )}(haddressh]haddress}(hhhj6JhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjIubah}(h]h ]h"]h$]h&]jjuh1jhjIhhhjIhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjIhhhjIhMubah}(h]jIah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjIhhubj )}(hhh]h)}(h)Create "PCI" type VME DMA list attribute.h]h-Create “PCI” type VME DMA list attribute.}(hjcJhjaJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj^Jhhubah}(h]h ]h"]h$]h&]uh1j hjIhhhjIhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jyJj jyJj uh1jx hhhjV 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 )}(hjJh]h Parameters}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}JubjP )}(hhh]jU )}(h:``dma_addr_t address`` PCI base address for DMA transfer. h](j[ )}(h``dma_addr_t address``h]h)}(hjJh]hdma_addr_t address}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJubju )}(hhh]h)}(h"PCI base address for DMA transfer.h]h"PCI base address for DMA transfer.}(hjJhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhMhjJubah}(h]h ]h"]h$]h&]uh1jt hjJubeh}(h]h ]h"]h$]h&]uh1jT hjJhMhjJubah}(h]h ]h"]h$]h&]uh1jO hj}Jubh)}(h**Description**h]j )}(hjJh]h Description}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}Jubh)}(hCreate VME DMA list attribute pointing to a location on PCI for DMA transfers. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().h]hCreate VME DMA list attribute pointing to a location on PCI for DMA transfers. It is the responsibility of the user to free used attributes using vme_dma_free_attribute().}(hjJhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}Jubh)}(h **Return**h]j )}(hjKh]hReturn}(hhhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjKubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}Jubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hjKhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}Jubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt "vme_dma_vme_attribute (C function)c.vme_dma_vme_attributehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hkstruct vme_dma_attr * vme_dma_vme_attribute (unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h]j )}(histruct vme_dma_attr *vme_dma_vme_attribute(unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h](j )}(hj h]hstruct}(hhhjIKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEKhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjWKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEKhhhjVKhMubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hhhjhKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjeKubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjjKmodnameN classnameNjSjV)}jY]j\)}jOvme_dma_vme_attributesbc.vme_dma_vme_attributeasbuh1hhjEKhhhjVKhMubj )}(h h]h }(hhhjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjEKhhhjVKhMubj)}(hjh]h*}(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEKhhhjVKhMubj )}(hvme_dma_vme_attributeh]j )}(hjKh]hvme_dma_vme_attribute}(hhhjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKubah}(h]h ](j j eh"]h$]h&]jjuh1j hjEKhhhjVKhMubj)}(h?(unsigned long long address, u32 aspace, u32 cycle, u32 dwidth)h](j)}(hunsigned long long addressh](j)}(hunsignedh]hunsigned}(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj )}(h h]h }(hhhjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKubj)}(hlongh]hlong}(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj )}(h h]h }(hhhjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKubj)}(hlongh]hlong}(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj )}(h h]h }(hhhj LhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKubj )}(haddressh]haddress}(hhhjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjKubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjKubj)}(h u32 aspaceh](h)}(hhh]j )}(hu32h]hu32}(hhhj3LhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0Lubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj5LmodnameN classnameNjSjV)}jY]jKc.vme_dma_vme_attributeasbuh1hhj,Lubj )}(h h]h }(hhhjQLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj,Lubj )}(haspaceh]haspace}(hhhj_LhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj,Lubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjKubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hhhj{LhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjxLubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj}LmodnameN classnameNjSjV)}jY]jKc.vme_dma_vme_attributeasbuh1hhjtLubj )}(h h]h }(hhhjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjtLubj )}(hcycleh]hcycle}(hhhjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjtLubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjKubj)}(h u32 dwidthh](h)}(hhh]j )}(hu32h]hu32}(hhhjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjLmodnameN classnameNjSjV)}jY]jKc.vme_dma_vme_attributeasbuh1hhjLubj )}(h h]h }(hhhjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLubj )}(hdwidthh]hdwidth}(hhhjLhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjKubeh}(h]h ]h"]h$]h&]jjuh1jhjEKhhhjVKhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjAKhhhjVKhMubah}(h]jKhhubj )}(hhh]h)}(h)Create "VME" type VME DMA list attribute.h]h-Create “VME” type VME DMA list attribute.}(hjMhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjMhhubah}(h]h ]h"]h$]h&]uh1j hj>KhhhjVKhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j2Mj j2Mj uh1jx hhhjV 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 )}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:Mubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj6MubjP )}(hhh](jU )}(hB``unsigned long long address`` VME base address for DMA transfer. h](j[ )}(h``unsigned long long address``h]h)}(hj[Mh]hunsigned long long address}(hhhj]MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYMubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjUMubju )}(hhh]h)}(h"VME base address for DMA transfer.h]h"VME base address for DMA transfer.}(hjvMhjtMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpMhMhjqMubah}(h]h ]h"]h$]h&]uh1jt hjUMubeh}(h]h ]h"]h$]h&]uh1jT hjpMhMhjRMubjU )}(h:``u32 aspace`` VME address space to use for DMA transfer. h](j[ )}(h``u32 aspace``h]h)}(hjMh]h u32 aspace}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjMubju )}(hhh]h)}(h*VME address space to use for DMA transfer.h]h*VME address space to use for DMA transfer.}(hjMhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jt hjMubeh}(h]h ]h"]h$]h&]uh1jT hjMhMhjRMubjU )}(h5``u32 cycle`` VME bus cycle to use for DMA transfer. h](j[ )}(h ``u32 cycle``h]h)}(hjMh]h u32 cycle}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjMubju )}(hhh]h)}(h&VME bus cycle to use for DMA transfer.h]h&VME bus cycle to use for DMA transfer.}(hjMhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jt hjMubeh}(h]h ]h"]h$]h&]uh1jT hjMhMhjRMubjU )}(h7``u32 dwidth`` VME data width to use for DMA transfer. h](j[ )}(h``u32 dwidth``h]h)}(hjNh]h u32 dwidth}(hhhjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjNubju )}(hhh]h)}(h'VME data width to use for DMA transfer.h]h'VME data width to use for DMA transfer.}(hj!NhjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhMhjNubah}(h]h ]h"]h$]h&]uh1jt hjNubeh}(h]h ]h"]h$]h&]uh1jT hjNhMhjRMubeh}(h]h ]h"]h$]h&]uh1jO hj6Mubh)}(h**Description**h]j )}(hjANh]h Description}(hhhjCNhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?Nubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj6Mubh)}(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().}(hjYNhjWNhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj6Mubh)}(h **Return**h]j )}(hjhNh]hReturn}(hhhjjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjfNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj6Mubh)}(h.Pointer to VME DMA attribute, NULL on failure.h]h.Pointer to VME DMA attribute, NULL on failure.}(hjNhj~NhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj6Mubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt #vme_dma_free_attribute (C function)c.vme_dma_free_attributehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h=void vme_dma_free_attribute (struct vme_dma_attr *attributes)h]j )}(hPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj+Phhhj=PhM!ubj )}(hvme_dma_list_addh]j )}(hvme_dma_list_addh]hvme_dma_list_add}(hhhjPPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLPubah}(h]h ](j j eh"]h$]h&]jjuh1j hj+Phhhj=PhM!ubj)}(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 )}(hj h]hstruct}(hhhjlPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhPubj )}(h h]h }(hhhjyPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhPubh)}(hhh]j )}(h vme_dma_listh]h vme_dma_list}(hhhjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjPmodnameN classnameNjSjV)}jY]j\)}jOjRPsbc.vme_dma_list_addasbuh1hhjhPubj )}(h h]h }(hhhjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhPubj)}(hjh]h*}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhPubj )}(hlisth]hlist}(hhhjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjhPubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdPubj)}(hstruct vme_dma_attr *srch](j )}(hj h]hstruct}(hhhjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPubj )}(h h]h }(hhhjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hhhjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjPmodnameN classnameNjSjV)}jY]jPc.vme_dma_list_addasbuh1hhjPubj )}(h h]h }(hhhjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hhhj(QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj )}(hsrch]hsrc}(hhhj5QhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdPubj)}(hstruct vme_dma_attr *desth](j )}(hj h]hstruct}(hhhjNQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJQubj )}(h h]h }(hhhj[QhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJQubh)}(hhh]j )}(h vme_dma_attrh]h vme_dma_attr}(hhhjlQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjiQubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjnQmodnameN classnameNjSjV)}jY]jPc.vme_dma_list_addasbuh1hhjJQubj )}(h h]h }(hhhjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJQubj)}(hjh]h*}(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJQubj )}(hdesth]hdest}(hhhjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjJQubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdPubj)}(h size_t counth](h)}(hhh]j )}(hsize_th]hsize_t}(hhhjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjQubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjQmodnameN classnameNjSjV)}jY]jPc.vme_dma_list_addasbuh1hhjQubj )}(h h]h }(hhhjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjQubj )}(hcounth]hcount}(hhhjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjQubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdPubeh}(h]h ]h"]h$]h&]jjuh1jhj+Phhhj=PhM!ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj'Phhhj=PhM!ubah}(h]j"Pah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM0hj$Phhubj )}(hhh]h)}(hAdd enty to a VME DMA list.h]hAdd enty to a VME DMA list.}(hjRhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hjRhhubah}(h]h ]h"]h$]h&]uh1j hj$Phhhj=PhM!ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j0Rj j0Rj uh1jx hhhjV 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 )}(hj:Rh]h Parameters}(hhhjZero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hjShjShhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM-hjSubju )}(hhh]h)}(hldevice or if the link list has already been submitted for execution. Hardware specific errors also possible.h]hldevice or if the link list has already been submitted for execution. Hardware specific errors also possible.}(hjShjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShM-hjSubah}(h]h ]h"]h$]h&]uh1jt hjSubeh}(h]h ]h"]h$]h&]uh1jT hjShM-hjSubah}(h]h ]h"]h$]h&]uh1jO hj4Rubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_dma_list_exec (C function)c.vme_dma_list_exechNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h1int vme_dma_list_exec (struct vme_dma_list *list)h]j )}(h0int vme_dma_list_exec(struct vme_dma_list *list)h](j)}(hinth]hint}(hhhjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMKubj )}(h h]h }(hhhjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjShhhjShMKubj )}(hvme_dma_list_exech]j )}(hvme_dma_list_exech]hvme_dma_list_exec}(hhhjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjTubah}(h]h ](j j eh"]h$]h&]jjuh1j hjShhhjShMKubj)}(h(struct vme_dma_list *list)h]j)}(hstruct vme_dma_list *listh](j )}(hj h]hstruct}(hhhj!ThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjTubj )}(h h]h }(hhhj.ThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjTubh)}(hhh]j )}(h vme_dma_listh]h vme_dma_list}(hhhj?ThhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjZero on success, -EINVAL if operation is not supported on thish]h>Zero on success, -EINVAL if operation is not supported on this}(hjgUhjeUhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMPhjaUubju )}(hhh]h)}(h/device. Hardware specific errors also possible.h]h/device. Hardware specific errors also possible.}(hjyUhjwUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMQhjtUubah}(h]h ]h"]h$]h&]uh1jt hjaUubeh}(h]h ]h"]h$]h&]uh1jT hjsUhMPhj^Uubah}(h]h ]h"]h$]h&]uh1jO hjTubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_dma_list_free (C function)c.vme_dma_list_freehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h1int vme_dma_list_free (struct vme_dma_list *list)h]j )}(h0int vme_dma_list_free(struct vme_dma_list *list)h](j)}(hinth]hint}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMjubj )}(h h]h }(hhhjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUhhhjUhMjubj )}(hvme_dma_list_freeh]j )}(hvme_dma_list_freeh]hvme_dma_list_free}(hhhjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUubah}(h]h ](j j eh"]h$]h&]jjuh1j hjUhhhjUhMjubj)}(h(struct vme_dma_list *list)h]j)}(hstruct vme_dma_list *listh](j )}(hj h]hstruct}(hhhjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUubj )}(h h]h }(hhhjVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUubh)}(hhh]j )}(h vme_dma_listh]h vme_dma_list}(hhhjVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjVmodnameN classnameNjSjV)}jY]j\)}jOjUsbc.vme_dma_list_freeasbuh1hhjUubj )}(h h]h }(hhhj3VhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hhhjAVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj )}(hlisth]hlist}(hhhjNVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjUubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjUubah}(h]h ]h"]h$]h&]jjuh1jhjUhhhjUhMjubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjUhhhjUhMjubah}(h]jUah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMqhjUhhubj )}(hhh]h)}(hFree a VME DMA list.h]hFree a VME DMA list.}(hj{VhjyVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMihjvVhhubah}(h]h ]h"]h$]h&]uh1j hjUhhhjUhMjubeh}(h]h ](hfunctioneh"]h$]h&]j hj jVj jVj uh1jx hhhjV 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 )}(hjVh]h Parameters}(hhhjVhhhNhNubah}(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.chMmhjVubjP )}(hhh]jU )}(h3``struct vme_dma_list *list`` Pointer to VME list. h](j[ )}(h``struct vme_dma_list *list``h]h)}(hjVh]hstruct vme_dma_list *list}(hhhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMjhjVubju )}(hhh]h)}(hPointer to VME list.h]hPointer to VME list.}(hjVhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhMjhjVubah}(h]h ]h"]h$]h&]uh1jt hjVubeh}(h]h ]h"]h$]h&]uh1jT hjVhMjhjVubah}(h]h ]h"]h$]h&]uh1jO hjVubh)}(h**Description**h]j )}(hjVh]h Description}(hhhjVhhhNhNubah}(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.chMlhjVubh)}(h/Free the provided DMA list and all its entries.h]h/Free the provided DMA list and all its entries.}(hj Whj WhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlhjVubh)}(h **Return**h]j )}(hjWh]hReturn}(hhhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjWubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhjVubjP )}(hhh]jU )}(h}Zero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still in use. Hardware specific errors also possible.h](j[ )}(hDZero on success, -EINVAL on invalid VME resource, -EBUSY if resourceh]hDZero on success, -EINVAL on invalid VME resource, -EBUSY if resource}(hj;Whj9WhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhj5Wubju )}(hhh]h)}(h8is still in use. Hardware specific errors also possible.h]h8is still in use. Hardware specific errors also possible.}(hjMWhjKWhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohjHWubah}(h]h ]h"]h$]h&]uh1jt hj5Wubeh}(h]h ]h"]h$]h&]uh1jT hjGWhMnhj2Wubah}(h]h ]h"]h$]h&]uh1jO hjVubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_dma_free (C function)c.vme_dma_freehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h0int vme_dma_free (struct vme_resource *resource)h]j )}(h/int vme_dma_free(struct vme_resource *resource)h](j)}(hinth]hint}(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWhhhjWhMubj )}(h vme_dma_freeh]j )}(h vme_dma_freeh]h vme_dma_free}(hhhjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWubah}(h]h ](j j eh"]h$]h&]jjuh1j hjWhhhjWhMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWubj )}(h h]h }(hhhjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjWmodnameN classnameNjSjV)}jY]j\)}jOjWsbc.vme_dma_freeasbuh1hhjWubj )}(h h]h }(hhhjXhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWubj)}(hjh]h*}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj )}(hresourceh]hresource}(hhhj"XhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjWubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjWubah}(h]h ]h"]h$]h&]jjuh1jhjWhhhjWhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjWhhhjWhMubah}(h]jWah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjWhhubj )}(hhh]h)}(hFree a VME DMA resource.h]hFree a VME DMA resource.}(hjOXhjMXhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJXhhubah}(h]h ]h"]h$]h&]uh1j hjWhhhjWhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jeXj jeXj uh1jx hhhjV 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 )}(hjoXh]h Parameters}(hhhjqXhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjmXubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjiXubjP )}(hhh]jU )}(h?``struct vme_resource *resource`` Pointer to VME DMA resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjXh]hstruct vme_resource *resource}(hhhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjXubju )}(hhh]h)}(hPointer to VME DMA resource.h]hPointer to VME DMA resource.}(hjXhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jt hjXubeh}(h]h ]h"]h$]h&]uh1jT hjXhMhjXubah}(h]h ]h"]h$]h&]uh1jO hjiXubh)}(h**Description**h]j )}(hjXh]h Description}(hhhjXhhhNhNubah}(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.chMhjiXubh)}(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.}(hjXhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjiXubh)}(h **Return**h]j )}(hjXh]hReturn}(hhhjXhhhNhNubah}(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.chMhjiXubjP )}(hhh]jU )}(hUZero on success, -EINVAL on invalid VME resource, -EBUSY if resource is still active.h](j[ )}(hDZero on success, -EINVAL on invalid VME resource, -EBUSY if resourceh]hDZero on success, -EINVAL on invalid VME resource, -EBUSY if resource}(hjYhj YhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj Yubju )}(hhh]h)}(his still active.h]his still active.}(hj!YhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjYubah}(h]h ]h"]h$]h&]uh1jt hj Yubeh}(h]h ]h"]h$]h&]uh1jT hjYhMhjYubah}(h]h ]h"]h$]h&]uh1jO hjiXubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_irq_request (C function)c.vme_irq_requesthNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hvint vme_irq_request (struct vme_dev *vdev, int level, int statid, void (*callback)(int, int, void *), void *priv_data)h]j )}(htint vme_irq_request(struct vme_dev *vdev, int level, int statid, void (*callback)(int, int, void*), void *priv_data)h](j)}(hinth]hint}(hhhj`YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Yhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjoYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj\YhhhjnYhMubj )}(hvme_irq_requesth]j )}(hvme_irq_requesth]hvme_irq_request}(hhhjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj}Yubah}(h]h ](j j eh"]h$]h&]jjuh1j hj\YhhhjnYhMubj)}(ha(struct vme_dev *vdev, int level, int statid, void (*callback)(int, int, void*), void *priv_data)h](j)}(hstruct vme_dev *vdevh](j )}(hj h]hstruct}(hhhjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjYubj )}(h h]h }(hhhjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjYubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjYubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjYmodnameN classnameNjSjV)}jY]j\)}jOjYsbc.vme_irq_requestasbuh1hhjYubj )}(h h]h }(hhhjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hhhjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj )}(hvdevh]hvdev}(hhhjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjYubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjYubj)}(h int levelh](j)}(hinth]hint}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Zubj )}(h h]h }(hhhjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj Zubj )}(hlevelh]hlevel}(hhhj+ZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj Zubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjYubj)}(h int statidh](j)}(hinth]hint}(hhhjDZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@Zubj )}(h h]h }(hhhjRZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@Zubj )}(hstatidh]hstatid}(hhhj`ZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj@Zubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjYubj)}(h!void (*callback)(int, int, void*)h](j)}(hvoidh]hvoid}(hhhjyZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj )}(h h]h }(hhhjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuZubj)}(h(h]h(}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj)}(hjh]h*}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj )}(hcallbackh]hcallback}(hhhjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuZubj)}(h)h]h)}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj)}(hjZh]h(}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj)}(hinth]hint}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj)}(h,h]h,}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj )}(h h]h }(hhhjZhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuZubj)}(hinth]hint}(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj)}(hjZh]h,}(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj )}(h h]h }(hhhj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuZubj)}(hvoidh]hvoid}(hhhj,[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj)}(hjh]h*}(hhhj:[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubj)}(hjZh]h)}(hhhjG[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuZubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjYubj)}(hvoid *priv_datah](j)}(hvoidh]hvoid}(hhhj_[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[[ubj )}(h h]h }(hhhjm[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[[ubj)}(hjh]h*}(hhhj{[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[[ubj )}(h priv_datah]h priv_data}(hhhj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj[[ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjYubeh}(h]h ]h"]h$]h&]jjuh1jhj\YhhhjnYhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjXYhhhjnYhMubah}(h]jSYah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjUYhhubj )}(hhh]h)}(h!Request a specific VME interrupt.h]h!Request a specific VME interrupt.}(hj[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 hjUYhhhjnYhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j[j j[j uh1jx hhhjV hNhNubj )}(hX**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. ``int level`` Interrupt priority being requested. ``int statid`` Interrupt vector being requested. ``void (*callback)(int, int, void *)`` Pointer to callback function called when VME interrupt/vector received. ``void *priv_data`` Generic pointer that will be passed to the callback function. **Description** Request callback to be attached as a handler for VME interrupts with provided level and statid. **Return** Zero on success, -EINVAL on invalid vme device, level or if the function is not supported, -EBUSY if the level/statid combination is already in use. Hardware specific errors also possible.h](h)}(h**Parameters**h]j )}(hj[h]h Parameters}(hhhj[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[ubjP )}(hhh](jU )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j[ )}(h``struct vme_dev *vdev``h]h)}(hj[h]hstruct vme_dev *vdev}(hhhj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj[ubju )}(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\hj \hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj \hMhj \ubah}(h]h ]h"]h$]h&]uh1jt hj[ubeh}(h]h ]h"]h$]h&]uh1jT hj \hMhj[ubjU )}(h2``int level`` Interrupt priority being requested. h](j[ )}(h ``int level``h]h)}(hj-\h]h int level}(hhhj/\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+\ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj'\ubju )}(hhh]h)}(h#Interrupt priority being requested.h]h#Interrupt priority being requested.}(hjH\hjF\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB\hMhjC\ubah}(h]h ]h"]h$]h&]uh1jt hj'\ubeh}(h]h ]h"]h$]h&]uh1jT hjB\hMhj[ubjU )}(h1``int statid`` Interrupt vector being requested. h](j[ )}(h``int statid``h]h)}(hjf\h]h int statid}(hhhjh\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd\ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj`\ubju )}(hhh]h)}(h!Interrupt vector being requested.h]h!Interrupt vector being requested.}(hj\hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{\hMhj|\ubah}(h]h ]h"]h$]h&]uh1jt hj`\ubeh}(h]h ]h"]h$]h&]uh1jT hj{\hMhj[ubjU )}(ho``void (*callback)(int, int, void *)`` Pointer to callback function called when VME interrupt/vector received. h](j[ )}(h&``void (*callback)(int, int, void *)``h]h)}(hj\h]h"void (*callback)(int, int, void *)}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj\ubju )}(hhh]h)}(hGPointer to callback function called when VME interrupt/vector received.h]hGPointer to callback function called when VME interrupt/vector received.}(hj\hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj\ubah}(h]h ]h"]h$]h&]uh1jt hj\ubeh}(h]h ]h"]h$]h&]uh1jT hj\hMhj[ubjU )}(hR``void *priv_data`` Generic pointer that will be passed to the callback function. h](j[ )}(h``void *priv_data``h]h)}(hj\h]hvoid *priv_data}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj\ubju )}(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.}(hj\hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hM hj\ubah}(h]h ]h"]h$]h&]uh1jt hj\ubeh}(h]h ]h"]h$]h&]uh1jT hj\hM hj[ubeh}(h]h ]h"]h$]h&]uh1jO hj[ubh)}(h**Description**h]j )}(hj]h]h Description}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj]ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM hj[ubh)}(h_Request callback to be attached as a handler for VME interrupts with provided level and statid.h]h_Request callback to be attached as a handler for VME interrupts with provided level and statid.}(hj,]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[ubh)}(h **Return**h]j )}(hj;]h]hReturn}(hhhj=]hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9]ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj[ubjP )}(hhh]jU )}(hZero on success, -EINVAL on invalid vme device, level or if the function is not supported, -EBUSY if the level/statid combination is already in use. Hardware specific errors also possible.h](j[ )}(h?Zero on success, -EINVAL on invalid vme device, level or if theh]h?Zero on success, -EINVAL on invalid vme device, level or if the}(hjZ]hjX]hhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjT]ubju )}(hhh]h)}(h|function is not supported, -EBUSY if the level/statid combination is already in use. Hardware specific errors also possible.h]h|function is not supported, -EBUSY if the level/statid combination is already in use. Hardware specific errors also possible.}(hjl]hjj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf]hMhjg]ubah}(h]h ]h"]h$]h&]uh1jt hjT]ubeh}(h]h ]h"]h$]h&]uh1jT hjf]hMhjQ]ubah}(h]h ]h"]h$]h&]uh1jO hj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_irq_free (C function)c.vme_irq_freehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h?void vme_irq_free (struct vme_dev *vdev, int level, int statid)h]j )}(h>void vme_irq_free(struct vme_dev *vdev, int level, int statid)h](j)}(hvoidh]hvoid}(hhhj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM@ubj )}(h h]h }(hhhj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]hhhj]hM@ubj )}(h vme_irq_freeh]j )}(h vme_irq_freeh]h vme_irq_free}(hhhj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj]hhhj]hM@ubj)}(h-(struct vme_dev *vdev, int level, int statid)h](j)}(hstruct vme_dev *vdevh](j )}(hj h]hstruct}(hhhj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubj )}(h h]h }(hhhj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj^ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj^modnameN classnameNjSjV)}jY]j\)}jOj]sbc.vme_irq_freeasbuh1hhj]ubj )}(h h]h }(hhhj%^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubj)}(hjh]h*}(hhhj3^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj )}(hvdevh]hvdev}(hhhj@^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubj)}(h int levelh](j)}(hinth]hint}(hhhjY^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU^ubj )}(h h]h }(hhhjg^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjU^ubj )}(hlevelh]hlevel}(hhhju^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjU^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubj)}(h int statidh](j)}(hinth]hint}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj )}(h h]h }(hhhj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj^ubj )}(hstatidh]hstatid}(hhhj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]ubeh}(h]h ]h"]h$]h&]jjuh1jhj]hhhj]hM@ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj]hhhj]hM@ubah}(h]j]ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMFhj]hhubj )}(hhh]h)}(hFree a VME interrupt.h]hFree a VME interrupt.}(hj^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^hhubah}(h]h ]h"]h$]h&]uh1j hj]hhhj]hM@ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j^j j^j uh1jx hhhjV 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}(hhhj^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.chMChj^ubjP )}(hhh](jU )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j[ )}(h``struct vme_dev *vdev``h]h)}(hj_h]hstruct vme_dev *vdev}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM@hj_ubju )}(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.}(hj1_hj/_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+_hM@hj,_ubah}(h]h ]h"]h$]h&]uh1jt hj_ubeh}(h]h ]h"]h$]h&]uh1jT hj+_hM@hj _ubjU )}(h;``int level`` Interrupt priority of interrupt being freed. h](j[ )}(h ``int level``h]h)}(hjO_h]h int level}(hhhjQ_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM_ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMAhjI_ubju )}(hhh]h)}(h,Interrupt priority of interrupt being freed.h]h,Interrupt priority of interrupt being freed.}(hjj_hjh_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd_hMAhje_ubah}(h]h ]h"]h$]h&]uh1jt hjI_ubeh}(h]h ]h"]h$]h&]uh1jT hjd_hMAhj _ubjU )}(h:``int statid`` Interrupt vector of interrupt being freed. h](j[ )}(h``int statid``h]h)}(hj_h]h int statid}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMBhj_ubju )}(hhh]h)}(h*Interrupt vector of interrupt being freed.h]h*Interrupt vector of interrupt being freed.}(hj_hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMBhj_ubah}(h]h ]h"]h$]h&]uh1jt hj_ubeh}(h]h ]h"]h$]h&]uh1jT hj_hMBhj _ubeh}(h]h ]h"]h$]h&]uh1jO hj^ubh)}(h**Description**h]j )}(hj_h]h Description}(hhhj_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.chMDhj^ubh)}(hGRemove previously attached callback from VME interrupt priority/vector.h]hGRemove previously attached callback from VME interrupt priority/vector.}(hj_hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMDhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_irq_generate (C function)c.vme_irq_generatehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hBint vme_irq_generate (struct vme_dev *vdev, int level, int statid)h]j )}(hAint vme_irq_generate(struct vme_dev *vdev, int level, int statid)h](j)}(hinth]hint}(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlubj )}(h h]h }(hhhj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`hhhj`hMlubj )}(hvme_irq_generateh]j )}(hvme_irq_generateh]hvme_irq_generate}(hhhj)`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%`ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj`hhhj`hMlubj)}(h-(struct vme_dev *vdev, int level, int statid)h](j)}(hstruct vme_dev *vdevh](j )}(hj h]hstruct}(hhhjE`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjA`ubj )}(h h]h }(hhhjR`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjA`ubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhjc`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj``ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetje`modnameN classnameNjSjV)}jY]j\)}jOj+`sbc.vme_irq_generateasbuh1hhjA`ubj )}(h h]h }(hhhj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjA`ubj)}(hjh]h*}(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA`ubj )}(hvdevh]hvdev}(hhhj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjA`ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=`ubj)}(h int levelh](j)}(hinth]hint}(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj )}(h h]h }(hhhj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubj )}(hlevelh]hlevel}(hhhj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=`ubj)}(h int statidh](j)}(hinth]hint}(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj )}(h h]h }(hhhj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubj )}(hstatidh]hstatid}(hhhjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=`ubeh}(h]h ]h"]h$]h&]jjuh1jhj`hhhj`hMlubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj`hhhj`hMlubah}(h]j_ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMvhj_hhubj )}(hhh]h)}(hGenerate VME interrupt.h]hGenerate VME interrupt.}(hj5ahj3ahhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMkhj0ahhubah}(h]h ]h"]h$]h&]uh1j hj_hhhj`hMlubeh}(h]h ](hfunctioneh"]h$]h&]j hj jKaj jKaj uh1jx hhhjV 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 )}(hjUah]h Parameters}(hhhjWahhhNhNubah}(h]h ]h"]h$]h&]uh1j hjSaubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMohjOaubjP )}(hhh](jU )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j[ )}(h``struct vme_dev *vdev``h]h)}(hjtah]hstruct vme_dev *vdev}(hhhjvahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjraubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMlhjnaubju )}(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.}(hjahjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMlhjaubah}(h]h ]h"]h$]h&]uh1jt hjnaubeh}(h]h ]h"]h$]h&]uh1jT hjahMlhjkaubjU )}(hC``int level`` Interrupt priority at which to assert the interrupt. h](j[ )}(h ``int level``h]h)}(hjah]h int level}(hhhjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMmhjaubju )}(hhh]h)}(h4Interrupt priority at which to assert the interrupt.h]h4Interrupt priority at which to assert the interrupt.}(hjahjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMmhjaubah}(h]h ]h"]h$]h&]uh1jt hjaubeh}(h]h ]h"]h$]h&]uh1jT hjahMmhjkaubjU )}(hA``int statid`` Interrupt vector to associate with the interrupt. h](j[ )}(h``int statid``h]h)}(hjah]h int statid}(hhhjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjaubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMnhjaubju )}(hhh]h)}(h1Interrupt vector to associate with the interrupt.h]h1Interrupt vector to associate with the interrupt.}(hjbhjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMnhjaubah}(h]h ]h"]h$]h&]uh1jt hjaubeh}(h]h ]h"]h$]h&]uh1jT hjahMnhjkaubeh}(h]h ]h"]h$]h&]uh1jO hjOaubh)}(h**Description**h]j )}(hj!bh]h Description}(hhhj#bhhhNhNubah}(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.chMphjOaubh)}(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.}(hj9bhj7bhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMphjOaubh)}(h **Return**h]j )}(hjHbh]hReturn}(hhhjJbhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjFbubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjOaubjP )}(hhh]jU )}(hZero on success, -EINVAL on invalid vme device, level or if the function is not supported. Hardware specific errors also possible.h](j[ )}(h?Zero on success, -EINVAL on invalid vme device, level or if theh]h?Zero on success, -EINVAL on invalid vme device, level or if the}(hjgbhjebhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMshjabubju )}(hhh]h)}(hBfunction is not supported. Hardware specific errors also possible.h]hBfunction is not supported. Hardware specific errors also possible.}(hjybhjwbhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMthjtbubah}(h]h ]h"]h$]h&]uh1jt hjabubeh}(h]h ]h"]h$]h&]uh1jT hjsbhMshj^bubah}(h]h ]h"]h$]h&]uh1jO hjOaubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_lm_request (C function)c.vme_lm_requesthNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h;struct vme_resource * vme_lm_request (struct vme_dev *vdev)h]j )}(h9struct vme_resource *vme_lm_request(struct vme_dev *vdev)h](j )}(hj h]hstruct}(hhhjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjbhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjbhhhjbhMubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjbubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjbmodnameN classnameNjSjV)}jY]j\)}jOvme_lm_requestsbc.vme_lm_requestasbuh1hhjbhhhjbhMubj )}(h h]h }(hhhjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjbhhhjbhMubj)}(hjh]h*}(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhjbhMubj )}(hvme_lm_requesth]j )}(hjbh]hvme_lm_request}(hhhjchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjcubah}(h]h ](j j eh"]h$]h&]jjuh1j hjbhhhjbhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](j )}(hj h]hstruct}(hhhj2chhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.cubj )}(h h]h }(hhhj?chhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.cubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhjPchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjMcubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjRcmodnameN classnameNjSjV)}jY]jbc.vme_lm_requestasbuh1hhj.cubj )}(h h]h }(hhhjnchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.cubj)}(hjh]h*}(hhhj|chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.cubj )}(hvdevh]hvdev}(hhhjchhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj.cubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj*cubah}(h]h ]h"]h$]h&]jjuh1jhjbhhhjbhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjbhhhjbhMubah}(h]jbah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjbhhubj )}(hhh]h)}(hRequest a VME location monitorh]hRequest a VME location monitor}(hjchjchhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjchhubah}(h]h ]h"]h$]h&]uh1j hjbhhhjbhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jcj jcj uh1jx hhhjV 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 )}(hjch]h Parameters}(hhhjchhhNhNubah}(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.chMhjcubjP )}(hhh]jU )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j[ )}(h``struct vme_dev *vdev``h]h)}(hjch]hstruct vme_dev *vdev}(hhhjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubju )}(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.}(hjdhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj dhMhj dubah}(h]h ]h"]h$]h&]uh1jt hjcubeh}(h]h ]h"]h$]h&]uh1jT hj dhMhjcubah}(h]h ]h"]h$]h&]uh1jO hjcubh)}(h**Description**h]j )}(hj0dh]h Description}(hhhj2dhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj.dubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubh)}(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.}(hjHdhjFdhhhNhNubah}(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 )}(hjWdh]hReturn}(hhhjYdhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjUdubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjcubh)}(h8Pointer to a VME resource on success or NULL on failure.h]h8Pointer to a VME resource on success or NULL on failure.}(hjodhjmdhhhNhNubah}(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 hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_lm_count (C function)c.vme_lm_counthNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h0int vme_lm_count (struct vme_resource *resource)h]j )}(h/int vme_lm_count(struct vme_resource *resource)h](j)}(hinth]hint}(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdhhhjdhMubj )}(h vme_lm_counth]j )}(h vme_lm_counth]h vme_lm_count}(hhhjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubah}(h]h ](j j eh"]h$]h&]jjuh1j hjdhhhjdhMubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubj )}(h h]h }(hhhjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjdmodnameN classnameNjSjV)}jY]j\)}jOjdsbc.vme_lm_countasbuh1hhjdubj )}(h h]h }(hhhjehhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hhhj%ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj )}(hresourceh]hresource}(hhhj2ehhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjdubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjdubah}(h]h ]h"]h$]h&]jjuh1jhjdhhhjdhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjdhhhjdhMubah}(h]jdah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjdhhubj )}(hhh]h)}(h+Determine number of VME Addresses monitoredh]h+Determine number of VME Addresses monitored}(hj_ehj]ehhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjZehhubah}(h]h ]h"]h$]h&]uh1j hjdhhhjdhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj juej juej uh1jx hhhjV hNhNubj )}(hXv**Parameters** ``struct vme_resource *resource`` Pointer to VME location monitor resource. **Description** The number of contiguous addresses monitored is hardware dependent. Return the number of contiguous addresses monitored by the location monitor. **Return** Count of addresses monitored or -EINVAL when provided with an invalid location monitor resource.h](h)}(h**Parameters**h]j )}(hjeh]h Parameters}(hhhjehhhNhNubah}(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.chMhjyeubjP )}(hhh]jU )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjeh]hstruct vme_resource *resource}(hhhjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjeubju )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjehjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jt hjeubeh}(h]h ]h"]h$]h&]uh1jT hjehMhjeubah}(h]h ]h"]h$]h&]uh1jO hjyeubh)}(h**Description**h]j )}(hjeh]h Description}(hhhjehhhNhNubah}(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.chMhjyeubh)}(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.}(hjehjehhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjyeubh)}(h **Return**h]j )}(hjfh]hReturn}(hhhjfhhhNhNubah}(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.chMhjyeubjP )}(hhh]jU )}(h`Count of addresses monitored or -EINVAL when provided with an invalid location monitor resource.h](j[ )}(h=Count of addresses monitored or -EINVAL when provided with anh]h=Count of addresses monitored or -EINVAL when provided with an}(hjfhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjfubju )}(hhh]h)}(h"invalid location monitor resource.h]h"invalid location monitor resource.}(hj1fhj/fhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj,fubah}(h]h ]h"]h$]h&]uh1jt hjfubeh}(h]h ]h"]h$]h&]uh1jT hj+fhMhjfubah}(h]h ]h"]h$]h&]uh1jO hjyeubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_lm_set (C function) c.vme_lm_sethNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(haint vme_lm_set (struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h]j )}(h`int vme_lm_set(struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h](j)}(hinth]hint}(hhhjpfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlfhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjlfhhhj~fhMubj )}(h vme_lm_seth]j )}(h vme_lm_seth]h vme_lm_set}(hhhjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjfubah}(h]h ](j j eh"]h$]h&]jjuh1j hjlfhhhj~fhMubj)}(hR(struct vme_resource *resource, unsigned long long lm_base, u32 aspace, u32 cycle)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjfubj )}(h h]h }(hhhjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjfubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjfubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjfmodnameN classnameNjSjV)}jY]j\)}jOjfsb c.vme_lm_setasbuh1hhjfubj )}(h h]h }(hhhjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjfubj)}(hjh]h*}(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj )}(hresourceh]hresource}(hhhjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjfubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfubj)}(hunsigned long long lm_baseh](j)}(hunsignedh]hunsigned}(hhhjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj )}(h h]h }(hhhj-ghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubj)}(hlongh]hlong}(hhhj;ghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj )}(h h]h }(hhhjIghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubj)}(hlongh]hlong}(hhhjWghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj )}(h h]h }(hhhjeghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubj )}(hlm_baseh]hlm_base}(hhhjsghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfubj)}(h u32 aspaceh](h)}(hhh]j )}(hu32h]hu32}(hhhjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjgmodnameN classnameNjSjV)}jY]jf c.vme_lm_setasbuh1hhjgubj )}(h h]h }(hhhjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubj )}(haspaceh]haspace}(hhhjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfubj)}(h u32 cycleh](h)}(hhh]j )}(hu32h]hu32}(hhhjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjgmodnameN classnameNjSjV)}jY]jf c.vme_lm_setasbuh1hhjgubj )}(h h]h }(hhhjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubj )}(hcycleh]hcycle}(hhhjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjgubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjfubeh}(h]h ]h"]h$]h&]jjuh1jhjlfhhhj~fhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjhfhhhj~fhMubah}(h]jcfah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjefhhubj )}(hhh]h)}(hConfigure location monitorh]hConfigure location monitor}(hj0hhj.hhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj+hhhubah}(h]h ]h"]h$]h&]uh1j hjefhhhj~fhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jFhj jFhj uh1jx hhhjV 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 )}(hjPhh]h Parameters}(hhhjRhhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjNhubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJhubjP )}(hhh](jU )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjohh]hstruct vme_resource *resource}(hhhjqhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjihubju )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjhubah}(h]h ]h"]h$]h&]uh1jt hjihubeh}(h]h ]h"]h$]h&]uh1jT hjhhMhjfhubjU )}(h8``unsigned long long lm_base`` Base address to monitor. h](j[ )}(h``unsigned long long lm_base``h]h)}(hjhh]hunsigned long long lm_base}(hhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjhubju )}(hhh]h)}(hBase address to monitor.h]hBase address to monitor.}(hjhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjhubah}(h]h ]h"]h$]h&]uh1jt hjhubeh}(h]h ]h"]h$]h&]uh1jT hjhhMhjfhubjU )}(h-``u32 aspace`` VME address space to monitor. h](j[ )}(h``u32 aspace``h]h)}(hjhh]h u32 aspace}(hhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjhubju )}(hhh]h)}(hVME address space to monitor.h]hVME address space to monitor.}(hjhhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhjhubah}(h]h ]h"]h$]h&]uh1jt hjhubeh}(h]h ]h"]h$]h&]uh1jT hjhhMhjfhubjU )}(h-``u32 cycle`` VME bus cycle type to monitor. h](j[ )}(h ``u32 cycle``h]h)}(hjih]h u32 cycle}(hhhjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjiubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjiubju )}(hhh]h)}(hVME bus cycle type to monitor.h]hVME bus cycle type to monitor.}(hj5ihj3ihhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ihMhj0iubah}(h]h ]h"]h$]h&]uh1jt hjiubeh}(h]h ]h"]h$]h&]uh1jT hj/ihMhjfhubeh}(h]h ]h"]h$]h&]uh1jO hjJhubh)}(h**Description**h]j )}(hjUih]h Description}(hhhjWihhhNhNubah}(h]h ]h"]h$]h&]uh1j hjSiubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJhubh)}(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.}(hjmihjkihhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJhubh)}(h **Return**h]j )}(hj|ih]hReturn}(hhhj~ihhhNhNubah}(h]h ]h"]h$]h&]uh1j hjziubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjJhubjP )}(hhh]jU )}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h](j[ )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hjihjihhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjiubju )}(hhh]h)}(h]monitor resource or function is not supported. Hardware specific errors may also be returned.h]h]monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjihjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihMhjiubah}(h]h ]h"]h$]h&]uh1jt hjiubeh}(h]h ]h"]h$]h&]uh1jT hjihMhjiubah}(h]h ]h"]h$]h&]uh1jO hjJhubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_lm_get (C function) c.vme_lm_gethNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hdint vme_lm_get (struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h]j )}(hcint vme_lm_get(struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h](j)}(hinth]hint}(hhhjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjihhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjihhhjihMubj )}(h vme_lm_geth]j )}(h vme_lm_geth]h vme_lm_get}(hhhj jhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubah}(h]h ](j j eh"]h$]h&]jjuh1j hjihhhjihMubj)}(hU(struct vme_resource *resource, unsigned long long *lm_base, u32 *aspace, u32 *cycle)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhj(jhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$jubj )}(h h]h }(hhhj5jhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$jubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjFjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjCjubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjHjmodnameN classnameNjSjV)}jY]j\)}jOjjsb c.vme_lm_getasbuh1hhj$jubj )}(h h]h }(hhhjfjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$jubj)}(hjh]h*}(hhhjtjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$jubj )}(hresourceh]hresource}(hhhjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj$jubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj jubj)}(hunsigned long long *lm_baseh](j)}(hunsignedh]hunsigned}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj )}(h h]h }(hhhjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubj)}(hlongh]hlong}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj )}(h h]h }(hhhjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubj)}(hlongh]hlong}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj )}(h h]h }(hhhjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj )}(hlm_baseh]hlm_base}(hhhjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj jubj)}(h u32 *aspaceh](h)}(hhh]j )}(hu32h]hu32}(hhhjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjkubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjkmodnameN classnameNjSjV)}jY]jbj c.vme_lm_getasbuh1hhjkubj )}(h h]h }(hhhj5khhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjkubj)}(hjh]h*}(hhhjCkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj )}(haspaceh]haspace}(hhhjPkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjkubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj jubj)}(h u32 *cycleh](h)}(hhh]j )}(hu32h]hu32}(hhhjlkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjikubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjnkmodnameN classnameNjSjV)}jY]jbj c.vme_lm_getasbuh1hhjekubj )}(h h]h }(hhhjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjekubj)}(hjh]h*}(hhhjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjekubj )}(hcycleh]hcycle}(hhhjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjekubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj jubeh}(h]h ]h"]h$]h&]jjuh1jhjihhhjihMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjihhhjihMubah}(h]jiah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjihhubj )}(hhh]h)}(h"Retrieve location monitor settingsh]h"Retrieve location monitor settings}(hjkhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjkhhubah}(h]h ]h"]h$]h&]uh1j hjihhhjihMubeh}(h]h ](hfunctioneh"]h$]h&]j hj jkj jkj uh1jx hhhjV hNhNubj )}(hX**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 )}(hjkh]h Parameters}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjkubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjkubjP )}(hhh](jU )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjlh]hstruct vme_resource *resource}(hhhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj lubju )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hj,lhj*lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&lhMhj'lubah}(h]h ]h"]h$]h&]uh1jt hj lubeh}(h]h ]h"]h$]h&]uh1jT hj&lhMhjlubjU )}(hS``unsigned long long *lm_base`` Pointer used to output the base address monitored. h](j[ )}(h``unsigned long long *lm_base``h]h)}(hjJlh]hunsigned long long *lm_base}(hhhjLlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHlubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjDlubju )}(hhh]h)}(h2Pointer used to output the base address monitored.h]h2Pointer used to output the base address monitored.}(hjelhjclhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_lhMhj`lubah}(h]h ]h"]h$]h&]uh1jt hjDlubeh}(h]h ]h"]h$]h&]uh1jT hj_lhMhjlubjU )}(hD``u32 *aspace`` Pointer used to output the address space monitored. h](j[ )}(h``u32 *aspace``h]h)}(hjlh]h u32 *aspace}(hhhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj}lubju )}(hhh]h)}(h3Pointer used to output the address space monitored.h]h3Pointer used to output the address space monitored.}(hjlhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMhjlubah}(h]h ]h"]h$]h&]uh1jt hj}lubeh}(h]h ]h"]h$]h&]uh1jT hjlhMhjlubjU )}(hH``u32 *cycle`` Pointer used to output the VME bus cycle type monitored. h](j[ )}(h``u32 *cycle``h]h)}(hjlh]h u32 *cycle}(hhhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjlubju )}(hhh]h)}(h8Pointer used to output the VME bus cycle type monitored.h]h8Pointer used to output the VME bus cycle type monitored.}(hjlhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMhjlubah}(h]h ]h"]h$]h&]uh1jt hjlubeh}(h]h ]h"]h$]h&]uh1jT hjlhMhjlubeh}(h]h ]h"]h$]h&]uh1jO hjkubh)}(h**Description**h]j )}(hjlh]h Description}(hhhjlhhhNhNubah}(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.chMhjkubh)}(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.}(hjmhj mhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjkubh)}(h **Return**h]j )}(hjmh]hReturn}(hhhj mhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjmubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjkubjP )}(hhh]jU )}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h](j[ )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hj=mhj;mhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj7mubju )}(hhh]h)}(h]monitor resource or function is not supported. Hardware specific errors may also be returned.h]h]monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjOmhjMmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjImhMhjJmubah}(h]h ]h"]h$]h&]uh1jt hj7mubeh}(h]h ]h"]h$]h&]uh1jT hjImhMhj4mubah}(h]h ]h"]h$]h&]uh1jO hjkubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_lm_attach (C function)c.vme_lm_attachhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hdint vme_lm_attach (struct vme_resource *resource, int monitor, void (*callback)(void *), void *data)h]j )}(hbint vme_lm_attach(struct vme_resource *resource, int monitor, void (*callback)(void*), void *data)h](j)}(hinth]hint}(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM6ubj )}(h h]h }(hhhjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmhhhjmhM6ubj )}(h vme_lm_attachh]j )}(h vme_lm_attachh]h vme_lm_attach}(hhhjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubah}(h]h ](j j eh"]h$]h&]jjuh1j hjmhhhjmhM6ubj)}(hQ(struct vme_resource *resource, int monitor, void (*callback)(void*), void *data)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubj )}(h h]h }(hhhjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjmmodnameN classnameNjSjV)}jY]j\)}jOjmsbc.vme_lm_attachasbuh1hhjmubj )}(h h]h }(hhhjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hhhjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj )}(hresourceh]hresource}(hhhj#nhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjmubj)}(h int monitorh](j)}(hinth]hint}(hhhjint vme_lm_detach (struct vme_resource *resource, int monitor)h]j )}(h=int vme_lm_detach(struct vme_resource *resource, int monitor)h](j)}(hinth]hint}(hhhjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM[ubj )}(h h]h }(hhhj"qhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjqhhhj!qhM[ubj )}(h vme_lm_detachh]j )}(h vme_lm_detachh]h vme_lm_detach}(hhhj4qhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0qubah}(h]h ](j j eh"]h$]h&]jjuh1j hjqhhhj!qhM[ubj)}(h,(struct vme_resource *resource, int monitor)h](j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjPqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLqubj )}(h h]h }(hhhj]qhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLqubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjnqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjkqubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjpqmodnameN classnameNjSjV)}jY]j\)}jOj6qsbc.vme_lm_detachasbuh1hhjLqubj )}(h h]h }(hhhjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLqubj)}(hjh]h*}(hhhjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLqubj )}(hresourceh]hresource}(hhhjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjLqubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjHqubj)}(h int monitorh](j)}(hinth]hint}(hhhjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj )}(h h]h }(hhhjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjqubj )}(hmonitorh]hmonitor}(hhhjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjqubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjHqubeh}(h]h ]h"]h$]h&]jjuh1jhjqhhhj!qhM[ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj qhhhj!qhM[ubah}(h]jqah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMehjqhhubj )}(hhh]h)}(h,Remove callback for location monitor addressh]h,Remove callback for location monitor address}(hj rhj rhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMZhjrhhubah}(h]h ]h"]h$]h&]uh1j hjqhhhj!qhM[ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j!rj j!rj uh1jx hhhjV 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+rh]h Parameters}(hhhj-rhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj)rubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj%rubjP )}(hhh](jU )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjJrh]hstruct vme_resource *resource}(hhhjLrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHrubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM[hjDrubju )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjerhjcrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_rhM[hj`rubah}(h]h ]h"]h$]h&]uh1jt hjDrubeh}(h]h ]h"]h$]h&]uh1jT hj_rhM[hjArubjU )}(h<``int monitor`` Offset to which callback should be removed. h](j[ )}(h``int monitor``h]h)}(hjrh]h int monitor}(hhhjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hj}rubju )}(hhh]h)}(h+Offset to which callback should be removed.h]h+Offset to which callback should be removed.}(hjrhjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhM\hjrubah}(h]h ]h"]h$]h&]uh1jt hj}rubeh}(h]h ]h"]h$]h&]uh1jT hjrhM\hjArubeh}(h]h ]h"]h$]h&]uh1jO hj%rubh)}(h**Description**h]j )}(hjrh]h Description}(hhhjrhhhNhNubah}(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.chM^hj%rubh)}(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.}(hjrhjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj%rubh)}(h **Return**h]j )}(hjrh]hReturn}(hhhjrhhhNhNubah}(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.chMahj%rubjP )}(hhh]jU )}(hZero on success, -EINVAL when provided with an invalid location monitor resource or function is not supported. Hardware specific errors may also be returned.h](j[ )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hjshjshhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMbhjrubju )}(hhh]h)}(h]monitor resource or function is not supported. Hardware specific errors may also be returned.h]h]monitor resource or function is not supported. Hardware specific errors may also be returned.}(hjshjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshMbhjsubah}(h]h ]h"]h$]h&]uh1jt hjrubeh}(h]h ]h"]h$]h&]uh1jT hjshMbhjrubah}(h]h ]h"]h$]h&]uh1jO hj%rubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_lm_free (C function) c.vme_lm_freehNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h0void vme_lm_free (struct vme_resource *resource)h]j )}(h/void vme_lm_free(struct vme_resource *resource)h](j)}(hvoidh]hvoid}(hhhjTshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPshhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM|ubj )}(h h]h }(hhhjcshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjPshhhjbshM|ubj )}(h vme_lm_freeh]j )}(h vme_lm_freeh]h vme_lm_free}(hhhjushhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjqsubah}(h]h ](j j eh"]h$]h&]jjuh1j hjPshhhjbshM|ubj)}(h(struct vme_resource *resource)h]j)}(hstruct vme_resource *resourceh](j )}(hj h]hstruct}(hhhjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubj )}(h h]h }(hhhjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubh)}(hhh]j )}(h vme_resourceh]h vme_resource}(hhhjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjsmodnameN classnameNjSjV)}jY]j\)}jOjwssb c.vme_lm_freeasbuh1hhjsubj )}(h h]h }(hhhjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hhhjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj )}(hresourceh]hresource}(hhhjshhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjsubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjsubah}(h]h ]h"]h$]h&]jjuh1jhjPshhhjbshM|ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjLshhhjbshM|ubah}(h]jGsah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjIshhubj )}(hhh]h)}(h#Free allocated VME location monitorh]h#Free allocated VME location monitor}(hjthjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM{hjthhubah}(h]h ]h"]h$]h&]uh1j hjIshhhjbshM|ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j-tj j-tj uh1jx hhhjV 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 )}(hj7th]h Parameters}(hhhj9thhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5tubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj1tubjP )}(hhh]jU )}(hL``struct vme_resource *resource`` Pointer to VME location monitor resource. h](j[ )}(h!``struct vme_resource *resource``h]h)}(hjVth]hstruct vme_resource *resource}(hhhjXthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjTtubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM|hjPtubju )}(hhh]h)}(h)Pointer to VME location monitor resource.h]h)Pointer to VME location monitor resource.}(hjqthjothhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkthM|hjltubah}(h]h ]h"]h$]h&]uh1jt hjPtubeh}(h]h ]h"]h$]h&]uh1jT hjkthM|hjMtubah}(h]h ]h"]h$]h&]uh1jO hj1tubh)}(h**Description**h]j )}(hjth]h Description}(hhhjthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjtubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM~hj1tubh)}(h*Free allocation of a VME location monitor.h]h*Free allocation of a VME location monitor.}(hjthjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM~hj1tubjP )}(hhh]jU )}(hWARNING: This function currently expects that any callbacks that have been attached to the location monitor have been removed. h](j[ )}(hEWARNING: This function currently expects that any callbacks that haveh]hEWARNING: This function currently expects that any callbacks that have}(hjthjthhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjtubju )}(hhh]h)}(h8been attached to the location monitor have been removed.h]h8been attached to the location monitor have been removed.}(hjthjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjtubah}(h]h ]h"]h$]h&]uh1jt hjtubeh}(h]h ]h"]h$]h&]uh1jT hjthMhjtubah}(h]h ]h"]h$]h&]uh1jO hj1tubh)}(h **Return**h]j )}(hjth]hReturn}(hhhjthhhNhNubah}(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.chMhj1tubjP )}(hhh]jU )}(hQZero on success, -EINVAL when provided with an invalid location monitor resource.h](j[ )}(h?Zero on success, -EINVAL when provided with an invalid locationh]h?Zero on success, -EINVAL when provided with an invalid location}(hjuhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj uubju )}(hhh]h)}(hmonitor resource.h]hmonitor resource.}(hj"uhj uhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjuubah}(h]h ]h"]h$]h&]uh1jt hj uubeh}(h]h ]h"]h$]h&]uh1jT hjuhMhjuubah}(h]h ]h"]h$]h&]uh1jO hj1tubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_slot_num (C function)c.vme_slot_numhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h'int vme_slot_num (struct vme_dev *vdev)h]j )}(h&int vme_slot_num(struct vme_dev *vdev)h](j)}(hinth]hint}(hhhjauhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]uhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjpuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj]uhhhjouhMubj )}(h vme_slot_numh]j )}(h vme_slot_numh]h vme_slot_num}(hhhjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj~uubah}(h]h ](j j eh"]h$]h&]jjuh1j hj]uhhhjouhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](j )}(hj h]hstruct}(hhhjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubj )}(h h]h }(hhhjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjumodnameN classnameNjSjV)}jY]j\)}jOjusbc.vme_slot_numasbuh1hhjuubj )}(h h]h }(hhhjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hhhjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj )}(hvdevh]hvdev}(hhhjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjuubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjuubah}(h]h ]h"]h$]h&]jjuh1jhj]uhhhjouhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjYuhhhjouhMubah}(h]jTuah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjVuhhubj )}(hhh]h)}(hRetrieve slot IDh]hRetrieve slot ID}(hj$vhj"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 hjVuhhhjouhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j:vj j:vj uh1jx hhhjV hNhNubj )}(hXm**Parameters** ``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. **Description** Retrieve the slot ID associated with the provided VME device. **Return** The slot ID on success, -EINVAL if VME bridge cannot be determined or the function is not supported. Hardware specific errors may also be returned.h](h)}(h**Parameters**h]j )}(hjDvh]h Parameters}(hhhjFvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjBvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj>vubjP )}(hhh]jU )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j[ )}(h``struct vme_dev *vdev``h]h)}(hjcvh]hstruct vme_dev *vdev}(hhhjevhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjavubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj]vubju )}(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~vhj|vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxvhMhjyvubah}(h]h ]h"]h$]h&]uh1jt hj]vubeh}(h]h ]h"]h$]h&]uh1jT hjxvhMhjZvubah}(h]h ]h"]h$]h&]uh1jO hj>vubh)}(h**Description**h]j )}(hjvh]h Description}(hhhjvhhhNhNubah}(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=Retrieve the slot ID associated with the provided VME device.h]h=Retrieve the slot ID associated with the provided VME device.}(hjvhjvhhhNhNubah}(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}(hhhjvhhhNhNubah}(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>vubjP )}(hhh]jU )}(hThe slot ID on success, -EINVAL if VME bridge cannot be determined or the function is not supported. Hardware specific errors may also be returned.h](j[ )}(hBThe slot ID on success, -EINVAL if VME bridge cannot be determinedh]hBThe slot ID on success, -EINVAL if VME bridge cannot be determined}(hjvhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjvubju )}(hhh]h)}(hPor the function is not supported. Hardware specific errors may also be returned.h]hPor the function is not supported. Hardware specific errors may also be returned.}(hjvhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMhjvubah}(h]h ]h"]h$]h&]uh1jt hjvubeh}(h]h ]h"]h$]h&]uh1jT hjvhMhjvubah}(h]h ]h"]h$]h&]uh1jO hj>vubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_bus_num (C function) c.vme_bus_numhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h&int vme_bus_num (struct vme_dev *vdev)h]j )}(h%int vme_bus_num(struct vme_dev *vdev)h](j)}(hinth]hint}(hhhj4whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0whhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMubj )}(h h]h }(hhhjCwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj0whhhjBwhMubj )}(h vme_bus_numh]j )}(h vme_bus_numh]h vme_bus_num}(hhhjUwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjQwubah}(h]h ](j j eh"]h$]h&]jjuh1j hj0whhhjBwhMubj)}(h(struct vme_dev *vdev)h]j)}(hstruct vme_dev *vdevh](j )}(hj h]hstruct}(hhhjqwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmwubj )}(h h]h }(hhhj~whhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmwubh)}(hhh]j )}(hvme_devh]hvme_dev}(hhhjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjwubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjwmodnameN classnameNjSjV)}jY]j\)}jOjWwsb c.vme_bus_numasbuh1hhjmwubj )}(h h]h }(hhhjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmwubj)}(hjh]h*}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmwubj )}(hvdevh]hvdev}(hhhjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjmwubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjiwubah}(h]h ]h"]h$]h&]jjuh1jhj0whhhjBwhMubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj,whhhjBwhMubah}(h]j'wah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj)whhubj )}(hhh]h)}(hRetrieve bus numberh]hRetrieve bus number}(hjwhjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjwhhubah}(h]h ]h"]h$]h&]uh1j hj)whhhjBwhMubeh}(h]h ](hfunctioneh"]h$]h&]j hj j xj j xj uh1jx hhhjV 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 )}(hjxh]h Parameters}(hhhjxhhhNhNubah}(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.chMhjxubjP )}(hhh]jU )}(h[``struct vme_dev *vdev`` Pointer to VME device struct vme_dev assigned to driver instance. h](j[ )}(h``struct vme_dev *vdev``h]h)}(hj6xh]hstruct vme_dev *vdev}(hhhj8xhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4xubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhj0xubju )}(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.}(hjQxhjOxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKxhMhjLxubah}(h]h ]h"]h$]h&]uh1jt hj0xubeh}(h]h ]h"]h$]h&]uh1jT hjKxhMhj-xubah}(h]h ]h"]h$]h&]uh1jO hjxubh)}(h**Description**h]j )}(hjqxh]h Description}(hhhjsxhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjoxubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjxubh)}(hERetrieve the bus enumeration associated with the provided VME device.h]hERetrieve the bus enumeration associated with the provided VME device.}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjxubh)}(h **Return**h]j )}(hjxh]hReturn}(hhhjxhhhNhNubah}(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.chMhjxubjP )}(hhh]jU )}(hFThe bus number on success, -EINVAL if VME bridge cannot be determined.h](j[ )}(h:The bus number on success, -EINVAL if VME bridge cannot beh]h:The bus number on success, -EINVAL if VME bridge cannot be}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjxubju )}(hhh]h)}(h determined.h]h determined.}(hjxhjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMhjxubah}(h]h ]h"]h$]h&]uh1jt hjxubeh}(h]h ]h"]h$]h&]uh1jT hjxhMhjxubah}(h]h ]h"]h$]h&]uh1jO hjxubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt vme_register_driver (C function)c.vme_register_driverhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(hDint vme_register_driver (struct vme_driver *drv, unsigned int ndevs)h]j )}(hCint vme_register_driver(struct vme_driver *drv, unsigned int ndevs)h](j)}(hinth]hint}(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM[ubj )}(h h]h }(hhhjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjyhhhjyhM[ubj )}(hvme_register_driverh]j )}(hvme_register_driverh]hvme_register_driver}(hhhj)yhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj%yubah}(h]h ](j j eh"]h$]h&]jjuh1j hjyhhhjyhM[ubj)}(h,(struct vme_driver *drv, unsigned int ndevs)h](j)}(hstruct vme_driver *drvh](j )}(hj h]hstruct}(hhhjEyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAyubj )}(h h]h }(hhhjRyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAyubh)}(hhh]j )}(h vme_driverh]h vme_driver}(hhhjcyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj`yubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetjeymodnameN classnameNjSjV)}jY]j\)}jOj+ysbc.vme_register_driverasbuh1hhjAyubj )}(h h]h }(hhhjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAyubj)}(hjh"2]h*}(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAyubj )}(hdrvh]hdrv}(hhhjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjAyubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=yubj)}(hunsigned int ndevsh](j)}(hunsignedh]hunsigned}(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj )}(h h]h }(hhhjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjyubj)}(hinth]hint}(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj )}(h h]h }(hhhjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjyubj )}(hndevsh]hndevs}(hhhjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjyubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=yubeh}(h]h ]h"]h$]h&]jjuh1jhjyhhhjyhM[ubeh}(h]h ]h"]h$]h&]jjj uh1j j j hjyhhhjyhM[ubah}(h]jxah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMbhjxhhubj )}(hhh]h)}(hRegister a VME driverh]hRegister a VME driver}(hjzhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMZhjzhhubah}(h]h ]h"]h$]h&]uh1j hjxhhhjyhM[ubeh}(h]h ](hfunctioneh"]h$]h&]j hj j2zj j2zj uh1jx hhhjV 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 )}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:zubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj6zubjP )}(hhh](jU )}(hH``struct vme_driver *drv`` Pointer to VME driver structure to register. h](j[ )}(h``struct vme_driver *drv``h]h)}(hj[zh]hstruct vme_driver *drv}(hhhj]zhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYzubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM[hjUzubju )}(hhh]h)}(h,Pointer to VME driver structure to register.h]h,Pointer to VME driver structure to register.}(hjvzhjtzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpzhM[hjqzubah}(h]h ]h"]h$]h&]uh1jt hjUzubeh}(h]h ]h"]h$]h&]uh1jT hjpzhM[hjRzubjU )}(hL``unsigned int ndevs`` Maximum number of devices to allow to be enumerated. h](j[ )}(h``unsigned int ndevs``h]h)}(hjzh]hunsigned int ndevs}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM\hjzubju )}(hhh]h)}(h4Maximum number of devices to allow to be enumerated.h]h4Maximum number of devices to allow to be enumerated.}(hjzhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhM\hjzubah}(h]h ]h"]h$]h&]uh1jt hjzubeh}(h]h ]h"]h$]h&]uh1jT hjzhM\hjRzubeh}(h]h ]h"]h$]h&]uh1jO hj6zubh)}(h**Description**h]j )}(hjzh]h Description}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjzubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj6zubh)}(h4Register a VME device driver with the VME subsystem.h]h4Register a VME device driver with the VME subsystem.}(hjzhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM^hj6zubh)}(h **Return**h]j )}(hjzh]hReturn}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjzubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM`hj6zubh)}(h5Zero on success, error value on registration failure.h]h5Zero on success, error value on registration failure.}(hj{hj {hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM`hj6zubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV hhhNhNubjh )}(hhh]h}(h]h ]h"]h$]h&]entries](jt "vme_unregister_driver (C function)c.vme_unregister_driverhNtauh1jg hjV hhhNhNubjy )}(hhh](j~ )}(h3void vme_unregister_driver (struct vme_driver *drv)h]j )}(h2void vme_unregister_driver(struct vme_driver *drv)h](j)}(hvoidh]hvoid}(hhhj;{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7{hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMxubj )}(h h]h }(hhhjJ{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj7{hhhjI{hMxubj )}(hvme_unregister_driverh]j )}(hvme_unregister_driverh]hvme_unregister_driver}(hhhj\{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjX{ubah}(h]h ](j j eh"]h$]h&]jjuh1j hj7{hhhjI{hMxubj)}(h(struct vme_driver *drv)h]j)}(hstruct vme_driver *drvh](j )}(hj h]hstruct}(hhhjx{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjt{ubj )}(h h]h }(hhhj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjt{ubh)}(hhh]j )}(h vme_driverh]h vme_driver}(hhhj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj{ubah}(h]h ]h"]h$]h&] refdomainhreftypejO reftargetj{modnameN classnameNjSjV)}jY]j\)}jOj^{sbc.vme_unregister_driverasbuh1hhjt{ubj )}(h h]h }(hhhj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjt{ubj)}(hjh]h*}(hhhj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt{ubj )}(hdrvh]hdrv}(hhhj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hjt{ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjp{ubah}(h]h ]h"]h$]h&]jjuh1jhj7{hhhjI{hMxubeh}(h]h ]h"]h$]h&]jjj uh1j j j hj3{hhhjI{hMxubah}(h]j.{ah ](j j eh"]h$]h&]j uh1j} h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chM|hj0{hhubj )}(hhh]h)}(hUnregister a VME driverh]hUnregister a VME driver}(hj{hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMwhj{hhubah}(h]h ]h"]h$]h&]uh1j hj0{hhhjI{hMxubeh}(h]h ](hfunctioneh"]h$]h&]j hj j|j j|j uh1jx hhhjV 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 )}(hj|h]h Parameters}(hhhj |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|ubjP )}(hhh]jU )}(hJ``struct vme_driver *drv`` Pointer to VME driver structure to unregister. h](j[ )}(h``struct vme_driver *drv``h]h)}(hj=|h]hstruct vme_driver *drv}(hhhj?|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;|ubah}(h]h ]h"]h$]h&]uh1jZ h^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMxhj7|ubju )}(hhh]h)}(h.Pointer to VME driver structure to unregister.h]h.Pointer to VME driver structure to unregister.}(hjX|hjV|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR|hMxhjS|ubah}(h]h ]h"]h$]h&]uh1jt hj7|ubeh}(h]h ]h"]h$]h&]uh1jT hjR|hMxhj4|ubah}(h]h ]h"]h$]h&]uh1jO hj|ubh)}(h**Description**h]j )}(hjx|h]h Description}(hhhjz|hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjv|ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMzhj|ubh)}(h6Unregister a VME device driver from the VME subsystem.h]h6Unregister a VME device driver from the VME subsystem.}(hj|hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/vme:296: ./drivers/staging/vme_user/vme.chMzhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1j hjV 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_handlerj|error_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.confapep_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_spacefile_insertion_enabled raw_enabledKline_length_limitM'syntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_link embed_imagesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j|j|jjj#j jj}jjjxjujjjjjjjjjjjKjHjjjjjjj j jjj j j j j j j4 j1 j j j j jS jP j|j|u nametypes}(j|NjNj#NjNjNjxNjNjNjNjNjNjKNjNjNjNj NjNj Nj Nj Nj4 Nj Nj NjS Nj|Nuh}(j|hjhj j j}j&jjEjujjjjjjj jjjjjHjjjNjjjjj j"jjAj jj j j j3 j1 j j j7 j j jP j j|jV jv j j j jjjjjjjLjQj2j7jCjHj$j$j$&j)&j)j)j.j.j3j4j_7jd7j:j:j>j>jMAjRAjBjBj4Ej9EjCGjHGjIjIj