sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/driver-api/s390-driversmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h#Writing s390 channel device driversh]h#Writing s390 channel device drivers}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers.rsthKubh field_list)}(hhh]hfield)}(hhh](h field_name)}(hAuthorh]hAuthor}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(hCornelia Huck h]h paragraph)}(h Cornelia Huckh]h Cornelia Huck}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hX*This document describes the interfaces available for device drivers that drive s390 based channel attached I/O devices. This includes interfaces for interaction with the hardware and interfaces for interacting with the common driver core. Those interfaces are provided by the s390 common I/O layer.h]hX*This document describes the interfaces available for device drivers that drive s390 based channel attached I/O devices. This includes interfaces for interaction with the hardware and interfaces for interacting with the common driver core. Those interfaces are provided by the s390 common I/O layer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hThe document assumes a familarity with the technical terms associated with the s390 channel I/O architecture. For a description of this architecture, please refer to the "z/Architecture: Principles of Operation", IBM publication no. SA22-7832.h]hThe document assumes a familarity with the technical terms associated with the s390 channel I/O architecture. For a description of this architecture, please refer to the “z/Architecture: Principles of Operation”, IBM publication no. SA22-7832.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hWhile most I/O devices on a s390 system are typically driven through the channel I/O mechanism described here, there are various other methods (like the diag interface). These are out of the scope of this document.h]hWhile most I/O devices on a s390 system are typically driven through the channel I/O mechanism described here, there are various other methods (like the diag interface). These are out of the scope of this document.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThe s390 common I/O layer also provides access to some devices that are not strictly considered I/O devices. They are considered here as well, although they are not the focus of this document.h]hThe s390 common I/O layer also provides access to some devices that are not strictly considered I/O devices. They are considered here as well, although they are not the focus of this document.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hrSome additional information can also be found in the kernel source under Documentation/arch/s390/driver-model.rst.h]hrSome additional information can also be found in the kernel source under Documentation/arch/s390/driver-model.rst.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h The css bush]h The css bus}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhhhhhK!ubh)}(h`The css bus contains the subchannels available on the system. They fall into several categories:h]h`The css bus contains the subchannels available on the system. They fall into several categories:}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjXhhubh bullet_list)}(hhh](h list_item)}(hqStandard I/O subchannels, for use by the system. They have a child device on the ccw bus and are described below.h]h)}(hqStandard I/O subchannels, for use by the system. They have a child device on the ccw bus and are described below.h]hqStandard I/O subchannels, for use by the system. They have a child device on the ccw bus and are described below.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hj~ubah}(h]h ]h"]h$]h&]uh1j|hjyhhhhhNubj})}(hWI/O subchannels bound to the vfio-ccw driver. See Documentation/arch/s390/vfio-ccw.rst.h]h)}(hWI/O subchannels bound to the vfio-ccw driver. See Documentation/arch/s390/vfio-ccw.rst.h]hWI/O subchannels bound to the vfio-ccw driver. See Documentation/arch/s390/vfio-ccw.rst.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1j|hjyhhhhhNubj})}(h6Message subchannels. No Linux driver currently exists.h]h)}(hjh]h6Message subchannels. No Linux driver currently exists.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1j|hjyhhhhhNubj})}(hjCHSC subchannels (at most one). The chsc subchannel driver can be used to send asynchronous chsc commands.h]h)}(hjCHSC subchannels (at most one). The chsc subchannel driver can be used to send asynchronous chsc commands.h]hjCHSC subchannels (at most one). The chsc subchannel driver can be used to send asynchronous chsc commands.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1j|hjyhhhhhNubj})}(hhj$hhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singleccw1 (C struct)c.ccw1hNtauh1jChj$hhhNhNubhdesc)}(hhh](hdesc_signature)}(hccw1h]hdesc_signature_line)}(h struct ccw1h](hdesc_sig_keyword)}(hstructh]hstruct}(hjghhhNhNubah}(h]h ]kah"]h$]h&]uh1jehjahhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubhdesc_sig_space)}(h h]h }(hjyhhhNhNubah}(h]h ]wah"]h$]h&]uh1jwhjahhhjvhKubh desc_name)}(hccw1h]h desc_sig_name)}(hj]h]hccw1}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjahhhjvhKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1j_sphinx_line_type declaratorhj[hhhjvhKubah}(h]jRah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jYhjvhKhjVhhubh desc_content)}(hhh]h)}(hchannel command wordh]hchannel command word}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjvhKubeh}(h]h ](cstructeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jThhhj$hNhNubh container)}(h**Definition**:: struct ccw1 { __u8 cmd_code; __u8 flags; __u16 count; dma32_t cda; }; **Members** ``cmd_code`` command code ``flags`` flags, like IDA addressing, etc. ``count`` byte count ``cda`` data addressh](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubh literal_block)}(hUstruct ccw1 { __u8 cmd_code; __u8 flags; __u16 count; dma32_t cda; };h]hUstruct ccw1 { __u8 cmd_code; __u8 flags; __u16 count; dma32_t cda; };}hj sbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK#hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h``cmd_code`` command code h](hterm)}(h ``cmd_code``h]hliteral)}(hjAh]hcmd_code}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj?ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj9ubh definition)}(hhh]h)}(h command codeh]h command code}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhKhj[ubah}(h]h ]h"]h$]h&]uh1jYhj9ubeh}(h]h ]h"]h$]h&]uh1j7hjXhKhj4ubj8)}(h+``flags`` flags, like IDA addressing, etc. h](j>)}(h ``flags``h]jD)}(hj~h]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj|ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjxubjZ)}(hhh]h)}(h flags, like IDA addressing, etc.h]h flags, like IDA addressing, etc.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjxubeh}(h]h ]h"]h$]h&]uh1j7hjhKhj4ubj8)}(h``count`` byte count h](j>)}(h ``count``h]jD)}(hjh]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(h byte counth]h byte count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhj4ubj8)}(h``cda`` data addressh](j>)}(h``cda``h]jD)}(hjh]hcda}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(h data addressh]h data address}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhj4ubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hj3h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj$hhubh)}(hThe ccw is the basic structure to build channel programs that perform operations with the device or the control unit. Only Format-1 channel command words are supported.h]hThe ccw is the basic structure to build channel programs that perform operations with the device or the control unit. Only Format-1 channel command words are supported.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj$hhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw0 (C struct)c.ccw0hNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hccw0h]j`)}(h struct ccw0h](jf)}(hjih]hstruct}(hjqhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjmhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK#ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjmhhhj~hK#ubj)}(hccw0h]j)}(hjkh]hccw0}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjmhhhj~hK#ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjihhhj~hK#ubah}(h]jdah ](jjeh"]h$]h&]jj)jhuh1jYhj~hK#hjfhhubj)}(hhh]h)}(hchannel command wordh]hchannel command word}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK(hjhhubah}(h]h ]h"]h$]h&]uh1jhjfhhhj~hK#ubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhj$hNhNubj)}(hX3**Definition**:: struct ccw0 { __u8 cmd_code; __u32 cda : 24; __u8 flags; __u8 reserved; __u16 count; }; **Members** ``cmd_code`` command code ``cda`` data address ``flags`` flags, like IDA addressing, etc. ``reserved`` will be ignored ``count`` byte counth](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK,hjubj )}(hkstruct ccw0 { __u8 cmd_code; __u32 cda : 24; __u8 flags; __u8 reserved; __u16 count; };h]hkstruct ccw0 { __u8 cmd_code; __u32 cda : 24; __u8 flags; __u8 reserved; __u16 count; };}hjsbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK.hjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK6hjubj3)}(hhh](j8)}(h``cmd_code`` command code h](j>)}(h ``cmd_code``h]jD)}(hj h]hcmd_code}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK*hjubjZ)}(hhh]h)}(h command codeh]h command code}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hK*hj6ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj5hK*hjubj8)}(h``cda`` data address h](j>)}(h``cda``h]jD)}(hjYh]hcda}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjWubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK+hjSubjZ)}(hhh]h)}(h data addressh]h data address}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhK+hjoubah}(h]h ]h"]h$]h&]uh1jYhjSubeh}(h]h ]h"]h$]h&]uh1j7hjnhK+hjubj8)}(h+``flags`` flags, like IDA addressing, etc. h](j>)}(h ``flags``h]jD)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK,hjubjZ)}(hhh]h)}(h flags, like IDA addressing, etc.h]h flags, like IDA addressing, etc.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK,hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK,hjubj8)}(h``reserved`` will be ignored h](j>)}(h ``reserved``h]jD)}(hjh]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK-hjubjZ)}(hhh]h)}(hwill be ignoredh]hwill be ignored}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK-hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK-hjubj8)}(h``count`` byte counth](j>)}(h ``count``h]jD)}(hjh]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK-hjubjZ)}(hhh]h)}(h byte counth]h byte count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK.hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK-hjubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hjGh]h Description}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK1hj$hhubh)}(hThe format-0 ccw structure.h]hThe format-0 ccw structure.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK/hj$hhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPerw (C struct)c.erwhNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(herwh]j`)}(h struct erwh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK4ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhK4ubj)}(herwh]j)}(hjh]herw}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK4ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj}hhhjhK4ubah}(h]jxah ](jjeh"]h$]h&]jj)jhuh1jYhjhK4hjzhhubj)}(hhh]h)}(hextended report wordh]hextended report word}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKQhjhhubah}(h]h ]h"]h$]h&]uh1jhjzhhhjhK4ubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhj$hNhNubj)}(hX**Definition**:: struct erw { __u32 res0 : 3; __u32 auth : 1; __u32 pvrf : 1; __u32 cpt : 1; __u32 fsavf : 1; __u32 cons : 1; __u32 scavf : 1; __u32 fsaf : 1; __u32 scnt : 6; __u32 res16 : 16; }; **Members** ``res0`` reserved ``auth`` authorization check ``pvrf`` path-verification-required flag ``cpt`` channel-path timeout ``fsavf`` failing storage address validity flag ``cons`` concurrent sense ``scavf`` secondary ccw address validity flag ``fsaf`` failing storage address format ``scnt`` sense count, if **cons** == ``1`` ``res16`` reservedh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKUhjubj )}(hstruct erw { __u32 res0 : 3; __u32 auth : 1; __u32 pvrf : 1; __u32 cpt : 1; __u32 fsavf : 1; __u32 cons : 1; __u32 scavf : 1; __u32 fsaf : 1; __u32 scnt : 6; __u32 res16 : 16; };h]hstruct erw { __u32 res0 : 3; __u32 auth : 1; __u32 pvrf : 1; __u32 cpt : 1; __u32 fsavf : 1; __u32 cons : 1; __u32 scavf : 1; __u32 fsaf : 1; __u32 scnt : 6; __u32 res16 : 16; };}hjsbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKWhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKdhjubj3)}(hhh](j8)}(h``res0`` reserved h](j>)}(h``res0``h]jD)}(hj4h]hres0}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj2ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKShj.ubjZ)}(hhh]h)}(hreservedh]hreserved}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKShjJubah}(h]h ]h"]h$]h&]uh1jYhj.ubeh}(h]h ]h"]h$]h&]uh1j7hjIhKShj+ubj8)}(h``auth`` authorization check h](j>)}(h``auth``h]jD)}(hjmh]hauth}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jChjkubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKThjgubjZ)}(hhh]h)}(hauthorization checkh]hauthorization check}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKThjubah}(h]h ]h"]h$]h&]uh1jYhjgubeh}(h]h ]h"]h$]h&]uh1j7hjhKThj+ubj8)}(h)``pvrf`` path-verification-required flag h](j>)}(h``pvrf``h]jD)}(hjh]hpvrf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKUhjubjZ)}(hhh]h)}(hpath-verification-required flagh]hpath-verification-required flag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKUhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKUhj+ubj8)}(h``cpt`` channel-path timeout h](j>)}(h``cpt``h]jD)}(hjh]hcpt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKVhjubjZ)}(hhh]h)}(hchannel-path timeouth]hchannel-path timeout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKVhj+ubj8)}(h0``fsavf`` failing storage address validity flag h](j>)}(h ``fsavf``h]jD)}(hjh]hfsavf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKWhjubjZ)}(hhh]h)}(h%failing storage address validity flagh]h%failing storage address validity flag}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hKWhj.ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj-hKWhj+ubj8)}(h``cons`` concurrent sense h](j>)}(h``cons``h]jD)}(hjQh]hcons}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jChjOubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKXhjKubjZ)}(hhh]h)}(hconcurrent senseh]hconcurrent sense}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhKXhjgubah}(h]h ]h"]h$]h&]uh1jYhjKubeh}(h]h ]h"]h$]h&]uh1j7hjfhKXhj+ubj8)}(h.``scavf`` secondary ccw address validity flag h](j>)}(h ``scavf``h]jD)}(hjh]hscavf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKYhjubjZ)}(hhh]h)}(h#secondary ccw address validity flagh]h#secondary ccw address validity flag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKYhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKYhj+ubj8)}(h(``fsaf`` failing storage address format h](j>)}(h``fsaf``h]jD)}(hjh]hfsaf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKZhjubjZ)}(hhh]h)}(hfailing storage address formath]hfailing storage address format}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKZhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKZhj+ubj8)}(h+``scnt`` sense count, if **cons** == ``1`` h](j>)}(h``scnt``h]jD)}(hjh]hscnt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK[hjubjZ)}(hhh]h)}(h!sense count, if **cons** == ``1``h](hsense count, if }(hj hhhNhNubj)}(h**cons**h]hcons}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh == }(hj hhhNhNubjD)}(h``1``h]h1}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubeh}(h]h ]h"]h$]h&]uh1hhj hK[hj ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj hK[hj+ubj8)}(h``res16`` reservedh](j>)}(h ``res16``h]jD)}(hjU h]hres16}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjS ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK[hjO ubjZ)}(hhh]h)}(hreservedh]hreserved}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK\hjk ubah}(h]h ]h"]h$]h&]uh1jYhjO ubeh}(h]h ]h"]h$]h&]uh1j7hjj hK[hj+ubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPerw_eadm (C struct) c.erw_eadmhNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(herw_eadmh]j`)}(hstruct erw_eadmh](jf)}(hjih]hstruct}(hj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKbubjx)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj hhhj hKbubj)}(herw_eadmh]j)}(hj h]herw_eadm}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKbubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj hhhj hKbubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jYhj hKbhj hhubj)}(hhh]h)}(h$EADM Subchannel extended report wordh]h$EADM Subchannel extended report word}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKkhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKbubeh}(h]h ](jstructeh"]h$]h&]jjjj jj jjjuh1jThhhj$hNhNubj)}(h**Definition**:: struct erw_eadm { __u32 : 16; __u32 b : 1; __u32 r : 1; __u32 : 14; }; **Members** ``b`` aob error ``r`` arsb errorh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKohj ubj )}(hVstruct erw_eadm { __u32 : 16; __u32 b : 1; __u32 r : 1; __u32 : 14; };h]hVstruct erw_eadm { __u32 : 16; __u32 b : 1; __u32 r : 1; __u32 : 14; };}hj. sbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKqhj ubh)}(h **Members**h]j)}(hj? h]hMembers}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj= ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKxhj ubj3)}(hhh](j8)}(h``b`` aob error h](j>)}(h``b``h]jD)}(hj^ h]hb}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj\ ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKmhjX ubjZ)}(hhh]h)}(h aob errorh]h aob error}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs hKmhjt ubah}(h]h ]h"]h$]h&]uh1jYhjX ubeh}(h]h ]h"]h$]h&]uh1j7hjs hKmhjU ubj8)}(h``r`` arsb errorh](j>)}(h``r``h]jD)}(hj h]hr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKmhj ubjZ)}(hhh]h)}(h arsb errorh]h arsb error}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKnhj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hKmhjU ubeh}(h]h ]h"]h$]h&]uh1j2hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPsublog (C struct)c.subloghNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hsublogh]j`)}(h struct sublogh](jf)}(hjih]hstruct}(hj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKtubjx)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj hhhj hKtubj)}(hsublogh]j)}(hj h]hsublog}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKtubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj hhhj hKtubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jYhj hKthj hhubj)}(hhh]h)}(hsubchannel logout areah]hsubchannel logout area}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKwhj0 hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKtubeh}(h]h ](jstructeh"]h$]h&]jjjjK jjK jjjuh1jThhhj$hNhNubj)}(hXw**Definition**:: struct sublog { __u32 res0 : 1; __u32 esf : 7; __u32 lpum : 8; __u32 arep : 1; __u32 fvf : 5; __u32 sacc : 2; __u32 termc : 2; __u32 devsc : 1; __u32 serr : 1; __u32 ioerr : 1; __u32 seqc : 3; }; **Members** ``res0`` reserved ``esf`` extended status flags ``lpum`` last path used mask ``arep`` ancillary report ``fvf`` field-validity flags ``sacc`` storage access code ``termc`` termination code ``devsc`` device-status check ``serr`` secondary error ``ioerr`` i/o-error alert ``seqc`` sequence codeh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS ubh:}(hjS hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK{hjO ubj )}(hstruct sublog { __u32 res0 : 1; __u32 esf : 7; __u32 lpum : 8; __u32 arep : 1; __u32 fvf : 5; __u32 sacc : 2; __u32 termc : 2; __u32 devsc : 1; __u32 serr : 1; __u32 ioerr : 1; __u32 seqc : 3; };h]hstruct sublog { __u32 res0 : 1; __u32 esf : 7; __u32 lpum : 8; __u32 arep : 1; __u32 fvf : 5; __u32 sacc : 2; __u32 termc : 2; __u32 devsc : 1; __u32 serr : 1; __u32 ioerr : 1; __u32 seqc : 3; };}hjp sbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK}hjO ubh)}(h **Members**h]j)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjO ubj3)}(hhh](j8)}(h``res0`` reserved h](j>)}(h``res0``h]jD)}(hj h]hres0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKyhj ubjZ)}(hhh]h)}(hreservedh]hreserved}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKyhj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hKyhj ubj8)}(h``esf`` extended status flags h](j>)}(h``esf``h]jD)}(hj h]hesf}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKzhj ubjZ)}(hhh]h)}(hextended status flagsh]hextended status flags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKzhj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hKzhj ubj8)}(h``lpum`` last path used mask h](j>)}(h``lpum``h]jD)}(hj h]hlpum}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK{hj ubjZ)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj' hK{hj( ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj' hK{hj ubj8)}(h``arep`` ancillary report h](j>)}(h``arep``h]jD)}(hjK h]harep}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjI ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK|hjE ubjZ)}(hhh]h)}(hancillary reporth]hancillary report}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj` hK|hja ubah}(h]h ]h"]h$]h&]uh1jYhjE ubeh}(h]h ]h"]h$]h&]uh1j7hj` hK|hj ubj8)}(h``fvf`` field-validity flags h](j>)}(h``fvf``h]jD)}(hj h]hfvf}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK}hj~ ubjZ)}(hhh]h)}(hfield-validity flagsh]hfield-validity flags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK}hj ubah}(h]h ]h"]h$]h&]uh1jYhj~ ubeh}(h]h ]h"]h$]h&]uh1j7hj hK}hj ubj8)}(h``sacc`` storage access code h](j>)}(h``sacc``h]jD)}(hj h]hsacc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK~hj ubjZ)}(hhh]h)}(hstorage access codeh]hstorage access code}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK~hj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hK~hj ubj8)}(h``termc`` termination code h](j>)}(h ``termc``h]jD)}(hj h]htermc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubjZ)}(hhh]h)}(htermination codeh]htermination code}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hKhj ubj8)}(h``devsc`` device-status check h](j>)}(h ``devsc``h]jD)}(hj/ h]hdevsc}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj- ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj) ubjZ)}(hhh]h)}(hdevice-status checkh]hdevice-status check}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD hKhjE ubah}(h]h ]h"]h$]h&]uh1jYhj) ubeh}(h]h ]h"]h$]h&]uh1j7hjD hKhj ubj8)}(h``serr`` secondary error h](j>)}(h``serr``h]jD)}(hjh h]hserr}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjf ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjb ubjZ)}(hhh]h)}(hsecondary errorh]hsecondary error}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj} hKhj~ ubah}(h]h ]h"]h$]h&]uh1jYhjb ubeh}(h]h ]h"]h$]h&]uh1j7hj} hKhj ubj8)}(h``ioerr`` i/o-error alert h](j>)}(h ``ioerr``h]jD)}(hj h]hioerr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubjZ)}(hhh]h)}(hi/o-error alerth]hi/o-error alert}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hKhj ubj8)}(h``seqc`` sequence codeh](j>)}(h``seqc``h]jD)}(hj h]hseqc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubjZ)}(hhh]h)}(h sequence codeh]h sequence code}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hKhj ubeh}(h]h ]h"]h$]h&]uh1j2hjO ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPesw0 (C struct)c.esw0hNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hesw0h]j`)}(h struct esw0h](jf)}(hjih]hstruct}(hj4hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj0hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj0hhhjAhKubj)}(hesw0h]j)}(hj.h]hesw0}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ](jjeh"]h$]h&]jjuh1jhj0hhhjAhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj,hhhjAhKubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jYhjAhKhj)hhubj)}(hhh]h)}(h#Format 0 Extended Status Word (ESW)h]h#Format 0 Extended Status Word (ESW)}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjshhubah}(h]h ]h"]h$]h&]uh1jhj)hhhjAhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhj$hNhNubj)}(hX**Definition**:: struct esw0 { struct sublog sublog; struct erw erw; dma32_t faddr[2]; dma32_t saddr; }; **Members** ``sublog`` subchannel logout ``erw`` extended report word ``faddr`` failing storage address ``saddr`` secondary ccw addressh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubj )}(hgstruct esw0 { struct sublog sublog; struct erw erw; dma32_t faddr[2]; dma32_t saddr; };h]hgstruct esw0 { struct sublog sublog; struct erw erw; dma32_t faddr[2]; dma32_t saddr; };}hjsbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubj3)}(hhh](j8)}(h``sublog`` subchannel logout h](j>)}(h ``sublog``h]jD)}(hjh]hsublog}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hsubchannel logouth]hsubchannel logout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubj8)}(h``erw`` extended report word h](j>)}(h``erw``h]jD)}(hjh]herw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hextended report wordh]hextended report word}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hKhj2ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj1hKhjubj8)}(h"``faddr`` failing storage address h](j>)}(h ``faddr``h]jD)}(hjUh]hfaddr}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjOubjZ)}(hhh]h)}(hfailing storage addressh]hfailing storage address}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhKhjkubah}(h]h ]h"]h$]h&]uh1jYhjOubeh}(h]h ]h"]h$]h&]uh1j7hjjhKhjubj8)}(h``saddr`` secondary ccw addressh](j>)}(h ``saddr``h]jD)}(hjh]hsaddr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hsecondary ccw addressh]hsecondary ccw address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPesw1 (C struct)c.esw1hNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hesw1h]j`)}(h struct esw1h](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw1h]j)}(hjh]hesw1}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(h#Format 1 Extended Status Word (ESW)h]h#Format 1 Extended Status Word (ESW)}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj'hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjBjjBjjjuh1jThhhj$hNhNubj)}(hX5**Definition**:: struct esw1 { __u8 zero0; __u8 lpum; __u16 zero16; struct erw erw; __u32 zeros[3]; }; **Members** ``zero0`` reserved zeros ``lpum`` last path used mask ``zero16`` reserved zeros ``erw`` extended report word ``zeros`` three fullwords of zerosh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh:}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjFubj )}(histruct esw1 { __u8 zero0; __u8 lpum; __u16 zero16; struct erw erw; __u32 zeros[3]; };h]histruct esw1 { __u8 zero0; __u8 lpum; __u16 zero16; struct erw erw; __u32 zeros[3]; };}hjgsbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjFubh)}(h **Members**h]j)}(hjxh]hMembers}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjFubj3)}(hhh](j8)}(h``zero0`` reserved zeros h](j>)}(h ``zero0``h]jD)}(hjh]hzero0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubj8)}(h``lpum`` last path used mask h](j>)}(h``lpum``h]jD)}(hjh]hlpum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubj8)}(h``zero16`` reserved zeros h](j>)}(h ``zero16``h]jD)}(hj h]hzero16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubj8)}(h``erw`` extended report word h](j>)}(h``erw``h]jD)}(hjBh]herw}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj@ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj<ubjZ)}(hhh]h)}(hextended report wordh]hextended report word}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKhjXubah}(h]h ]h"]h$]h&]uh1jYhj<ubeh}(h]h ]h"]h$]h&]uh1j7hjWhKhjubj8)}(h"``zeros`` three fullwords of zerosh](j>)}(h ``zeros``h]jD)}(hj{h]hzeros}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjyubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjuubjZ)}(hhh]h)}(hthree fullwords of zerosh]hthree fullwords of zeros}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubah}(h]h ]h"]h$]h&]uh1jYhjuubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubeh}(h]h ]h"]h$]h&]uh1j2hjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPesw2 (C struct)c.esw2hNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hesw2h]j`)}(h struct esw2h](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw2h]j)}(hjh]hesw2}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(h#Format 2 Extended Status Word (ESW)h]h#Format 2 Extended Status Word (ESW)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjj/jj/jjjuh1jThhhj$hNhNubj)}(hX?**Definition**:: struct esw2 { __u8 zero0; __u8 lpum; __u16 dcti; struct erw erw; __u32 zeros[3]; }; **Members** ``zero0`` reserved zeros ``lpum`` last path used mask ``dcti`` device-connect-time interval ``erw`` extended report word ``zeros`` three fullwords of zerosh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubh:}(hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj3ubj )}(hgstruct esw2 { __u8 zero0; __u8 lpum; __u16 dcti; struct erw erw; __u32 zeros[3]; };h]hgstruct esw2 { __u8 zero0; __u8 lpum; __u16 dcti; struct erw erw; __u32 zeros[3]; };}hjTsbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj3ubh)}(h **Members**h]j)}(hjeh]hMembers}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj3ubj3)}(hhh](j8)}(h``zero0`` reserved zeros h](j>)}(h ``zero0``h]jD)}(hjh]hzero0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj~ubjZ)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhj~ubeh}(h]h ]h"]h$]h&]uh1j7hjhKhj{ubj8)}(h``lpum`` last path used mask h](j>)}(h``lpum``h]jD)}(hjh]hlpum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhj{ubj8)}(h&``dcti`` device-connect-time interval h](j>)}(h``dcti``h]jD)}(hjh]hdcti}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hdevice-connect-time intervalh]hdevice-connect-time interval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj hKhj{ubj8)}(h``erw`` extended report word h](j>)}(h``erw``h]jD)}(hj/h]herw}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj-ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj)ubjZ)}(hhh]h)}(hextended report wordh]hextended report word}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhKhjEubah}(h]h ]h"]h$]h&]uh1jYhj)ubeh}(h]h ]h"]h$]h&]uh1j7hjDhKhj{ubj8)}(h"``zeros`` three fullwords of zerosh](j>)}(h ``zeros``h]jD)}(hjhh]hzeros}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjfubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjbubjZ)}(hhh]h)}(hthree fullwords of zerosh]hthree fullwords of zeros}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj~ubah}(h]h ]h"]h$]h&]uh1jYhjbubeh}(h]h ]h"]h$]h&]uh1j7hj}hKhj{ubeh}(h]h ]h"]h$]h&]uh1j2hj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPesw3 (C struct)c.esw3hNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hesw3h]j`)}(h struct esw3h](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw3h]j)}(hjh]hesw3}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(h#Format 3 Extended Status Word (ESW)h]h#Format 3 Extended Status Word (ESW)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhj$hNhNubj)}(hX)**Definition**:: struct esw3 { __u8 zero0; __u8 lpum; __u16 res; struct erw erw; __u32 zeros[3]; }; **Members** ``zero0`` reserved zeros ``lpum`` last path used mask ``res`` reserved ``erw`` extended report word ``zeros`` three fullwords of zerosh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh:}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubj )}(hfstruct esw3 { __u8 zero0; __u8 lpum; __u16 res; struct erw erw; __u32 zeros[3]; };h]hfstruct esw3 { __u8 zero0; __u8 lpum; __u16 res; struct erw erw; __u32 zeros[3]; };}hjAsbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubh)}(h **Members**h]j)}(hjRh]hMembers}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubj3)}(hhh](j8)}(h``zero0`` reserved zeros h](j>)}(h ``zero0``h]jD)}(hjqh]hzero0}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jChjoubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjkubjZ)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjkubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjhubj8)}(h``lpum`` last path used mask h](j>)}(h``lpum``h]jD)}(hjh]hlpum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjhubj8)}(h``res`` reserved h](j>)}(h``res``h]jD)}(hjh]hres}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hreservedh]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjhubj8)}(h``erw`` extended report word h](j>)}(h``erw``h]jD)}(hjh]herw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hextended report wordh]hextended report word}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hKhj2ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj1hKhjhubj8)}(h"``zeros`` three fullwords of zerosh](j>)}(h ``zeros``h]jD)}(hjUh]hzeros}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjOubjZ)}(hhh]h)}(hthree fullwords of zerosh]hthree fullwords of zeros}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjkubah}(h]h ]h"]h$]h&]uh1jYhjOubeh}(h]h ]h"]h$]h&]uh1j7hjjhKhjhubeh}(h]h ]h"]h$]h&]uh1j2hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPesw_eadm (C struct) c.esw_eadmhNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hesw_eadmh]j`)}(hstruct esw_eadmh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw_eadmh]j)}(hjh]hesw_eadm}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(h*EADM Subchannel Extended Status Word (ESW)h]h*EADM Subchannel Extended Status Word (ESW)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjj jj jjjuh1jThhhj$hNhNubj)}(h**Definition**:: struct esw_eadm { __u32 sublog; struct erw_eadm erw; __u32 : 32; __u32 : 32; __u32 : 32; }; **Members** ``sublog`` subchannel logout ``erw`` extended report wordh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubj )}(hostruct esw_eadm { __u32 sublog; struct erw_eadm erw; __u32 : 32; __u32 : 32; __u32 : 32; };h]hostruct esw_eadm { __u32 sublog; struct erw_eadm erw; __u32 : 32; __u32 : 32; __u32 : 32; };}hj.sbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubh)}(h **Members**h]j)}(hj?h]hMembers}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubj3)}(hhh](j8)}(h``sublog`` subchannel logout h](j>)}(h ``sublog``h]jD)}(hj^h]hsublog}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj\ubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjXubjZ)}(hhh]h)}(hsubchannel logouth]hsubchannel logout}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKhjtubah}(h]h ]h"]h$]h&]uh1jYhjXubeh}(h]h ]h"]h$]h&]uh1j7hjshKhjUubj8)}(h``erw`` extended report wordh](j>)}(h``erw``h]jD)}(hjh]herw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hextended report wordh]hextended report word}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjUubeh}(h]h ]h"]h$]h&]uh1j2hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPirb (C struct)c.irbhNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hirbh]j`)}(h struct irbh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hirbh]j)}(hjh]hirb}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(hinterruption response blockh]hinterruption response block}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj0hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjKjjKjjjuh1jThhhj$hNhNubj)}(hXl**Definition**:: struct irb { union scsw scsw; union { struct esw0 esw0; struct esw1 esw1; struct esw2 esw2; struct esw3 esw3; struct esw_eadm eadm; } esw; __u8 ecw[32]; }; **Members** ``scsw`` subchannel status word ``esw`` extended status word ``ecw`` extended control wordh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh:}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjOubj )}(hstruct irb { union scsw scsw; union { struct esw0 esw0; struct esw1 esw1; struct esw2 esw2; struct esw3 esw3; struct esw_eadm eadm; } esw; __u8 ecw[32]; };h]hstruct irb { union scsw scsw; union { struct esw0 esw0; struct esw1 esw1; struct esw2 esw2; struct esw3 esw3; struct esw_eadm eadm; } esw; __u8 ecw[32]; };}hjpsbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjOubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjOubj3)}(hhh](j8)}(h ``scsw`` subchannel status word h](j>)}(h``scsw``h]jD)}(hjh]hscsw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hsubchannel status wordh]hsubchannel status word}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubj8)}(h``esw`` extended status word h](j>)}(h``esw``h]jD)}(hjh]hesw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(hextended status wordh]hextended status word}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjubj8)}(h``ecw`` extended control wordh](j>)}(h``ecw``h]jD)}(hjh]hecw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubjZ)}(hhh]h)}(hextended control wordh]hextended control word}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj(ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj'hKhjubeh}(h]h ]h"]h$]h&]uh1j2hjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hjUh]h Description}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj$hhubh)}(hXThe irb that is handed to the device driver when an interrupt occurs. For solicited interrupts, the common I/O layer already performs checks whether a field is valid; a field not being valid is always passed as ``0``. If a unit check occurred, **ecw** may contain sense data; this is retrieved by the common I/O layer itself if the device doesn't support concurrent sense (so that the device driver never needs to perform basic sense itself). For unsolicited interrupts, the irb is passed as-is (expect for sense data, if applicable).h](hThe irb that is handed to the device driver when an interrupt occurs. For solicited interrupts, the common I/O layer already performs checks whether a field is valid; a field not being valid is always passed as }(hjkhhhNhNubjD)}(h``0``h]h0}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jChjkubh. If a unit check occurred, }(hjkhhhNhNubj)}(h**ecw**h]hecw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubhX may contain sense data; this is retrieved by the common I/O layer itself if the device doesn’t support concurrent sense (so that the device driver never needs to perform basic sense itself). For unsolicited interrupts, the irb is passed as-is (expect for sense data, if applicable).}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj$hhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPciw (C struct)c.ciwhNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hciwh]j`)}(h struct ciwh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hciwh]j)}(hjh]hciw}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(h%command information word (CIW) layouth]h%command information word (CIW) layout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhj$hNhNubj)}(hX6**Definition**:: struct ciw { __u32 et : 2; __u32 reserved : 2; __u32 ct : 4; __u32 cmd : 8; __u32 count : 16; }; **Members** ``et`` entry type ``reserved`` reserved bits ``ct`` command type ``cmd`` command code ``count`` command counth](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubj )}(hstruct ciw { __u32 et : 2; __u32 reserved : 2; __u32 ct : 4; __u32 cmd : 8; __u32 count : 16; };h]hstruct ciw { __u32 et : 2; __u32 reserved : 2; __u32 ct : 4; __u32 cmd : 8; __u32 count : 16; };}hj6sbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubh)}(h **Members**h]j)}(hjGh]hMembers}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMhjubj3)}(hhh](j8)}(h``et`` entry type h](j>)}(h``et``h]jD)}(hjfh]het}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjdubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj`ubjZ)}(hhh]h)}(h entry typeh]h entry type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hKhj|ubah}(h]h ]h"]h$]h&]uh1jYhj`ubeh}(h]h ]h"]h$]h&]uh1j7hj{hKhj]ubj8)}(h``reserved`` reserved bits h](j>)}(h ``reserved``h]jD)}(hjh]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(h reserved bitsh]h reserved bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhj]ubj8)}(h``ct`` command type h](j>)}(h``ct``h]jD)}(hjh]hct}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjZ)}(hhh]h)}(h command typeh]h command type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhj]ubj8)}(h``cmd`` command code h](j>)}(h``cmd``h]jD)}(hjh]hcmd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj ubjZ)}(hhh]h)}(h command codeh]h command code}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hKhj'ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj&hKhj]ubj8)}(h``count`` command counth](j>)}(h ``count``h]jD)}(hjJh]hcount}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjHubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjDubjZ)}(hhh]h)}(h command counth]h command count}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj`ubah}(h]h ]h"]h$]h&]uh1jYhjDubeh}(h]h ]h"]h$]h&]uh1j7hj_hKhj]ubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_dev_id (C struct) c.ccw_dev_idhNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(h ccw_dev_idh]j`)}(hstruct ccw_dev_idh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(h ccw_dev_idh]j)}(hjh]h ccw_dev_id}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMhjhhubj)}(hhh]h)}(h!unique identifier for ccw devicesh]h!unique identifier for ccw devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM=hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhj$hNhNubj)}(h**Definition**:: struct ccw_dev_id { u8 ssid; u16 devno; }; **Members** ``ssid`` subchannel set id ``devno`` device numberh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMAhjubj )}(h2struct ccw_dev_id { u8 ssid; u16 devno; };h]h2struct ccw_dev_id { u8 ssid; u16 devno; };}hj#sbah}(h]h ]h"]h$]h&]jjuh1j hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMChjubh)}(h **Members**h]j)}(hj4h]hMembers}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMHhjubj3)}(hhh](j8)}(h``ssid`` subchannel set id h](j>)}(h``ssid``h]jD)}(hjSh]hssid}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjQubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM?hjMubjZ)}(hhh]h)}(hsubchannel set idh]hsubchannel set id}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhM?hjiubah}(h]h ]h"]h$]h&]uh1jYhjMubeh}(h]h ]h"]h$]h&]uh1j7hjhhM?hjJubj8)}(h``devno`` device numberh](j>)}(h ``devno``h]jD)}(hjh]hdevno}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM?hjubjZ)}(hhh]h)}(h device numberh]h device number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM@hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhM?hjJubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMChj$hhubh)}(hX'This structure is not directly based on any hardware structure. The hardware identifies a device by its device number and its subchannel, which is in turn identified by its id. In order to get a unique identifier for ccw devices across subchannel sets, **struct** ccw_dev_id has been introduced.h](hThis structure is not directly based on any hardware structure. The hardware identifies a device by its device number and its subchannel, which is in turn identified by its id. In order to get a unique identifier for ccw devices across subchannel sets, }(hjhhhNhNubj)}(h **struct**h]hstruct}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh ccw_dev_id has been introduced.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMAhj$hhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccw_dev_id_is_equal (C function)c.ccw_dev_id_is_equalhNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hPint ccw_dev_id_is_equal (struct ccw_dev_id *dev_id1, struct ccw_dev_id *dev_id2)h]j`)}(hOint ccw_dev_id_is_equal(struct ccw_dev_id *dev_id1, struct ccw_dev_id *dev_id2)h](hdesc_sig_keyword_type)}(hinth]hint}(hj!hhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMVubjx)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhj0hMVubj)}(hccw_dev_id_is_equalh]j)}(hccw_dev_id_is_equalh]hccw_dev_id_is_equal}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj0hMVubhdesc_parameterlist)}(h8(struct ccw_dev_id *dev_id1, struct ccw_dev_id *dev_id2)h](hdesc_parameter)}(hstruct ccw_dev_id *dev_id1h](jf)}(hjih]hstruct}(hjchhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj_ubjx)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj_ubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjEsbc.ccw_dev_id_is_equalasbuh1hhj_ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj_ubhdesc_sig_punctuation)}(hjh]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhj_ubj)}(hdev_id1h]hdev_id1}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjYubj^)}(hstruct ccw_dev_id *dev_id2h](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.ccw_dev_id_is_equalasbuh1hhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdev_id2h]hdev_id2}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjYubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhj0hMVubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhj0hMVubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhj0hMVhjhhubj)}(hhh]h)}(hcompare two ccw_dev_idsh]hcompare two ccw_dev_ids}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMMhj^hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj0hMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1jThhhj$hNhNubj)}(h**Parameters** ``struct ccw_dev_id *dev_id1`` a ccw_dev_id ``struct ccw_dev_id *dev_id2`` another ccw_dev_id **Return** ``1`` if the two structures are equal field-by-field, ``0`` if not. **Context** anyh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMQhj}ubj3)}(hhh](j8)}(h,``struct ccw_dev_id *dev_id1`` a ccw_dev_id h](j>)}(h``struct ccw_dev_id *dev_id1``h]jD)}(hjh]hstruct ccw_dev_id *dev_id1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMNhjubjZ)}(hhh]h)}(h a ccw_dev_idh]h a ccw_dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMNhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMNhjubj8)}(h2``struct ccw_dev_id *dev_id2`` another ccw_dev_id h](j>)}(h``struct ccw_dev_id *dev_id2``h]jD)}(hjh]hstruct ccw_dev_id *dev_id2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMOhjubjZ)}(hhh]h)}(hanother ccw_dev_idh]hanother ccw_dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMOhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMOhjubeh}(h]h ]h"]h$]h&]uh1j2hj}ubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMQhj}ubh block_quote)}(hD``1`` if the two structures are equal field-by-field, ``0`` if not. h]h)}(hC``1`` if the two structures are equal field-by-field, ``0`` if not.h](jD)}(h``1``h]h1}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj2ubh1 if the two structures are equal field-by-field, }(hj2hhhNhNubjD)}(h``0``h]h0}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj2ubh if not.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMPhj.ubah}(h]h ]h"]h$]h&]uh1j,hj`hMPhj}ubh)}(h **Context**h]j)}(hjih]hContext}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMShj}ubh)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMShj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPpathmask_to_pos (C function)c.pathmask_to_poshNtauh1jChj$hhhNhNubjU)}(hhh](jZ)}(hu8 pathmask_to_pos (u8 mask)h]j`)}(hu8 pathmask_to_pos(u8 mask)h](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jpathmask_to_possbc.pathmask_to_posasbuh1hhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMcubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMcubj)}(hpathmask_to_posh]j)}(hjh]hpathmask_to_pos}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMcubjX)}(h (u8 mask)h]j^)}(hu8 maskh](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.pathmask_to_posasbuh1hhjubjx)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hmaskh]hmask}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubah}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhMcubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMcubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMchjhhubj)}(hhh]h)}(h4find the position of the left-most bit in a pathmaskh]h4find the position of the left-most bit in a pathmask}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM`hjVhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1jThhhj$hNhNubj)}(h@**Parameters** ``u8 mask`` pathmask with at least one bit seth](h)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMdhjuubj3)}(hhh]j8)}(h.``u8 mask`` pathmask with at least one bit seth](j>)}(h ``u8 mask``h]jD)}(hjh]hu8 mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMfhjubjZ)}(hhh]h)}(h"pathmask with at least one bit seth]h"pathmask with at least one bit set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMahjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMfhjubah}(h]h ]h"]h$]h&]uh1j2hjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubeh}(h]*i-o-functions-for-channel-attached-devicesah ]h"]*i/o functions for channel-attached devicesah$]h&]uh1hhjhhhhhK)}(h ``ccwlock``h]jD)}(hj h]hccwlock}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKMhj ubjZ)}(hhh]h)}(hpointer to device lockh]hpointer to device lock}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKMhj ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj hKMhj ubj8)}(h``id`` id of this device h](j>)}(h``id``h]jD)}(hj!h]hid}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj!ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKNhj !ubjZ)}(hhh]h)}(hid of this deviceh]hid of this device}(hj*!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&!hKNhj'!ubah}(h]h ]h"]h$]h&]uh1jYhj !ubeh}(h]h ]h"]h$]h&]uh1j7hj&!hKNhj ubj8)}(h#``drv`` ccw driver for this device h](j>)}(h``drv``h]jD)}(hjJ!h]hdrv}(hjL!hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjH!ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKOhjD!ubjZ)}(hhh]h)}(hccw driver for this deviceh]hccw driver for this device}(hjc!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_!hKOhj`!ubah}(h]h ]h"]h$]h&]uh1jYhjD!ubeh}(h]h ]h"]h$]h&]uh1j7hj_!hKOhj ubj8)}(h"``dev`` embedded device structure h](j>)}(h``dev``h]jD)}(hj!h]hdev}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj!ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKPhj}!ubjZ)}(hhh]h)}(hembedded device structureh]hembedded device structure}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKPhj!ubah}(h]h ]h"]h$]h&]uh1jYhj}!ubeh}(h]h ]h"]h$]h&]uh1j7hj!hKPhj ubj8)}(h#``online`` online status of device h](j>)}(h ``online``h]jD)}(hj!h]honline}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj!ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKQhj!ubjZ)}(hhh]h)}(honline status of deviceh]honline status of device}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKQhj!ubah}(h]h ]h"]h$]h&]uh1jYhj!ubeh}(h]h ]h"]h$]h&]uh1j7hj!hKQhj ubj8)}(h``handler`` interrupt handlerh](j>)}(h ``handler``h]jD)}(hj!h]hhandler}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj!ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKQhj!ubjZ)}(hhh]h)}(hinterrupt handlerh]hinterrupt handler}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKRhj "ubah}(h]h ]h"]h$]h&]uh1jYhj!ubeh}(h]h ]h"]h$]h&]uh1j7hj "hKQhj ubeh}(h]h ]h"]h$]h&]uh1j2hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(h**Description**h]j)}(hj8"h]h Description}(hj:"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6"ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKUhjhhubh)}(h**handler** is a member of the device rather than the driver since a driver can have different interrupt handlers for different ccw devices (multi-subchannel drivers).h](j)}(h **handler**h]hhandler}(hjR"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN"ubh is a member of the device rather than the driver since a driver can have different interrupt handlers for different ccw devices (multi-subchannel drivers).}(hjN"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKShjhhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_driver (C struct) c.ccw_driverhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h ccw_driverh]j`)}(hstruct ccw_driverh](jf)}(hjih]hstruct}(hj"hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj"hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKZubjx)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"hhhj"hKZubj)}(h ccw_driverh]j)}(hj~"h]h ccw_driver}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj"hhhj"hKZubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj|"hhhj"hKZubah}(h]jw"ah ](jjeh"]h$]h&]jj)jhuh1jYhj"hKZhjy"hhubj)}(hhh]h)}(h*device driver for channel attached devicesh]h*device driver for channel attached devices}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKzhj"hhubah}(h]h ]h"]h$]h&]uh1jhjy"hhhj"hKZubeh}(h]h ](jstructeh"]h$]h&]jjjj"jj"jjjuh1jThhhjhNhNubj)}(hXQ**Definition**:: struct ccw_driver { struct ccw_device_id *ids; int (*probe) (struct ccw_device *); void (*remove) (struct ccw_device *); int (*set_online) (struct ccw_device *); int (*set_offline) (struct ccw_device *); int (*notify) (struct ccw_device *, int); void (*path_event) (struct ccw_device *, int *); void (*shutdown) (struct ccw_device *); enum uc_todo (*uc_handler) (struct ccw_device *, struct irb *); struct device_driver driver; enum interruption_class int_class; }; **Members** ``ids`` ids supported by this driver ``probe`` function called on probe ``remove`` function called on remove ``set_online`` called when setting device online ``set_offline`` called when setting device offline ``notify`` notify driver of device state changes ``path_event`` notify driver of channel path events ``shutdown`` called at device shutdown ``uc_handler`` callback for unit check handler ``driver`` embedded device driver structure ``int_class`` interruption class to use for accounting interruptsh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh:}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhK~hj"ubj )}(hXstruct ccw_driver { struct ccw_device_id *ids; int (*probe) (struct ccw_device *); void (*remove) (struct ccw_device *); int (*set_online) (struct ccw_device *); int (*set_offline) (struct ccw_device *); int (*notify) (struct ccw_device *, int); void (*path_event) (struct ccw_device *, int *); void (*shutdown) (struct ccw_device *); enum uc_todo (*uc_handler) (struct ccw_device *, struct irb *); struct device_driver driver; enum interruption_class int_class; };h]hXstruct ccw_driver { struct ccw_device_id *ids; int (*probe) (struct ccw_device *); void (*remove) (struct ccw_device *); int (*set_online) (struct ccw_device *); int (*set_offline) (struct ccw_device *); int (*notify) (struct ccw_device *, int); void (*path_event) (struct ccw_device *, int *); void (*shutdown) (struct ccw_device *); enum uc_todo (*uc_handler) (struct ccw_device *, struct irb *); struct device_driver driver; enum interruption_class int_class; };}hj#sbah}(h]h ]h"]h$]h&]jjuh1j hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj"ubh)}(h **Members**h]j)}(hj#h]hMembers}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj"ubj3)}(hhh](j8)}(h%``ids`` ids supported by this driver h](j>)}(h``ids``h]jD)}(hj3#h]hids}(hj5#hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj1#ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhK|hj-#ubjZ)}(hhh]h)}(hids supported by this driverh]hids supported by this driver}(hjL#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH#hK|hjI#ubah}(h]h ]h"]h$]h&]uh1jYhj-#ubeh}(h]h ]h"]h$]h&]uh1j7hjH#hK|hj*#ubj8)}(h#``probe`` function called on probe h](j>)}(h ``probe``h]jD)}(hjl#h]hprobe}(hjn#hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjj#ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhK}hjf#ubjZ)}(hhh]h)}(hfunction called on probeh]hfunction called on probe}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hK}hj#ubah}(h]h ]h"]h$]h&]uh1jYhjf#ubeh}(h]h ]h"]h$]h&]uh1j7hj#hK}hj*#ubj8)}(h%``remove`` function called on remove h](j>)}(h ``remove``h]jD)}(hj#h]hremove}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj#ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhK~hj#ubjZ)}(hhh]h)}(hfunction called on removeh]hfunction called on remove}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hK~hj#ubah}(h]h ]h"]h$]h&]uh1jYhj#ubeh}(h]h ]h"]h$]h&]uh1j7hj#hK~hj*#ubj8)}(h1``set_online`` called when setting device online h](j>)}(h``set_online``h]jD)}(hj#h]h set_online}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj#ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj#ubjZ)}(hhh]h)}(h!called when setting device onlineh]h!called when setting device online}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hKhj#ubah}(h]h ]h"]h$]h&]uh1jYhj#ubeh}(h]h ]h"]h$]h&]uh1j7hj#hKhj*#ubj8)}(h3``set_offline`` called when setting device offline h](j>)}(h``set_offline``h]jD)}(hj$h]h set_offline}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj$ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj$ubjZ)}(hhh]h)}(h"called when setting device offlineh]h"called when setting device offline}(hj0$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,$hKhj-$ubah}(h]h ]h"]h$]h&]uh1jYhj$ubeh}(h]h ]h"]h$]h&]uh1j7hj,$hKhj*#ubj8)}(h1``notify`` notify driver of device state changes h](j>)}(h ``notify``h]jD)}(hjP$h]hnotify}(hjR$hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjN$ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhjJ$ubjZ)}(hhh]h)}(h%notify driver of device state changesh]h%notify driver of device state changes}(hji$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje$hKhjf$ubah}(h]h ]h"]h$]h&]uh1jYhjJ$ubeh}(h]h ]h"]h$]h&]uh1j7hje$hKhj*#ubj8)}(h4``path_event`` notify driver of channel path events h](j>)}(h``path_event``h]jD)}(hj$h]h path_event}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj$ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj$ubjZ)}(hhh]h)}(h$notify driver of channel path eventsh]h$notify driver of channel path events}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKhj$ubah}(h]h ]h"]h$]h&]uh1jYhj$ubeh}(h]h ]h"]h$]h&]uh1j7hj$hKhj*#ubj8)}(h'``shutdown`` called at device shutdown h](j>)}(h ``shutdown``h]jD)}(hj$h]hshutdown}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj$ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj$ubjZ)}(hhh]h)}(hcalled at device shutdownh]hcalled at device shutdown}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKhj$ubah}(h]h ]h"]h$]h&]uh1jYhj$ubeh}(h]h ]h"]h$]h&]uh1j7hj$hKhj*#ubj8)}(h/``uc_handler`` callback for unit check handler h](j>)}(h``uc_handler``h]jD)}(hj$h]h uc_handler}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj$ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj$ubjZ)}(hhh]h)}(hcallback for unit check handlerh]hcallback for unit check handler}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKhj%ubah}(h]h ]h"]h$]h&]uh1jYhj$ubeh}(h]h ]h"]h$]h&]uh1j7hj%hKhj*#ubj8)}(h,``driver`` embedded device driver structure h](j>)}(h ``driver``h]jD)}(hj4%h]hdriver}(hj6%hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj2%ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj.%ubjZ)}(hhh]h)}(h embedded device driver structureh]h embedded device driver structure}(hjM%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI%hKhjJ%ubah}(h]h ]h"]h$]h&]uh1jYhj.%ubeh}(h]h ]h"]h$]h&]uh1j7hjI%hKhj*#ubj8)}(hA``int_class`` interruption class to use for accounting interruptsh](j>)}(h ``int_class``h]jD)}(hjm%h]h int_class}(hjo%hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjk%ubah}(h]h ]h"]h$]h&]uh1j=hf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhjg%ubjZ)}(hhh]h)}(h3interruption class to use for accounting interruptsh]h3interruption class to use for accounting interrupts}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.hhKhj%ubah}(h]h ]h"]h$]h&]uh1jYhjg%ubeh}(h]h ]h"]h$]h&]uh1j7hj%hKhj*#ubeh}(h]h ]h"]h$]h&]uh1j2hj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP#ccw_device_set_offline (C function)c.ccw_device_set_offlinehNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h4int ccw_device_set_offline (struct ccw_device *cdev)h]j`)}(h3int ccw_device_set_offline(struct ccw_device *cdev)h](j )}(hinth]hint}(hj%hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj%hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMubjx)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj%hhhj%hMubj)}(hccw_device_set_offlineh]j)}(hccw_device_set_offlineh]hccw_device_set_offline}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj%hhhj%hMubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj&hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj&ubjx)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj&ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj"&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$&modnameN classnameNjj)}j]j)}jj%sbc.ccw_device_set_offlineasbuh1hhj&ubjx)}(h h]h }(hjB&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj&ubj)}(hjh]h*}(hjP&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(hcdevh]hcdev}(hj]&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj%ubah}(h]h ]h"]h$]h&]jjuh1jWhj%hhhj%hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj%hhhj%hMubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1jYhj%hMhj%hhubj)}(hhh]h)}(hdisable a ccw device for I/Oh]hdisable a ccw device for I/O}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1jThhhjhNhNubj)}(hX4**Parameters** ``struct ccw_device *cdev`` target ccw device **Description** This function calls the driver's set_offline() function for **cdev**, if given, and then disables **cdev**. **Return** ``0`` on success and a negative error value on failure. **Context** enabled, ccw device lock not heldh](h)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hj&ubj3)}(hhh]j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj&h]hstruct ccw_device *cdev}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj&ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj&ubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jYhj&ubeh}(h]h ]h"]h$]h&]uh1j7hj&hMhj&ubah}(h]h ]h"]h$]h&]uh1j2hj&ubh)}(h**Description**h]j)}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hj&ubh)}(hkThis function calls the driver's set_offline() function for **cdev**, if given, and then disables **cdev**.h](h>This function calls the driver’s set_offline() function for }(hj'hhhNhNubj)}(h**cdev**h]hcdev}(hj!'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh, if given, and then disables }(hj'hhhNhNubj)}(h**cdev**h]hcdev}(hj3'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh.}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hj&ubh)}(h **Return**h]j)}(hjN'h]hReturn}(hjP'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL'ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hj&ubj-)}(h8``0`` on success and a negative error value on failure. h]h)}(h7``0`` on success and a negative error value on failure.h](jD)}(h``0``h]h0}(hjl'hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjh'ubh2 on success and a negative error value on failure.}(hjh'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hjd'ubah}(h]h ]h"]h$]h&]uh1j,hj'hM hj&ubh)}(h **Context**h]j)}(hj'h]hContext}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hj&ubh)}(h!enabled, ccw device lock not heldh]h!enabled, ccw device lock not held}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP"ccw_device_set_online (C function)c.ccw_device_set_onlinehNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h3int ccw_device_set_online (struct ccw_device *cdev)h]j`)}(h2int ccw_device_set_online(struct ccw_device *cdev)h](j )}(hinth]hint}(hj'hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj'hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM]ubjx)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj'hhhj'hM]ubj)}(hccw_device_set_onlineh]j)}(hccw_device_set_onlineh]hccw_device_set_online}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj'hhhj'hM]ubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj(hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj (ubjx)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj (ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj-(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/(modnameN classnameNjj)}j]j)}jj'sbc.ccw_device_set_onlineasbuh1hhj (ubjx)}(h h]h }(hjM(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj (ubj)}(hjh]h*}(hj[(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj (ubj)}(hcdevh]hcdev}(hjh(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj (ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj(ubah}(h]h ]h"]h$]h&]jjuh1jWhj'hhhj'hM]ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj'hhhj'hM]ubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jYhj'hM]hj'hhubj)}(hhh]h)}(henable a ccw device for I/Oh]henable a ccw device for I/O}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c#hMRhj(hhubah}(h]h ]h"]h$]h&]uh1jhj'hhhj'hM]ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1jThhhjhNhNubj)}(hXu**Parameters** ``struct ccw_device *cdev`` target ccw device **Description** This function first enables **cdev** and then calls the driver's set_online() function for **cdev**, if given. If set_online() returns an error, **cdev** is disabled again. **Return** ``0`` on success and a negative error value on failure. **Context** enabled, ccw device lock not heldh](h)}(h**Parameters**h]j)}(hj(h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMVhj(ubj3)}(hhh]j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj(h]hstruct ccw_device *cdev}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj(ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMShj(ubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMShj(ubah}(h]h ]h"]h$]h&]uh1jYhj(ubeh}(h]h ]h"]h$]h&]uh1j7hj(hMShj(ubah}(h]h ]h"]h$]h&]uh1j2hj(ubh)}(h**Description**h]j)}(hj)h]h Description}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj )ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMUhj(ubh)}(hThis function first enables **cdev** and then calls the driver's set_online() function for **cdev**, if given. If set_online() returns an error, **cdev** is disabled again.h](hThis function first enables }(hj$)hhhNhNubj)}(h**cdev**h]hcdev}(hj,)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$)ubh9 and then calls the driver’s set_online() function for }(hj$)hhhNhNubj)}(h**cdev**h]hcdev}(hj>)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$)ubh., if given. If set_online() returns an error, }(hj$)hhhNhNubj)}(h**cdev**h]hcdev}(hjP)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$)ubh is disabled again.}(hj$)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMUhj(ubh)}(h **Return**h]j)}(hjk)h]hReturn}(hjm)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji)ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMYhj(ubj-)}(h8``0`` on success and a negative error value on failure. h]h)}(h7``0`` on success and a negative error value on failure.h](jD)}(h``0``h]h0}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj)ubh2 on success and a negative error value on failure.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMXhj)ubah}(h]h ]h"]h$]h&]uh1j,hj)hMXhj(ubh)}(h **Context**h]j)}(hj)h]hContext}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMZhj(ubh)}(h!enabled, ccw device lock not heldh]h!enabled, ccw device lock not held}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMZhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP!get_ccwdev_by_dev_id (C function)c.get_ccwdev_by_dev_idhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hDstruct ccw_device * get_ccwdev_by_dev_id (struct ccw_dev_id *dev_id)h]j`)}(hBstruct ccw_device *get_ccwdev_by_dev_id(struct ccw_dev_id *dev_id)h](jf)}(hjih]hstruct}(hj)hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj)hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMubjx)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj)hhhj)hMubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj *ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jget_ccwdev_by_dev_idsbc.get_ccwdev_by_dev_idasbuh1hhj)hhhj)hMubjx)}(h h]h }(hj/*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj)hhhj)hMubj)}(hjh]h*}(hj=*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hMubj)}(hget_ccwdev_by_dev_idh]j)}(hj,*h]hget_ccwdev_by_dev_id}(hjN*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ*ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj)hhhj)hMubjX)}(h(struct ccw_dev_id *dev_id)h]j^)}(hstruct ccw_dev_id *dev_idh](jf)}(hjih]hstruct}(hji*hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehje*ubjx)}(h h]h }(hjv*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhje*ubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j**c.get_ccwdev_by_dev_idasbuh1hhje*ubjx)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhje*ubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje*ubj)}(hdev_idh]hdev_id}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje*ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hja*ubah}(h]h ]h"]h$]h&]jjuh1jWhj)hhhj)hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj)hhhj)hMubah}(h]j)ah ](jjeh"]h$]h&]jj)jhuh1jYhj)hMhj)hhubj)}(hhh]h)}(h"obtain device from a ccw device idh]h"obtain device from a ccw device id}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM}hj*hhubah}(h]h ]h"]h$]h&]uh1jhj)hhhj)hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1jThhhjhNhNubj)}(hX,**Parameters** ``struct ccw_dev_id *dev_id`` id of the device to be searched **Description** This function searches all devices attached to the ccw bus for a device matching **dev_id**. **Return** If a device is found its reference count is increased and returned; else ``NULL`` is returned.h](h)}(h**Parameters**h]j)}(hj +h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj +ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj+ubj3)}(hhh]j8)}(h>``struct ccw_dev_id *dev_id`` id of the device to be searched h](j>)}(h``struct ccw_dev_id *dev_id``h]jD)}(hj++h]hstruct ccw_dev_id *dev_id}(hj-+hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj)+ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM~hj%+ubjZ)}(hhh]h)}(hid of the device to be searchedh]hid of the device to be searched}(hjD+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@+hM~hjA+ubah}(h]h ]h"]h$]h&]uh1jYhj%+ubeh}(h]h ]h"]h$]h&]uh1j7hj@+hM~hj"+ubah}(h]h ]h"]h$]h&]uh1j2hj+ubh)}(h**Description**h]j)}(hjf+h]h Description}(hjh+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd+ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj+ubh)}(h\This function searches all devices attached to the ccw bus for a device matching **dev_id**.h](hQThis function searches all devices attached to the ccw bus for a device matching }(hj|+hhhNhNubj)}(h **dev_id**h]hdev_id}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|+ubh.}(hj|+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj+ubh)}(h **Return**h]j)}(hj+h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj+ubj-)}(h^If a device is found its reference count is increased and returned; else ``NULL`` is returned.h]h)}(h^If a device is found its reference count is increased and returned; else ``NULL`` is returned.h](hIIf a device is found its reference count is increased and returned; else }(hj+hhhNhNubjD)}(h``NULL``h]hNULL}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj+ubh is returned.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj+ubah}(h]h ]h"]h$]h&]uh1j,hj+hMhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP get_ccwdev_by_busid (C function)c.get_ccwdev_by_busidhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hUstruct ccw_device * get_ccwdev_by_busid (struct ccw_driver *cdrv, const char *bus_id)h]j`)}(hSstruct ccw_device *get_ccwdev_by_busid(struct ccw_driver *cdrv, const char *bus_id)h](jf)}(hjih]hstruct}(hj,hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj+hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMubjx)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj+hhhj ,hMubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!,modnameN classnameNjj)}j]j)}jget_ccwdev_by_busidsbc.get_ccwdev_by_busidasbuh1hhj+hhhj ,hMubjx)}(h h]h }(hj@,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj+hhhj ,hMubj)}(hjh]h*}(hjN,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj ,hMubj)}(hget_ccwdev_by_busidh]j)}(hj=,h]hget_ccwdev_by_busid}(hj_,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[,ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj+hhhj ,hMubjX)}(h-(struct ccw_driver *cdrv, const char *bus_id)h](j^)}(hstruct ccw_driver *cdrvh](jf)}(hjih]hstruct}(hjz,hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjv,ubjx)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjv,ubh)}(hhh]j)}(h ccw_driverh]h ccw_driver}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j;,c.get_ccwdev_by_busidasbuh1hhjv,ubjx)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjv,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv,ubj)}(hcdrvh]hcdrv}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv,ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjr,ubj^)}(hconst char *bus_idh](jf)}(hconsth]hconst}(hj,hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj,ubjx)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,ubj )}(hcharh]hchar}(hj-hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj,ubjx)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,ubj)}(hjh]h*}(hj"-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hbus_idh]hbus_id}(hj/-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjr,ubeh}(h]h ]h"]h$]h&]jjuh1jWhj+hhhj ,hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj+hhhj ,hMubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1jYhj ,hMhj+hhubj)}(hhh]h)}(hobtain device from a bus idh]hobtain device from a bus id}(hjY-hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhjV-hhubah}(h]h ]h"]h$]h&]uh1jhj+hhhj ,hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjq-jjq-jjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_driver *cdrv`` driver the device is owned by ``const char *bus_id`` bus id of the device to be searched **Description** This function searches all devices owned by **cdrv** for a device with a bus id matching **bus_id**. **Return** If a match is found, its reference count of the found device is increased and it is returned; else ``NULL`` is returned.h](h)}(h**Parameters**h]j)}(hj{-h]h Parameters}(hj}-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy-ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhju-ubj3)}(hhh](j8)}(h:``struct ccw_driver *cdrv`` driver the device is owned by h](j>)}(h``struct ccw_driver *cdrv``h]jD)}(hj-h]hstruct ccw_driver *cdrv}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj-ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj-ubjZ)}(hhh]h)}(hdriver the device is owned byh]hdriver the device is owned by}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jYhj-ubeh}(h]h ]h"]h$]h&]uh1j7hj-hMhj-ubj8)}(h;``const char *bus_id`` bus id of the device to be searched h](j>)}(h``const char *bus_id``h]jD)}(hj-h]hconst char *bus_id}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj-ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj-ubjZ)}(hhh]h)}(h#bus id of the device to be searchedh]h#bus id of the device to be searched}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jYhj-ubeh}(h]h ]h"]h$]h&]uh1j7hj-hMhj-ubeh}(h]h ]h"]h$]h&]uh1j2hju-ubh)}(h**Description**h]j)}(hj.h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj .ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhju-ubh)}(hdThis function searches all devices owned by **cdrv** for a device with a bus id matching **bus_id**.h](h,This function searches all devices owned by }(hj$.hhhNhNubj)}(h**cdrv**h]hcdrv}(hj,.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$.ubh% for a device with a bus id matching }(hj$.hhhNhNubj)}(h **bus_id**h]hbus_id}(hj>.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$.ubh.}(hj$.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhju-ubh)}(h **Return**h]j)}(hjY.h]hReturn}(hj[.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW.ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhju-ubj-)}(hxIf a match is found, its reference count of the found device is increased and it is returned; else ``NULL`` is returned.h]h)}(hxIf a match is found, its reference count of the found device is increased and it is returned; else ``NULL`` is returned.h](hcIf a match is found, its reference count of the found device is increased and it is returned; else }(hjs.hhhNhNubjD)}(h``NULL``h]hNULL}(hj{.hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjs.ubh is returned.}(hjs.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhjo.ubah}(h]h ]h"]h$]h&]uh1j,hj.hMhju-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccw_driver_register (C function)c.ccw_driver_registerhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h4int ccw_driver_register (struct ccw_driver *cdriver)h]j`)}(h3int ccw_driver_register(struct ccw_driver *cdriver)h](j )}(hinth]hint}(hj.hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj.hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMubjx)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj.hhhj.hMubj)}(hccw_driver_registerh]j)}(hccw_driver_registerh]hccw_driver_register}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.hhhj.hMubjX)}(h(struct ccw_driver *cdriver)h]j^)}(hstruct ccw_driver *cdriverh](jf)}(hjih]hstruct}(hj.hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj.ubjx)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj.ubh)}(hhh]j)}(h ccw_driverh]h ccw_driver}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jj.sbc.ccw_driver_registerasbuh1hhj.ubjx)}(h h]h }(hj5/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj.ubj)}(hjh]h*}(hjC/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hcdriverh]hcdriver}(hjP/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj.ubah}(h]h ]h"]h$]h&]jjuh1jWhj.hhhj.hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj.hhhj.hMubah}(h]j.ah ](jjeh"]h$]h&]jj)jhuh1jYhj.hMhj.hhubj)}(hhh]h)}(hregister a ccw driverh]hregister a ccw driver}(hjz/hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhjw/hhubah}(h]h ]h"]h$]h&]uh1jhj.hhhj.hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_driver *cdriver`` driver to be registered **Description** This function is mainly a wrapper around driver_register(). **Return** ``0`` on success and a negative error value on failure.h](h)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj/ubj3)}(hhh]j8)}(h7``struct ccw_driver *cdriver`` driver to be registered h](j>)}(h``struct ccw_driver *cdriver``h]jD)}(hj/h]hstruct ccw_driver *cdriver}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj/ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj/ubjZ)}(hhh]h)}(hdriver to be registeredh]hdriver to be registered}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jYhj/ubeh}(h]h ]h"]h$]h&]uh1j7hj/hMhj/ubah}(h]h ]h"]h$]h&]uh1j2hj/ubh)}(h**Description**h]j)}(hj/h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj/ubh)}(h;This function is mainly a wrapper around driver_register().h]h;This function is mainly a wrapper around driver_register().}(hj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj/ubh)}(h **Return**h]j)}(hj0h]hReturn}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj/ubj-)}(h7``0`` on success and a negative error value on failure.h]h)}(hj50h](jD)}(h``0``h]h0}(hj:0hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj70ubh2 on success and a negative error value on failure.}(hj70hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj30ubah}(h]h ]h"]h$]h&]uh1j,hjR0hMhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP"ccw_driver_unregister (C function)c.ccw_driver_unregisterhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h7void ccw_driver_unregister (struct ccw_driver *cdriver)h]j`)}(h6void ccw_driver_unregister(struct ccw_driver *cdriver)h](j )}(hvoidh]hvoid}(hjy0hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhju0hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM$ubjx)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhju0hhhj0hM$ubj)}(hccw_driver_unregisterh]j)}(hccw_driver_unregisterh]hccw_driver_unregister}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ](jjeh"]h$]h&]jjuh1jhju0hhhj0hM$ubjX)}(h(struct ccw_driver *cdriver)h]j^)}(hstruct ccw_driver *cdriverh](jf)}(hjih]hstruct}(hj0hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj0ubjx)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj0ubh)}(hhh]j)}(h ccw_driverh]h ccw_driver}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj0sbc.ccw_driver_unregisterasbuh1hhj0ubjx)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj0ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hcdriverh]hcdriver}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj0ubah}(h]h ]h"]h$]h&]jjuh1jWhju0hhhj0hM$ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjq0hhhj0hM$ubah}(h]jl0ah ](jjeh"]h$]h&]jj)jhuh1jYhj0hM$hjn0hhubj)}(hhh]h)}(hderegister a ccw driverh]hderegister a ccw driver}(hj91hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj61hhubah}(h]h ]h"]h$]h&]uh1jhjn0hhhj0hM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjQ1jjQ1jjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_driver *cdriver`` driver to be deregistered **Description** This function is mainly a wrapper around driver_unregister().h](h)}(h**Parameters**h]j)}(hj[1h]h Parameters}(hj]1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY1ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM#hjU1ubj3)}(hhh]j8)}(h9``struct ccw_driver *cdriver`` driver to be deregistered h](j>)}(h``struct ccw_driver *cdriver``h]jD)}(hjz1h]hstruct ccw_driver *cdriver}(hj|1hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjx1ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM hjt1ubjZ)}(hhh]h)}(hdriver to be deregisteredh]hdriver to be deregistered}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM hj1ubah}(h]h ]h"]h$]h&]uh1jYhjt1ubeh}(h]h ]h"]h$]h&]uh1j7hj1hM hjq1ubah}(h]h ]h"]h$]h&]uh1j2hjU1ubh)}(h**Description**h]j)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM"hjU1ubh)}(h=This function is mainly a wrapper around driver_unregister().h]h=This function is mainly a wrapper around driver_unregister().}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM"hjU1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_siosl (C function)c.ccw_device_sioslhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h.int ccw_device_siosl (struct ccw_device *cdev)h]j`)}(h-int ccw_device_siosl(struct ccw_device *cdev)h](j )}(hinth]hint}(hj1hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj1hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMwubjx)}(h h]h }(hj 2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj1hhhj2hMwubj)}(hccw_device_sioslh]j)}(hccw_device_sioslh]hccw_device_siosl}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1hhhj2hMwubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj72hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj32ubjx)}(h h]h }(hjD2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj32ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjU2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjW2modnameN classnameNjj)}j]j)}jj2sbc.ccw_device_sioslasbuh1hhj32ubjx)}(h h]h }(hju2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj32ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj32ubj)}(hcdevh]hcdev}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj32ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj/2ubah}(h]h ]h"]h$]h&]jjuh1jWhj1hhhj2hMwubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj1hhhj2hMwubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1jYhj2hMwhj1hhubj)}(hhh]h)}(hinitiate loggingh]hinitiate logging}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMqhj2hhubah}(h]h ]h"]h$]h&]uh1jhj1hhhj2hMwubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` ccw device **Description** This function is used to invoke model-dependent logging within the channel subsystem.h](h)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMuhj2ubj3)}(hhh]j8)}(h'``struct ccw_device *cdev`` ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj2h]hstruct ccw_device *cdev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj2ubah}(h]h ]h"]h$]h&]uh1j=ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMrhj2ubjZ)}(hhh]h)}(h ccw deviceh]h ccw device}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMrhj3ubah}(h]h ]h"]h$]h&]uh1jYhj2ubeh}(h]h ]h"]h$]h&]uh1j7hj3hMrhj2ubah}(h]h ]h"]h$]h&]uh1j2hj2ubh)}(h**Description**h]j)}(hj63h]h Description}(hj83hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj43ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMthj2ubh)}(hUThis function is used to invoke model-dependent logging within the channel subsystem.h]hUThis function is used to invoke model-dependent logging within the channel subsystem.}(hjL3hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMthj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP(ccw_device_set_options_mask (C function)c.ccw_device_set_options_maskhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hNint ccw_device_set_options_mask (struct ccw_device *cdev, unsigned long flags)h]j`)}(hMint ccw_device_set_options_mask(struct ccw_device *cdev, unsigned long flags)h](j )}(hinth]hint}(hj{3hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjw3hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK'ubjx)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjw3hhhj3hK'ubj)}(hccw_device_set_options_maskh]j)}(hccw_device_set_options_maskh]hccw_device_set_options_mask}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjw3hhhj3hK'ubjX)}(h.(struct ccw_device *cdev, unsigned long flags)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj3hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj3ubjx)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj3ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jj3sbc.ccw_device_set_options_maskasbuh1hhj3ubjx)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj3ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hcdevh]hcdev}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj3ubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hj*4hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj&4ubjx)}(h h]h }(hj84hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj&4ubj )}(hlongh]hlong}(hjF4hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj&4ubjx)}(h h]h }(hjT4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj&4ubj)}(hflagsh]hflags}(hjb4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&4ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj3ubeh}(h]h ]h"]h$]h&]jjuh1jWhjw3hhhj3hK'ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjs3hhhj3hK'ubah}(h]jn3ah ](jjeh"]h$]h&]jj)jhuh1jYhj3hK'hjp3hhubj)}(hhh]h)}(h#set some options and unset the resth]h#set some options and unset the rest}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj4hhubah}(h]h ]h"]h$]h&]uh1jhjp3hhhj3hK'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4jjjuh1jThhhjhNhNubj)}(hX@**Parameters** ``struct ccw_device *cdev`` device for which the options are to be set ``unsigned long flags`` options to be set **Description** All flags specified in **flags** are set, all flags not specified in **flags** are cleared. **Return** ``0`` on success, -``EINVAL`` on an invalid flag combination.h](h)}(h**Parameters**h]j)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK"hj4ubj3)}(hhh](j8)}(hG``struct ccw_device *cdev`` device for which the options are to be set h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj4h]hstruct ccw_device *cdev}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj4ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj4ubjZ)}(hhh]h)}(h*device for which the options are to be seth]h*device for which the options are to be set}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hKhj4ubah}(h]h ]h"]h$]h&]uh1jYhj4ubeh}(h]h ]h"]h$]h&]uh1j7hj4hKhj4ubj8)}(h*``unsigned long flags`` options to be set h](j>)}(h``unsigned long flags``h]jD)}(hj5h]hunsigned long flags}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj5ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK hj5ubjZ)}(hhh]h)}(hoptions to be seth]hoptions to be set}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hK hj5ubah}(h]h ]h"]h$]h&]uh1jYhj5ubeh}(h]h ]h"]h$]h&]uh1j7hj5hK hj4ubeh}(h]h ]h"]h$]h&]uh1j2hj4ubh)}(h**Description**h]j)}(hjA5h]h Description}(hjC5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?5ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK"hj4ubh)}(h[All flags specified in **flags** are set, all flags not specified in **flags** are cleared.h](hAll flags specified in }(hjW5hhhNhNubj)}(h **flags**h]hflags}(hj_5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW5ubh% are set, all flags not specified in }(hjW5hhhNhNubj)}(h **flags**h]hflags}(hjq5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW5ubh are cleared.}(hjW5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK"hj4ubh)}(h **Return**h]j)}(hj5h]hReturn}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK%hj4ubj-)}(h=``0`` on success, -``EINVAL`` on an invalid flag combination.h]h)}(hj5h](jD)}(h``0``h]h0}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj5ubh on success, -}(hj5hhhNhNubjD)}(h ``EINVAL``h]hEINVAL}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj5ubh on an invalid flag combination.}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK$hj5ubah}(h]h ]h"]h$]h&]uh1j,hj5hK$hj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP#ccw_device_set_options (C function)c.ccw_device_set_optionshNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hIint ccw_device_set_options (struct ccw_device *cdev, unsigned long flags)h]j`)}(hHint ccw_device_set_options(struct ccw_device *cdev, unsigned long flags)h](j )}(hinth]hint}(hj5hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj5hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK@ubjx)}(h h]h }(hj 6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj5hhhj6hK@ubj)}(hccw_device_set_optionsh]j)}(hccw_device_set_optionsh]hccw_device_set_options}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj5hhhj6hK@ubjX)}(h.(struct ccw_device *cdev, unsigned long flags)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj76hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj36ubjx)}(h h]h }(hjD6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj36ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjU6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjW6modnameN classnameNjj)}j]j)}jj6sbc.ccw_device_set_optionsasbuh1hhj36ubjx)}(h h]h }(hju6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj36ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj36ubj)}(hcdevh]hcdev}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj36ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj/6ubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hj6hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj6ubjx)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj6ubj )}(hlongh]hlong}(hj6hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj6ubjx)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj6ubj)}(hflagsh]hflags}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj/6ubeh}(h]h ]h"]h$]h&]jjuh1jWhj5hhhj6hK@ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj5hhhj6hK@ubah}(h]j5ah ](jjeh"]h$]h&]jj)jhuh1jYhj6hK@hj5hhubj)}(hhh]h)}(hset some optionsh]hset some options}(hj 7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK8hj7hhubah}(h]h ]h"]h$]h&]uh1jhj5hhhj6hK@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#7jj#7jjjuh1jThhhjhNhNubj)}(hX;**Parameters** ``struct ccw_device *cdev`` device for which the options are to be set ``unsigned long flags`` options to be set **Description** All flags specified in **flags** are set, the remainder is left untouched. **Return** ``0`` on success, -``EINVAL`` if an invalid flag combination would ensue.h](h)}(h**Parameters**h]j)}(hj-7h]h Parameters}(hj/7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+7ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK)}(h``struct ccw_device *cdev``h]jD)}(hjL7h]hstruct ccw_device *cdev}(hjN7hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjJ7ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK9hjF7ubjZ)}(hhh]h)}(h*device for which the options are to be seth]h*device for which the options are to be set}(hje7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja7hK9hjb7ubah}(h]h ]h"]h$]h&]uh1jYhjF7ubeh}(h]h ]h"]h$]h&]uh1j7hja7hK9hjC7ubj8)}(h*``unsigned long flags`` options to be set h](j>)}(h``unsigned long flags``h]jD)}(hj7h]hunsigned long flags}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj7ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK:hj7ubjZ)}(hhh]h)}(hoptions to be seth]hoptions to be set}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hK:hj7ubah}(h]h ]h"]h$]h&]uh1jYhj7ubeh}(h]h ]h"]h$]h&]uh1j7hj7hK:hjC7ubeh}(h]h ]h"]h$]h&]uh1j2hj'7ubh)}(h**Description**h]j)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj'7ubj-)}(hI``0`` on success, -``EINVAL`` if an invalid flag combination would ensue.h]h)}(hj8h](jD)}(h``0``h]h0}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj8ubh on success, -}(hj8hhhNhNubjD)}(h ``EINVAL``h]hEINVAL}(hj(8hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj8ubh, if an invalid flag combination would ensue.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK=hj8ubah}(h]h ]h"]h$]h&]uh1j,hj@8hK=hj'7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP%ccw_device_clear_options (C function)c.ccw_device_clear_optionshNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hLvoid ccw_device_clear_options (struct ccw_device *cdev, unsigned long flags)h]j`)}(hKvoid ccw_device_clear_options(struct ccw_device *cdev, unsigned long flags)h](j )}(hvoidh]hvoid}(hjg8hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjc8hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK[ubjx)}(h h]h }(hjv8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjc8hhhju8hK[ubj)}(hccw_device_clear_optionsh]j)}(hccw_device_clear_optionsh]hccw_device_clear_options}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjc8hhhju8hK[ubjX)}(h.(struct ccw_device *cdev, unsigned long flags)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj8hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj8ubjx)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj8ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jj8sbc.ccw_device_clear_optionsasbuh1hhj8ubjx)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hcdevh]hcdev}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj8ubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj9ubjx)}(h h]h }(hj$9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj9ubj )}(hlongh]hlong}(hj29hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj9ubjx)}(h h]h }(hj@9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj9ubj)}(hflagsh]hflags}(hjN9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj8ubeh}(h]h ]h"]h$]h&]jjuh1jWhjc8hhhju8hK[ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj_8hhhju8hK[ubah}(h]jZ8ah ](jjeh"]h$]h&]jj)jhuh1jYhju8hK[hj\8hhubj)}(hhh]h)}(hclear some optionsh]hclear some options}(hjx9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKUhju9hhubah}(h]h ]h"]h$]h&]uh1jhj\8hhhju8hK[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` device for which the options are to be cleared ``unsigned long flags`` options to be cleared **Description** All flags specified in **flags** are cleared, the remainder is left untouched.h](h)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKYhj9ubj3)}(hhh](j8)}(hK``struct ccw_device *cdev`` device for which the options are to be cleared h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj9h]hstruct ccw_device *cdev}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj9ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKVhj9ubjZ)}(hhh]h)}(h.device for which the options are to be clearedh]h.device for which the options are to be cleared}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKVhj9ubah}(h]h ]h"]h$]h&]uh1jYhj9ubeh}(h]h ]h"]h$]h&]uh1j7hj9hKVhj9ubj8)}(h.``unsigned long flags`` options to be cleared h](j>)}(h``unsigned long flags``h]jD)}(hj9h]hunsigned long flags}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj9ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKWhj9ubjZ)}(hhh]h)}(hoptions to be clearedh]hoptions to be cleared}(hj :hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hKWhj:ubah}(h]h ]h"]h$]h&]uh1jYhj9ubeh}(h]h ]h"]h$]h&]uh1j7hj:hKWhj9ubeh}(h]h ]h"]h$]h&]uh1j2hj9ubh)}(h**Description**h]j)}(hj-:h]h Description}(hj/:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+:ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKYhj9ubh)}(hNAll flags specified in **flags** are cleared, the remainder is left untouched.h](hAll flags specified in }(hjC:hhhNhNubj)}(h **flags**h]hflags}(hjK:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC:ubh. are cleared, the remainder is left untouched.}(hjC:hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKYhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP$ccw_device_is_pathgroup (C function)c.ccw_device_is_pathgrouphNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h5int ccw_device_is_pathgroup (struct ccw_device *cdev)h]j`)}(h4int ccw_device_is_pathgroup(struct ccw_device *cdev)h](j )}(hinth]hint}(hj:hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj:hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKjubjx)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:hhhj:hKjubj)}(hccw_device_is_pathgrouph]j)}(hccw_device_is_pathgrouph]hccw_device_is_pathgroup}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj:hhhj:hKjubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj:hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj:ubjx)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jj:sbc.ccw_device_is_pathgroupasbuh1hhj:ubjx)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:ubj)}(hjh]h*}(hj ;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hcdevh]hcdev}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj:ubah}(h]h ]h"]h$]h&]jjuh1jWhj:hhhj:hKjubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj|:hhhj:hKjubah}(h]jw:ah ](jjeh"]h$]h&]jj)jhuh1jYhj:hKjhjy:hhubj)}(hhh]h)}(h-determine if paths to this device are groupedh]h-determine if paths to this device are grouped}(hjD;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKehjA;hhubah}(h]h ]h"]h$]h&]uh1jhjy:hhhj:hKjubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\;jj\;jjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` ccw device **Description** Return non-zero if there is a path group, zero otherwise.h](h)}(h**Parameters**h]j)}(hjf;h]h Parameters}(hjh;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd;ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKihj`;ubj3)}(hhh]j8)}(h'``struct ccw_device *cdev`` ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj;h]hstruct ccw_device *cdev}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj;ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKfhj;ubjZ)}(hhh]h)}(h ccw deviceh]h ccw device}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hKfhj;ubah}(h]h ]h"]h$]h&]uh1jYhj;ubeh}(h]h ]h"]h$]h&]uh1j7hj;hKfhj|;ubah}(h]h ]h"]h$]h&]uh1j2hj`;ubh)}(h**Description**h]j)}(hj;h]h Description}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhhj`;ubh)}(h9Return non-zero if there is a path group, zero otherwise.h]h9Return non-zero if there is a path group, zero otherwise.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhhj`;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP$ccw_device_is_multipath (C function)c.ccw_device_is_multipathhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h5int ccw_device_is_multipath (struct ccw_device *cdev)h]j`)}(h4int ccw_device_is_multipath(struct ccw_device *cdev)h](j )}(hinth]hint}(hj<hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj<hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKvubjx)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj<hhhj<hKvubj)}(hccw_device_is_multipathh]j)}(hccw_device_is_multipathh]hccw_device_is_multipath}(hj&<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"<ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj<hhhj<hKvubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjB<hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj><ubjx)}(h h]h }(hjO<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj><ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj`<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjb<modnameN classnameNjj)}j]j)}jj(<sbc.ccw_device_is_multipathasbuh1hhj><ubjx)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj><ubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj><ubj)}(hcdevh]hcdev}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj><ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj:<ubah}(h]h ]h"]h$]h&]jjuh1jWhj<hhhj<hKvubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj;hhhj<hKvubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1jYhj<hKvhj;hhubj)}(hhh]h)}(h2determine if device is operating in multipath modeh]h2determine if device is operating in multipath mode}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKqhj<hhubah}(h]h ]h"]h$]h&]uh1jhj;hhhj<hKvubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` ccw device **Description** Return non-zero if device is operating in multipath mode, zero otherwise.h](h)}(h**Parameters**h]j)}(hj<h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKuhj<ubj3)}(hhh]j8)}(h'``struct ccw_device *cdev`` ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj=h]hstruct ccw_device *cdev}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj=ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKrhj=ubjZ)}(hhh]h)}(h ccw deviceh]h ccw device}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hKrhj=ubah}(h]h ]h"]h$]h&]uh1jYhj=ubeh}(h]h ]h"]h$]h&]uh1j7hj=hKrhj<ubah}(h]h ]h"]h$]h&]uh1j2hj<ubh)}(h**Description**h]j)}(hjA=h]h Description}(hjC=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?=ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKthj<ubh)}(hIReturn non-zero if device is operating in multipath mode, zero otherwise.h]hIReturn non-zero if device is operating in multipath mode, zero otherwise.}(hjW=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKthj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_clear (C function)c.ccw_device_clearhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hEint ccw_device_clear (struct ccw_device *cdev, unsigned long intparm)h]j`)}(hDint ccw_device_clear(struct ccw_device *cdev, unsigned long intparm)h](j )}(hinth]hint}(hj=hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj=hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKubjx)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=hhhj=hKubj)}(hccw_device_clearh]j)}(hccw_device_clearh]hccw_device_clear}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj=hhhj=hKubjX)}(h0(struct ccw_device *cdev, unsigned long intparm)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj=hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj=ubjx)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jj=sbc.ccw_device_clearasbuh1hhj=ubjx)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=ubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hcdevh]hcdev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj=ubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hj5>hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj1>ubjx)}(h h]h }(hjC>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj1>ubj )}(hlongh]hlong}(hjQ>hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj1>ubjx)}(h h]h }(hj_>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj1>ubj)}(hintparmh]hintparm}(hjm>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1>ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj=ubeh}(h]h ]h"]h$]h&]jjuh1jWhj=hhhj=hKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj~=hhhj=hKubah}(h]jy=ah ](jjeh"]h$]h&]jj)jhuh1jYhj=hKhj{=hhubj)}(hhh]h)}(h terminate I/O request processingh]h terminate I/O request processing}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c<hK}hj>hhubah}(h]h ]h"]h$]h&]uh1jhj{=hhhj=hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` target ccw device ``unsigned long intparm`` interruption parameter to be returned upon conclusion of csch **Description** ccw_device_clear() calls csch on **cdev**'s subchannel. **Return** ``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state. **Context** Interrupts disabled, ccw device lock heldh](h)}(h**Parameters**h]j)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj>ubj3)}(hhh](j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj>h]hstruct ccw_device *cdev}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj>ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK~hj>ubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hK~hj>ubah}(h]h ]h"]h$]h&]uh1jYhj>ubeh}(h]h ]h"]h$]h&]uh1j7hj>hK~hj>ubj8)}(hX``unsigned long intparm`` interruption parameter to be returned upon conclusion of csch h](j>)}(h``unsigned long intparm``h]jD)}(hj?h]hunsigned long intparm}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj?ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj ?ubjZ)}(hhh]h)}(h=interruption parameter to be returned upon conclusion of cschh]h=interruption parameter to be returned upon conclusion of csch}(hj*?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&?hKhj'?ubah}(h]h ]h"]h$]h&]uh1jYhj ?ubeh}(h]h ]h"]h$]h&]uh1j7hj&?hKhj>ubeh}(h]h ]h"]h$]h&]uh1j2hj>ubh)}(h**Description**h]j)}(hjL?h]h Description}(hjN?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ?ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj>ubh)}(h7ccw_device_clear() calls csch on **cdev**'s subchannel.h](h!ccw_device_clear() calls csch on }(hjb?hhhNhNubj)}(h**cdev**h]hcdev}(hjj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb?ubh’s subchannel.}(hjb?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj>ubh)}(h **Return**h]j)}(hj?h]hReturn}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj>ubj-)}(h^``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state. h]h)}(h]``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state.h](jD)}(h``0``h]h0}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj?ubh on success, -}(hj?hhhNhNubjD)}(h ``ENODEV``h]hENODEV}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj?ubh on device not operational, -}(hj?hhhNhNubjD)}(h ``EINVAL``h]hEINVAL}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj?ubh on invalid device state.}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj?ubah}(h]h ]h"]h$]h&]uh1j,hj?hKhj>ubh)}(h **Context**h]j)}(hj?h]hContext}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj>ubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP)ccw_device_start_timeout_key (C function)c.ccw_device_start_timeout_keyhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hint ccw_device_start_timeout_key (struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags, int expires)h]j`)}(hint ccw_device_start_timeout_key(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags, int expires)h](j )}(hinth]hint}(hj-@hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj)@hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKubjx)}(h h]h }(hj<@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj)@hhhj;@hKubj)}(hccw_device_start_timeout_keyh]j)}(hccw_device_start_timeout_keyh]hccw_device_start_timeout_key}(hjN@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ@ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj)@hhhj;@hKubjX)}(hx(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags, int expires)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjj@hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjf@ubjx)}(h h]h }(hjw@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjf@ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjP@sbc.ccw_device_start_timeout_keyasbuh1hhjf@ubjx)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjf@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf@ubj)}(hcdevh]hcdev}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf@ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjb@ubj^)}(hstruct ccw1 *cpah](jf)}(hjih]hstruct}(hj@hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj@ubjx)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj@ubh)}(hhh]j)}(hccw1h]hccw1}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j@c.ccw_device_start_timeout_keyasbuh1hhj@ubjx)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj@ubj)}(hjh]h*}(hj&AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hcpah]hcpa}(hj3AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjb@ubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjLAhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjHAubjx)}(h h]h }(hjZAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjHAubj )}(hlongh]hlong}(hjhAhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjHAubjx)}(h h]h }(hjvAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjHAubj)}(hintparmh]hintparm}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHAubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjb@ubj^)}(h__u8 lpmh](h)}(hhh]j)}(h__u8h]h__u8}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j@c.ccw_device_start_timeout_keyasbuh1hhjAubjx)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjAubj)}(hlpmh]hlpm}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjb@ubj^)}(h__u8 keyh](h)}(hhh]j)}(h__u8h]h__u8}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j@c.ccw_device_start_timeout_keyasbuh1hhjAubjx)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjAubj)}(hkeyh]hkey}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjb@ubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hj-BhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj)Bubjx)}(h h]h }(hj;BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj)Bubj )}(hlongh]hlong}(hjIBhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj)Bubjx)}(h h]h }(hjWBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj)Bubj)}(hflagsh]hflags}(hjeBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)Bubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjb@ubj^)}(h int expiresh](j )}(hinth]hint}(hj~BhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjzBubjx)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjzBubj)}(hexpiresh]hexpires}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzBubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjb@ubeh}(h]h ]h"]h$]h&]jjuh1jWhj)@hhhj;@hKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj%@hhhj;@hKubah}(h]j @ah ](jjeh"]h$]h&]jj)jhuh1jYhj;@hKhj"@hhubj)}(hhh]h)}(h1start a s390 channel program with timeout and keyh]h1start a s390 channel program with timeout and key}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBhhubah}(h]h ]h"]h$]h&]uh1jhj"@hhhj;@hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1jThhhjhNhNubj)}(hX`**Parameters** ``struct ccw_device *cdev`` target ccw device ``struct ccw1 *cpa`` logical start address of channel program ``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. ``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. ``__u8 key`` storage key to be used for the I/O ``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ``int expires`` timeout value in jiffies **Description** Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by **expires**. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device's interrupt handler will be called with an irb containing ERR_PTR(-``ETIMEDOUT``). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear(). **Return** ``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. **Context** Interrupts disabled, ccw device lock heldh](h)}(h**Parameters**h]j)}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBubj3)}(hhh](j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjCh]hstruct ccw_device *cdev}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jChjCubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChKhjCubah}(h]h ]h"]h$]h&]uh1jYhjBubeh}(h]h ]h"]h$]h&]uh1j7hjChKhjBubj8)}(h>``struct ccw1 *cpa`` logical start address of channel program h](j>)}(h``struct ccw1 *cpa``h]jD)}(hj>Ch]hstruct ccw1 *cpa}(hj@ChhhNhNubah}(h]h ]h"]h$]h&]uh1jChj)}(h``unsigned long intparm``h]jD)}(hjwCh]hunsigned long intparm}(hjyChhhNhNubah}(h]h ]h"]h$]h&]uh1jChjuCubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjqCubjZ)}(hhh]h)}(huser specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.h](h@user specific interruption parameter; will be presented back to }(hjChhhNhNubj)}(h**cdev**h]hcdev}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjCubah}(h]h ]h"]h$]h&]uh1jYhjqCubeh}(h]h ]h"]h$]h&]uh1j7hjChKhjBubj8)}(hu``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. h](j>)}(h ``__u8 lpm``h]jD)}(hjCh]h__u8 lpm}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jChjCubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjCubjZ)}(hhh]h)}(hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.h]hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjCubah}(h]h ]h"]h$]h&]uh1jYhjCubeh}(h]h ]h"]h$]h&]uh1j7hjChKhjBubj8)}(h0``__u8 key`` storage key to be used for the I/O h](j>)}(h ``__u8 key``h]jD)}(hjCh]h__u8 key}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jChjCubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjCubjZ)}(hhh]h)}(h"storage key to be used for the I/Oh]h"storage key to be used for the I/O}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhKhjDubah}(h]h ]h"]h$]h&]uh1jYhjCubeh}(h]h ]h"]h$]h&]uh1j7hjDhKhjBubj8)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j>)}(h``unsigned long flags``h]jD)}(hj6Dh]hunsigned long flags}(hj8DhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj4Dubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj0DubjZ)}(hhh]h)}(hHadditional flags; defines the action to be performed for I/O processing.h]hHadditional flags; defines the action to be performed for I/O processing.}(hjODhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjLDubah}(h]h ]h"]h$]h&]uh1jYhj0Dubeh}(h]h ]h"]h$]h&]uh1j7hjKDhKhjBubj8)}(h)``int expires`` timeout value in jiffies h](j>)}(h``int expires``h]jD)}(hjpDh]h int expires}(hjrDhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjnDubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjjDubjZ)}(hhh]h)}(htimeout value in jiffiesh]htimeout value in jiffies}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhKhjDubah}(h]h ]h"]h$]h&]uh1jYhjjDubeh}(h]h ]h"]h$]h&]uh1j7hjDhKhjBubeh}(h]h ]h"]h$]h&]uh1j2hjBubh)}(h**Description**h]j)}(hjDh]h Description}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBubh)}(hXStart a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by **expires**. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device's interrupt handler will be called with an irb containing ERR_PTR(-``ETIMEDOUT``). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().h](hX,Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by }(hjDhhhNhNubj)}(h **expires**h]hexpires}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device’s interrupt handler will be called with an irb containing ERR_PTR(-}(hjDhhhNhNubjD)}(h ``ETIMEDOUT``h]h ETIMEDOUT}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjDubh/). The interruption handler will echo back the }(hjDhhhNhNubj)}(h **intparm**h]hintparm}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBubh)}(h **Return**h]j)}(hjEh]hReturn}(hj EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBubj-)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. h]h)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational.h](jD)}(h``0``h]h0}(hj&EhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj"Eubh$, if the operation was successful; -}(hj"EhhhNhNubjD)}(h ``EBUSY``h]hEBUSY}(hj8EhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj"Eubh-, if the device is busy, or status pending; -}(hj"EhhhNhNubjD)}(h ``EACCES``h]hEACCES}(hjJEhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj"Eubh, if no path specified in }(hj"EhhhNhNubj)}(h**lpm**h]hlpm}(hj\EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"Eubh is operational; -}(hj"EhhhNhNubjD)}(h ``ENODEV``h]hENODEV}(hjnEhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj"Eubh#, if the device is not operational.}(hj"EhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjEubah}(h]h ]h"]h$]h&]uh1j,hjEhKhjBubh)}(h **Context**h]j)}(hjEh]hContext}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP!ccw_device_start_key (C function)c.ccw_device_start_keyhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hint ccw_device_start_key (struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags)h]j`)}(hint ccw_device_start_key(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags)h](j )}(hinth]hint}(hjEhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjEhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjEhhhjEhMubj)}(hccw_device_start_keyh]j)}(hccw_device_start_keyh]hccw_device_start_key}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ](jjeh"]h$]h&]jjuh1jhjEhhhjEhMubjX)}(hk(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjFhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj Fubjx)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj Fubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj/FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,Fubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1FmodnameN classnameNjj)}j]j)}jjEsbc.ccw_device_start_keyasbuh1hhj Fubjx)}(h h]h }(hjOFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj Fubj)}(hjh]h*}(hj]FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Fubj)}(hcdevh]hcdev}(hjjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Fubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj Fubj^)}(hstruct ccw1 *cpah](jf)}(hjih]hstruct}(hjFhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjFubjx)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFubh)}(hhh]j)}(hccw1h]hccw1}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]jKFc.ccw_device_start_keyasbuh1hhjFubjx)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj)}(hcpah]hcpa}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj Fubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjFhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjFubjx)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFubj )}(hlongh]hlong}(hjGhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjFubjx)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFubj)}(hintparmh]hintparm}(hj+GhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj Fubj^)}(h__u8 lpmh](h)}(hhh]j)}(h__u8h]h__u8}(hjGGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjIGmodnameN classnameNjj)}j]jKFc.ccw_device_start_keyasbuh1hhj@Gubjx)}(h h]h }(hjeGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj@Gubj)}(hlpmh]hlpm}(hjsGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@Gubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj Fubj^)}(h__u8 keyh](h)}(hhh]j)}(h__u8h]h__u8}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jKFc.ccw_device_start_keyasbuh1hhjGubjx)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjGubj)}(hkeyh]hkey}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj Fubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hjGhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjGubjx)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjGubj )}(hlongh]hlong}(hjGhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjGubjx)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjGubj)}(hflagsh]hflags}(hj HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj Fubeh}(h]h ]h"]h$]h&]jjuh1jWhjEhhhjEhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjEhhhjEhMubah}(h]jEah ](jjeh"]h$]h&]jj)jhuh1jYhjEhMhjEhhubj)}(hhh]h)}(h%start a s390 channel program with keyh]h%start a s390 channel program with key}(hj6HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj3Hhhubah}(h]h ]h"]h$]h&]uh1jhjEhhhjEhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNHjjNHjjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` target ccw device ``struct ccw1 *cpa`` logical start address of channel program ``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. ``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. ``__u8 key`` storage key to be used for the I/O ``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. **Description** Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear(). **Return** ``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. **Context** Interrupts disabled, ccw device lock heldh](h)}(h**Parameters**h]j)}(hjXHh]h Parameters}(hjZHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVHubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjRHubj3)}(hhh](j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjwHh]hstruct ccw_device *cdev}(hjyHhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjuHubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjqHubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKhjHubah}(h]h ]h"]h$]h&]uh1jYhjqHubeh}(h]h ]h"]h$]h&]uh1j7hjHhKhjnHubj8)}(h>``struct ccw1 *cpa`` logical start address of channel program h](j>)}(h``struct ccw1 *cpa``h]jD)}(hjHh]hstruct ccw1 *cpa}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjHubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjHubjZ)}(hhh]h)}(h(logical start address of channel programh]h(logical start address of channel program}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKhjHubah}(h]h ]h"]h$]h&]uh1jYhjHubeh}(h]h ]h"]h$]h&]uh1j7hjHhKhjnHubj8)}(h``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. h](j>)}(h``unsigned long intparm``h]jD)}(hjHh]hunsigned long intparm}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjHubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjHubjZ)}(hhh]h)}(huser specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.h](h@user specific interruption parameter; will be presented back to }(hjIhhhNhNubj)}(h**cdev**h]hcdev}(hj IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjHubah}(h]h ]h"]h$]h&]uh1jYhjHubeh}(h]h ]h"]h$]h&]uh1j7hjHhKhjnHubj8)}(hu``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. h](j>)}(h ``__u8 lpm``h]jD)}(hj5Ih]h__u8 lpm}(hj7IhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj3Iubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj/IubjZ)}(hhh]h)}(hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.h]hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.}(hjNIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjKIubah}(h]h ]h"]h$]h&]uh1jYhj/Iubeh}(h]h ]h"]h$]h&]uh1j7hjJIhMhjnHubj8)}(h0``__u8 key`` storage key to be used for the I/O h](j>)}(h ``__u8 key``h]jD)}(hjoIh]h__u8 key}(hjqIhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjmIubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjiIubjZ)}(hhh]h)}(h"storage key to be used for the I/Oh]h"storage key to be used for the I/O}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1jYhjiIubeh}(h]h ]h"]h$]h&]uh1j7hjIhMhjnHubj8)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j>)}(h``unsigned long flags``h]jD)}(hjIh]hunsigned long flags}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjIubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjIubjZ)}(hhh]h)}(hHadditional flags; defines the action to be performed for I/O processing.h]hHadditional flags; defines the action to be performed for I/O processing.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjIubah}(h]h ]h"]h$]h&]uh1jYhjIubeh}(h]h ]h"]h$]h&]uh1j7hjIhMhjnHubeh}(h]h ]h"]h$]h&]uh1j2hjRHubh)}(h**Description**h]j)}(hjIh]h Description}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjRHubh)}(hX~Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().h](hStart a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). The interruption handler will echo back the }(hjIhhhNhNubj)}(h **intparm**h]hintparm}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjRHubh)}(h **Return**h]j)}(hjJh]hReturn}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjRHubj-)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. h]h)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational.h](jD)}(h``0``h]h0}(hj;JhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj7Jubh$, if the operation was successful; -}(hj7JhhhNhNubjD)}(h ``EBUSY``h]hEBUSY}(hjMJhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj7Jubh-, if the device is busy, or status pending; -}(hj7JhhhNhNubjD)}(h ``EACCES``h]hEACCES}(hj_JhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj7Jubh, if no path specified in }(hj7JhhhNhNubj)}(h**lpm**h]hlpm}(hjqJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Jubh is operational; -}(hj7JhhhNhNubjD)}(h ``ENODEV``h]hENODEV}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj7Jubh#, if the device is not operational.}(hj7JhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hj3Jubah}(h]h ]h"]h$]h&]uh1j,hjJhM hjRHubh)}(h **Context**h]j)}(hjJh]hContext}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjRHubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjRHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_start (C function)c.ccw_device_starthNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hvint ccw_device_start (struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags)h]j`)}(huint ccw_device_start(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags)h](j )}(hinth]hint}(hjJhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjJhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM5ubjx)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjJhhhjJhM5ubj)}(hccw_device_starth]j)}(hccw_device_starth]hccw_device_start}(hj KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ](jjeh"]h$]h&]jjuh1jhjJhhhjJhM5ubjX)}(ha(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj&KhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj"Kubjx)}(h h]h }(hj3KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"Kubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjDKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFKmodnameN classnameNjj)}j]j)}jj Ksbc.ccw_device_startasbuh1hhj"Kubjx)}(h h]h }(hjdKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"Kubj)}(hjh]h*}(hjrKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"Kubj)}(hcdevh]hcdev}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"Kubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjKubj^)}(hstruct ccw1 *cpah](jf)}(hjih]hstruct}(hjKhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjKubjx)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjKubh)}(hhh]j)}(hccw1h]hccw1}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j`Kc.ccw_device_startasbuh1hhjKubjx)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(hcpah]hcpa}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjKubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjLhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjLubjx)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjLubj )}(hlongh]hlong}(hj$LhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjLubjx)}(h h]h }(hj2LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjLubj)}(hintparmh]hintparm}(hj@LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjKubj^)}(h__u8 lpmh](h)}(hhh]j)}(h__u8h]h__u8}(hj\LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^LmodnameN classnameNjj)}j]j`Kc.ccw_device_startasbuh1hhjULubjx)}(h h]h }(hjzLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjULubj)}(hlpmh]hlpm}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjULubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjKubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hjLhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjLubjx)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjLubj )}(hlongh]hlong}(hjLhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjLubjx)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjLubj)}(hflagsh]hflags}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjKubeh}(h]h ]h"]h$]h&]jjuh1jWhjJhhhjJhM5ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjJhhhjJhM5ubah}(h]jJah ](jjeh"]h$]h&]jj)jhuh1jYhjJhM5hjJhhubj)}(hhh]h)}(hstart a s390 channel programh]hstart a s390 channel program}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjMhhubah}(h]h ]h"]h$]h&]uh1jhjJhhhjJhM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` target ccw device ``struct ccw1 *cpa`` logical start address of channel program ``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. ``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. ``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. **Description** Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear(). **Return** ``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. **Context** Interrupts disabled, ccw device lock heldh](h)}(h**Parameters**h]j)}(hj%Mh]h Parameters}(hj'MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Mubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjMubj3)}(hhh](j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjDMh]hstruct ccw_device *cdev}(hjFMhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjBMubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj>MubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hj]MhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYMhMhjZMubah}(h]h ]h"]h$]h&]uh1jYhj>Mubeh}(h]h ]h"]h$]h&]uh1j7hjYMhMhj;Mubj8)}(h>``struct ccw1 *cpa`` logical start address of channel program h](j>)}(h``struct ccw1 *cpa``h]jD)}(hj}Mh]hstruct ccw1 *cpa}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj{Mubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjwMubjZ)}(hhh]h)}(h(logical start address of channel programh]h(logical start address of channel program}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jYhjwMubeh}(h]h ]h"]h$]h&]uh1j7hjMhMhj;Mubj8)}(h``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. h](j>)}(h``unsigned long intparm``h]jD)}(hjMh]hunsigned long intparm}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjMubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM!hjMubjZ)}(hhh]h)}(huser specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.h](h@user specific interruption parameter; will be presented back to }(hjMhhhNhNubj)}(h**cdev**h]hcdev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjMubah}(h]h ]h"]h$]h&]uh1jYhjMubeh}(h]h ]h"]h$]h&]uh1j7hjMhM!hj;Mubj8)}(hu``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. h](j>)}(h ``__u8 lpm``h]jD)}(hjNh]h__u8 lpm}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjNubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM#hjMubjZ)}(hhh]h)}(hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.h]hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM"hjNubah}(h]h ]h"]h$]h&]uh1jYhjMubeh}(h]h ]h"]h$]h&]uh1j7hjNhM#hj;Mubj8)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j>)}(h``unsigned long flags``h]jD)}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj:Nubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM%hj6NubjZ)}(hhh]h)}(hHadditional flags; defines the action to be performed for I/O processing.h]hHadditional flags; defines the action to be performed for I/O processing.}(hjUNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM$hjRNubah}(h]h ]h"]h$]h&]uh1jYhj6Nubeh}(h]h ]h"]h$]h&]uh1j7hjQNhM%hj;Mubeh}(h]h ]h"]h$]h&]uh1j2hjMubh)}(h**Description**h]j)}(hjxNh]h Description}(hjzNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM'hjMubh)}(hX~Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().h](hStart a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). The interruption handler will echo back the }(hjNhhhNhNubj)}(h **intparm**h]hintparm}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM'hjMubh)}(h **Return**h]j)}(hjNh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM.hjMubj-)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. h]h)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational.h](jD)}(h``0``h]h0}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjNubh$, if the operation was successful; -}(hjNhhhNhNubjD)}(h ``EBUSY``h]hEBUSY}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjNubh-, if the device is busy, or status pending; -}(hjNhhhNhNubjD)}(h ``EACCES``h]hEACCES}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjNubh, if no path specified in }(hjNhhhNhNubj)}(h**lpm**h]hlpm}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh is operational; -}(hjNhhhNhNubjD)}(h ``ENODEV``h]hENODEV}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjNubh#, if the device is not operational.}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM-hjNubah}(h]h ]h"]h$]h&]uh1j,hj/OhM-hjMubh)}(h **Context**h]j)}(hj8Oh]hContext}(hj:OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Oubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM2hjMubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjNOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM2hjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP%ccw_device_start_timeout (C function)c.ccw_device_start_timeouthNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hint ccw_device_start_timeout (struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags, int expires)h]j`)}(hint ccw_device_start_timeout(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags, int expires)h](j )}(hinth]hint}(hj}OhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjyOhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM[ubjx)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjyOhhhjOhM[ubj)}(hccw_device_start_timeouth]j)}(hccw_device_start_timeouth]hccw_device_start_timeout}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ](jjeh"]h$]h&]jjuh1jhjyOhhhjOhM[ubjX)}(hn(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags, int expires)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjOhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjOubjx)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjOubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjOsbc.ccw_device_start_timeoutasbuh1hhjOubjx)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjOubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(hcdevh]hcdev}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjOubj^)}(hstruct ccw1 *cpah](jf)}(hjih]hstruct}(hj,PhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj(Pubjx)}(h h]h }(hj9PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj(Pubh)}(hhh]j)}(hccw1h]hccw1}(hjJPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLPmodnameN classnameNjj)}j]jOc.ccw_device_start_timeoutasbuh1hhj(Pubjx)}(h h]h }(hjhPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj(Pubj)}(hjh]h*}(hjvPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(Pubj)}(hcpah]hcpa}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(Pubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjOubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjPhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjPubjx)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubj )}(hlongh]hlong}(hjPhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjPubjx)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubj)}(hintparmh]hintparm}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjOubj^)}(h__u8 lpmh](h)}(hhh]j)}(h__u8h]h__u8}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]jOc.ccw_device_start_timeoutasbuh1hhjPubjx)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubj)}(hlpmh]hlpm}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjOubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hj5QhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj1Qubjx)}(h h]h }(hjCQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj1Qubj )}(hlongh]hlong}(hjQQhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj1Qubjx)}(h h]h }(hj_QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj1Qubj)}(hflagsh]hflags}(hjmQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1Qubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjOubj^)}(h int expiresh](j )}(hinth]hint}(hjQhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjQubjx)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjQubj)}(hexpiresh]hexpires}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjOubeh}(h]h ]h"]h$]h&]jjuh1jWhjyOhhhjOhM[ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjuOhhhjOhM[ubah}(h]jpOah ](jjeh"]h$]h&]jj)jhuh1jYhjOhM[hjrOhhubj)}(hhh]h)}(h)start a s390 channel program with timeouth]h)start a s390 channel program with timeout}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM=hjQhhubah}(h]h ]h"]h$]h&]uh1jhjrOhhhjOhM[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjQjjQjjjuh1jThhhjhNhNubj)}(hX-**Parameters** ``struct ccw_device *cdev`` target ccw device ``struct ccw1 *cpa`` logical start address of channel program ``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. ``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. ``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ``int expires`` timeout value in jiffies **Description** Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by **expires**. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device's interrupt handler will be called with an irb containing ERR_PTR(-``ETIMEDOUT``). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear(). **Return** ``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. **Context** Interrupts disabled, ccw device lock heldh](h)}(h**Parameters**h]j)}(hjQh]h Parameters}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMAhjQubj3)}(hhh](j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj Rh]hstruct ccw_device *cdev}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj Rubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM>hjRubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hj&RhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"RhM>hj#Rubah}(h]h ]h"]h$]h&]uh1jYhjRubeh}(h]h ]h"]h$]h&]uh1j7hj"RhM>hjRubj8)}(h>``struct ccw1 *cpa`` logical start address of channel program h](j>)}(h``struct ccw1 *cpa``h]jD)}(hjFRh]hstruct ccw1 *cpa}(hjHRhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjDRubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM?hj@RubjZ)}(hhh]h)}(h(logical start address of channel programh]h(logical start address of channel program}(hj_RhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[RhM?hj\Rubah}(h]h ]h"]h$]h&]uh1jYhj@Rubeh}(h]h ]h"]h$]h&]uh1j7hj[RhM?hjRubj8)}(h``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. h](j>)}(h``unsigned long intparm``h]jD)}(hjRh]hunsigned long intparm}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj}Rubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMBhjyRubjZ)}(hhh]h)}(huser specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.h](h@user specific interruption parameter; will be presented back to }(hjRhhhNhNubj)}(h**cdev**h]hcdev}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM@hjRubah}(h]h ]h"]h$]h&]uh1jYhjyRubeh}(h]h ]h"]h$]h&]uh1j7hjRhMBhjRubj8)}(hu``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. h](j>)}(h ``__u8 lpm``h]jD)}(hjRh]h__u8 lpm}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjRubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMDhjRubjZ)}(hhh]h)}(hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.h]hgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMChjRubah}(h]h ]h"]h$]h&]uh1jYhjRubeh}(h]h ]h"]h$]h&]uh1j7hjRhMDhjRubj8)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j>)}(h``unsigned long flags``h]jD)}(hjSh]hunsigned long flags}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMFhjRubjZ)}(hhh]h)}(hHadditional flags; defines the action to be performed for I/O processing.h]hHadditional flags; defines the action to be performed for I/O processing.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMEhjSubah}(h]h ]h"]h$]h&]uh1jYhjRubeh}(h]h ]h"]h$]h&]uh1j7hjShMFhjRubj8)}(h)``int expires`` timeout value in jiffies h](j>)}(h``int expires``h]jD)}(hj?Sh]h int expires}(hjAShhhNhNubah}(h]h ]h"]h$]h&]uh1jChj=Subah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMGhj9SubjZ)}(hhh]h)}(htimeout value in jiffiesh]htimeout value in jiffies}(hjXShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjTShMGhjUSubah}(h]h ]h"]h$]h&]uh1jYhj9Subeh}(h]h ]h"]h$]h&]uh1j7hjTShMGhjRubeh}(h]h ]h"]h$]h&]uh1j2hjQubh)}(h**Description**h]j)}(hjzSh]h Description}(hj|ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxSubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMIhjQubh)}(hXStart a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by **expires**. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device's interrupt handler will be called with an irb containing ERR_PTR(-``ETIMEDOUT``). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().h](hX,Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by }(hjShhhNhNubj)}(h **expires**h]hexpires}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device’s interrupt handler will be called with an irb containing ERR_PTR(-}(hjShhhNhNubjD)}(h ``ETIMEDOUT``h]h ETIMEDOUT}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubh/). The interruption handler will echo back the }(hjShhhNhNubj)}(h **intparm**h]hintparm}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMIhjQubh)}(h **Return**h]j)}(hjSh]hReturn}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMThjQubj-)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. h]h)}(h``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational.h](jD)}(h``0``h]h0}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubh$, if the operation was successful; -}(hjShhhNhNubjD)}(h ``EBUSY``h]hEBUSY}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubh-, if the device is busy, or status pending; -}(hjShhhNhNubjD)}(h ``EACCES``h]hEACCES}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubh, if no path specified in }(hjShhhNhNubj)}(h**lpm**h]hlpm}(hj+ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh is operational; -}(hjShhhNhNubjD)}(h ``ENODEV``h]hENODEV}(hj=ThhhNhNubah}(h]h ]h"]h$]h&]uh1jChjSubh#, if the device is not operational.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMShjSubah}(h]h ]h"]h$]h&]uh1j,hjUThMShjQubh)}(h **Context**h]j)}(hj^Th]hContext}(hj`ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\Tubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMXhjQubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjtThhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMXhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_halt (C function)c.ccw_device_halthNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hDint ccw_device_halt (struct ccw_device *cdev, unsigned long intparm)h]j`)}(hCint ccw_device_halt(struct ccw_device *cdev, unsigned long intparm)h](j )}(hinth]hint}(hjThhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjThhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMvubjx)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjThhhjThMvubj)}(hccw_device_halth]j)}(hccw_device_halth]hccw_device_halt}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ](jjeh"]h$]h&]jjuh1jhjThhhjThMvubjX)}(h0(struct ccw_device *cdev, unsigned long intparm)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjThhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjTubjx)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjTubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjTsbc.ccw_device_haltasbuh1hhjTubjx)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjTubj)}(hjh]h*}(hj,UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(hcdevh]hcdev}(hj9UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjTubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjRUhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjNUubjx)}(h h]h }(hj`UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjNUubj )}(hlongh]hlong}(hjnUhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjNUubjx)}(h h]h }(hj|UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjNUubj)}(hintparmh]hintparm}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNUubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjTubeh}(h]h ]h"]h$]h&]jjuh1jWhjThhhjThMvubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjThhhjThMvubah}(h]jTah ](jjeh"]h$]h&]jj)jhuh1jYhjThMvhjThhubj)}(hhh]h)}(hhalt I/O request processingh]hhalt I/O request processing}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMfhjUhhubah}(h]h ]h"]h$]h&]uh1jhjThhhjThMvubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1jThhhjhNhNubj)}(hXg**Parameters** ``struct ccw_device *cdev`` target ccw device ``unsigned long intparm`` interruption parameter to be returned upon conclusion of hsch **Description** ccw_device_halt() calls hsch on **cdev**'s subchannel. The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_clear(). **Return** ``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending. **Context** Interrupts disabled, ccw device lock heldh](h)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMjhjUubj3)}(hhh](j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjUh]hstruct ccw_device *cdev}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjUubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMghjUubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj VhMghj Vubah}(h]h ]h"]h$]h&]uh1jYhjUubeh}(h]h ]h"]h$]h&]uh1j7hj VhMghjUubj8)}(hX``unsigned long intparm`` interruption parameter to be returned upon conclusion of hsch h](j>)}(h``unsigned long intparm``h]jD)}(hj.Vh]hunsigned long intparm}(hj0VhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj,Vubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhhj(VubjZ)}(hhh]h)}(h=interruption parameter to be returned upon conclusion of hschh]h=interruption parameter to be returned upon conclusion of hsch}(hjGVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCVhMhhjDVubah}(h]h ]h"]h$]h&]uh1jYhj(Vubeh}(h]h ]h"]h$]h&]uh1j7hjCVhMhhjUubeh}(h]h ]h"]h$]h&]uh1j2hjUubh)}(h**Description**h]j)}(hjiVh]h Description}(hjkVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgVubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMjhjUubh)}(hccw_device_halt() calls hsch on **cdev**'s subchannel. The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_clear().h](h ccw_device_halt() calls hsch on }(hjVhhhNhNubj)}(h**cdev**h]hcdev}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubh=’s subchannel. The interruption handler will echo back the }(hjVhhhNhNubj)}(h **intparm**h]hintparm}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubhu specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_clear().}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMjhjUubh)}(h **Return**h]j)}(hjVh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMohjUubj-)}(h``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending. h]h)}(h``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending.h](jD)}(h``0``h]h0}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjVubh on success, -}(hjVhhhNhNubjD)}(h ``ENODEV``h]hENODEV}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjVubh on device not operational, -}(hjVhhhNhNubjD)}(h ``EINVAL``h]hEINVAL}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjVubh on invalid device state, -}(hjVhhhNhNubjD)}(h ``EBUSY``h]hEBUSY}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjVubh% on device busy or interrupt pending.}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMnhjVubah}(h]h ]h"]h$]h&]uh1j,hj WhMnhjUubh)}(h **Context**h]j)}(hj)Wh]hContext}(hj+WhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Wubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMshjUubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hj?WhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMshjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_resume (C function)c.ccw_device_resumehNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h/int ccw_device_resume (struct ccw_device *cdev)h]j`)}(h.int ccw_device_resume(struct ccw_device *cdev)h](j )}(hinth]hint}(hjnWhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjjWhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hj}WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjjWhhhj|WhMubj)}(hccw_device_resumeh]j)}(hccw_device_resumeh]hccw_device_resume}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubah}(h]h ](jjeh"]h$]h&]jjuh1jhjjWhhhj|WhMubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjWhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjWubjx)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjWubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jjWsbc.ccw_device_resumeasbuh1hhjWubjx)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(hcdevh]hcdev}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjWubah}(h]h ]h"]h$]h&]jjuh1jWhjjWhhhj|WhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjfWhhhj|WhMubah}(h]jaWah ](jjeh"]h$]h&]jj)jhuh1jYhj|WhMhjcWhhubj)}(hhh]h)}(h resume channel program executionh]h resume channel program execution}(hj.XhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj+Xhhubah}(h]h ]h"]h$]h&]uh1jhjcWhhhj|WhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFXjjFXjjjuh1jThhhjhNhNubj)}(hXa**Parameters** ``struct ccw_device *cdev`` target ccw device **Description** ccw_device_resume() calls rsch on **cdev**'s subchannel. **Return** ``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending. **Context** Interrupts disabled, ccw device lock heldh](h)}(h**Parameters**h]j)}(hjPXh]h Parameters}(hjRXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNXubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjJXubj3)}(hhh]j8)}(h.``struct ccw_device *cdev`` target ccw device h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjoXh]hstruct ccw_device *cdev}(hjqXhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjmXubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjiXubjZ)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jYhjiXubeh}(h]h ]h"]h$]h&]uh1j7hjXhMhjfXubah}(h]h ]h"]h$]h&]uh1j2hjJXubh)}(h**Description**h]j)}(hjXh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjJXubh)}(h8ccw_device_resume() calls rsch on **cdev**'s subchannel.h](h"ccw_device_resume() calls rsch on }(hjXhhhNhNubj)}(h**cdev**h]hcdev}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh’s subchannel.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjJXubh)}(h **Return**h]j)}(hjXh]hReturn}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjJXubj-)}(h``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending. h]h)}(h``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending.h](jD)}(h``0``h]h0}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjXubh on success, -}(hjXhhhNhNubjD)}(h ``ENODEV``h]hENODEV}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjXubh on device not operational, -}(hjXhhhNhNubjD)}(h ``EINVAL``h]hEINVAL}(hj%YhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjXubh on invalid device state, -}(hjXhhhNhNubjD)}(h ``EBUSY``h]hEBUSY}(hj7YhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjXubh% on device busy or interrupt pending.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXubah}(h]h ]h"]h$]h&]uh1j,hjOYhMhjJXubh)}(h **Context**h]j)}(hjXYh]hContext}(hjZYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVYubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjJXubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjnYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjJXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_get_ciw (C function)c.ccw_device_get_ciwhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hCstruct ciw * ccw_device_get_ciw (struct ccw_device *cdev, __u32 ct)h]j`)}(hAstruct ciw *ccw_device_get_ciw(struct ccw_device *cdev, __u32 ct)h](jf)}(hjih]hstruct}(hjYhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjYhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjYhhhjYhMubh)}(hhh]j)}(hciwh]hciw}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jccw_device_get_ciwsbc.ccw_device_get_ciwasbuh1hhjYhhhjYhMubjx)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjYhhhjYhMubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhjYhMubj)}(hccw_device_get_ciwh]j)}(hjYh]hccw_device_get_ciw}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubah}(h]h ](jjeh"]h$]h&]jjuh1jhjYhhhjYhMubjX)}(h#(struct ccw_device *cdev, __u32 ct)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjZhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjZubjx)}(h h]h }(hj$ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj5ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Zubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7ZmodnameN classnameNjj)}j]jYc.ccw_device_get_ciwasbuh1hhjZubjx)}(h h]h }(hjSZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZubj)}(hjh]h*}(hjaZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(hcdevh]hcdev}(hjnZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjZubj^)}(h__u32 cth](h)}(hhh]j)}(h__u32h]h__u32}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]jYc.ccw_device_get_ciwasbuh1hhjZubjx)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZubj)}(hcth]hct}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjZubeh}(h]h ]h"]h$]h&]jjuh1jWhjYhhhjYhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjYhhhjYhMubah}(h]jYah ](jjeh"]h$]h&]jj)jhuh1jYhjYhMhjYhhubj)}(hhh]h)}(h.Search for CIW command in extended sense data.h]h.Search for CIW command in extended sense data.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjZhhubah}(h]h ]h"]h$]h&]uh1jhjYhhhjYhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1jThhhjhNhNubj)}(hX#**Parameters** ``struct ccw_device *cdev`` ccw device to inspect ``__u32 ct`` command type to look for **Description** During SenseID, command information words (CIWs) describing special commands available to the device may have been stored in the extended sense data. This function searches for CIWs of a specified command type in the extended sense data. **Return** ``NULL`` if no extended sense data has been stored or if no CIW of the specified command type could be found, else a pointer to the CIW of the specified command type.h](h)}(h**Parameters**h]j)}(hj[h]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjZubj3)}(hhh](j8)}(h2``struct ccw_device *cdev`` ccw device to inspect h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj![h]hstruct ccw_device *cdev}(hj#[hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj[ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjbjZ)}(hhh]h)}(hccw device to inspecth]hccw device to inspect}(hj:[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6[hMhj7[ubah}(h]h ]h"]h$]h&]uh1jYhjbeh}(h]h ]h"]h$]h&]uh1j7hj6[hMhj[ubj8)}(h&``__u32 ct`` command type to look for h](j>)}(h ``__u32 ct``h]jD)}(hjZ[h]h__u32 ct}(hj\[hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjX[ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjT[ubjZ)}(hhh]h)}(hcommand type to look forh]hcommand type to look for}(hjs[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo[hMhjp[ubah}(h]h ]h"]h$]h&]uh1jYhjT[ubeh}(h]h ]h"]h$]h&]uh1j7hjo[hMhj[ubeh}(h]h ]h"]h$]h&]uh1j2hjZubh)}(h**Description**h]j)}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjZubh)}(hDuring SenseID, command information words (CIWs) describing special commands available to the device may have been stored in the extended sense data. This function searches for CIWs of a specified command type in the extended sense data.h]hDuring SenseID, command information words (CIWs) describing special commands available to the device may have been stored in the extended sense data. This function searches for CIWs of a specified command type in the extended sense data.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjZubh)}(h **Return**h]j)}(hj[h]hReturn}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjZubj-)}(h``NULL`` if no extended sense data has been stored or if no CIW of the specified command type could be found, else a pointer to the CIW of the specified command type.h]h)}(h``NULL`` if no extended sense data has been stored or if no CIW of the specified command type could be found, else a pointer to the CIW of the specified command type.h](jD)}(h``NULL``h]hNULL}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj[ubh if no extended sense data has been stored or if no CIW of the specified command type could be found, else a pointer to the CIW of the specified command type.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj[ubah}(h]h ]h"]h$]h&]uh1j,hj[hMhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP%ccw_device_get_path_mask (C function)c.ccw_device_get_path_maskhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h7__u8 ccw_device_get_path_mask (struct ccw_device *cdev)h]j`)}(h6__u8 ccw_device_get_path_mask(struct ccw_device *cdev)h](h)}(hhh]j)}(h__u8h]h__u8}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j)}jccw_device_get_path_masksbc.ccw_device_get_path_maskasbuh1hhj\hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hj>\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj\hhhj=\hMubj)}(hccw_device_get_path_maskh]j)}(hj:\h]hccw_device_get_path_mask}(hjP\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL\ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj\hhhj=\hMubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjk\hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjg\ubjx)}(h h]h }(hjx\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjg\ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j8\c.ccw_device_get_path_maskasbuh1hhjg\ubjx)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjg\ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg\ubj)}(hcdevh]hcdev}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg\ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjc\ubah}(h]h ]h"]h$]h&]jjuh1jWhj\hhhj=\hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj\hhhj=\hMubah}(h]j \ah ](jjeh"]h$]h&]jj)jhuh1jYhj=\hMhj\hhubj)}(hhh]h)}(hget currently available pathsh]hget currently available paths}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj\hhubah}(h]h ]h"]h$]h&]uh1jhj\hhhj=\hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` ccw device to be queried **Return** ``0`` if no subchannel for the device is available, else the mask of currently available paths for the ccw device's subchannel.h](h)}(h**Parameters**h]j)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ]ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj]ubj3)}(hhh]j8)}(h5``struct ccw_device *cdev`` ccw device to be queried h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj-]h]hstruct ccw_device *cdev}(hj/]hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj+]ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj']ubjZ)}(hhh]h)}(hccw device to be queriedh]hccw device to be queried}(hjF]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB]hMhjC]ubah}(h]h ]h"]h$]h&]uh1jYhj']ubeh}(h]h ]h"]h$]h&]uh1j7hjB]hMhj$]ubah}(h]h ]h"]h$]h&]uh1j2hj]ubh)}(h **Return**h]j)}(hjh]h]hReturn}(hjj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf]ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj]ubj-)}(h``0`` if no subchannel for the device is available, else the mask of currently available paths for the ccw device's subchannel.h]h)}(h``0`` if no subchannel for the device is available, else the mask of currently available paths for the ccw device's subchannel.h](jD)}(h``0``h]h0}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj]ubh| if no subchannel for the device is available, else the mask of currently available paths for the ccw device’s subchannel.}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj~]ubah}(h]h ]h"]h$]h&]uh1j,hj]hMhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP$ccw_device_get_chp_desc (C function)c.ccw_device_get_chp_deschNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h^struct channel_path_desc_fmt0 * ccw_device_get_chp_desc (struct ccw_device *cdev, int chp_idx)h]j`)}(h\struct channel_path_desc_fmt0 *ccw_device_get_chp_desc(struct ccw_device *cdev, int chp_idx)h](jf)}(hjih]hstruct}(hj]hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj]hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj]hhhj]hMubh)}(hhh]j)}(hchannel_path_desc_fmt0h]hchannel_path_desc_fmt0}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]modnameN classnameNjj)}j]j)}jccw_device_get_chp_descsbc.ccw_device_get_chp_descasbuh1hhj]hhhj]hMubjx)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj]hhhj]hMubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]hhhj]hMubj)}(hccw_device_get_chp_desch]j)}(hj^h]hccw_device_get_chp_desc}(hj$^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ^ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj]hhhj]hMubjX)}(h&(struct ccw_device *cdev, int chp_idx)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj?^hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj;^ubjx)}(h h]h }(hjL^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj;^ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj]^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_^modnameN classnameNjj)}j]j^c.ccw_device_get_chp_descasbuh1hhj;^ubjx)}(h h]h }(hj{^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj;^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;^ubj)}(hcdevh]hcdev}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;^ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj7^ubj^)}(h int chp_idxh](j )}(hinth]hint}(hj^hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj^ubjx)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj^ubj)}(hchp_idxh]hchp_idx}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj7^ubeh}(h]h ]h"]h$]h&]jjuh1jWhj]hhhj]hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj]hhhj]hMubah}(h]j]ah ](jjeh"]h$]h&]jj)jhuh1jYhj]hMhj]hhubj)}(hhh]h)}(h.return newly allocated channel-path descriptorh]h.return newly allocated channel-path descriptor}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj^hhubah}(h]h ]h"]h$]h&]uh1jhj]hhhj]hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj _jj _jjjuh1jThhhjhNhNubj)}(hX **Parameters** ``struct ccw_device *cdev`` device to obtain the descriptor for ``int chp_idx`` index of the channel path **Description** On success return a newly allocated copy of the channel-path description data associated with the given channel path. Return ``NULL`` on error.h](h)}(h**Parameters**h]j)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj_ubj3)}(hhh](j8)}(h@``struct ccw_device *cdev`` device to obtain the descriptor for h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj6_h]hstruct ccw_device *cdev}(hj8_hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj4_ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj0_ubjZ)}(hhh]h)}(h#device to obtain the descriptor forh]h#device to obtain the descriptor for}(hjO_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK_hMhjL_ubah}(h]h ]h"]h$]h&]uh1jYhj0_ubeh}(h]h ]h"]h$]h&]uh1j7hjK_hMhj-_ubj8)}(h*``int chp_idx`` index of the channel path h](j>)}(h``int chp_idx``h]jD)}(hjo_h]h int chp_idx}(hjq_hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjm_ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhji_ubjZ)}(hhh]h)}(hindex of the channel pathh]hindex of the channel path}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMhj_ubah}(h]h ]h"]h$]h&]uh1jYhji_ubeh}(h]h ]h"]h$]h&]uh1j7hj_hMhj-_ubeh}(h]h ]h"]h$]h&]uh1j2hj_ubh)}(h**Description**h]j)}(hj_h]h Description}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj_ubh)}(hOn success return a newly allocated copy of the channel-path description data associated with the given channel path. Return ``NULL`` on error.h](h}On success return a newly allocated copy of the channel-path description data associated with the given channel path. Return }(hj_hhhNhNubjD)}(h``NULL``h]hNULL}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj_ubh on error.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP$ccw_device_get_util_str (C function)c.ccw_device_get_util_strhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hCu8 * ccw_device_get_util_str (struct ccw_device *cdev, int chp_idx)h]j`)}(hAu8 *ccw_device_get_util_str(struct ccw_device *cdev, int chp_idx)h](h)}(hhh]j)}(hu8h]hu8}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jccw_device_get_util_strsbc.ccw_device_get_util_strasbuh1hhj_hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hj&`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj_hhhj%`hMubj)}(hjh]h*}(hj4`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_hhhj%`hMubj)}(hccw_device_get_util_strh]j)}(hj"`h]hccw_device_get_util_str}(hjE`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA`ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj_hhhj%`hMubjX)}(h&(struct ccw_device *cdev, int chp_idx)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj``hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj\`ubjx)}(h h]h }(hjm`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj\`ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj~`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j `c.ccw_device_get_util_strasbuh1hhj\`ubjx)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj\`ubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\`ubj)}(hcdevh]hcdev}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\`ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjX`ubj^)}(h int chp_idxh](j )}(hinth]hint}(hj`hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj`ubjx)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj`ubj)}(hchp_idxh]hchp_idx}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjX`ubeh}(h]h ]h"]h$]h&]jjuh1jWhj_hhhj%`hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj_hhhj%`hMubah}(h]j_ah ](jjeh"]h$]h&]jj)jhuh1jYhj%`hMhj_hhubj)}(hhh]h)}(h&return newly allocated utility stringsh]h&return newly allocated utility strings}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjahhubah}(h]h ]h"]h$]h&]uh1jhj_hhhj%`hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.ajj.ajjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` device to obtain the utility strings for ``int chp_idx`` index of the channel path **Description** On success return a newly allocated copy of the utility strings associated with the given channel path. Return ``NULL`` on error.h](h)}(h**Parameters**h]j)}(hj8ah]h Parameters}(hj:ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6aubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj2aubj3)}(hhh](j8)}(hE``struct ccw_device *cdev`` device to obtain the utility strings for h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjWah]hstruct ccw_device *cdev}(hjYahhhNhNubah}(h]h ]h"]h$]h&]uh1jChjUaubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjQaubjZ)}(hhh]h)}(h(device to obtain the utility strings forh]h(device to obtain the utility strings for}(hjpahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlahMhjmaubah}(h]h ]h"]h$]h&]uh1jYhjQaubeh}(h]h ]h"]h$]h&]uh1j7hjlahMhjNaubj8)}(h*``int chp_idx`` index of the channel path h](j>)}(h``int chp_idx``h]jD)}(hjah]h int chp_idx}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jChjaubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjaubjZ)}(hhh]h)}(hindex of the channel pathh]hindex of the channel path}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMhjaubah}(h]h ]h"]h$]h&]uh1jYhjaubeh}(h]h ]h"]h$]h&]uh1j7hjahMhjNaubeh}(h]h ]h"]h$]h&]uh1j2hj2aubh)}(h**Description**h]j)}(hjah]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj2aubh)}(hOn success return a newly allocated copy of the utility strings associated with the given channel path. Return ``NULL`` on error.h](hoOn success return a newly allocated copy of the utility strings associated with the given channel path. Return }(hjahhhNhNubjD)}(h``NULL``h]hNULL}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jChjaubh on error.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj2aubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_get_id (C function)c.ccw_device_get_idhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hKvoid ccw_device_get_id (struct ccw_device *cdev, struct ccw_dev_id *dev_id)h]j`)}(hJvoid ccw_device_get_id(struct ccw_device *cdev, struct ccw_dev_id *dev_id)h](j )}(hvoidh]hvoid}(hj"bhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjbhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM ubjx)}(h h]h }(hj1bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjbhhhj0bhM ubj)}(hccw_device_get_idh]j)}(hccw_device_get_idh]hccw_device_get_id}(hjCbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?bubah}(h]h ](jjeh"]h$]h&]jjuh1jhjbhhhj0bhM ubjX)}(h4(struct ccw_device *cdev, struct ccw_dev_id *dev_id)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj_bhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj[bubjx)}(h h]h }(hjlbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj[bubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj}bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjEbsbc.ccw_device_get_idasbuh1hhj[bubjx)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj[bubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[bubj)}(hcdevh]hcdev}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[bubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjWbubj^)}(hstruct ccw_dev_id *dev_idh](jf)}(hjih]hstruct}(hjbhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjbubjx)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjbubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]jbc.ccw_device_get_idasbuh1hhjbubjx)}(h h]h }(hj chhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjbubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(hdev_idh]hdev_id}(hj(chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjWbubeh}(h]h ]h"]h$]h&]jjuh1jWhjbhhhj0bhM ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjbhhhj0bhM ubah}(h]jbah ](jjeh"]h$]h&]jj)jhuh1jYhj0bhM hjbhhubj)}(hhh]h)}(hobtain a ccw device idh]hobtain a ccw device id}(hjRchhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjOchhubah}(h]h ]h"]h$]h&]uh1jhjbhhhj0bhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjcjjjcjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` device to obtain the id for ``struct ccw_dev_id *dev_id`` where to fill in the valuesh](h)}(h**Parameters**h]j)}(hjtch]h Parameters}(hjvchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrcubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjncubj3)}(hhh](j8)}(h8``struct ccw_device *cdev`` device to obtain the id for h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjch]hstruct ccw_device *cdev}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jChjcubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjcubjZ)}(hhh]h)}(hdevice to obtain the id forh]hdevice to obtain the id for}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchM hjcubah}(h]h ]h"]h$]h&]uh1jYhjcubeh}(h]h ]h"]h$]h&]uh1j7hjchM hjcubj8)}(h9``struct ccw_dev_id *dev_id`` where to fill in the valuesh](j>)}(h``struct ccw_dev_id *dev_id``h]jD)}(hjch]hstruct ccw_dev_id *dev_id}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jChjcubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjcubjZ)}(hhh]h)}(hwhere to fill in the valuesh]hwhere to fill in the values}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjcubah}(h]h ]h"]h$]h&]uh1jYhjcubeh}(h]h ]h"]h$]h&]uh1j7hjchM hjcubeh}(h]h ]h"]h$]h&]uh1j2hjncubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP,ccw_device_tm_start_timeout_key (C function)!c.ccw_device_tm_start_timeout_keyhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hint ccw_device_tm_start_timeout_key (struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, u8 key, int expires)h]j`)}(hint ccw_device_tm_start_timeout_key(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, u8 key, int expires)h](j )}(hinth]hint}(hj&dhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj"dhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hj5dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"dhhhj4dhMubj)}(hccw_device_tm_start_timeout_keyh]j)}(hccw_device_tm_start_timeout_keyh]hccw_device_tm_start_timeout_key}(hjGdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCdubah}(h]h ](jjeh"]h$]h&]jjuh1jhj"dhhhj4dhMubjX)}(h^(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, u8 key, int expires)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjcdhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj_dubjx)}(h h]h }(hjpdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj_dubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jjIdsb!c.ccw_device_tm_start_timeout_keyasbuh1hhj_dubjx)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj_dubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_dubj)}(hcdevh]hcdev}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_dubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj[dubj^)}(hstruct tcw *tcwh](jf)}(hjih]hstruct}(hjdhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjdubjx)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjdubh)}(hhh]j)}(htcwh]htcw}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]jd!c.ccw_device_tm_start_timeout_keyasbuh1hhjdubjx)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjdubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj)}(htcwh]htcw}(hj,ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj[dubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjEehhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjAeubjx)}(h h]h }(hjSehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjAeubj )}(hlongh]hlong}(hjaehhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjAeubjx)}(h h]h }(hjoehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjAeubj)}(hintparmh]hintparm}(hj}ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAeubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj[dubj^)}(hu8 lpmh](h)}(hhh]j)}(hu8h]hu8}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]jd!c.ccw_device_tm_start_timeout_keyasbuh1hhjeubjx)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeubj)}(hlpmh]hlpm}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj[dubj^)}(hu8 keyh](h)}(hhh]j)}(hu8h]hu8}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]jd!c.ccw_device_tm_start_timeout_keyasbuh1hhjeubjx)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeubj)}(hkeyh]hkey}(hj fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj[dubj^)}(h int expiresh](j )}(hinth]hint}(hj&fhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj"fubjx)}(h h]h }(hj4fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"fubj)}(hexpiresh]hexpires}(hjBfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"fubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj[dubeh}(h]h ]h"]h$]h&]jjuh1jWhj"dhhhj4dhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjdhhhj4dhMubah}(h]jdah ](jjeh"]h$]h&]jj)jhuh1jYhj4dhMhjdhhubj)}(hhh]h)}(hperform start functionh]hperform start function}(hjlfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjifhhubah}(h]h ]h"]h$]h&]uh1jhjdhhhj4dhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfjjfjjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` ccw device on which to perform the start function ``struct tcw *tcw`` transport-command word to be started ``unsigned long intparm`` user defined parameter to be passed to the interrupt handler ``u8 lpm`` mask of paths to use ``u8 key`` storage key to use for storage access ``int expires`` time span in jiffies after which to abort request **Description** Start the tcw on the given ccw device. Return zero on success, non-zero otherwise.h](h)}(h**Parameters**h]j)}(hjfh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjfubj3)}(hhh](j8)}(hN``struct ccw_device *cdev`` ccw device on which to perform the start function h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjfh]hstruct ccw_device *cdev}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjfubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjfubjZ)}(hhh]h)}(h1ccw device on which to perform the start functionh]h1ccw device on which to perform the start function}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jYhjfubeh}(h]h ]h"]h$]h&]uh1j7hjfhMhjfubj8)}(h9``struct tcw *tcw`` transport-command word to be started h](j>)}(h``struct tcw *tcw``h]jD)}(hjfh]hstruct tcw *tcw}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjfubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjfubjZ)}(hhh]h)}(h$transport-command word to be startedh]h$transport-command word to be started}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jYhjfubeh}(h]h ]h"]h$]h&]uh1j7hjfhMhjfubj8)}(hW``unsigned long intparm`` user defined parameter to be passed to the interrupt handler h](j>)}(h``unsigned long intparm``h]jD)}(hjgh]hunsigned long intparm}(hj!ghhhNhNubah}(h]h ]h"]h$]h&]uh1jChjgubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjgubjZ)}(hhh]h)}(h)}(h ``u8 lpm``h]jD)}(hjXgh]hu8 lpm}(hjZghhhNhNubah}(h]h ]h"]h$]h&]uh1jChjVgubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjRgubjZ)}(hhh]h)}(hmask of paths to useh]hmask of paths to use}(hjqghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmghMhjngubah}(h]h ]h"]h$]h&]uh1jYhjRgubeh}(h]h ]h"]h$]h&]uh1j7hjmghMhjfubj8)}(h1``u8 key`` storage key to use for storage access h](j>)}(h ``u8 key``h]jD)}(hjgh]hu8 key}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jChjgubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjgubjZ)}(hhh]h)}(h%storage key to use for storage accessh]h%storage key to use for storage access}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMhjgubah}(h]h ]h"]h$]h&]uh1jYhjgubeh}(h]h ]h"]h$]h&]uh1j7hjghMhjfubj8)}(hB``int expires`` time span in jiffies after which to abort request h](j>)}(h``int expires``h]jD)}(hjgh]h int expires}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jChjgubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjgubjZ)}(hhh]h)}(h1time span in jiffies after which to abort requesth]h1time span in jiffies after which to abort request}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMhjgubah}(h]h ]h"]h$]h&]uh1jYhjgubeh}(h]h ]h"]h$]h&]uh1j7hjghMhjfubeh}(h]h ]h"]h$]h&]uh1j2hjfubh)}(h**Description**h]j)}(hjhh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjfubh)}(hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.h]hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP$ccw_device_tm_start_key (C function)c.ccw_device_tm_start_keyhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hmint ccw_device_tm_start_key (struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, u8 key)h]j`)}(hlint ccw_device_tm_start_key(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, u8 key)h](j )}(hinth]hint}(hjJhhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjFhhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMTubjx)}(h h]h }(hjYhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFhhhhjXhhMTubj)}(hccw_device_tm_start_keyh]j)}(hccw_device_tm_start_keyh]hccw_device_tm_start_key}(hjkhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghubah}(h]h ](jjeh"]h$]h&]jjuh1jhjFhhhhjXhhMTubjX)}(hQ(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, u8 key)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjhhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhubjx)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]j)}jjmhsbc.ccw_device_tm_start_keyasbuh1hhjhubjx)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(hcdevh]hcdev}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjhubj^)}(hstruct tcw *tcwh](jf)}(hjih]hstruct}(hjhhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhubjx)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhubh)}(hhh]j)}(htcwh]htcw}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]jhc.ccw_device_tm_start_keyasbuh1hhjhubjx)}(h h]h }(hj5ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhubj)}(hjh]h*}(hjCihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(htcwh]htcw}(hjPihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjhubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjiihhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjeiubjx)}(h h]h }(hjwihhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeiubj )}(hlongh]hlong}(hjihhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjeiubjx)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeiubj)}(hintparmh]hintparm}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeiubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjhubj^)}(hu8 lpmh](h)}(hhh]j)}(hu8h]hu8}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]jhc.ccw_device_tm_start_keyasbuh1hhjiubjx)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjiubj)}(hlpmh]hlpm}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjhubj^)}(hu8 keyh](h)}(hhh]j)}(hu8h]hu8}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jhc.ccw_device_tm_start_keyasbuh1hhjiubjx)}(h h]h }(hj#jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjiubj)}(hkeyh]hkey}(hj1jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjhubeh}(h]h ]h"]h$]h&]jjuh1jWhjFhhhhjXhhMTubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjBhhhhjXhhMTubah}(h]j=hah ](jjeh"]h$]h&]jj)jhuh1jYhjXhhMThj?hhhubj)}(hhh]h)}(hperform start functionh]hperform start function}(hj[jhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMJhjXjhhubah}(h]h ]h"]h$]h&]uh1jhj?hhhhjXhhMTubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjjsjjjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` ccw device on which to perform the start function ``struct tcw *tcw`` transport-command word to be started ``unsigned long intparm`` user defined parameter to be passed to the interrupt handler ``u8 lpm`` mask of paths to use ``u8 key`` storage key to use for storage access **Description** Start the tcw on the given ccw device. Return zero on success, non-zero otherwise.h](h)}(h**Parameters**h]j)}(hj}jh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{jubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMNhjwjubj3)}(hhh](j8)}(hN``struct ccw_device *cdev`` ccw device on which to perform the start function h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjjh]hstruct ccw_device *cdev}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjjubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMKhjjubjZ)}(hhh]h)}(h1ccw device on which to perform the start functionh]h1ccw device on which to perform the start function}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMKhjjubah}(h]h ]h"]h$]h&]uh1jYhjjubeh}(h]h ]h"]h$]h&]uh1j7hjjhMKhjjubj8)}(h9``struct tcw *tcw`` transport-command word to be started h](j>)}(h``struct tcw *tcw``h]jD)}(hjjh]hstruct tcw *tcw}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjjubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMLhjjubjZ)}(hhh]h)}(h$transport-command word to be startedh]h$transport-command word to be started}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMLhjjubah}(h]h ]h"]h$]h&]uh1jYhjjubeh}(h]h ]h"]h$]h&]uh1j7hjjhMLhjjubj8)}(hW``unsigned long intparm`` user defined parameter to be passed to the interrupt handler h](j>)}(h``unsigned long intparm``h]jD)}(hjkh]hunsigned long intparm}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj kubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMMhjkubjZ)}(hhh]h)}(h)}(h ``u8 lpm``h]jD)}(hjGkh]hu8 lpm}(hjIkhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjEkubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMNhjAkubjZ)}(hhh]h)}(hmask of paths to useh]hmask of paths to use}(hj`khhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\khMNhj]kubah}(h]h ]h"]h$]h&]uh1jYhjAkubeh}(h]h ]h"]h$]h&]uh1j7hj\khMNhjjubj8)}(h1``u8 key`` storage key to use for storage access h](j>)}(h ``u8 key``h]jD)}(hjkh]hu8 key}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj~kubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMOhjzkubjZ)}(hhh]h)}(h%storage key to use for storage accessh]h%storage key to use for storage access}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhMOhjkubah}(h]h ]h"]h$]h&]uh1jYhjzkubeh}(h]h ]h"]h$]h&]uh1j7hjkhMOhjjubeh}(h]h ]h"]h$]h&]uh1j2hjwjubh)}(h**Description**h]j)}(hjkh]h Description}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMQhjwjubh)}(hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.h]hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMQhjwjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccw_device_tm_start (C function)c.ccw_device_tm_starthNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(haint ccw_device_tm_start (struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm)h]j`)}(h`int ccw_device_tm_start(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm)h](j )}(hinth]hint}(hjlhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjkhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMeubjx)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjkhhhjlhMeubj)}(hccw_device_tm_starth]j)}(hccw_device_tm_starth]hccw_device_tm_start}(hj!lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubah}(h]h ](jjeh"]h$]h&]jjuh1jhjkhhhjlhMeubjX)}(hI(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj=lhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj9lubjx)}(h h]h }(hjJlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj9lubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj[lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]lmodnameN classnameNjj)}j]j)}jj#lsbc.ccw_device_tm_startasbuh1hhj9lubjx)}(h h]h }(hj{lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj9lubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9lubj)}(hcdevh]hcdev}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9lubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj5lubj^)}(hstruct tcw *tcwh](jf)}(hjih]hstruct}(hjlhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjlubjx)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjlubh)}(hhh]j)}(htcwh]htcw}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]jwlc.ccw_device_tm_startasbuh1hhjlubjx)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjlubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj)}(htcwh]htcw}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj5lubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjmhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjmubjx)}(h h]h }(hj-mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjmubj )}(hlongh]hlong}(hj;mhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjmubjx)}(h h]h }(hjImhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjmubj)}(hintparmh]hintparm}(hjWmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj5lubj^)}(hu8 lpmh](h)}(hhh]j)}(hu8h]hu8}(hjsmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjummodnameN classnameNjj)}j]jwlc.ccw_device_tm_startasbuh1hhjlmubjx)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjlmubj)}(hlpmh]hlpm}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlmubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj5lubeh}(h]h ]h"]h$]h&]jjuh1jWhjkhhhjlhMeubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjkhhhjlhMeubah}(h]jkah ](jjeh"]h$]h&]jj)jhuh1jYhjlhMehjkhhubj)}(hhh]h)}(hperform start functionh]hperform start function}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM\hjmhhubah}(h]h ]h"]h$]h&]uh1jhjkhhhjlhMeubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1jThhhjhNhNubj)}(hX}**Parameters** ``struct ccw_device *cdev`` ccw device on which to perform the start function ``struct tcw *tcw`` transport-command word to be started ``unsigned long intparm`` user defined parameter to be passed to the interrupt handler ``u8 lpm`` mask of paths to use **Description** Start the tcw on the given ccw device. Return zero on success, non-zero otherwise.h](h)}(h**Parameters**h]j)}(hjmh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM`hjmubj3)}(hhh](j8)}(hN``struct ccw_device *cdev`` ccw device on which to perform the start function h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj nh]hstruct ccw_device *cdev}(hj nhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjnubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM]hjnubjZ)}(hhh]h)}(h1ccw device on which to perform the start functionh]h1ccw device on which to perform the start function}(hj#nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhM]hj nubah}(h]h ]h"]h$]h&]uh1jYhjnubeh}(h]h ]h"]h$]h&]uh1j7hjnhM]hjnubj8)}(h9``struct tcw *tcw`` transport-command word to be started h](j>)}(h``struct tcw *tcw``h]jD)}(hjCnh]hstruct tcw *tcw}(hjEnhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjAnubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM^hj=nubjZ)}(hhh]h)}(h$transport-command word to be startedh]h$transport-command word to be started}(hj\nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXnhM^hjYnubah}(h]h ]h"]h$]h&]uh1jYhj=nubeh}(h]h ]h"]h$]h&]uh1j7hjXnhM^hjnubj8)}(hW``unsigned long intparm`` user defined parameter to be passed to the interrupt handler h](j>)}(h``unsigned long intparm``h]jD)}(hj|nh]hunsigned long intparm}(hj~nhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjznubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM_hjvnubjZ)}(hhh]h)}(h)}(h ``u8 lpm``h]jD)}(hjnh]hu8 lpm}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjnubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM`hjnubjZ)}(hhh]h)}(hmask of paths to useh]hmask of paths to use}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhM`hjnubah}(h]h ]h"]h$]h&]uh1jYhjnubeh}(h]h ]h"]h$]h&]uh1j7hjnhM`hjnubeh}(h]h ]h"]h$]h&]uh1j2hjmubh)}(h**Description**h]j)}(hjnh]h Description}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMbhjmubh)}(hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.h]hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMbhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP(ccw_device_tm_start_timeout (C function)c.ccw_device_tm_start_timeouthNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hvint ccw_device_tm_start_timeout (struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, int expires)h]j`)}(huint ccw_device_tm_start_timeout(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, int expires)h](j )}(hinth]hint}(hj5ohhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj1ohhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMxubjx)}(h h]h }(hjDohhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj1ohhhjCohMxubj)}(hccw_device_tm_start_timeouth]j)}(hccw_device_tm_start_timeouth]hccw_device_tm_start_timeout}(hjVohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRoubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1ohhhjCohMxubjX)}(hV(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, int expires)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjrohhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjnoubjx)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjnoubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jjXosbc.ccw_device_tm_start_timeoutasbuh1hhjnoubjx)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjnoubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnoubj)}(hcdevh]hcdev}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnoubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjjoubj^)}(hstruct tcw *tcwh](jf)}(hjih]hstruct}(hjohhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjoubjx)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjoubh)}(hhh]j)}(htcwh]htcw}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]joc.ccw_device_tm_start_timeoutasbuh1hhjoubjx)}(h h]h }(hj phhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjoubj)}(hjh]h*}(hj.phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(htcwh]htcw}(hj;phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjjoubj^)}(hunsigned long intparmh](j )}(hunsignedh]hunsigned}(hjTphhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjPpubjx)}(h h]h }(hjbphhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPpubj )}(hlongh]hlong}(hjpphhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjPpubjx)}(h h]h }(hj~phhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPpubj)}(hintparmh]hintparm}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPpubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjjoubj^)}(hu8 lpmh](h)}(hhh]j)}(hu8h]hu8}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]joc.ccw_device_tm_start_timeoutasbuh1hhjpubjx)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjpubj)}(hlpmh]hlpm}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjjoubj^)}(h int expiresh](j )}(hinth]hint}(hjphhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjpubjx)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjpubj)}(hexpiresh]hexpires}(hj qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjjoubeh}(h]h ]h"]h$]h&]jjuh1jWhj1ohhhjCohMxubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj-ohhhjCohMxubah}(h]j(oah ](jjeh"]h$]h&]jj)jhuh1jYhjCohMxhj*ohhubj)}(hhh]h)}(hperform start functionh]hperform start function}(hj3qhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMnhj0qhhubah}(h]h ]h"]h$]h&]uh1jhj*ohhhjCohMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKqjjKqjjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` ccw device on which to perform the start function ``struct tcw *tcw`` transport-command word to be started ``unsigned long intparm`` user defined parameter to be passed to the interrupt handler ``u8 lpm`` mask of paths to use ``int expires`` time span in jiffies after which to abort request **Description** Start the tcw on the given ccw device. Return zero on success, non-zero otherwise.h](h)}(h**Parameters**h]j)}(hjUqh]h Parameters}(hjWqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSqubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMrhjOqubj3)}(hhh](j8)}(hN``struct ccw_device *cdev`` ccw device on which to perform the start function h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjtqh]hstruct ccw_device *cdev}(hjvqhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjrqubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMohjnqubjZ)}(hhh]h)}(h1ccw device on which to perform the start functionh]h1ccw device on which to perform the start function}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMohjqubah}(h]h ]h"]h$]h&]uh1jYhjnqubeh}(h]h ]h"]h$]h&]uh1j7hjqhMohjkqubj8)}(h9``struct tcw *tcw`` transport-command word to be started h](j>)}(h``struct tcw *tcw``h]jD)}(hjqh]hstruct tcw *tcw}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjqubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMphjqubjZ)}(hhh]h)}(h$transport-command word to be startedh]h$transport-command word to be started}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMphjqubah}(h]h ]h"]h$]h&]uh1jYhjqubeh}(h]h ]h"]h$]h&]uh1j7hjqhMphjkqubj8)}(hW``unsigned long intparm`` user defined parameter to be passed to the interrupt handler h](j>)}(h``unsigned long intparm``h]jD)}(hjqh]hunsigned long intparm}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjqubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMqhjqubjZ)}(hhh]h)}(h)}(h ``u8 lpm``h]jD)}(hjrh]hu8 lpm}(hj!rhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjrubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMrhjrubjZ)}(hhh]h)}(hmask of paths to useh]hmask of paths to use}(hj8rhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4rhMrhj5rubah}(h]h ]h"]h$]h&]uh1jYhjrubeh}(h]h ]h"]h$]h&]uh1j7hj4rhMrhjkqubj8)}(hB``int expires`` time span in jiffies after which to abort request h](j>)}(h``int expires``h]jD)}(hjXrh]h int expires}(hjZrhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjVrubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMshjRrubjZ)}(hhh]h)}(h1time span in jiffies after which to abort requesth]h1time span in jiffies after which to abort request}(hjqrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmrhMshjnrubah}(h]h ]h"]h$]h&]uh1jYhjRrubeh}(h]h ]h"]h$]h&]uh1j7hjmrhMshjkqubeh}(h]h ]h"]h$]h&]uh1j2hjOqubh)}(h**Description**h]j)}(hjrh]h Description}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMuhjOqubh)}(hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.h]hRStart the tcw on the given ccw device. Return zero on success, non-zero otherwise.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMuhjOqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_get_mdc (C function)c.ccw_device_get_mdchNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h9int ccw_device_get_mdc (struct ccw_device *cdev, u8 mask)h]j`)}(h8int ccw_device_get_mdc(struct ccw_device *cdev, u8 mask)h](j )}(hinth]hint}(hjrhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjrhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjrhhhjrhMubj)}(hccw_device_get_mdch]j)}(hccw_device_get_mdch]hccw_device_get_mdc}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubah}(h]h ](jjeh"]h$]h&]jjuh1jhjrhhhjrhMubjX)}(h"(struct ccw_device *cdev, u8 mask)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjshhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjsubjx)}(h h]h }(hj"shhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjsubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj3shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0subah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5smodnameN classnameNjj)}j]j)}jjrsbc.ccw_device_get_mdcasbuh1hhjsubjx)}(h h]h }(hjSshhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjsubj)}(hjh]h*}(hjashhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(hcdevh]hcdev}(hjnshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj subj^)}(hu8 maskh](h)}(hhh]j)}(hu8h]hu8}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]jOsc.ccw_device_get_mdcasbuh1hhjsubjx)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjsubj)}(hmaskh]hmask}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj subeh}(h]h ]h"]h$]h&]jjuh1jWhjrhhhjrhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjrhhhjrhMubah}(h]jrah ](jjeh"]h$]h&]jj)jhuh1jYhjrhMhjrhhubj)}(hhh]h)}(haccumulate max data counth]haccumulate max data count}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjshhubah}(h]h ]h"]h$]h&]uh1jhjrhhhjrhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` ccw device for which the max data count is accumulated ``u8 mask`` mask of paths to use **Description** Return the number of 64K-bytes blocks all paths at least support for a transport command. Return value 0 indicates failure.h](h)}(h**Parameters**h]j)}(hjth]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjsubj3)}(hhh](j8)}(hS``struct ccw_device *cdev`` ccw device for which the max data count is accumulated h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj!th]hstruct ccw_device *cdev}(hj#thhhNhNubah}(h]h ]h"]h$]h&]uh1jChjtubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjtubjZ)}(hhh]h)}(h6ccw device for which the max data count is accumulatedh]h6ccw device for which the max data count is accumulated}(hj:thhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6thMhj7tubah}(h]h ]h"]h$]h&]uh1jYhjtubeh}(h]h ]h"]h$]h&]uh1j7hj6thMhjtubj8)}(h!``u8 mask`` mask of paths to use h](j>)}(h ``u8 mask``h]jD)}(hjZth]hu8 mask}(hj\thhhNhNubah}(h]h ]h"]h$]h&]uh1jChjXtubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjTtubjZ)}(hhh]h)}(hmask of paths to useh]hmask of paths to use}(hjsthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjothMhjptubah}(h]h ]h"]h$]h&]uh1jYhjTtubeh}(h]h ]h"]h$]h&]uh1j7hjothMhjtubeh}(h]h ]h"]h$]h&]uh1j2hjsubh)}(h**Description**h]j)}(hjth]h Description}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjsubh)}(h{Return the number of 64K-bytes blocks all paths at least support for a transport command. Return value 0 indicates failure.h]h{Return the number of 64K-bytes blocks all paths at least support for a transport command. Return value 0 indicates failure.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccw_device_tm_intrg (C function)c.ccw_device_tm_intrghNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h1int ccw_device_tm_intrg (struct ccw_device *cdev)h]j`)}(h0int ccw_device_tm_intrg(struct ccw_device *cdev)h](j )}(hinth]hint}(hjthhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjthhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjthhhjthMubj)}(hccw_device_tm_intrgh]j)}(hccw_device_tm_intrgh]hccw_device_tm_intrg}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubah}(h]h ](jjeh"]h$]h&]jjuh1jhjthhhjthMubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjuhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjuubjx)}(h h]h }(hj$uhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjuubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj5uhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7umodnameN classnameNjj)}j]j)}jjtsbc.ccw_device_tm_intrgasbuh1hhjuubjx)}(h h]h }(hjUuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjuubj)}(hjh]h*}(hjcuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj)}(hcdevh]hcdev}(hjpuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjuubah}(h]h ]h"]h$]h&]jjuh1jWhjthhhjthMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjthhhjthMubah}(h]jtah ](jjeh"]h$]h&]jj)jhuh1jYhjthMhjthhubj)}(hhh]h)}(hperform interrogate functionh]hperform interrogate function}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjuhhubah}(h]h ]h"]h$]h&]uh1jhjthhhjthMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` ccw device on which to perform the interrogate function **Description** Perform an interrogate function on the given ccw device. Return zero on success, non-zero otherwise.h](h)}(h**Parameters**h]j)}(hjuh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjuubj3)}(hhh]j8)}(hT``struct ccw_device *cdev`` ccw device on which to perform the interrogate function h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjuh]hstruct ccw_device *cdev}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjuubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjuubjZ)}(hhh]h)}(h7ccw device on which to perform the interrogate functionh]h7ccw device on which to perform the interrogate function}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhMhjuubah}(h]h ]h"]h$]h&]uh1jYhjuubeh}(h]h ]h"]h$]h&]uh1j7hjuhMhjuubah}(h]h ]h"]h$]h&]uh1j2hjuubh)}(h**Description**h]j)}(hjvh]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjuubh)}(hdPerform an interrogate function on the given ccw device. Return zero on success, non-zero otherwise.h]hdPerform an interrogate function on the given ccw device. Return zero on success, non-zero otherwise.}(hj,vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP!ccw_device_get_schid (C function)c.ccw_device_get_schidhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hPvoid ccw_device_get_schid (struct ccw_device *cdev, struct subchannel_id *schid)h]j`)}(hOvoid ccw_device_get_schid(struct ccw_device *cdev, struct subchannel_id *schid)h](j )}(hvoidh]hvoid}(hj[vhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjWvhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hjjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjWvhhhjivhMubj)}(hccw_device_get_schidh]j)}(hccw_device_get_schidh]hccw_device_get_schid}(hj|vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxvubah}(h]h ](jjeh"]h$]h&]jjuh1jhjWvhhhjivhMubjX)}(h6(struct ccw_device *cdev, struct subchannel_id *schid)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjvhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjvubjx)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjvubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jj~vsbc.ccw_device_get_schidasbuh1hhjvubjx)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjvubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj)}(hcdevh]hcdev}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjvubj^)}(hstruct subchannel_id *schidh](jf)}(hjih]hstruct}(hj whhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjwubjx)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjwubh)}(hhh]j)}(h subchannel_idh]h subchannel_id}(hj(whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*wmodnameN classnameNjj)}j]jvc.ccw_device_get_schidasbuh1hhjwubjx)}(h h]h }(hjFwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjwubj)}(hjh]h*}(hjTwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj)}(hschidh]hschid}(hjawhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjvubeh}(h]h ]h"]h$]h&]jjuh1jWhjWvhhhjivhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjSvhhhjivhMubah}(h]jNvah ](jjeh"]h$]h&]jj)jhuh1jYhjivhMhjPvhhubj)}(hhh]h)}(hobtain a subchannel idh]hobtain a subchannel id}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjwhhubah}(h]h ]h"]h$]h&]uh1jhjPvhhhjivhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` device to obtain the id for ``struct subchannel_id *schid`` where to fill in the valuesh](h)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjwubj3)}(hhh](j8)}(h8``struct ccw_device *cdev`` device to obtain the id for h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjwh]hstruct ccw_device *cdev}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjwubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjwubjZ)}(hhh]h)}(hdevice to obtain the id forh]hdevice to obtain the id for}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhMhjwubah}(h]h ]h"]h$]h&]uh1jYhjwubeh}(h]h ]h"]h$]h&]uh1j7hjwhMhjwubj8)}(h;``struct subchannel_id *schid`` where to fill in the valuesh](j>)}(h``struct subchannel_id *schid``h]jD)}(hjxh]hstruct subchannel_id *schid}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjxubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjwubjZ)}(hhh]h)}(hwhere to fill in the valuesh]hwhere to fill in the values}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjxubah}(h]h ]h"]h$]h&]uh1jYhjwubeh}(h]h ]h"]h$]h&]uh1j7hjxhMhjwubeh}(h]h ]h"]h$]h&]uh1j2hjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_pnso (C function)c.ccw_device_pnsohNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hint ccw_device_pnso (struct ccw_device *cdev, struct chsc_pnso_area *pnso_area, u8 oc, struct chsc_pnso_resume_token resume_token, int cnc)h]j`)}(hint ccw_device_pnso(struct ccw_device *cdev, struct chsc_pnso_area *pnso_area, u8 oc, struct chsc_pnso_resume_token resume_token, int cnc)h](j )}(hinth]hint}(hj_xhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj[xhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hjnxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj[xhhhjmxhMubj)}(hccw_device_pnsoh]j)}(hccw_device_pnsoh]hccw_device_pnso}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|xubah}(h]h ](jjeh"]h$]h&]jjuh1jhj[xhhhjmxhMubjX)}(hw(struct ccw_device *cdev, struct chsc_pnso_area *pnso_area, u8 oc, struct chsc_pnso_resume_token resume_token, int cnc)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjxhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjxubjx)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjxubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jjxsbc.ccw_device_pnsoasbuh1hhjxubjx)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjxubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj)}(hcdevh]hcdev}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjxubj^)}(h struct chsc_pnso_area *pnso_areah](jf)}(hjih]hstruct}(hjyhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj yubjx)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj yubh)}(hhh]j)}(hchsc_pnso_areah]hchsc_pnso_area}(hj,yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.ymodnameN classnameNjj)}j]jxc.ccw_device_pnsoasbuh1hhj yubjx)}(h h]h }(hjJyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj yubj)}(hjh]h*}(hjXyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj yubj)}(h pnso_areah]h pnso_area}(hjeyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj yubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjxubj^)}(hu8 och](h)}(hhh]j)}(hu8h]hu8}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jxc.ccw_device_pnsoasbuh1hhjzyubjx)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjzyubj)}(hoch]hoc}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzyubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjxubj^)}(h*struct chsc_pnso_resume_token resume_tokenh](jf)}(hjih]hstruct}(hjyhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjyubjx)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjyubh)}(hhh]j)}(hchsc_pnso_resume_tokenh]hchsc_pnso_resume_token}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jxc.ccw_device_pnsoasbuh1hhjyubjx)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjyubj)}(h resume_tokenh]h resume_token}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjxubj^)}(hint cnch](j )}(hinth]hint}(hj)zhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj%zubjx)}(h h]h }(hj7zhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj%zubj)}(hcnch]hcnc}(hjEzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%zubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjxubeh}(h]h ]h"]h$]h&]jjuh1jWhj[xhhhjmxhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjWxhhhjmxhMubah}(h]jRxah ](jjeh"]h$]h&]jj)jhuh1jYhjmxhMhjTxhhubj)}(hhh]h)}(h$Perform Network-Subchannel Operationh]h$Perform Network-Subchannel Operation}(hjozhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjlzhhubah}(h]h ]h"]h$]h&]uh1jhjTxhhhjmxhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1jThhhjhNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` device on which PNSO is performed ``struct chsc_pnso_area *pnso_area`` request and response block for the operation ``u8 oc`` Operation Code ``struct chsc_pnso_resume_token resume_token`` resume token for multiblock response ``int cnc`` Boolean change-notification control **Description** pnso_area must be allocated by the caller with get_zeroed_page(GFP_KERNEL) Returns 0 on success.h](h)}(h**Parameters**h]j)}(hjzh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjzubj3)}(hhh](j8)}(h>``struct ccw_device *cdev`` device on which PNSO is performed h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjzh]hstruct ccw_device *cdev}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjzubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjzubjZ)}(hhh]h)}(h!device on which PNSO is performedh]h!device on which PNSO is performed}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhMhjzubah}(h]h ]h"]h$]h&]uh1jYhjzubeh}(h]h ]h"]h$]h&]uh1j7hjzhMhjzubj8)}(hR``struct chsc_pnso_area *pnso_area`` request and response block for the operation h](j>)}(h$``struct chsc_pnso_area *pnso_area``h]jD)}(hjzh]h struct chsc_pnso_area *pnso_area}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjzubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjzubjZ)}(hhh]h)}(h,request and response block for the operationh]h,request and response block for the operation}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhMhjzubah}(h]h ]h"]h$]h&]uh1jYhjzubeh}(h]h ]h"]h$]h&]uh1j7hjzhMhjzubj8)}(h``u8 oc`` Operation Code h](j>)}(h ``u8 oc``h]jD)}(hj"{h]hu8 oc}(hj${hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj {ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj{ubjZ)}(hhh]h)}(hOperation Codeh]hOperation Code}(hj;{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7{hMhj8{ubah}(h]h ]h"]h$]h&]uh1jYhj{ubeh}(h]h ]h"]h$]h&]uh1j7hj7{hMhjzubj8)}(hT``struct chsc_pnso_resume_token resume_token`` resume token for multiblock response h](j>)}(h.``struct chsc_pnso_resume_token resume_token``h]jD)}(hj[{h]h*struct chsc_pnso_resume_token resume_token}(hj]{hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjY{ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjU{ubjZ)}(hhh]h)}(h$resume token for multiblock responseh]h$resume token for multiblock response}(hjt{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp{hMhjq{ubah}(h]h ]h"]h$]h&]uh1jYhjU{ubeh}(h]h ]h"]h$]h&]uh1j7hjp{hMhjzubj8)}(h0``int cnc`` Boolean change-notification control h](j>)}(h ``int cnc``h]jD)}(hj{h]hint cnc}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj{ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj{ubjZ)}(hhh]h)}(h#Boolean change-notification controlh]h#Boolean change-notification control}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jYhj{ubeh}(h]h ]h"]h$]h&]uh1j7hj{hMhjzubeh}(h]h ]h"]h$]h&]uh1j2hjzubh)}(h**Description**h]j)}(hj{h]h Description}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjzubh)}(hJpnso_area must be allocated by the caller with get_zeroed_page(GFP_KERNEL)h]hJpnso_area must be allocated by the caller with get_zeroed_page(GFP_KERNEL)}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjzubh)}(hReturns 0 on success.h]hReturns 0 on success.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP!ccw_device_get_cssid (C function)c.ccw_device_get_cssidhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h=int ccw_device_get_cssid (struct ccw_device *cdev, u8 *cssid)h]j`)}(h)}(h``struct ccw_device *cdev``h]jD)}(hjy}h]hstruct ccw_device *cdev}(hj{}hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjw}ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjs}ubjZ)}(hhh]h)}(hdevice to obtain the CSSID forh]hdevice to obtain the CSSID for}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}hMhj}ubah}(h]h ]h"]h$]h&]uh1jYhjs}ubeh}(h]h ]h"]h$]h&]uh1j7hj}hMhjp}ubj8)}(h0``u8 *cssid`` The resulting Channel Subsystem IDh](j>)}(h ``u8 *cssid``h]jD)}(hj}h]h u8 *cssid}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj}ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj}ubjZ)}(hhh]h)}(h"The resulting Channel Subsystem IDh]h"The resulting Channel Subsystem ID}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj}ubah}(h]h ]h"]h$]h&]uh1jYhj}ubeh}(h]h ]h"]h$]h&]uh1j7hj}hMhjp}ubeh}(h]h ]h"]h$]h&]u.h1j2hjT}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccw_device_get_iid (C function)c.ccw_device_get_iidhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h9int ccw_device_get_iid (struct ccw_device *cdev, u8 *iid)h]j`)}(h8int ccw_device_get_iid(struct ccw_device *cdev, u8 *iid)h](j )}(hinth]hint}(hj ~hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj~hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj~hhhj~hMubj)}(hccw_device_get_iidh]j)}(hccw_device_get_iidh]hccw_device_get_iid}(hj-~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)~ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj~hhhj~hMubjX)}(h"(struct ccw_device *cdev, u8 *iid)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjI~hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjE~ubjx)}(h h]h }(hjV~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjE~ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjg~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetji~modnameN classnameNjj)}j]j)}jj/~sbc.ccw_device_get_iidasbuh1hhjE~ubjx)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjE~ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE~ubj)}(hcdevh]hcdev}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE~ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjA~ubj^)}(hu8 *iidh](h)}(hhh]j)}(hu8h]hu8}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j~c.ccw_device_get_iidasbuh1hhj~ubjx)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj~ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj)}(hiidh]hiid}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjA~ubeh}(h]h ]h"]h$]h&]jjuh1jWhj~hhhj~hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj~hhhj~hMubah}(h]j}ah ](jjeh"]h$]h&]jj)jhuh1jYhj~hMhj~hhubj)}(hhh]h)}(hobtain MIF-image IDh]hobtain MIF-image ID}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj~hhhj~hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1jThhhjhNhNubj)}(h}**Parameters** ``struct ccw_device *cdev`` device to obtain the MIF-image ID for ``u8 *iid`` The resulting MIF-image IDh](h)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj=ubj3)}(hhh](j8)}(hB``struct ccw_device *cdev`` device to obtain the MIF-image ID for h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjbh]hstruct ccw_device *cdev}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj`ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj\ubjZ)}(hhh]h)}(h%device to obtain the MIF-image ID forh]h%device to obtain the MIF-image ID for}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhMhjxubah}(h]h ]h"]h$]h&]uh1jYhj\ubeh}(h]h ]h"]h$]h&]uh1j7hjwhMhjYubj8)}(h&``u8 *iid`` The resulting MIF-image IDh](j>)}(h ``u8 *iid``h]jD)}(hjh]hu8 *iid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjubjZ)}(hhh]h)}(hThe resulting MIF-image IDh]hThe resulting MIF-image ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMhjYubeh}(h]h ]h"]h$]h&]uh1j2hj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP!ccw_device_get_chpid (C function)c.ccw_device_get_chpidhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hJint ccw_device_get_chpid (struct ccw_device *cdev, int chp_idx, u8 *chpid)h]j`)}(hIint ccw_device_get_chpid(struct ccw_device *cdev, int chp_idx, u8 *chpid)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(hccw_device_get_chpidh]j)}(hccw_device_get_chpidh]hccw_device_get_chpid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubjX)}(h1(struct ccw_device *cdev, int chp_idx, u8 *chpid)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj2hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj.ubjx)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj.ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j)}jjsbc.ccw_device_get_chpidasbuh1hhj.ubjx)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj.ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hcdevh]hcdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj*ubj^)}(h int chp_idxh](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hchp_idxh]hchp_idx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj*ubj^)}(h u8 *chpidh](h)}(hhh]j)}(hu8h]hu8}(hj܀hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjـubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjހmodnameN classnameNjj)}j]jlc.ccw_device_get_chpidasbuh1hhjՀubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjՀubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjՀubj)}(hchpidh]hchpid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjՀubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj*ubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMhjhhubj)}(hhh]h)}(hobtain Channel Path IDh]hobtain Channel Path ID}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hj<hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` device to obtain the Channel Path ID for ``int chp_idx`` Index of the channel path ``u8 *chpid`` The resulting Channel Path IDh](h)}(h**Parameters**h]j)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hj[ubj3)}(hhh](j8)}(hE``struct ccw_device *cdev`` device to obtain the Channel Path ID for h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjh]hstruct ccw_device *cdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj~ubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjzubjZ)}(hhh]h)}(h(device to obtain the Channel Path ID forh]h(device to obtain the Channel Path ID for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jYhjzubeh}(h]h ]h"]h$]h&]uh1j7hjhM hjwubj8)}(h*``int chp_idx`` Index of the channel path h](j>)}(h``int chp_idx``h]jD)}(hjh]h int chp_idx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjubjZ)}(hhh]h)}(hIndex of the channel pathh]hIndex of the channel path}(hjҁhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj΁hM hjρubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj΁hM hjwubj8)}(h+``u8 *chpid`` The resulting Channel Path IDh](j>)}(h ``u8 *chpid``h]jD)}(hjh]h u8 *chpid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjubjZ)}(hhh]h)}(hThe resulting Channel Path IDh]hThe resulting Channel Path ID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhM hjwubeh}(h]h ]h"]h$]h&]uh1j2hj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccw_device_get_chid (C function)c.ccw_device_get_chidhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hIint ccw_device_get_chid (struct ccw_device *cdev, int chp_idx, u16 *chid)h]j`)}(hHint ccw_device_get_chid(struct ccw_device *cdev, int chp_idx, u16 *chid)h](j )}(hinth]hint}(hjLhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjHhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM$ubjx)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjHhhhjZhM$ubj)}(hccw_device_get_chidh]j)}(hccw_device_get_chidh]hccw_device_get_chid}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ](jjeh"]h$]h&]jjuh1jhjHhhhjZhM$ubjX)}(h1(struct ccw_device *cdev, int chp_idx, u16 *chid)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjosbc.ccw_device_get_chidasbuh1hhjubjx)}(h h]h }(hjǂhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hjՂhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdevh]hcdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubj^)}(h int chp_idxh](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hchp_idxh]hchp_idx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubj^)}(h u16 *chidh](h)}(hhh]j)}(hu16h]hu16}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]jÂc.ccw_device_get_chidasbuh1hhj,ubjx)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,ubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hchidh]hchid}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubeh}(h]h ]h"]h$]h&]jjuh1jWhjHhhhjZhM$ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjDhhhjZhM$ubah}(h]j?ah ](jjeh"]h$]h&]jj)jhuh1jYhjZhM$hjAhhubj)}(hhh]h)}(h1obtain Channel ID associated with specified CHPIDh]h1obtain Channel ID associated with specified CHPID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjAhhhjZhM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` device to obtain the Channel ID for ``int chp_idx`` Index of the channel path ``u16 *chid`` The resulting Channel IDh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM#hjubj3)}(hhh](j8)}(h@``struct ccw_device *cdev`` device to obtain the Channel ID for h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj׃h]hstruct ccw_device *cdev}(hjكhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjՃubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjуubjZ)}(hhh]h)}(h#device to obtain the Channel ID forh]h#device to obtain the Channel ID for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jYhjуubeh}(h]h ]h"]h$]h&]uh1j7hjhM hj΃ubj8)}(h*``int chp_idx`` Index of the channel path h](j>)}(h``int chp_idx``h]jD)}(hjh]h int chp_idx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM!hj ubjZ)}(hhh]h)}(hIndex of the channel pathh]hIndex of the channel path}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hM!hj&ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj%hM!hj΃ubj8)}(h&``u16 *chid`` The resulting Channel IDh](j>)}(h ``u16 *chid``h]jD)}(hjIh]h u16 *chid}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjGubah}(h]h ]h"]h$]h&]uh1j=he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM#hjCubjZ)}(hhh]h)}(hThe resulting Channel IDh]hThe resulting Channel ID}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM"hj_ubah}(h]h ]h"]h$]h&]uh1jYhjCubeh}(h]h ]h"]h$]h&]uh1j7hj^hM#hj΃ubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] ccw-devicesah ]h"] ccw devicesah$]h&]uh1hhjhhhhhKGubh)}(hhh](h)}(h The channel-measurement facilityh]h The channel-measurement facility}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK[ubh)}(hThe channel-measurement facility provides a means to collect measurement data which is made available by the channel subsystem for each channel attached device.h]hThe channel-measurement facility provides a means to collect measurement data which is made available by the channel subsystem for each channel attached device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjhhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPcmbdata (C struct) c.cmbdatahNtauh1jChjhhhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhNubjU)}(hhh](jZ)}(hcmbdatah]j`)}(hstruct cmbdatah](jf)}(hjih]hstruct}(hj˄hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjDŽhhhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKubjx)}(h h]h }(hjلhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjDŽhhhj؄hKubj)}(hcmbdatah]j)}(hjńh]hcmbdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjDŽhhhj؄hKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjÄhhhj؄hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhj؄hKhjhhubj)}(hhh]h)}(h-channel measurement block data for user spaceh]h-channel measurement block data for user space}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj؄hKubeh}(h]h ](jstructeh"]h$]h&]jjjj%jj%jjjuh1jThhhjhjhNubj)}(hX**Definition**:: struct cmbdata { __u64 size; __u64 elapsed_time; __u64 ssch_rsch_count; __u64 sample_count; __u64 device_connect_time; __u64 function_pending_time; __u64 device_disconnect_time; __u64 control_unit_queuing_time; __u64 device_active_only_time; __u64 device_busy_time; __u64 initial_command_response_time; }; **Members** ``size`` size of the stored data ``elapsed_time`` time since last sampling ``ssch_rsch_count`` number of ssch and rsch ``sample_count`` number of samples ``device_connect_time`` time of device connect ``function_pending_time`` time of function pending ``device_disconnect_time`` time of device disconnect ``control_unit_queuing_time`` time of control unit queuing ``device_active_only_time`` time of device active only ``device_busy_time`` time of device busy (ext. format) ``initial_command_response_time`` initial command response time (ext. format)h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh:}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhK hj)ubj )}(hX]struct cmbdata { __u64 size; __u64 elapsed_time; __u64 ssch_rsch_count; __u64 sample_count; __u64 device_connect_time; __u64 function_pending_time; __u64 device_disconnect_time; __u64 control_unit_queuing_time; __u64 device_active_only_time; __u64 device_busy_time; __u64 initial_command_response_time; };h]hX]struct cmbdata { __u64 size; __u64 elapsed_time; __u64 ssch_rsch_count; __u64 sample_count; __u64 device_connect_time; __u64 function_pending_time; __u64 device_disconnect_time; __u64 control_unit_queuing_time; __u64 device_active_only_time; __u64 device_busy_time; __u64 initial_command_response_time; };}hjJsbah}(h]h ]h"]h$]h&]jjuh1j hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhj)ubh)}(h **Members**h]j)}(hj[h]hMembers}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhj)ubj3)}(hhh](j8)}(h!``size`` size of the stored data h](j>)}(h``size``h]jD)}(hjzh]hsize}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjxubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhK hjtubjZ)}(hhh]h)}(hsize of the stored datah]hsize of the stored data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jYhjtubeh}(h]h ]h"]h$]h&]uh1j7hjhK hjqubj8)}(h*``elapsed_time`` time since last sampling h](j>)}(h``elapsed_time``h]jD)}(hjh]h elapsed_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhK hjubjZ)}(hhh]h)}(htime since last samplingh]htime since last sampling}(hj̅hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjȅhK hjɅubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjȅhK hjqubj8)}(h,``ssch_rsch_count`` number of ssch and rsch h](j>)}(h``ssch_rsch_count``h]jD)}(hjh]hssch_rsch_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhK hjubjZ)}(hhh]h)}(hnumber of ssch and rschh]hnumber of ssch and rsch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK hjqubj8)}(h#``sample_count`` number of samples h](j>)}(h``sample_count``h]jD)}(hj%h]h sample_count}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj#ubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhK hjubjZ)}(hhh]h)}(hnumber of samplesh]hnumber of samples}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hK hj;ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj:hK hjqubj8)}(h/``device_connect_time`` time of device connect h](j>)}(h``device_connect_time``h]jD)}(hj^h]hdevice_connect_time}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj\ubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjXubjZ)}(hhh]h)}(htime of device connecth]htime of device connect}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKhjtubah}(h]h ]h"]h$]h&]uh1jYhjXubeh}(h]h ]h"]h$]h&]uh1j7hjshKhjqubj8)}(h3``function_pending_time`` time of function pending h](j>)}(h``function_pending_time``h]jD)}(hjh]hfunction_pending_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjubjZ)}(hhh]h)}(htime of function pendingh]htime of function pending}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjqubj8)}(h5``device_disconnect_time`` time of device disconnect h](j>)}(h``device_disconnect_time``h]jD)}(hjІh]hdevice_disconnect_time}(hj҆hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjΆubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjʆubjZ)}(hhh]h)}(htime of device disconnecth]htime of device disconnect}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjʆubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjqubj8)}(h;``control_unit_queuing_time`` time of control unit queuing h](j>)}(h``control_unit_queuing_time``h]jD)}(hj h]hcontrol_unit_queuing_time}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjubjZ)}(hhh]h)}(htime of control unit queuingh]htime of control unit queuing}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjqubj8)}(h7``device_active_only_time`` time of device active only h](j>)}(h``device_active_only_time``h]jD)}(hjBh]hdevice_active_only_time}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj@ubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhj<ubjZ)}(hhh]h)}(htime of device active onlyh]htime of device active only}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhKhjXubah}(h]h ]h"]h$]h&]uh1jYhj<ubeh}(h]h ]h"]h$]h&]uh1j7hjWhKhjqubj8)}(h7``device_busy_time`` time of device busy (ext. format) h](j>)}(h``device_busy_time``h]jD)}(hj{h]hdevice_busy_time}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjyubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjuubjZ)}(hhh]h)}(h!time of device busy (ext. format)h]h!time of device busy (ext. format)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjuubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjqubj8)}(hM``initial_command_response_time`` initial command response time (ext. format)h](j>)}(h!``initial_command_response_time``h]jD)}(hjh]hinitial_command_response_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjubjZ)}(hhh]h)}(h+initial command response time (ext. format)h]h+initial command response time (ext. format)}(hj͇hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjʇubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjɇhKhjqubeh}(h]h ]h"]h$]h&]uh1j2hj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjhNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjhhubh)}(hXAll values are stored as 64 bit for simplicity, especially in 32 bit emulation mode. All time values are normalized to nanoseconds. Currently, two formats are known, which differ by the size of this structure, i.e. the last two members are only set when the extended channel measurement facility (first shipped in z990 machines) is activated. Potentially, more fields could be added, which would result in a new ioctl number.h]hXAll values are stored as 64 bit for simplicity, especially in 32 bit emulation mode. All time values are normalized to nanoseconds. Currently, two formats are known, which differ by the size of this structure, i.e. the last two members are only set when the extended channel measurement facility (first shipped in z990 machines) is activated. Potentially, more fields could be added, which would result in a new ioctl number.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjhhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPenable_cmf (C function) c.enable_cmfhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h(int enable_cmf (struct ccw_device *cdev)h]j`)}(h'int enable_cmf(struct ccw_device *cdev)h](j )}(hinth]hint}(hj5hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj1hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMcubjx)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj1hhhjChMcubj)}(h enable_cmfh]j)}(h enable_cmfh]h enable_cmf}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1hhhjChMcubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjrhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjnubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjnubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjXsb c.enable_cmfasbuh1hhjnubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(hcdevh]hcdev}(hjˈhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjjubah}(h]h ]h"]h$]h&]jjuh1jWhj1hhhjChMcubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj-hhhjChMcubah}(h]j(ah ](jjeh"]h$]h&]jj)jhuh1jYhjChMchj*hhubj)}(hhh]h)}(h7switch on the channel measurement for a specific deviceh]h7switch on the channel measurement for a specific device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMYhjhhubah}(h]h ]h"]h$]h&]uh1jhj*hhhjChMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jThhhjhNhNubj)}(hXK**Parameters** ``struct ccw_device *cdev`` The ccw device to be enabled Enable channel measurements for **cdev**. If this is called on a device for which channel measurement is already enabled a reset of the measurement data is triggered. **Return** ``0`` for success or a negative error value. **Context** non-atomich](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM]hjubj3)}(hhh]j8)}(h``struct ccw_device *cdev`` The ccw device to be enabled Enable channel measurements for **cdev**. If this is called on a device for which channel measurement is already enabled a reset of the measurement data is triggered. h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj6h]hstruct ccw_device *cdev}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj4ubah}(h]h ]h"]h$]h&]uh1j=h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM^hj0ubjZ)}(hhh](h)}(hThe ccw device to be enabledh]hThe ccw device to be enabled}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMZhjLubh)}(hEnable channel measurements for **cdev**. If this is called on a device for which channel measurement is already enabled a reset of the measurement data is triggered.h](h Enable channel measurements for }(hj^hhhNhNubj)}(h**cdev**h]hcdev}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh~. If this is called on a device for which channel measurement is already enabled a reset of the measurement data is triggered.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM\hjLubeh}(h]h ]h"]h$]h&]uh1jYhj0ubeh}(h]h ]h"]h$]h&]uh1j7hjKhM^hj-ubah}(h]h ]h"]h$]h&]uh1j2hjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM`hjubh)}(h,``0`` for success or a negative error value.h](jD)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubh' for success or a negative error value.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM_hjubh)}(h **Context**h]j)}(hjȉh]hContext}(hjʉhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjƉubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMahjubh)}(h non-atomich]h non-atomic}(hjމhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM`hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPdisable_cmf (C function) c.disable_cmfhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h)int disable_cmf (struct ccw_device *cdev)h]j`)}(h(int disable_cmf(struct ccw_device *cdev)h](j )}(hinth]hint}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj hhhjhMubj)}(h disable_cmfh]j)}(h disable_cmfh]h disable_cmf}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhjhMubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjJhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjFubjx)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jj0sb c.disable_cmfasbuh1hhjFubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj)}(hcdevh]hcdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjBubah}(h]h ]h"]h$]h&]jjuh1jWhj hhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMhjhhubj)}(hhh]h)}(h8switch off the channel measurement for a specific deviceh]h8switch off the channel measurement for a specific device}(hj͊hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjʊhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` The ccw device to be disabled **Return** ``0`` for success or a negative error value. **Context** non-atomich](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubj3)}(hhh]j8)}(h:``struct ccw_device *cdev`` The ccw device to be disabled h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjh]hstruct ccw_device *cdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubjZ)}(hhh]h)}(hThe ccw device to be disabledh]hThe ccw device to be disabled}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj$ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj#hMhjubah}(h]h ]h"]h$]h&]uh1j2hjubh)}(h **Return**h]j)}(hjIh]hReturn}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubh)}(h,``0`` for success or a negative error value.h](jD)}(h``0``h]h0}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jChj_ubh' for success or a negative error value.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubh)}(h **Context**h]j)}(hj~h]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubh)}(h non-atomich]h non-atomic}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPcmf_read (C function) c.cmf_readhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h1u64 cmf_read (struct ccw_device *cdev, int index)h]j`)}(h0u64 cmf_read(struct ccw_device *cdev, int index)h](h)}(hhh]j)}(hu64h]hu64}(hjƋhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjËubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjȋmodnameN classnameNjj)}j]j)}jcmf_readsb c.cmf_readasbuh1hhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(hcmf_readh]j)}(hjh]hcmf_read}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubjX)}(h$(struct ccw_device *cdev, int index)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j c.cmf_readasbuh1hhjubjx)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdevh]hcdev}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj ubj^)}(h int indexh](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hindexh]hindex}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj ubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMhjhhubj)}(hhh]h)}(h9read one value from the current channel measurement blockh]h9read one value from the current channel measurement block}(hjˌhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjȌhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` the channel to be read ``int index`` the index of the value to be read **Return** The value read or ``0`` if the value cannot be read. **Context** anyh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubj3)}(hhh](j8)}(h3``struct ccw_device *cdev`` the channel to be read h](j>)}(h``struct ccw_device *cdev``h]jD)}(hj h]hstruct ccw_device *cdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubjZ)}(hhh]h)}(hthe channel to be readh]hthe channel to be read}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hMhj"ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj!hMhjubj8)}(h0``int index`` the index of the value to be read h](j>)}(h ``int index``h]jD)}(hjEh]h int index}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjCubah}(h]h ]h"]h$]h&]uh1j=h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhj?ubjZ)}(hhh]h)}(h!the index of the value to be readh]h!the index of the value to be read}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhj[ubah}(h]h ]h"]h$]h&]uh1jYhj?ubeh}(h]h ]h"]h$]h&]uh1j7hjZhMhjubeh}(h]h ]h"]h$]h&]uh1j2hjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubh)}(h4The value read or ``0`` if the value cannot be read.h](hThe value read or }(hjhhhNhNubjD)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubh if the value cannot be read.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubh)}(h **Context**h]j)}(hjh]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubh)}(hanyh]hany}(hjύhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPcmf_readall (C function) c.cmf_readallhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h?int cmf_readall (struct ccw_device *cdev, struct cmbdata *data)h]j`)}(h>int cmf_readall(struct ccw_device *cdev, struct cmbdata *data)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMubjx)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhj hMubj)}(h cmf_readallh]j)}(h cmf_readallh]h cmf_readall}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj hMubjX)}(h/(struct ccw_device *cdev, struct cmbdata *data)h](j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj;hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj7ubjx)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj7ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sb c.cmf_readallasbuh1hhj7ubjx)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hcdevh]hcdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj3ubj^)}(hstruct cmbdata *datah](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hcmbdatah]hcmbdata}(hjˎhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjȎubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj͎modnameN classnameNjj)}j]ju c.cmf_readallasbuh1hhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj3ubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhj hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhj hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhj hMhjhhubj)}(hhh]h)}(h*read the current channel measurement blockh]h*read the current channel measurement block}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhj+hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` the channel to be read ``struct cmbdata *data`` a pointer to a data block that will be filled **Return** ``0`` on success, a negative error value otherwise. **Context** anyh](h)}(h**Parameters**h]j)}(hjPh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjJubj3)}(hhh](j8)}(h3``struct ccw_device *cdev`` the channel to be read h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjoh]hstruct ccw_device *cdev}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjmubah}(h]h ]h"]h$]h&]uh1j=h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjiubjZ)}(hhh]h)}(hthe channel to be readh]hthe channel to be read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jYhjiubeh}(h]h ]h"]h$]h&]uh1j7hjhMhjfubj8)}(hG``struct cmbdata *data`` a pointer to a data block that will be filled h](j>)}(h``struct cmbdata *data``h]jD)}(hjh]hstruct cmbdata *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubjZ)}(hhh]h)}(h-a pointer to a data block that will be filledh]h-a pointer to a data block that will be filled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMhjfubeh}(h]h ]h"]h$]h&]uh1j2hjJubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjJubh)}(h3``0`` on success, a negative error value otherwise.h](jD)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubh. on success, a negative error value otherwise.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjJubh)}(h **Context**h]j)}(hjh]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjJubh)}(hanyh]hany}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] the-channel-measurement-facilityah ]h"] the channel-measurement facilityah$]h&]uh1hhjhhhhhK[ubeh}(h] the-ccw-busah ]h"] the ccw busah$]h&]uh1hhhhhhhhK0ubh)}(hhh](h)}(hThe ccwgroup bush]hThe ccwgroup bus}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThhhhhKhubh)}(hX_The ccwgroup bus only contains artificial devices, created by the user. Many networking devices (e.g. qeth) are in fact composed of several ccw devices (like read, write and data channel for qeth). The ccwgroup bus provides a mechanism to create a meta-device which contains those ccw devices as slave devices and can be associated with the netdevice.h]hX_The ccwgroup bus only contains artificial devices, created by the user. Many networking devices (e.g. qeth) are in fact composed of several ccw devices (like read, write and data channel for qeth). The ccwgroup bus provides a mechanism to create a meta-device which contains those ccw devices as slave devices and can be associated with the netdevice.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjThhubh)}(hhh](h)}(hccw group devicesh]hccw group devices}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshhhhhKqubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccwgroup_device (C struct)c.ccwgroup_devicehNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(hccwgroup_deviceh]j`)}(hstruct ccwgroup_deviceh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hccwgroup_deviceh]j)}(hjh]hccwgroup_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(hccw group deviceh]hccw group device}(hjߐhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjܐhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhjshNhNubj)}(hX**Definition**:: struct ccwgroup_device { enum { CCWGROUP_OFFLINE, CCWGROUP_ONLINE, } state; unsigned int count; struct device dev; struct work_struct ungroup_work; struct ccw_device *cdev[]; }; **Members** ``state`` online/offline state ``count`` number of attached slave devices ``dev`` embedded device structure ``ungroup_work`` used to ungroup the ccwgroup device ``cdev`` variable number of slave devices, allocated as neededh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjubj )}(hstruct ccwgroup_device { enum { CCWGROUP_OFFLINE, CCWGROUP_ONLINE, } state; unsigned int count; struct device dev; struct work_struct ungroup_work; struct ccw_device *cdev[]; };h]hstruct ccwgroup_device { enum { CCWGROUP_OFFLINE, CCWGROUP_ONLINE, } state; unsigned int count; struct device dev; struct work_struct ungroup_work; struct ccw_device *cdev[]; };}hjsbah}(h]h ]h"]h$]h&]jjuh1j hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjubh)}(h **Members**h]j)}(hj-h]hMembers}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjubj3)}(hhh](j8)}(h``state`` online/offline state h](j>)}(h ``state``h]jD)}(hjLh]hstate}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjJubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjFubjZ)}(hhh]h)}(honline/offline stateh]honline/offline state}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahK hjbubah}(h]h ]h"]h$]h&]uh1jYhjFubeh}(h]h ]h"]h$]h&]uh1j7hjahK hjCubj8)}(h+``count`` number of attached slave devices h](j>)}(h ``count``h]jD)}(hjh]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjubjZ)}(hhh]h)}(h number of attached slave devicesh]h number of attached slave devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK hjCubj8)}(h"``dev`` embedded device structure h](j>)}(h``dev``h]jD)}(hjh]hdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjubjZ)}(hhh]h)}(hembedded device structureh]hembedded device structure}(hjבhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjӑhK hjԑubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjӑhK hjCubj8)}(h5``ungroup_work`` used to ungroup the ccwgroup device h](j>)}(h``ungroup_work``h]jD)}(hjh]h ungroup_work}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjubjZ)}(hhh]h)}(h#used to ungroup the ccwgroup deviceh]h#used to ungroup the ccwgroup device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj hKhjCubj8)}(h>``cdev`` variable number of slave devices, allocated as neededh](j>)}(h``cdev``h]jD)}(hj0h]hcdev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj.ubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hj*ubjZ)}(hhh]h)}(h5variable number of slave devices, allocated as neededh]h5variable number of slave devices, allocated as needed}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjFubah}(h]h ]h"]h$]h&]uh1jYhj*ubeh}(h]h ]h"]h$]h&]uh1j7hjEhK hjCubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccwgroup_driver (C struct)c.ccwgroup_driverhNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(hccwgroup_driverh]j`)}(hstruct ccwgroup_driverh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hccwgroup_driverh]j)}(hjh]hccwgroup_driver}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]j}ah ](jjeh"]h$]h&]jj)jhuh1jYhjhKhjhhubj)}(hhh]h)}(hdriver for ccw group devicesh]hdriver for ccw group devices}(hj̒hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjɒhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jThhhjshNhNubj)}(hX**Definition**:: struct ccwgroup_driver { int (*setup) (struct ccwgroup_device *); void (*remove) (struct ccwgroup_device *); int (*set_online) (struct ccwgroup_device *); int (*set_offline) (struct ccwgroup_device *); void (*shutdown)(struct ccwgroup_device *); struct device_driver driver; struct ccw_driver *ccw_driver; }; **Members** ``setup`` function called during device creation to setup the device ``remove`` function called on remove ``set_online`` function called when device is set online ``set_offline`` function called when device is set offline ``shutdown`` function called when device is shut down ``driver`` embedded driver structure ``ccw_driver`` supported ccw_driver (optional)h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK$hjubj )}(hXPstruct ccwgroup_driver { int (*setup) (struct ccwgroup_device *); void (*remove) (struct ccwgroup_device *); int (*set_online) (struct ccwgroup_device *); int (*set_offline) (struct ccwgroup_device *); void (*shutdown)(struct ccwgroup_device *); struct device_driver driver; struct ccw_driver *ccw_driver; };h]hXPstruct ccwgroup_driver { int (*setup) (struct ccwgroup_device *); void (*remove) (struct ccwgroup_device *); int (*set_online) (struct ccwgroup_device *); int (*set_offline) (struct ccwgroup_device *); void (*shutdown)(struct ccwgroup_device *); struct device_driver driver; struct ccw_driver *ccw_driver; };}hj sbah}(h]h ]h"]h$]h&]jjuh1j hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK&hjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK0hjubj3)}(hhh](j8)}(hE``setup`` function called during device creation to setup the device h](j>)}(h ``setup``h]jD)}(hj9h]hsetup}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj7ubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK"hj3ubjZ)}(hhh]h)}(h:function called during device creation to setup the deviceh]h:function called during device creation to setup the device}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhK"hjOubah}(h]h ]h"]h$]h&]uh1jYhj3ubeh}(h]h ]h"]h$]h&]uh1j7hjNhK"hj0ubj8)}(h%``remove`` function called on remove h](j>)}(h ``remove``h]jD)}(hjrh]hremove}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jChjpubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK#hjlubjZ)}(hhh]h)}(hfunction called on removeh]hfunction called on remove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK#hjubah}(h]h ]h"]h$]h&]uh1jYhjlubeh}(h]h ]h"]h$]h&]uh1j7hjhK#hj0ubj8)}(h9``set_online`` function called when device is set online h](j>)}(h``set_online``h]jD)}(hjh]h set_online}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK$hjubjZ)}(hhh]h)}(h)function called when device is set onlineh]h)function called when device is set online}(hjēhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK$hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK$hj0ubj8)}(h;``set_offline`` function called when device is set offline h](j>)}(h``set_offline``h]jD)}(hjh]h set_offline}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK%hjޓubjZ)}(hhh]h)}(h*function called when device is set offlineh]h*function called when device is set offline}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK%hjubah}(h]h ]h"]h$]h&]uh1jYhjޓubeh}(h]h ]h"]h$]h&]uh1j7hjhK%hj0ubj8)}(h6``shutdown`` function called when device is shut down h](j>)}(h ``shutdown``h]jD)}(hjh]hshutdown}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK&hjubjZ)}(hhh]h)}(h(function called when device is shut downh]h(function called when device is shut down}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hK&hj3ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj2hK&hj0ubj8)}(h%``driver`` embedded driver structure h](j>)}(h ``driver``h]jD)}(hjVh]hdriver}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjTubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK'hjPubjZ)}(hhh]h)}(hembedded driver structureh]hembedded driver structure}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhK'hjlubah}(h]h ]h"]h$]h&]uh1jYhjPubeh}(h]h ]h"]h$]h&]uh1j7hjkhK'hj0ubj8)}(h.``ccw_driver`` supported ccw_driver (optional)h](j>)}(h``ccw_driver``h]jD)}(hjh]h ccw_driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK'hjubjZ)}(hhh]h)}(hsupported ccw_driver (optional)h]hsupported ccw_driver (optional)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK(hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK'hj0ubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccwgroup_set_online (C function)c.ccwgroup_set_onlinehNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(h6int ccwgroup_set_online (struct ccwgroup_device *gdev)h]j`)}(h5int ccwgroup_set_online(struct ccwgroup_device *gdev)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK8ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhK8ubj)}(hccwgroup_set_onlineh]j)}(hccwgroup_set_onlineh]hccwgroup_set_online}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK8ubjX)}(h(struct ccwgroup_device *gdev)h]j^)}(hstruct ccwgroup_device *gdevh](jf)}(hjih]hstruct}(hj&hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj"ubjx)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"ubh)}(hhh]j)}(hccwgroup_deviceh]hccwgroup_device}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jj sbc.ccwgroup_set_onlineasbuh1hhj"ubjx)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"ubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hgdevh]hgdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubah}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhK8ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhK8ubah}(h]jܔah ](jjeh"]h$]h&]jj)jhuh1jYhjhK8hjޔhhubj)}(hhh]h)}(henable a ccwgroup deviceh]henable a ccwgroup device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK1hjhhubah}(h]h ]h"]h$]h&]uh1jhjޔhhhjhK8ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjshNhNubj)}(h**Parameters** ``struct ccwgroup_device *gdev`` target ccwgroup device **Description** This function attempts to put the ccwgroup device into the online state. **Return** ``0`` on success and a negative error value on failure.h](h)}(h**Parameters**h]j)}(hj˕h]h Parameters}(hj͕hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɕubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK5hjŕubj3)}(hhh]j8)}(h8``struct ccwgroup_device *gdev`` target ccwgroup device h](j>)}(h ``struct ccwgroup_device *gdev``h]jD)}(hjh]hstruct ccwgroup_device *gdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK2hjubjZ)}(hhh]h)}(htarget ccwgroup deviceh]htarget ccwgroup device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK2hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhK2hjubah}(h]h ]h"]h$]h&]uh1j2hjŕubh)}(h**Description**h]j)}(hj%h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK4hjŕubh)}(hHThis function attempts to put the ccwgroup device into the online state.h]hHThis function attempts to put the ccwgroup device into the online state.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK4hjŕubh)}(h **Return**h]j)}(hjLh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK6hjŕubj-)}(h7``0`` on success and a negative error value on failure.h]h)}(hjdh](jD)}(h``0``h]h0}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jChjfubh2 on success and a negative error value on failure.}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK5hjbubah}(h]h ]h"]h$]h&]uh1j,hjhK5hjŕubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP!ccwgroup_set_offline (C function)c.ccwgroup_set_offlinehNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(hGint ccwgroup_set_offline (struct ccwgroup_device *gdev, bool call_gdrv)h]j`)}(hFint ccwgroup_set_offline(struct ccwgroup_device *gdev, bool call_gdrv)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKVubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKVubj)}(hccwgroup_set_offlineh]j)}(hccwgroup_set_offlineh]hccwgroup_set_offline}(hjɖhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjŖubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKVubjX)}(h.(struct ccwgroup_device *gdev, bool call_gdrv)h](j^)}(hstruct ccwgroup_device *gdevh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hccwgroup_deviceh]hccwgroup_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj˖sbc.ccwgroup_set_offlineasbuh1hhjubjx)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hgdevh]hgdev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjݖubj^)}(hbool call_gdrvh](j )}(hboolh]hbool}(hjWhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjSubjx)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjSubj)}(h call_gdrvh]h call_gdrv}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjݖubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhKVubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKVubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhKVhjhhubj)}(hhh]h)}(hdisable a ccwgroup deviceh]hdisable a ccwgroup device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKNhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKVubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjshNhNubj)}(hX/**Parameters** ``struct ccwgroup_device *gdev`` target ccwgroup device ``bool call_gdrv`` Call the registered gdrv set_offline function **Description** This function attempts to put the ccwgroup device into the offline state. **Return** ``0`` on success and a negative error value on failure.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKRhjubj3)}(hhh](j8)}(h8``struct ccwgroup_device *gdev`` target ccwgroup device h](j>)}(h ``struct ccwgroup_device *gdev``h]jD)}(hjޗh]hstruct ccwgroup_device *gdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjܗubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKOhjؗubjZ)}(hhh]h)}(htarget ccwgroup deviceh]htarget ccwgroup device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKOhjubah}(h]h ]h"]h$]h&]uh1jYhjؗubeh}(h]h ]h"]h$]h&]uh1j7hjhKOhj՗ubj8)}(hA``bool call_gdrv`` Call the registered gdrv set_offline function h](j>)}(h``bool call_gdrv``h]jD)}(hjh]hbool call_gdrv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKPhjubjZ)}(hhh]h)}(h-Call the registered gdrv set_offline functionh]h-Call the registered gdrv set_offline function}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hKPhj-ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj,hKPhj՗ubeh}(h]h ]h"]h$]h&]uh1j2hjubh)}(h**Description**h]j)}(hjRh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKRhjubh)}(hIThis function attempts to put the ccwgroup device into the offline state.h]hIThis function attempts to put the ccwgroup device into the offline state.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKRhjubh)}(h **Return**h]j)}(hjyh]hReturn}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKThjubj-)}(h7``0`` on success and a negative error value on failure.h]h)}(hjh](jD)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubh2 on success and a negative error value on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKShjubah}(h]h ]h"]h$]h&]uh1j,hjhKShjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccwgroup_create_dev (C function)c.ccwgroup_create_devhNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(hoint ccwgroup_create_dev (struct device *parent, struct ccwgroup_driver *gdrv, int num_devices, const char *buf)h]j`)}(hnint ccwgroup_create_dev(struct device *parent, struct ccwgroup_driver *gdrv, int num_devices, const char *buf)h](j )}(hinth]hint}(hj՘hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjјhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM9ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjјhhhjhM9ubj)}(hccwgroup_create_devh]j)}(hccwgroup_create_devh]hccwgroup_create_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjјhhhjhM9ubjX)}(hW(struct device *parent, struct ccwgroup_driver *gdrv, int num_devices, const char *buf)h](j^)}(hstruct device *parenth](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hdeviceh]hdevice}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjsbc.ccwgroup_create_devasbuh1hhjubjx)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hparenth]hparent}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj ubj^)}(hstruct ccwgroup_driver *gdrvh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hccwgroup_driverh]hccwgroup_driver}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jLc.ccwgroup_create_devasbuh1hhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hjΙhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hgdrvh]hgdrv}(hjۙhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj ubj^)}(hint num_devicesh](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(h num_devicesh]h num_devices}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj ubj^)}(hconst char *bufh](jf)}(hj,h]hconst}(hj)hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj%ubjx)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj%ubj )}(hcharh]hchar}(hjDhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj%ubjx)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj%ubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hbufh]hbuf}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hj ubeh}(h]h ]h"]h$]h&]jjuh1jWhjјhhhjhM9ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj͘hhhjhM9ubah}(h]jȘah ](jjeh"]h$]h&]jj)jhuh1jYhjhM9hjʘhhubj)}(hhh]h)}(h&create and register a ccw group deviceh]h&create and register a ccw group device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM,hjhhubah}(h]h ]h"]h$]h&]uh1jhjʘhhhjhM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjshNhNubj)}(hX**Parameters** ``struct device *parent`` parent device for the new device ``struct ccwgroup_driver *gdrv`` driver for the new group device ``int num_devices`` number of slave devices ``const char *buf`` buffer containing comma separated bus ids of slave devices **Description** Create and register a new ccw group device as a child of **parent**. Slave devices are obtained from the list of bus ids given in **buf**. **Return** ``0`` on success and an error code on failure. **Context** non-atomich](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM0hjubj3)}(hhh](j8)}(h;``struct device *parent`` parent device for the new device h](j>)}(h``struct device *parent``h]jD)}(hjؚh]hstruct device *parent}(hjښhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj֚ubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM-hjҚubjZ)}(hhh]h)}(h parent device for the new deviceh]h parent device for the new device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM-hjubah}(h]h ]h"]h$]h&]uh1jYhjҚubeh}(h]h ]h"]h$]h&]uh1j7hjhM-hjϚubj8)}(hA``struct ccwgroup_driver *gdrv`` driver for the new group device h](j>)}(h ``struct ccwgroup_driver *gdrv``h]jD)}(hjh]hstruct ccwgroup_driver *gdrv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM.hj ubjZ)}(hhh]h)}(hdriver for the new group deviceh]hdriver for the new group device}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hM.hj'ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj&hM.hjϚubj8)}(h,``int num_devices`` number of slave devices h](j>)}(h``int num_devices``h]jD)}(hjJh]hint num_devices}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjHubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM/hjDubjZ)}(hhh]h)}(hnumber of slave devicesh]hnumber of slave devices}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hM/hj`ubah}(h]h ]h"]h$]h&]uh1jYhjDubeh}(h]h ]h"]h$]h&]uh1j7hj_hM/hjϚubj8)}(hO``const char *buf`` buffer containing comma separated bus ids of slave devices h](j>)}(h``const char *buf``h]jD)}(hjh]hconst char *buf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM0hj}ubjZ)}(hhh]h)}(h:buffer containing comma separated bus ids of slave devicesh]h:buffer containing comma separated bus ids of slave devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM0hjubah}(h]h ]h"]h$]h&]uh1jYhj}ubeh}(h]h ]h"]h$]h&]uh1j7hjhM0hjϚubeh}(h]h ]h"]h$]h&]uh1j2hjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM2hjubh)}(hCreate and register a new ccw group device as a child of **parent**. Slave devices are obtained from the list of bus ids given in **buf**.h](h9Create and register a new ccw group device as a child of }(hjԛhhhNhNubj)}(h **parent**h]hparent}(hjܛhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjԛubh?. Slave devices are obtained from the list of bus ids given in }(hjԛhhhNhNubj)}(h**buf**h]hbuf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjԛubh.}(hjԛhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM2hjubh)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM5hjubj-)}(h/``0`` on success and an error code on failure. h]h)}(h.``0`` on success and an error code on failure.h](jD)}(h``0``h]h0}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj#ubh) on success and an error code on failure.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM4hjubah}(h]h ]h"]h$]h&]uh1j,hj?hM4hjubh)}(h **Context**h]j)}(hjHh]hContext}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM6hjubh)}(h non-atomich]h non-atomic}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM6hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP%ccwgroup_driver_register (C function)c.ccwgroup_driver_registerhNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(h>int ccwgroup_driver_register (struct ccwgroup_driver *cdriver)h]j`)}(h=int ccwgroup_driver_register(struct ccwgroup_driver *cdriver)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(hccwgroup_driver_registerh]j)}(hccwgroup_driver_registerh]hccwgroup_driver_register}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubjX)}(h!(struct ccwgroup_driver *cdriver)h]j^)}(hstruct ccwgroup_driver *cdriverh](jf)}(hjih]hstruct}(hjʜhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjƜubjx)}(h h]h }(hjלhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjƜubh)}(hhh]j)}(hccwgroup_driverh]hccwgroup_driver}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.ccwgroup_driver_registerasbuh1hhjƜubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjƜubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjƜubj)}(hcdriverh]hcdriver}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjƜubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjœubah}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMhjhhubj)}(hhh]h)}(hregister a ccw group driverh]hregister a ccw group driver}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjJhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjejjejjjuh1jThhhjshNhNubj)}(h**Parameters** ``struct ccwgroup_driver *cdriver`` driver to be registered **Description** This function is mainly a wrapper around driver_register().h](h)}(h**Parameters**h]j)}(hjoh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjiubj3)}(hhh]j8)}(h<``struct ccwgroup_driver *cdriver`` driver to be registered h](j>)}(h#``struct ccwgroup_driver *cdriver``h]jD)}(hjh]hstruct ccwgroup_driver *cdriver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjubjZ)}(hhh]h)}(hdriver to be registeredh]hdriver to be registered}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMhjubah}(h]h ]h"]h$]h&]uh1j2hjiubh)}(h**Description**h]j)}(hjɝh]h Description}(hj˝hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjǝubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjiubh)}(h;This function is mainly a wrapper around driver_register().h]h;This function is mainly a wrapper around driver_register().}(hjߝhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjiubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP'ccwgroup_driver_unregister (C function)c.ccwgroup_driver_unregisterhNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(hAvoid ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver)h]j`)}(h@void ccwgroup_driver_unregister(struct ccwgroup_driver *cdriver)h](j )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj hhhjhMubj)}(hccwgroup_driver_unregisterh]j)}(hccwgroup_driver_unregisterh]hccwgroup_driver_unregister}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhjhMubjX)}(h!(struct ccwgroup_driver *cdriver)h]j^)}(hstruct ccwgroup_driver *cdriverh](jf)}(hjih]hstruct}(hjKhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjGubjx)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjGubh)}(hhh]j)}(hccwgroup_driverh]hccwgroup_driver}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj1sbc.ccwgroup_driver_unregisterasbuh1hhjGubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hcdriverh]hcdriver}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjCubah}(h]h ]h"]h$]h&]jjuh1jWhj hhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMhjhhubj)}(hhh]h)}(hderegister a ccw group driverh]hderegister a ccw group driver}(hjΞhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj˞hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjshNhNubj)}(h**Parameters** ``struct ccwgroup_driver *cdriver`` driver to be deregistered **Description** This function is mainly a wrapper around driver_unregister().h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjubj3)}(hhh]j8)}(h>``struct ccwgroup_driver *cdriver`` driver to be deregistered h](j>)}(h#``struct ccwgroup_driver *cdriver``h]jD)}(hjh]hstruct ccwgroup_driver *cdriver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj ubjZ)}(hhh]h)}(hdriver to be deregisteredh]hdriver to be deregistered}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hMhj%ubah}(h]h ]h"]h$]h&]uh1jYhj ubeh}(h]h ]h"]h$]h&]uh1j7hj$hMhjubah}(h]h ]h"]h$]h&]uh1j2hjubh)}(h**Description**h]j)}(hjJh]h Description}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjubh)}(h=This function is mainly a wrapper around driver_unregister().h]h=This function is mainly a wrapper around driver_unregister().}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP"ccwgroup_probe_ccwdev (C function)c.ccwgroup_probe_ccwdevhNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(h3int ccwgroup_probe_ccwdev (struct ccw_device *cdev)h]j`)}(h2int ccwgroup_probe_ccwdev(struct ccw_device *cdev)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(hccwgroup_probe_ccwdevh]j)}(hccwgroup_probe_ccwdevh]hccwgroup_probe_ccwdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hj̟hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjȟubjx)}(h h]h }(hjٟhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjȟubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.ccwgroup_probe_ccwdevasbuh1hhjȟubjx)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjȟubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjȟubj)}(hcdevh]hcdev}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjȟubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjğubah}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhMhjhhubj)}(hhh]h)}(h probe function for slave devicesh]h probe function for slave devices}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjLhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjjjuh1jThhhjshNhNubj)}(h**Parameters** ``struct ccw_device *cdev`` ccw device to be probed **Description** This is a dummy probe function for ccw devices that are slave devices in a ccw group device. **Return** always ``0``h](h)}(h**Parameters**h]j)}(hjqh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjkubj3)}(hhh]j8)}(h4``struct ccw_device *cdev`` ccw device to be probed h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjh]hstruct ccw_device *cdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjubjZ)}(hhh]h)}(hccw device to be probedh]hccw device to be probed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMhjubah}(h]h ]h"]h$]h&]uh1j2hjkubh)}(h**Description**h]j)}(hjˠh]h Description}(hj͠hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɠubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjkubh)}(h\This is a dummy probe function for ccw devices that are slave devices in a ccw group device.h]h\This is a dummy probe function for ccw devices that are slave devices in a ccw group device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjkubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjkubj-)}(h always ``0``h]h)}(hj h](halways }(hj hhhNhNubjD)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj ubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjubah}(h]h ]h"]h$]h&]uh1j,hj'hMhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP#ccwgroup_remove_ccwdev (C function)c.ccwgroup_remove_ccwdevhNtauh1jChjshhhNhNubjU)}(hhh](jZ)}(h5void ccwgroup_remove_ccwdev (struct ccw_device *cdev)h]j`)}(h4void ccwgroup_remove_ccwdev(struct ccw_device *cdev)h](j )}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjJhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMubjx)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjJhhhj\hMubj)}(hccwgroup_remove_ccwdevh]j)}(hccwgroup_remove_ccwdevh]hccwgroup_remove_ccwdev}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubah}(h]h ](jjeh"]h$]h&]jjuh1jhjJhhhj\hMubjX)}(h(struct ccw_device *cdev)h]j^)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjqsbc.ccwgroup_remove_ccwdevasbuh1hhjubjx)}(h h]h }(hjɡhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hjסhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdevh]hcdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubah}(h]h ]h"]h$]h&]jjuh1jWhjJhhhj\hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjFhhhj\hMubah}(h]jAah ](jjeh"]h$]h&]jj)jhuh1jYhj\hMhjChhubj)}(hhh]h)}(h!remove function for slave devicesh]h!remove function for slave devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM hj hhubah}(h]h ]h"]h$]h&]uh1jhjChhhj\hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1jThhhjshNhNubj)}(hX**Parameters** ``struct ccw_device *cdev`` ccw device to be removed **Description** This is a remove function for ccw devices that are slave devices in a ccw group device. It sets the ccw device offline and also deregisters the embedding ccw group device.h](h)}(h**Parameters**h]j)}(hj0h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj*ubj3)}(hhh]j8)}(h5``struct ccw_device *cdev`` ccw device to be removed h](j>)}(h``struct ccw_device *cdev``h]jD)}(hjOh]hstruct ccw_device *cdev}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjMubah}(h]h ]h"]h$]h&]uh1j=hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM hjIubjZ)}(hhh]h)}(hccw device to be removedh]hccw device to be removed}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhM hjeubah}(h]h ]h"]h$]h&]uh1jYhjIubeh}(h]h ]h"]h$]h&]uh1j7hjdhM hjFubah}(h]h ]h"]h$]h&]uh1j2hj*ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj*ubh)}(hThis is a remove function for ccw devices that are slave devices in a ccw group device. It sets the ccw device offline and also deregisters the embedding ccw group device.h]hThis is a remove function for ccw devices that are slave devices in a ccw group device. It sets the ccw device offline and also deregisters the embedding ccw group device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjshhhNhNubeh}(h]ccw-group-devicesah ]h"]ccw group devicesah$]h&]uh1hhjThhhhhKqubeh}(h]the-ccwgroup-busah ]h"]the ccwgroup busah$]h&]uh1hhhhhhhhKhubh)}(hhh](h)}(hGeneric interfacesh]hGeneric interfaces}(hjɢhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjƢhhhhhKzubh)}(hThe following section contains interfaces in use not only by drivers dealing with ccw devices, but drivers for various other s390 hardware as well.h]hThe following section contains interfaces in use not only by drivers dealing with ccw devices, but drivers for various other s390 hardware as well.}(hjעhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjƢhhubh)}(hhh](h)}(hAdapter interruptsh]hAdapter interrupts}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hiThe common I/O layer provides helper functions for dealing with adapter interrupts and interrupt vectors.h]hiThe common I/O layer provides helper functions for dealing with adapter interrupts and interrupt vectors.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP'register_adapter_interrupt (C function)c.register_adapter_interrupthNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h9int register_adapter_interrupt (struct airq_struct *airq)h]j`)}(h8int register_adapter_interrupt(struct airq_struct *airq)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK(ubjx)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhj+hK(ubj)}(hregister_adapter_interrupth]j)}(hregister_adapter_interrupth]hregister_adapter_interrupt}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj+hK(ubjX)}(h(struct airq_struct *airq)h]j^)}(hstruct airq_struct *airqh](jf)}(hjih]hstruct}(hjZhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjVubjx)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjVubh)}(hhh]j)}(h airq_structh]h airq_struct}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jj@sbc.register_adapter_interruptasbuh1hhjVubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj)}(hairqh]hairq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjRubah}(h]h ]h"]h$]h&]jjuh1jWhjhhhj+hK(ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhj+hK(ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhj+hK(hjhhubj)}(hhh]h)}(h"register adapter interrupt handlerh]h"register adapter interrupt handler}(hjݣhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK#hjڣhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj+hK(ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct airq_struct *airq`` pointer to adapter interrupt descriptor **Description** Returns 0 on success, or -EINVAL.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK'hjubj3)}(hhh]j8)}(hE``struct airq_struct *airq`` pointer to adapter interrupt descriptor h](j>)}(h``struct airq_struct *airq``h]jD)}(hjh]hstruct airq_struct *airq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK$hjubjZ)}(hhh]h)}(h'pointer to adapter interrupt descriptorh]h'pointer to adapter interrupt descriptor}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hK$hj4ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj3hK$hjubah}(h]h ]h"]h$]h&]uh1j2hjubh)}(h**Description**h]j)}(hjYh]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK&hjubh)}(h!Returns 0 on success, or -EINVAL.h]h!Returns 0 on success, or -EINVAL.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK&hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP)unregister_adapter_interrupt (C function)c.unregister_adapter_interrupthNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h)}(h``struct airq_struct *airq``h]jD)}(hjh]hstruct airq_struct *airq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKEhjubjZ)}(hhh]h)}(h'pointer to adapter interrupt descriptorh]h'pointer to adapter interrupt descriptor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK@hjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKEhjubah}(h]h ]h"]h$]h&]uh1j2hjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPairq_iv_create (C function)c.airq_iv_createhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h]struct airq_iv * airq_iv_create (unsigned long bits, unsigned long flags, unsigned long *vec)h]j`)}(h[struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags, unsigned long *vec)h](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK~ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhK~ubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jairq_iv_createsbc.airq_iv_createasbuh1hhjhhhjhK~ubjx)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhK~ubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK~ubj)}(hairq_iv_createh]j)}(hj6h]hairq_iv_create}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK~ubjX)}(h=(unsigned long bits, unsigned long flags, unsigned long *vec)h](j^)}(hunsigned long bitsh](j )}(hunsignedh]hunsigned}(hjshhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjoubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjoubj )}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjoubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjoubj)}(hbitsh]hbits}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjkubj^)}(hunsigned long flagsh](j )}(hunsignedh]hunsigned}(hjĦhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjҦhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj )}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjkubj^)}(hunsigned long *vech](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj )}(hlongh]hlong}(hj1hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hvech]hvec}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjkubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhK~ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhK~ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhK~hjhhubj)}(hhh]h)}(hcreate an interrupt vectorh]hcreate an interrupt vector}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKwhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(hX **Parameters** ``unsigned long bits`` number of bits in the interrupt vector ``unsigned long flags`` allocation flags ``unsigned long *vec`` pointer to pinned guest memory if AIRQ_IV_GUESTVEC **Description** Returns a pointer to an interrupt vector structureh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK{hjubj3)}(hhh](j8)}(h>``unsigned long bits`` number of bits in the interrupt vector h](j>)}(h``unsigned long bits``h]jD)}(hjŧh]hunsigned long bits}(hjǧhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjçubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKxhjubjZ)}(hhh]h)}(h&number of bits in the interrupt vectorh]h&number of bits in the interrupt vector}(hjާhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjڧhKxhjۧubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjڧhKxhjubj8)}(h)``unsigned long flags`` allocation flags h](j>)}(h``unsigned long flags``h]jD)}(hjh]hunsigned long flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKyhjubjZ)}(hhh]h)}(hallocation flagsh]hallocation flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKyhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhKyhjubj8)}(hJ``unsigned long *vec`` pointer to pinned guest memory if AIRQ_IV_GUESTVEC h](j>)}(h``unsigned long *vec``h]jD)}(hj7h]hunsigned long *vec}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jChj5ubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKzhj1ubjZ)}(hhh]h)}(h2pointer to pinned guest memory if AIRQ_IV_GUESTVECh]h2pointer to pinned guest memory if AIRQ_IV_GUESTVEC}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKzhjMubah}(h]h ]h"]h$]h&]uh1jYhj1ubeh}(h]h ]h"]h$]h&]uh1j7hjLhKzhjubeh}(h]h ]h"]h$]h&]uh1j2hjubh)}(h**Description**h]j)}(hjrh]h Description}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK|hjubh)}(h2Returns a pointer to an interrupt vector structureh]h2Returns a pointer to an interrupt vector structurem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK|hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPairq_iv_release (C function)c.airq_iv_releasehNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h)void airq_iv_release (struct airq_iv *iv)h]j`)}(h(void airq_iv_release(struct airq_iv *iv)h](j )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKubjx)}(h h]h }(hjƨhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjŨhKubj)}(hairq_iv_releaseh]j)}(hairq_iv_releaseh]hairq_iv_release}(hjبhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjԨubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjŨhKubjX)}(h(struct airq_iv *iv)h]j^)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjڨsbc.airq_iv_releaseasbuh1hhjubjx)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hivh]hiv}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubah}(h]h ]h"]h$]h&]jjuh1jWhjhhhjŨhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjŨhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjŨhKhjhhubj)}(hhh]h)}(hrelease an interrupt vectorh]hrelease an interrupt vector}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjthhubah}(h]h ]h"]h$]h&]uh1jhjhhhjŨhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(hN**Parameters** ``struct airq_iv *iv`` pointer to interrupt vector structureh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjubj3)}(hhh]j8)}(h<``struct airq_iv *iv`` pointer to interrupt vector structureh](j>)}(h``struct airq_iv *iv``h]jD)}(hjh]hstruct airq_iv *iv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjubjZ)}(hhh]h)}(h%pointer to interrupt vector structureh]h%pointer to interrupt vector structure}(hjѩhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjΩubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjͩhKhjubah}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPairq_iv_alloc (C function)c.airq_iv_allochNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hCunsigned long airq_iv_alloc (struct airq_iv *iv, unsigned long num)h]j`)}(hBunsigned long airq_iv_alloc(struct airq_iv *iv, unsigned long num)h](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKubjx)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhj hKubj )}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhj hKubjx)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhj hKubj)}(h airq_iv_alloch]j)}(h airq_iv_alloch]h airq_iv_alloc}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj hKubjX)}(h'(struct airq_iv *iv, unsigned long num)h](j^)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hjkhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjgubjx)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjgubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjQsbc.airq_iv_allocasbuh1hhjgubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(hivh]hiv}(hjĪhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjcubj^)}(hunsigned long numh](j )}(hunsignedh]hunsigned}(hjݪhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj٪ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj٪ubj )}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj٪ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj٪ubj)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj٪ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjcubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj hhhj hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhj hKhjhhubj)}(hhh]h)}(h*allocate irq bits from an interrupt vectorh]h*allocate irq bits from an interrupt vector}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhj<hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1jThhhjhNhNubj)}(hX?**Parameters** ``struct airq_iv *iv`` pointer to an interrupt vector structure ``unsigned long num`` number of consecutive irq bits to allocate **Description** Returns the bit number of the first irq in the allocated block of irqs, or -1UL if no bit is available or the AIRQ_IV_ALLOC flag has not been specifiedh](h)}(h**Parameters**h]j)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhj[ubj3)}(hhh](j8)}(h@``struct airq_iv *iv`` pointer to an interrupt vector structure h](j>)}(h``struct airq_iv *iv``h]jD)}(hjh]hstruct airq_iv *iv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChj~ubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjzubjZ)}(hhh]h)}(h(pointer to an interrupt vector structureh]h(pointer to an interrupt vector structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhjzubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjwubj8)}(hA``unsigned long num`` number of consecutive irq bits to allocate h](j>)}(h``unsigned long num``h]jD)}(hjh]hunsigned long num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjubjZ)}(hhh]h)}(h*number of consecutive irq bits to allocateh]h*number of consecutive irq bits to allocate}(hjҫhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjΫhKhjϫubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjΫhKhjwubeh}(h]h ]h"]h$]h&]uh1j2hj[ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhj[ubh)}(hReturns the bit number of the first irq in the allocated block of irqs, or -1UL if no bit is available or the AIRQ_IV_ALLOC flag has not been specifiedh]hReturns the bit number of the first irq in the allocated block of irqs, or -1UL if no bit is available or the AIRQ_IV_ALLOC flag has not been specified}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPairq_iv_free (C function)c.airq_iv_freehNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hLvoid airq_iv_free (struct airq_iv *iv, unsigned long bit, unsigned long num)h]j`)}(hKvoid airq_iv_free(struct airq_iv *iv, unsigned long bit, unsigned long num)h](j )}(hvoidh]hvoid}(hj9hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj5hhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMubjx)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj5hhhjGhMubj)}(h airq_iv_freeh]j)}(h airq_iv_freeh]h airq_iv_free}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ](jjeh"]h$]h&]jjuh1jhj5hhhjGhMubjX)}(h:(struct airq_iv *iv, unsigned long bit, unsigned long num)h](j^)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hjvhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjrubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjrubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj\sbc.airq_iv_freeasbuh1hhjrubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjrubj)}(hjh]h*}(hj¬hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(hivh]hiv}(hjϬhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjnubj^)}(hunsigned long bith](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj )}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hbith]hbit}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjnubj^)}(hunsigned long numh](j )}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj5ubjx)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj5ubj )}(hlongh]hlong}(hjUhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj5ubjx)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj5ubj)}(hnumh]hnum}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjnubeh}(h]h ]h"]h$]h&]jjuh1jWhj5hhhjGhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj1hhhjGhMubah}(h]j,ah ](jjeh"]h$]h&]jj)jhuh1jYhjGhMhj.hhubj)}(hhh]h)}(h$free irq bits of an interrupt vectorh]h$free irq bits of an interrupt vector}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhj.hhhjGhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(h**Parameters** ``struct airq_iv *iv`` pointer to interrupt vector structure ``unsigned long bit`` number of the first irq bit to free ``unsigned long num`` number of consecutive irq bits to freeh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjubj3)}(hhh](j8)}(h=``struct airq_iv *iv`` pointer to interrupt vector structure h](j>)}(h``struct airq_iv *iv``h]jD)}(hjܭh]hstruct airq_iv *iv}(hjޭhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjڭubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhj֭ubjZ)}(hhh]h)}(h%pointer to interrupt vector structureh]h%pointer to interrupt vector structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jYhj֭ubeh}(h]h ]h"]h$]h&]uh1j7hjhKhjӭubj8)}(h:``unsigned long bit`` number of the first irq bit to free h](j>)}(h``unsigned long bit``h]jD)}(hjh]hunsigned long bit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjubjZ)}(hhh]h)}(h#number of the first irq bit to freeh]h#number of the first irq bit to free}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hMhj+ubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hj*hMhjӭubj8)}(h<``unsigned long num`` number of consecutive irq bits to freeh](j>)}(h``unsigned long num``h]jD)}(hjNh]hunsigned long num}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjLubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjHubjZ)}(hhh]h)}(h&number of consecutive irq bits to freeh]h&number of consecutive irq bits to free}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjdubah}(h]h ]h"]h$]h&]uh1jYhjHubeh}(h]h ]h"]h$]h&]uh1j7hjchMhjӭubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPairq_iv_scan (C function)c.airq_iv_scanhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(hWunsigned long airq_iv_scan (struct airq_iv *iv, unsigned long start, unsigned long end)h]j`)}(hVunsigned long airq_iv_scan(struct airq_iv *iv, unsigned long start, unsigned long end)h](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chM"ubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhM"ubj )}(hlongh]hlong}(hjŮhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhjhM"ubjx)}(h h]h }(hjӮhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhM"ubj)}(h airq_iv_scanh]j)}(h airq_iv_scanh]h airq_iv_scan}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhM"ubjX)}(h<(struct airq_iv *iv, unsigned long start, unsigned long end)h](j^)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jjsbc.airq_iv_scanasbuh1hhjubjx)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hivh]hiv}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubj^)}(hunsigned long starth](j )}(hunsignedh]hunsigned}(hjshhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjoubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjoubj )}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjoubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjoubj)}(hstarth]hstart}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubj^)}(hunsigned long endh](j )}(hunsignedh]hunsigned}(hjįhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjүhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj )}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubjx)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hendh]hend}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1j]hjubeh}(h]h ]h"]h$]h&]jjuh1jWhjhhhjhM"ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhM"ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jYhjhM"hjhhubj)}(hhh]h)}(h'scan interrupt vector for non-zero bitsh]h'scan interrupt vector for non-zero bits}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhj#hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM"ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1jThhhjhNhNubj)}(hXU**Parameters** ``struct airq_iv *iv`` pointer to interrupt vector structure ``unsigned long start`` bit number to start the search ``unsigned long end`` bit number to end the search **Description** Returns the bit number of the next non-zero interrupt bit, or -1UL if the scan completed without finding any more any non-zero bits.h](h)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjBubj3)}(hhh](j8)}(h=``struct airq_iv *iv`` pointer to interrupt vector structure h](j>)}(h``struct airq_iv *iv``h]jD)}(hjgh]hstruct airq_iv *iv}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jChjeubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjaubjZ)}(hhh]h)}(h%pointer to interrupt vector structureh]h%pointer to interrupt vector structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hMhj}ubah}(h]h ]h"]h$]h&]uh1jYhjaubeh}(h]h ]h"]h$]h&]uh1j7hj|hMhj^ubj8)}(h7``unsigned long start`` bit number to start the search h](j>)}(h``unsigned long start``h]jD)}(hjh]hunsigned long start}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChjubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjubjZ)}(hhh]h)}(hbit number to start the searchh]hbit number to start the search}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jYhjubeh}(h]h ]h"]h$]h&]uh1j7hjhMhj^ubj8)}(h3``unsigned long end`` bit number to end the search h](j>)}(h``unsigned long end``h]jD)}(hjٰh]hunsigned long end}(hj۰hhhNhNubah}(h]h ]h"]h$]h&]uh1jChjװubah}(h]h ]h"]h$]h&]uh1j=h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjӰubjZ)}(hhh]h)}(hbit number to end the searchh]hbit number to end the search}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jYhjӰubeh}(h]h ]h"]h$]h&]uh1j7hjhMhj^ubeh}(h]h ]h"]h$]h&]uh1j2hjBubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjBubh)}(hReturns the bit number of the next non-zero interrupt bit, or -1UL if the scan completed without finding any more any non-zero bits.h]hReturns the bit number of the next non-zero interrupt bit, or -1UL if the scan completed without finding any more any non-zero bits.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]adapter-interruptsah ]h"]adapter interruptsah$]h&]uh1hhjƢhhhhhKubeh}(h]generic-interfacesah ]h"]generic interfacesah$]h&]uh1hhhhhhhhKzubeh}(h]#writing-s390-channel-device-driversah ]h"]#writing s390 channel 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.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jUjRjUjRjjjQjNjjjjjIjFjâjjjjMjJjEjBu nametypes}(jUjUjjQjjjIjâjjMjEuh}(jRhjRhjjXjNjjj$jRj[jdjijxj}j j j j j'j,jjjjjjjjjjjjjjjjjjjjj j! jw"j|"j%j%j'j'j)j)j+j+j.j.jl0jq0j1j1jn3js3j5j5jZ8j_8jw:j|:j;j;jy=j~=j @j%@jEjEjJjJjpOjuOjTjTjaWjfWjYjYj \j\j]j]j_j_jbjbjdjdj=hjBhjkjkj(oj-ojrjrjtjtjNvjSvjRxjWxj|j|j}j~jjj?jDjFjjjÄj(j-jjjjjjjjTjjsjjj}jjܔjjjjȘj͘jjjjjjjAjFjJjƢjBjjjjjjjjjjj j,j1jju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.