sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/driver-api/s390-driversmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/driver-api/s390-driversmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(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}(hhhhhhhNhNubah}(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}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(hCornelia Huck h]h paragraph)}(h Cornelia Huckh]h Cornelia Huck}(hhhhhhhNhNubah}(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}(hhhhhhhNhNubah}(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 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.}(hjhjhhhNhNubah}(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(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.}(hj6hj4hhhNhNubah}(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.}(hjDhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h The css bush]h The css bus}(hj]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:}(hjkhjihhhNhNubah}(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.}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(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}(hhhjghhhNhNubah}(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 }(hhhjyhhhNhNubah}(h]h ]wah"]h$]h&]uh1jwhjahhhjvhKubh desc_name)}(hccw1h]h desc_sig_name)}(hj]h]hccw1}(hhhjhhhNhNubah}(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_multilineuh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjVhhubh desc_content)}(hhh]h)}(hchannel command wordh]hchannel command word}(hjhjhhhNhNubah}(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&]domainjobjtypejdesctypejnoindexuh1jThhhj$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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(h: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; };}(hhhj ubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hhhjhhhNhNubah}(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)}(hj?h]hcmd_code}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj=ubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj7ubh definition)}(hhh]h)}(h command codeh]h command code}(hj^hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhKhjYubah}(h]h ]h"]h$]h&]uh1jWhj7ubeh}(h]h ]h"]h$]h&]uh1j5hjVhKhj2ubj6)}(h+``flags`` flags, like IDA addressing, etc. h](j<)}(h ``flags``h]jB)}(hj|h]hflags}(hhhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjzubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjvubjX)}(hhh]h)}(h flags, like IDA addressing, etc.h]h flags, like IDA addressing, etc.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjvubeh}(h]h ]h"]h$]h&]uh1j5hjhKhj2ubj6)}(h``count`` byte count h](j<)}(h ``count``h]jB)}(hjh]hcount}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(h byte counth]h byte count}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhj2ubj6)}(h``cda`` data addressh](j<)}(h``cda``h]jB)}(hjh]hcda}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(h data addressh]h data address}(hj 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&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhj2ubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hj1h]h Description}(hhhj3hhhNhNubah}(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$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.}(hjIhjGhhhNhNubah}(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}(hhhjohhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjkhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK)ubjx)}(h h]h }(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjkhhhj|hK)ubj)}(hccw0h]j)}(hjih]hccw0}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjkhhhj|hK)ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjghhhj|hK)ubah}(h]jbah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK#hjdhhubj)}(hhh]h)}(hchannel command wordh]hchannel command word}(hjhjhhhNhNubah}(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&]uh1jhjdhhhj|hK)ubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jThhhj$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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(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; };}(hhhjubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK.hjubh)}(h **Members**h]j)}(hjh]hMembers}(hhhjhhhNhNubah}(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.hhK6hjubj1)}(hhh](j6)}(h``cmd_code`` command code h](j<)}(h ``cmd_code``h]jB)}(hjh]hcmd_code}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK*hjubjX)}(hhh]h)}(h command codeh]h command code}(hj:hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hK*hj5ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj4hK*hjubj6)}(h``cda`` data address h](j<)}(h``cda``h]jB)}(hjXh]hcda}(hhhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjVubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK+hjRubjX)}(hhh]h)}(h data addressh]h data address}(hjshjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhK+hjnubah}(h]h ]h"]h$]h&]uh1jWhjRubeh}(h]h ]h"]h$]h&]uh1j5hjmhK+hjubj6)}(h+``flags`` flags, like IDA addressing, etc. h](j<)}(h ``flags``h]jB)}(hjh]hflags}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK,hjubjX)}(hhh]h)}(h flags, like IDA addressing, etc.h]h flags, like IDA addressing, etc.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK,hjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhK,hjubj6)}(h``reserved`` will be ignored h](j<)}(h ``reserved``h]jB)}(hjh]hreserved}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK-hjubjX)}(hhh]h)}(hwill be ignoredh]hwill be ignored}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK-hjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhK-hjubj6)}(h``count`` byte counth](j<)}(h ``count``h]jB)}(hjh]hcount}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK-hjubjX)}(hhh]h)}(h byte counth]h byte count}(hjhjhhhNhNubah}(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&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhK-hjubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hjFh]h Description}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(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^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}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKRubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKRubj)}(herwh]j)}(hj~h]herw}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKRubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj|hhhjhKRubah}(h]jwah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK4hjyhhubj)}(hhh]h)}(hextended report wordh]hextended report word}(hjhjhhhNhNubah}(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&]uh1jhjyhhhjhKRubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jThhhj$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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(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; };}(hhhjubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKWhjubh)}(h **Members**h]j)}(hjh]hMembers}(hhhjhhhNhNubah}(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.hhKdhjubj1)}(hhh](j6)}(h``res0`` reserved h](j<)}(h``res0``h]jB)}(hj4h]hres0}(hhhj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj2ubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKShj.ubjX)}(hhh]h)}(hreservedh]hreserved}(hjOhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKShjJubah}(h]h ]h"]h$]h&]uh1jWhj.ubeh}(h]h ]h"]h$]h&]uh1j5hjIhKShj+ubj6)}(h``auth`` authorization check h](j<)}(h``auth``h]jB)}(hjmh]hauth}(hhhjohhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjkubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKThjgubjX)}(hhh]h)}(hauthorization checkh]hauthorization check}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKThjubah}(h]h ]h"]h$]h&]uh1jWhjgubeh}(h]h ]h"]h$]h&]uh1j5hjhKThj+ubj6)}(h)``pvrf`` path-verification-required flag h](j<)}(h``pvrf``h]jB)}(hjh]hpvrf}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKUhjubjX)}(hhh]h)}(hpath-verification-required flagh]hpath-verification-required flag}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKUhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKUhj+ubj6)}(h``cpt`` channel-path timeout h](j<)}(h``cpt``h]jB)}(hjh]hcpt}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKVhjubjX)}(hhh]h)}(hchannel-path timeouth]hchannel-path timeout}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKVhj+ubj6)}(h0``fsavf`` failing storage address validity flag h](j<)}(h ``fsavf``h]jB)}(hjh]hfsavf}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKWhjubjX)}(hhh]h)}(h%failing storage address validity flagh]h%failing storage address validity flag}(hj3hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hKWhj.ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj-hKWhj+ubj6)}(h``cons`` concurrent sense h](j<)}(h``cons``h]jB)}(hjQh]hcons}(hhhjShhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjOubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKXhjKubjX)}(hhh]h)}(hconcurrent senseh]hconcurrent sense}(hjlhjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhKXhjgubah}(h]h ]h"]h$]h&]uh1jWhjKubeh}(h]h ]h"]h$]h&]uh1j5hjfhKXhj+ubj6)}(h.``scavf`` secondary ccw address validity flag h](j<)}(h ``scavf``h]jB)}(hjh]hscavf}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKYhjubjX)}(hhh]h)}(h#secondary ccw address validity flagh]h#secondary ccw address validity flag}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKYhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKYhj+ubj6)}(h(``fsaf`` failing storage address format h](j<)}(h``fsaf``h]jB)}(hjh]hfsaf}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKZhjubjX)}(hhh]h)}(hfailing storage address formath]hfailing storage address format}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKZhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKZhj+ubj6)}(h+``scnt`` sense count, if **cons** == ``1`` h](j<)}(h``scnt``h]jB)}(hjh]hscnt}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK[hjubjX)}(hhh]h)}(h!sense count, if **cons** == ``1``h](hsense count, if }(hsense count, if hj hhhNhNubj)}(h**cons**h]hcons}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh == }(h == hj hhhNhNubjB)}(h``1``h]h1}(hhhj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj ubeh}(h]h ]h"]h$]h&]uh1hhj hK[hj ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj hK[hj+ubj6)}(h``res16`` reservedh](j<)}(h ``res16``h]jB)}(hjW h]hres16}(hhhjY hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjU 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[hjQ ubjX)}(hhh]h)}(hreservedh]hreserved}(hjr hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK\hjm ubah}(h]h ]h"]h$]h&]uh1jWhjQ ubeh}(h]h ]h"]h$]h&]uh1j5hjl hK[hj+ubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(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}(hhhj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKlubjx)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj hhhj hKlubj)}(herw_eadmh]j)}(hj h]herw_eadm}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKlubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj hhhj hKlubah}(h]j ah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKbhj hhubj)}(hhh]h)}(h$EADM Subchannel extended report wordh]h$EADM Subchannel extended report word}(hj 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 hKlubeh}(h]h ](jstructeh"]h$]h&]jjjj jj juh1jThhhj$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}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh:}(hjhj 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; };}(hhhj1 ubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKqhj ubh)}(h **Members**h]j)}(hjB h]hMembers}(hhhjD 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 ubj1)}(hhh](j6)}(h``b`` aob error h](j<)}(h``b``h]jB)}(hja h]hb}(hhhjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj_ 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[ ubjX)}(hhh]h)}(h aob errorh]h aob error}(hj| hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjv hKmhjw ubah}(h]h ]h"]h$]h&]uh1jWhj[ ubeh}(h]h ]h"]h$]h&]uh1j5hjv hKmhjX ubj6)}(h``r`` arsb errorh](j<)}(h``r``h]jB)}(hj h]hr}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(h arsb errorh]h arsb error}(hj 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&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hKmhjX ubeh}(h]h ]h"]h$]h&]uh1j0hj 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}(hhhj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKxubjx)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj hhhj hKxubj)}(hsublogh]j)}(hj h]hsublog}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKxubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj hhhj hKxubah}(h]j ah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKthj hhubj)}(hhh]h)}(hsubchannel logout areah]hsubchannel logout area}(hj9 hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKwhj4 hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKxubeh}(h]h ](jstructeh"]h$]h&]jjjjO jjO juh1jThhhj$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}(hhhj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW ubh:}(hjhjW hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK{hjS 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; };}(hhhjt ubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhK}hjS ubh)}(h **Members**h]j)}(hj h]hMembers}(hhhj 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.hhKhjS ubj1)}(hhh](j6)}(h``res0`` reserved h](j<)}(h``res0``h]jB)}(hj h]hres0}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(hreservedh]hreserved}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKyhj ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hKyhj ubj6)}(h``esf`` extended status flags h](j<)}(h``esf``h]jB)}(hj h]hesf}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(hextended status flagsh]hextended status flags}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKzhj ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hKzhj ubj6)}(h``lpum`` last path used mask h](j<)}(h``lpum``h]jB)}(hj h]hlpum}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hj1 hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ hK{hj, ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj+ hK{hj ubj6)}(h``arep`` ancillary report h](j<)}(h``arep``h]jB)}(hjO h]harep}(hhhjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjM 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|hjI ubjX)}(hhh]h)}(hancillary reporth]hancillary report}(hjj hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd hK|hje ubah}(h]h ]h"]h$]h&]uh1jWhjI ubeh}(h]h ]h"]h$]h&]uh1j5hjd hK|hj ubj6)}(h``fvf`` field-validity flags h](j<)}(h``fvf``h]jB)}(hj h]hfvf}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(hfield-validity flagsh]hfield-validity flags}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK}hj ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hK}hj ubj6)}(h``sacc`` storage access code h](j<)}(h``sacc``h]jB)}(hj h]hsacc}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(hstorage access codeh]hstorage access code}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK~hj ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hK~hj ubj6)}(h``termc`` termination code h](j<)}(h ``termc``h]jB)}(hj h]htermc}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(htermination codeh]htermination code}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hKhj ubj6)}(h``devsc`` device-status check h](j<)}(h ``devsc``h]jB)}(hj3 h]hdevsc}(hhhj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj1 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- ubjX)}(hhh]h)}(hdevice-status checkh]hdevice-status check}(hjN hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH hKhjI ubah}(h]h ]h"]h$]h&]uh1jWhj- ubeh}(h]h ]h"]h$]h&]uh1j5hjH hKhj ubj6)}(h``serr`` secondary error h](j<)}(h``serr``h]jB)}(hjl h]hserr}(hhhjn hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjj ubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjf ubjX)}(hhh]h)}(hsecondary errorh]hsecondary error}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jWhjf ubeh}(h]h ]h"]h$]h&]uh1j5hj hKhj ubj6)}(h``ioerr`` i/o-error alert h](j<)}(h ``ioerr``h]jB)}(hj h]hioerr}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(hi/o-error alerth]hi/o-error alert}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hKhj ubj6)}(h``seqc`` sequence codeh](j<)}(h``seqc``h]jB)}(hj h]hseqc}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(h sequence codeh]h sequence code}(hj 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&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj hKhj ubeh}(h]h ]h"]h$]h&]uh1j0hjS 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}(hhhj8hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj4hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKubjx)}(h h]h }(hhhjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj4hhhjEhKubj)}(hesw0h]j)}(hj2h]hesw0}(hhhjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ](jjeh"]h$]h&]jjuh1jhj4hhhjEhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj0hhhjEhKubah}(h]j+ah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj-hhubj)}(hhh]h)}(h#Format 0 Extended Status Word (ESW)h]h#Format 0 Extended Status Word (ESW)}(hj}hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjxhhubah}(h]h ]h"]h$]h&]uh1jhj-hhhjEhKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jThhhj$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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(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; };}(hhhjubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hhhjhhhNhNubah}(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.hhKhjubj1)}(hhh](j6)}(h``sublog`` subchannel logout h](j<)}(h ``sublog``h]jB)}(hjh]hsublog}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hsubchannel logouth]hsubchannel logout}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h``erw`` extended report word h](j<)}(h``erw``h]jB)}(hj!h]herw}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hextended report wordh]hextended report word}(hj<hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhj7ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj6hKhjubj6)}(h"``faddr`` failing storage address h](j<)}(h ``faddr``h]jB)}(hjZh]hfaddr}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjXubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjTubjX)}(hhh]h)}(hfailing storage addressh]hfailing storage address}(hjuhjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohKhjpubah}(h]h ]h"]h$]h&]uh1jWhjTubeh}(h]h ]h"]h$]h&]uh1j5hjohKhjubj6)}(h``saddr`` secondary ccw addressh](j<)}(h ``saddr``h]jB)}(hjh]hsaddr}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hsecondary ccw addressh]hsecondary ccw address}(hjhjhhhNhNubah}(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&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(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}(hhhjhhhNhNubah}(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 }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw1h]j)}(hjh]hesw1}(hhhj hhhNhNubah}(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&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubj)}(hhh]h)}(h#Format 1 Extended Status Word (ESW)h]h#Format 1 Extended Status Word (ESW)}(hj2hj0hhhNhNubah}(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&]jjjjHjjHjuh1jThhhj$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}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh:}(hjhjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjLubj)}(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]; };}(hhhjmubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjLubh)}(h **Members**h]j)}(hj~h]hMembers}(hhhjhhhNhNubah}(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.hhKhjLubj1)}(hhh](j6)}(h``zero0`` reserved zeros h](j<)}(h ``zero0``h]jB)}(hjh]hzero0}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h``lpum`` last path used mask h](j<)}(h``lpum``h]jB)}(hjh]hlpum}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h``zero16`` reserved zeros h](j<)}(h ``zero16``h]jB)}(hjh]hzero16}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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 ubjX)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hj*hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKhj%ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj$hKhjubj6)}(h``erw`` extended report word h](j<)}(h``erw``h]jB)}(hjHh]herw}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjFubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjBubjX)}(hhh]h)}(hextended report wordh]hextended report word}(hjchjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKhj^ubah}(h]h ]h"]h$]h&]uh1jWhjBubeh}(h]h ]h"]h$]h&]uh1j5hj]hKhjubj6)}(h"``zeros`` three fullwords of zerosh](j<)}(h ``zeros``h]jB)}(hjh]hzeros}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj{ubjX)}(hhh]h)}(hthree fullwords of zerosh]hthree fullwords of zeros}(hjhjhhhNhNubah}(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&]uh1jWhj{ubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubeh}(h]h ]h"]h$]h&]uh1j0hjLubeh}(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}(hhhjhhhNhNubah}(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 }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw2h]j)}(hjh]hesw2}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubj)}(hhh]h)}(h#Format 2 Extended Status Word (ESW)h]h#Format 2 Extended Status Word (ESW)}(hj 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&]jjjj6jj6juh1jThhhj$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}(hhhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubh:}(hjhj>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)}(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]; };}(hhhj[ubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj:ubh)}(h **Members**h]j)}(hjlh]hMembers}(hhhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj:ubj1)}(hhh](j6)}(h``zero0`` reserved zeros h](j<)}(h ``zero0``h]jB)}(hjh]hzero0}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h``lpum`` last path used mask h](j<)}(h``lpum``h]jB)}(hjh]hlpum}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h&``dcti`` device-connect-time interval h](j<)}(h``dcti``h]jB)}(hjh]hdcti}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hdevice-connect-time intervalh]hdevice-connect-time interval}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h``erw`` extended report word h](j<)}(h``erw``h]jB)}(hj6h]herw}(hhhj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj4ubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj0ubjX)}(hhh]h)}(hextended report wordh]hextended report word}(hjQhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhKhjLubah}(h]h ]h"]h$]h&]uh1jWhj0ubeh}(h]h ]h"]h$]h&]uh1j5hjKhKhjubj6)}(h"``zeros`` three fullwords of zerosh](j<)}(h ``zeros``h]jB)}(hjoh]hzeros}(hhhjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjmubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjiubjX)}(hhh]h)}(hthree fullwords of zerosh]hthree fullwords of zeros}(hjhjhhhNhNubah}(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&]uh1jWhjiubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubeh}(h]h ]h"]h$]h&]uh1j0hj:ubeh}(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}(hhhjhhhNhNubah}(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 }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw3h]j)}(hjh]hesw3}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubj)}(hhh]h)}(h#Format 3 Extended Status Word (ESW)h]h#Format 3 Extended Status Word (ESW)}(hjhj 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&]jjjj$jj$juh1jThhhj$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}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubh:}(hjhj,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]; };}(hhhjIubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj(ubh)}(h **Members**h]j)}(hjZh]hMembers}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj(ubj1)}(hhh](j6)}(h``zero0`` reserved zeros h](j<)}(h ``zero0``h]jB)}(hjyh]hzero0}(hhhj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjwubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjsubjX)}(hhh]h)}(hreserved zerosh]hreserved zeros}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjsubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjpubj6)}(h``lpum`` last path used mask h](j<)}(h``lpum``h]jB)}(hjh]hlpum}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hlast path used maskh]hlast path used mask}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjpubj6)}(h``res`` reserved h](j<)}(h``res``h]jB)}(hjh]hres}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hreservedh]hreserved}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjpubj6)}(h``erw`` extended report word h](j<)}(h``erw``h]jB)}(hj$h]herw}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj"ubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hextended report wordh]hextended report word}(hj?hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKhj:ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj9hKhjpubj6)}(h"``zeros`` three fullwords of zerosh](j<)}(h ``zeros``h]jB)}(hj]h]hzeros}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj[ubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjWubjX)}(hhh]h)}(hthree fullwords of zerosh]hthree fullwords of zeros}(hjxhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjsubah}(h]h ]h"]h$]h&]uh1jWhjWubeh}(h]h ]h"]h$]h&]uh1j5hjrhKhjpubeh}(h]h ]h"]h$]h&]uh1j0hj(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}(hhhjhhhNhNubah}(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 }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hesw_eadmh]j)}(hjh]hesw_eadm}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubj)}(hhh]h)}(h*EADM Subchannel Extended Status Word (ESW)h]h*EADM Subchannel Extended Status Word (ESW)}(hjhjhhhNhNubah}(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&]jjjjjjjuh1jThhhj$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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubj)}(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; };}(hhhj7ubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubh)}(h **Members**h]j)}(hjHh]hMembers}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubj1)}(hhh](j6)}(h``sublog`` subchannel logout h](j<)}(h ``sublog``h]jB)}(hjgh]hsublog}(hhhjihhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjeubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjaubjX)}(hhh]h)}(hsubchannel logouth]hsubchannel logout}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hKhj}ubah}(h]h ]h"]h$]h&]uh1jWhjaubeh}(h]h ]h"]h$]h&]uh1j5hj|hKhj^ubj6)}(h``erw`` extended report wordh](j<)}(h``erw``h]jB)}(hjh]herw}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hextended report wordh]hextended report word}(hjhjhhhNhNubah}(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&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhj^ubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(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}(hhhjhhhNhNubah}(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 }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hirbh]j)}(hjh]hirb}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubj)}(hhh]h)}(hinterruption response blockh]hinterruption response block}(hj?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&]jjjjUjjUjuh1jThhhj$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}(hhhjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubh:}(hjhj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjYubj)}(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]; };}(hhhjzubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjYubh)}(h **Members**h]j)}(hjh]hMembers}(hhhjhhhNhNubah}(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.hhKhjYubj1)}(hhh](j6)}(h ``scsw`` subchannel status word h](j<)}(h``scsw``h]jB)}(hjh]hscsw}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hsubchannel status wordh]hsubchannel status word}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h``esw`` extended status word h](j<)}(h``esw``h]jB)}(hjh]hesw}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hextended status wordh]hextended status word}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h``ecw`` extended control wordh](j<)}(h``ecw``h]jB)}(hjh]hecw}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(hextended control wordh]hextended control word}(hj7hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj2ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj1hKhjubeh}(h]h ]h"]h$]h&]uh1j0hjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hj_h]h Description}(hhhjahhhNhNubah}(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$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 }(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 hjuhhhNhNubjB)}(h``0``h]h0}(hhhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjuubh. If a unit check occurred, }(h. If a unit check occurred, hjuhhhNhNubj)}(h**ecw**h]hecw}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubhX 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).}(hX 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).hjuhhhNhNubeh}(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}(hhhjhhhNhNubah}(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 }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhKubj)}(hciwh]j)}(hjh]hciw}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjhhubj)}(hhh]h)}(h%command information word (CIW) layouth]h%command information word (CIW) layout}(hj 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&]jjjjjjjuh1jThhhj$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}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh:}(hjhj'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)}(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; };}(hhhjDubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhj#ubh)}(h **Members**h]j)}(hjUh]hMembers}(hhhjWhhhNhNubah}(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.hhMhj#ubj1)}(hhh](j6)}(h``et`` entry type h](j<)}(h``et``h]jB)}(hjth]het}(hhhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjrubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjnubjX)}(hhh]h)}(h entry typeh]h entry type}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjnubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjkubj6)}(h``reserved`` reserved bits h](j<)}(h ``reserved``h]jB)}(hjh]hreserved}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(h reserved bitsh]h reserved bits}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjkubj6)}(h``ct`` command type h](j<)}(h``ct``h]jB)}(hjh]hct}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(h command typeh]h command type}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjkubj6)}(h``cmd`` command code h](j<)}(h``cmd``h]jB)}(hjh]hcmd}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjubjX)}(hhh]h)}(h command codeh]h command code}(hj:hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hKhj5ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj4hKhjkubj6)}(h``count`` command counth](j<)}(h ``count``h]jB)}(hjXh]hcount}(hhhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjVubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjRubjX)}(hhh]h)}(h command counth]h command count}(hjshjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhKhjnubah}(h]h ]h"]h$]h&]uh1jWhjRubeh}(h]h ]h"]h$]h&]uh1j5hjmhKhjkubeh}(h]h ]h"]h$]h&]uh1j0hj#ubeh}(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}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM>ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhM>ubj)}(h ccw_dev_idh]j)}(hjh]h ccw_dev_id}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhM>ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhM>ubah}(h]jah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMhjhhubj)}(hhh]h)}(h!unique identifier for ccw devicesh]h!unique identifier for ccw devices}(hjhjhhhNhNubah}(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&]uh1jhjhhhjhM>ubeh}(h]h ](jstructeh"]h$]h&]jjjj jj juh1jThhhj$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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(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; };}(hhhj2ubah}(h]h ]h"]h$]h&]jjuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMChjubh)}(h **Members**h]j)}(hjCh]hMembers}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMHhjubj1)}(hhh](j6)}(h``ssid`` subchannel set id h](j<)}(h``ssid``h]jB)}(hjbh]hssid}(hhhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj`ubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM?hj\ubjX)}(hhh]h)}(hsubchannel set idh]hsubchannel set id}(hj}hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhM?hjxubah}(h]h ]h"]h$]h&]uh1jWhj\ubeh}(h]h ]h"]h$]h&]uh1j5hjwhM?hjYubj6)}(h``devno`` device numberh](j<)}(h ``devno``h]jB)}(hjh]hdevno}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM?hjubjX)}(hhh]h)}(h device numberh]h device number}(hjhjhhhNhNubah}(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&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhM?hjYubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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, }(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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh ccw_dev_id has been introduced.}(h 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}(hhhj2hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j0hj,hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMNubjx)}(h h]h }(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,hhhjAhMNubj)}(hccw_dev_id_is_equalh]j)}(hccw_dev_id_is_equalh]hccw_dev_id_is_equal}(hhhjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ](jjeh"]h$]h&]jjuh1jhj,hhhjAhMNubhdesc_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}(hhhjthhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjpubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjpubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjVsbc.ccw_dev_id_is_equalasbuh1hhjpubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjpubhdesc_sig_punctuation)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjpubj)}(hdev_id1h]hdev_id1}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjjubjo)}(hstruct ccw_dev_id *dev_id2h](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.ccw_dev_id_is_equalasbuh1hhjubjx)}(h h]h }(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdev_id2h]hdev_id2}(hhhjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjjubeh}(h]h ]h"]h$]h&]jjuh1jhhj,hhhjAhMNubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj(hhhjAhMNubah}(h]j#ah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMVhj%hhubj)}(hhh]h)}(hcompare two ccw_dev_idsh]hcompare two ccw_dev_ids}(hjuhjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMMhjphhubah}(h]h ]h"]h$]h&]uh1jhj%hhhjAhMNubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhj$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}(hhhjhhhNhNubah}(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.hhMQhjubj1)}(hhh](j6)}(h,``struct ccw_dev_id *dev_id1`` a ccw_dev_id h](j<)}(h``struct ccw_dev_id *dev_id1``h]jB)}(hjh]hstruct ccw_dev_id *dev_id1}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMNhjubjX)}(hhh]h)}(h a ccw_dev_idh]h a ccw_dev_id}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMNhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhMNhjubj6)}(h2``struct ccw_dev_id *dev_id2`` another ccw_dev_id h](j<)}(h``struct ccw_dev_id *dev_id2``h]jB)}(hjh]hstruct ccw_dev_id *dev_id2}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMOhjubjX)}(hhh]h)}(hanother ccw_dev_idh]hanother ccw_dev_id}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMOhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhMOhjubeh}(h]h ]h"]h$]h&]uh1j0hjubh)}(h **Return**h]j)}(hj(h]hReturn}(hhhj*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.hhMQhjubh block_quote)}(hhh]h)}(hC``1`` if the two structures are equal field-by-field, ``0`` if not.h](jB)}(h``1``h]h1}(hhhjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjCubh1 if the two structures are equal field-by-field, }(h1 if the two structures are equal field-by-field, hjChhhNhNubjB)}(h``0``h]h0}(hhhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjCubh if not.}(h if not.hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMRhj@ubah}(h]h ]h"]h$]h&]uh1j>hjubh)}(h **Context**h]j)}(hj|h]hContext}(hhhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMUhjubh)}(hanyh]hany}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMUhjubeh}(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}(hhhjhhhNhNubah}(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.hhMaubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMaubj)}(hpathmask_to_posh]j)}(hjh]hpathmask_to_pos}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMaubji)}(h (u8 mask)h]jo)}(hu8 maskh](h)}(hhh]j)}(hu8h]hu8}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.pathmask_to_posasbuh1hhjubjx)}(h h]h }(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hmaskh]hmask}(hhhjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj ubah}(h]h ]h"]h$]h&]jjuh1jhhjhhhjhMaubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMaubah}(h]jah ](jjeh"]h$]h&]juh1jYhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMchjhhubj)}(hhh]h)}(h4find the position of the left-most bit in a pathmaskh]h4find the position of the left-most bit in a pathmask}(hjohjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhM`hjjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMaubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhj$hNhNubj)}(h@**Parameters** ``u8 mask`` pathmask with at least one bit seth](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hhhjhhhNhNubah}(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.hhMdhjubj1)}(hhh]j6)}(h.``u8 mask`` pathmask with at least one bit seth](j<)}(h ``u8 mask``h]jB)}(hjh]hu8 mask}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.hhMfhjubjX)}(hhh]h)}(h"pathmask with at least one bit seth]h"pathmask with at least one bit set}(hjhjhhhNhNubah}(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&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhMfhjubah}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj$hhhNhNubeh}(h]*i-o-functions-for-channel-attached-devicesah ]h"]*i/o functions for channel-attached devicesah$]h&]uh1hhjhhhhhKThis function calls the driver’s set_offline() function for }(hhj&ubh)}(h **Context**h]j)}(hj'h]hContext}(hhhj'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!enabled, ccw device lock not heldh]h!enabled, ccw device lock not held}(hj'hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj&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](j1)}(hinth]hint}(hhhj'hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj'hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMUubjx)}(h h]h }(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj'hhhj'hMUubj)}(hccw_device_set_onlineh]j)}(hccw_device_set_onlineh]hccw_device_set_online}(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj (ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj'hhhj'hMUubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj*(hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj&(ubjx)}(h h]h }(hhhj7(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj&(ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjH(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJ(modnameN classnameNjj)}j]j)}jj(sbc.ccw_device_set_onlineasbuh1hhj&(ubjx)}(h h]h }(hhhjh(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj&(ubj)}(hjh]h*}(hhhjv(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&(ubj)}(hcdevh]hcdev}(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&(ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj"(ubah}(h]h ]h"]h$]h&]jjuh1jhhj'hhhj'hMUubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj'hhhj'hMUubah}(h]j'ah ](jjeh"]h$]h&]juh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chM_hj'hhubj)}(hhh]h)}(henable a ccw device for I/Oh]henable a ccw device for I/O}(hj(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMThj(hhubah}(h]h ]h"]h$]h&]uh1jhj'hhhj'hMUubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(juh1jThhhjhNhNubj)}(hXy**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}(hhhj(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.chMXhj(ubj1)}(hhh]j6)}(h.``struct ccw_device *cdev`` target ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj(h]hstruct ccw_device *cdev}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj(ubah}(h]h ]h"]h$]h&]uh1j;ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMUhj(ubjX)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hj )hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hMUhj)ubah}(h]h ]h"]h$]h&]uh1jWhj(ubeh}(h]h ]h"]h$]h&]uh1j5hj)hMUhj(ubah}(h]h ]h"]h$]h&]uh1j0hj(ubh)}(h**Description**h]j)}(hj*)h]h Description}(hhhj,)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.chMWhj(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 }(hThis function first enables hj@)hhhNhNubj)}(h**cdev**h]hcdev}(hhhjI)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@)ubh9 and then calls the driver’s set_online() function for }(h7 and then calls the driver's set_online() function for hj@)hhhNhNubj)}(h**cdev**h]hcdev}(hhhj\)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@)ubh., if given. If set_online() returns an error, }(h., if given. If set_online() returns an error, hj@)hhhNhNubj)}(h**cdev**h]hcdev}(hhhjo)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@)ubh is disabled again.}(h 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.chMWhj(ubh)}(h **Return**h]j)}(hj)h]hReturn}(hhhj)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(ubj?)}(hhh]h)}(h7``0`` on success and a negative error value on failure.h](jB)}(h``0``h]h0}(hhhj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj)ubh2 on success and a negative error value on failure.}(h2 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.chM\hj)ubah}(h]h ]h"]h$]h&]uh1j>hj(ubh)}(h **Context**h]j)}(hj)h]hContext}(hhhj)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)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!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}(hhhj*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 }(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj *hhhj*hMubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj.*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0*modnameN classnameNjj)}j]j)}jget_ccwdev_by_dev_idsbc.get_ccwdev_by_dev_idasbuh1hhj *hhhj*hMubjx)}(h h]h }(hhhjO*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj *hhhj*hMubj)}(hjh]h*}(hhhj]*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj *hhhj*hMubj)}(hget_ccwdev_by_dev_idh]j)}(hjL*h]hget_ccwdev_by_dev_id}(hhhjn*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj*ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj *hhhj*hMubji)}(h(struct ccw_dev_id *dev_id)h]jo)}(hstruct ccw_dev_id *dev_idh](jf)}(hjih]hstruct}(hhhj*hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj*ubjx)}(h h]h }(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj*ubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]jJ*c.get_ccwdev_by_dev_idasbuh1hhj*ubjx)}(h h]h }(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj*ubj)}(hjh]h*}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(hdev_idh]hdev_id}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj*ubah}(h]h ]h"]h$]h&]jjuh1jhhj *hhhj*hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj*hhhj*hMubah}(h]j*ah ](jjeh"]h$]h&]juh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj*hhubj)}(hhh]h)}(h"obtain device from a ccw device idh]h"obtain device from a ccw device id}(hj +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#+juh1jThhhjhNhNubj)}(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}(hhhj/+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'+ubj1)}(hhh]j6)}(h>``struct ccw_dev_id *dev_id`` id of the device to be searched h](j<)}(h``struct ccw_dev_id *dev_id``h]jB)}(hjL+h]hstruct ccw_dev_id *dev_id}(hhhjN+hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjJ+ubah}(h]h ]h"]h$]h&]uh1j;ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhjF+ubjX)}(hhh]h)}(hid of the device to be searchedh]hid of the device to be searched}(hjg+hje+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja+hMhjb+ubah}(h]h ]h"]h$]h&]uh1jWhjF+ubeh}(h]h ]h"]h$]h&]uh1j5hja+hMhjC+ubah}(h]h ]h"]h$]h&]uh1j0hj'+ubh)}(h**Description**h]j)}(hj+h]h Description}(hhhj+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 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 }(hQThis function searches all devices attached to the ccw bus for a device matching hj+hhhNhNubj)}(h **dev_id**h]hdev_id}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh.}(hj_'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}(hhhj+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?)}(hhh]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 }(hIIf a device is found its reference count is increased and returned; else hj+hhhNhNubjB)}(h``NULL``h]hNULL}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj+ubh is returned.}(h 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'+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}(hhhj#,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 }(hhhj1,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,hhhj0,hMubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjB,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjD,modnameN classnameNjj)}j]j)}jget_ccwdev_by_busidsbc.get_ccwdev_by_busidasbuh1hhj,hhhj0,hMubjx)}(h h]h }(hhhjc,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,hhhj0,hMubj)}(hjh]h*}(hhhjq,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhhj0,hMubj)}(hget_ccwdev_by_busidh]j)}(hj`,h]hget_ccwdev_by_busid}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~,ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj,hhhj0,hMubji)}(h-(struct ccw_driver *cdrv, const char *bus_id)h](jo)}(hstruct ccw_driver *cdrvh](jf)}(hjih]hstruct}(hhhj,hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj,ubjx)}(h h]h }(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,ubh)}(hhh]j)}(h ccw_driverh]h ccw_driver}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j^,c.get_ccwdev_by_busidasbuh1hhj,ubjx)}(h h]h }(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,ubj)}(hjh]h*}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hcdrvh]hcdrv}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj,ubjo)}(hconst char *bus_idh](jf)}(hconsth]hconst}(hhhj -hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj -ubjx)}(h h]h }(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj -ubj1)}(hcharh]hchar}(hhhj)-hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj -ubjx)}(h h]h }(hhhj7-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj -ubj)}(hjh]h*}(hhhjE-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj -ubj)}(hbus_idh]hbus_id}(hhhjR-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj -ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj,ubeh}(h]h ]h"]h$]h&]jjuh1jhhj,hhhj0,hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj,hhhj0,hMubah}(h]j,ah ](jjeh"]h$]h&]juh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj,hhubj)}(hhh]h)}(hobtain device from a bus idh]hobtain device from a bus id}(hj-hj}-hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhjz-hhubah}(h]h ]h"]h$]h&]uh1jhj,hhhj0,hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-juh1jThhhjhNhNubj)}(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}(hhhj-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-ubj1)}(hhh](j6)}(h:``struct ccw_driver *cdrv`` driver the device is owned by h](j<)}(h``struct ccw_driver *cdrv``h]jB)}(hj-h]hstruct ccw_driver *cdrv}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj-ubah}(h]h ]h"]h$]h&]uh1j;ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj-ubjX)}(hhh]h)}(hdriver the device is owned byh]hdriver the device is owned by}(hj-hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jWhj-ubeh}(h]h ]h"]h$]h&]uh1j5hj-hMhj-ubj6)}(h;``const char *bus_id`` bus id of the device to be searched h](j<)}(h``const char *bus_id``h]jB)}(hj-h]hconst char *bus_id}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj-ubah}(h]h ]h"]h$]h&]uh1j;ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj-ubjX)}(hhh]h)}(h#bus id of the device to be searchedh]h#bus id of the device to be searched}(hj.hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj .hMhj .ubah}(h]h ]h"]h$]h&]uh1jWhj-ubeh}(h]h ]h"]h$]h&]uh1j5hj .hMhj-ubeh}(h]h ]h"]h$]h&]uh1j0hj-ubh)}(h**Description**h]j)}(hj2.h]h Description}(hhhj4.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0.ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj-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 }(h,This function searches all devices owned by hjH.hhhNhNubj)}(h**cdrv**h]hcdrv}(hhhjQ.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH.ubh% for a device with a bus id matching }(h% for a device with a bus id matching hjH.hhhNhNubj)}(h **bus_id**h]hbus_id}(hhhjd.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH.ubh.}(hj_'hjH.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}(hhhj.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?)}(hhh]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 }(hcIf a match is found, its reference count of the found device is increased and it is returned; else hj.hhhNhNubjB)}(h``NULL``h]hNULL}(hhhj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj.ubh is returned.}(h 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-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](j1)}(hinth]hint}(hhhj.hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj.hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMubjx)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj.hhhj.hMubj)}(hccw_driver_registerh]j)}(hccw_driver_registerh]hccw_driver_register}(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj.hhhj.hMubji)}(h(struct ccw_driver *cdriver)h]jo)}(hstruct ccw_driver *cdriverh](jf)}(hjih]hstruct}(hhhj/hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj/ubjx)}(h h]h }(hhhj+/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj/ubh)}(hhh]j)}(h ccw_driverh]h ccw_driver}(hhhj/modnameN classnameNjj)}j]j)}jj/sbc.ccw_driver_registerasbuh1hhj/ubjx)}(h h]h }(hhhj\/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj/ubj)}(hjh]h*}(hhhjj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hcdriverh]hcdriver}(hhhjw/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj/ubah}(h]h ]h"]h$]h&]jjuh1jhhj.hhhj.hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj.hhhj.hMubah}(h]j.ah ](jjeh"]h$]h&]juh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj.hhubj)}(hhh]h)}(hregister a ccw driverh]hregister a ccw driver}(hj/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/juh1jThhhjhNhNubj)}(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}(hhhj/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/ubj1)}(hhh]j6)}(h7``struct ccw_driver *cdriver`` driver to be registered h](j<)}(h``struct ccw_driver *cdriver``h]jB)}(hj/h]hstruct ccw_driver *cdriver}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj/ubah}(h]h ]h"]h$]h&]uh1j;ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj/ubjX)}(hhh]h)}(hdriver to be registeredh]hdriver to be registered}(hj/hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jWhj/ubeh}(h]h ]h"]h$]h&]uh1j5hj/hMhj/ubah}(h]h ]h"]h$]h&]uh1j0hj/ubh)}(h**Description**h]j)}(hj0h]h Description}(hhhj 0hhhNhNubah}(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/ubh)}(h;This function is mainly a wrapper around driver_register().h]h;This function is mainly a wrapper around driver_register().}(hj60hj40hhhNhNubah}(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)}(hjE0h]hReturn}(hhhjG0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC0ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj/ubj?)}(hhh]h)}(h7``0`` on success and a negative error value on failure.h](jB)}(h``0``h]h0}(hhhjb0hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj^0ubh2 on success and a negative error value on failure.}(h2 on success and a negative error value on failure.hj^0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj[0ubah}(h]h ]h"]h$]h&]uh1j>hj/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](j1)}(hvoidh]hvoid}(hhhj0hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj0hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMubjx)}(h h]h }(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj0hhhj0hMubj)}(hccw_driver_unregisterh]j)}(hccw_driver_unregisterh]hccw_driver_unregister}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj0hhhj0hMubji)}(h(struct ccw_driver *cdriver)h]jo)}(hstruct ccw_driver *cdriverh](jf)}(hjih]hstruct}(hhhj0hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj0ubjx)}(h h]h }(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj0ubh)}(hhh]j)}(h ccw_driverh]h ccw_driver}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj0sbc.ccw_driver_unregisterasbuh1hhj0ubjx)}(h h]h }(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj0ubj)}(hjh]h*}(hhhj+1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hcdriverh]hcdriver}(hhhj81hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj0ubah}(h]h ]h"]h$]h&]jjuh1jhhj0hhhj0hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj0hhhj0hMubah}(h]j0ah ](jjeh"]h$]h&]juh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj0hhubj)}(hhh]h)}(hderegister a ccw driverh]hderegister a ccw driver}(hje1hjc1hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj`1hhubah}(h]h ]h"]h$]h&]uh1jhj0hhhj0hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{1jj{1juh1jThhhjhNhNubj)}(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)}(hj1h]h Parameters}(hhhj1hhhNhNubah}(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.chMhj1ubj1)}(hhh]j6)}(h9``struct ccw_driver *cdriver`` driver to be deregistered h](j<)}(h``struct ccw_driver *cdriver``h]jB)}(hj1h]hstruct ccw_driver *cdriver}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj1ubah}(h]h ]h"]h$]h&]uh1j;ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj1ubjX)}(hhh]h)}(hdriver to be deregisteredh]hdriver to be deregistered}(hj1hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hMhj1ubah}(h]h ]h"]h$]h&]uh1jWhj1ubeh}(h]h ]h"]h$]h&]uh1j5hj1hMhj1ubah}(h]h ]h"]h$]h&]uh1j0hj1ubh)}(h**Description**h]j)}(hj1h]h Description}(hhhj1hhhNhNubah}(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.chMhj1ubh)}(h=This function is mainly a wrapper around driver_unregister().h]h=This function is mainly a wrapper around driver_unregister().}(hj1hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMhj1ubeh}(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](j1)}(hinth]hint}(hhhj$2hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj 2hhha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMdubjx)}(h h]h }(hhhj32hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj 2hhhj22hMdubj)}(hccw_device_sioslh]j)}(hccw_device_sioslh]hccw_device_siosl}(hhhjE2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA2ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj 2hhhj22hMdubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhja2hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj]2ubjx)}(h h]h }(hhhjn2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj]2ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjG2sbc.ccw_device_sioslasbuh1hhj]2ubjx)}(h h]h }(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj]2ubj)}(hjh]h*}(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]2ubj)}(hcdevh]hcdev}(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]2ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjY2ubah}(h]h ]h"]h$]h&]jjuh1jhhj 2hhhj22hMdubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj2hhhj22hMdubah}(h]j2ah ](jjeh"]h$]h&]juh1jYha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMihj2hhubj)}(hhh]h)}(hinitiate loggingh]hinitiate logging}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMchj2hhubah}(h]h ]h"]h$]h&]uh1jhj2hhhj22hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2juh1jThhhjhNhNubj)}(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)}(hj3h]h Parameters}(hhhj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMghj3ubj1)}(hhh]j6)}(h'``struct ccw_device *cdev`` ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj&3h]hstruct ccw_device *cdev}(hhhj(3hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj$3ubah}(h]h ]h"]h$]h&]uh1j;ha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMdhj 3ubjX)}(hhh]h)}(h ccw deviceh]h ccw device}(hjA3hj?3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;3hMdhj<3ubah}(h]h ]h"]h$]h&]uh1jWhj 3ubeh}(h]h ]h"]h$]h&]uh1j5hj;3hMdhj3ubah}(h]h ]h"]h$]h&]uh1j0hj3ubh)}(h**Description**h]j)}(hja3h]h Description}(hhhjc3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_3ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMfhj3ubh)}(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.}(hjy3hjw3hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.chMfhj3ubeh}(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](j1)}(hinth]hint}(hhhj3hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj3hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKubjx)}(h h]h }(hhhj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj3hhhj3hKubj)}(hccw_device_set_options_maskh]j)}(hccw_device_set_options_maskh]hccw_device_set_options_mask}(hhhj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj3hhhj3hKubji)}(h.(struct ccw_device *cdev, unsigned long flags)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj3hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj3ubjx)}(h h]h }(hhhj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj3ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jj3sbc.ccw_device_set_options_maskasbuh1hhj3ubjx)}(h h]h }(hhhj!4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj3ubj)}(hjh]h*}(hhhj/4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hcdevh]hcdev}(hhhj<4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj3ubjo)}(hunsigned long flagsh](j1)}(hunsignedh]hunsigned}(hhhjU4hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjQ4ubjx)}(h h]h }(hhhjc4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjQ4ubj1)}(hlongh]hlong}(hhhjq4hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjQ4ubjx)}(h h]h }(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjQ4ubj)}(hflagsh]hflags}(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj3ubeh}(h]h ]h"]h$]h&]jjuh1jhhj3hhhj3hKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj3hhhj3hKubah}(h]j3ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK'hj3hhubj)}(hhh]h)}(h#set some options and unset the resth]h#set some options and unset the rest}(hj4hj4hhhNhNubah}(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&]uh1jhj3hhhj3hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4juh1jThhhjhNhNubj)}(hXB**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}(hhhj4hhhNhNubah}(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"hj4ubj1)}(hhh](j6)}(hG``struct ccw_device *cdev`` device for which the options are to be set h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj4h]hstruct ccw_device *cdev}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj4ubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj4ubjX)}(hhh]h)}(h*device for which the options are to be seth]h*device for which the options are to be set}(hj5hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKhj5ubah}(h]h ]h"]h$]h&]uh1jWhj4ubeh}(h]h ]h"]h$]h&]uh1j5hj5hKhj4ubj6)}(h*``unsigned long flags`` options to be set h](j<)}(h``unsigned long flags``h]jB)}(hj25h]hunsigned long flags}(hhhj45hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj05ubah}(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,5ubjX)}(hhh]h)}(hoptions to be seth]hoptions to be set}(hjM5hjK5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG5hK hjH5ubah}(h]h ]h"]h$]h&]uh1jWhj,5ubeh}(h]h ]h"]h$]h&]uh1j5hjG5hK hj4ubeh}(h]h ]h"]h$]h&]uh1j0hj4ubh)}(h**Description**h]j)}(hjm5h]h Description}(hhhjo5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk5ubah}(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 }(hAll flags specified in hj5hhhNhNubj)}(h **flags**h]hflags}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubh% are set, all flags not specified in }(h% are set, all flags not specified in hj5hhhNhNubj)}(h **flags**h]hflags}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubh are cleared.}(h are cleared.hj5hhhNhNubeh}(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}(hhhj5hhhNhNubah}(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?)}(hhh]h)}(h=``0`` on success, -``EINVAL`` on an invalid flag combination.h](jB)}(h``0``h]h0}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj5ubh on success, -}(h on success, -hj5hhhNhNubjB)}(h ``EINVAL``h]hEINVAL}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj5ubh on an invalid flag combination.}(h 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>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](j1)}(hinth]hint}(hhhj+6hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj'6hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK9ubjx)}(h h]h }(hhhj:6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj'6hhhj96hK9ubj)}(hccw_device_set_optionsh]j)}(hccw_device_set_optionsh]hccw_device_set_options}(hhhjL6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH6ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj'6hhhj96hK9ubji)}(h.(struct ccw_device *cdev, unsigned long flags)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjh6hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjd6ubjx)}(h h]h }(hhhju6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjd6ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jjN6sbc.ccw_device_set_optionsasbuh1hhjd6ubjx)}(h h]h }(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjd6ubj)}(hjh]h*}(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd6ubj)}(hcdevh]hcdev}(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj`6ubjo)}(hunsigned long flagsh](j1)}(hunsignedh]hunsigned}(hhhj6hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj6ubjx)}(h h]h }(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj6ubj1)}(hlongh]hlong}(hhhj6hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj6ubjx)}(h h]h }(hhhj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj6ubj)}(hflagsh]hflags}(hhhj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj`6ubeh}(h]h ]h"]h$]h&]jjuh1jhhj'6hhhj96hK9ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj#6hhhj96hK9ubah}(h]j6ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK@hj 6hhubj)}(hhh]h)}(hset some optionsh]hset some options}(hj?7hj=7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK8hj:7hhubah}(h]h ]h"]h$]h&]uh1jhj 6hhhj96hK9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjU7jjU7juh1jThhhjhNhNubj)}(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}(hhhja7hhhNhNubah}(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.chKhjY7ubj?)}(hhh]h)}(hI``0`` on success, -``EINVAL`` if an invalid flag combination would ensue.h](jB)}(h``0``h]h0}(hhhjJ8hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjF8ubh on success, -}(h on success, -hjF8hhhNhNubjB)}(h ``EINVAL``h]hEINVAL}(hhhj]8hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjF8ubh, if an invalid flag combination would ensue.}(h, if an invalid flag combination would ensue.hjF8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK?hjC8ubah}(h]h ]h"]h$]h&]uh1j>hjY7ubeh}(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](j1)}(hvoidh]hvoid}(hhhj8hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj8hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKVubjx)}(h h]h }(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj8hhhj8hKVubj)}(hccw_device_clear_optionsh]j)}(hccw_device_clear_optionsh]hccw_device_clear_options}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj8hhhj8hKVubji)}(h.(struct ccw_device *cdev, unsigned long flags)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj8hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj8ubjx)}(h h]h }(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj8ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jj8sbc.ccw_device_clear_optionsasbuh1hhj8ubjx)}(h h]h }(hhhj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj8ubj)}(hjh]h*}(hhhj&9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hcdevh]hcdev}(hhhj39hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj8ubjo)}(hunsigned long flagsh](j1)}(hunsignedh]hunsigned}(hhhjL9hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjH9ubjx)}(h h]h }(hhhjZ9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjH9ubj1)}(hlongh]hlong}(hhhjh9hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjH9ubjx)}(h h]h }(hhhjv9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjH9ubj)}(hflagsh]hflags}(hhhj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH9ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj8ubeh}(h]h ]h"]h$]h&]jjuh1jhhj8hhhj8hKVubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj8hhhj8hKVubah}(h]j8ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK[hj8hhubj)}(hhh]h)}(hclear some optionsh]hclear some options}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKUhj9hhubah}(h]h ]h"]h$]h&]uh1jhj8hhhj8hKVubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9juh1jThhhjhNhNubj)}(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}(hhhj9hhhNhNubah}(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.chKYhj9ubj1)}(hhh](j6)}(hK``struct ccw_device *cdev`` device for which the options are to be cleared h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj9h]hstruct ccw_device *cdev}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj9ubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKVhj9ubjX)}(hhh]h)}(h.device for which the options are to be clearedh]h.device for which the options are to be cleared}(hj :hj :hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hKVhj:ubah}(h]h ]h"]h$]h&]uh1jWhj9ubeh}(h]h ]h"]h$]h&]uh1j5hj:hKVhj9ubj6)}(h.``unsigned long flags`` options to be cleared h](j<)}(h``unsigned long flags``h]jB)}(hj):h]hunsigned long flags}(hhhj+:hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj':ubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKWhj#:ubjX)}(hhh]h)}(hoptions to be clearedh]hoptions to be cleared}(hjD:hjB:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>:hKWhj?:ubah}(h]h ]h"]h$]h&]uh1jWhj#:ubeh}(h]h ]h"]h$]h&]uh1j5hj>:hKWhj9ubeh}(h]h ]h"]h$]h&]uh1j0hj9ubh)}(h**Description**h]j)}(hjd:h]h Description}(hhhjf:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb: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 }(hAll flags specified in hjz:hhhNhNubj)}(h **flags**h]hflags}(hhhj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz:ubh. are cleared, the remainder is left untouched.}(h. are cleared, the remainder is left untouched.hjz: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](j1)}(hinth]hint}(hhhj:hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj:hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKfubjx)}(h h]h }(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:hhhj:hKfubj)}(hccw_device_is_pathgrouph]j)}(hccw_device_is_pathgrouph]hccw_device_is_pathgroup}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj:hhhj:hKfubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj:hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj:ubjx)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj;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 }(hhhj8;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:ubj)}(hjh]h*}(hhhjF;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hcdevh]hcdev}(hhhjS;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj:ubah}(h]h ]h"]h$]h&]jjuh1jhhj:hhhj:hKfubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj:hhhj:hKfubah}(h]j:ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKjhj:hhubj)}(hhh]h)}(h-determine if paths to this device are groupedh]h-determine if paths to this device are grouped}(hj;hj~;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKehj{;hhubah}(h]h ]h"]h$]h&]uh1jhj:hhhj:hKfubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;jj;juh1jThhhjhNhNubj)}(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)}(hj;h]h Parameters}(hhhj;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.chKihj;ubj1)}(hhh]j6)}(h'``struct ccw_device *cdev`` ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj;h]hstruct ccw_device *cdev}(hhhj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj;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;ubjX)}(hhh]h)}(h ccw deviceh]h ccw device}(hj;hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hKfhj;ubah}(h]h ]h"]h$]h&]uh1jWhj;ubeh}(h]h ]h"]h$]h&]uh1j5hj;hKfhj;ubah}(h]h ]h"]h$]h&]uh1j0hj;ubh)}(h**Description**h]j)}(hj;h]h Description}(hhhj;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<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](j1)}(hinth]hint}(hhhj?<hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj;<hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKrubjx)}(h h]h }(hhhjN<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj;<hhhjM<hKrubj)}(hccw_device_is_multipathh]j)}(hccw_device_is_multipathh]hccw_device_is_multipath}(hhhj`<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\<ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj;<hhhjM<hKrubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj|<hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjx<ubjx)}(h h]h }(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjx<ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjb<sbc.ccw_device_is_multipathasbuh1hhjx<ubjx)}(h h]h }(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjx<ubj)}(hjh]h*}(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx<ubj)}(hcdevh]hcdev}(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx<ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjt<ubah}(h]h ]h"]h$]h&]jjuh1jhhj;<hhhjM<hKrubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj7<hhhjM<hKrubah}(h]j2<ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKvhj4<hhubj)}(hhh]h)}(h2determine if device is operating in multipath modeh]h2determine if device is operating in multipath mode}(hj=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&]uh1jhj4<hhhjM<hKrubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=juh1jThhhjhNhNubj)}(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}(hhhj$=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=ubj1)}(hhh]j6)}(h'``struct ccw_device *cdev`` ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjA=h]hstruct ccw_device *cdev}(hhhjC=hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj?=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;=ubjX)}(hhh]h)}(h ccw deviceh]h ccw device}(hj\=hjZ=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV=hKrhjW=ubah}(h]h ]h"]h$]h&]uh1jWhj;=ubeh}(h]h ]h"]h$]h&]uh1j5hjV=hKrhj8=ubah}(h]h ]h"]h$]h&]uh1j0hj=ubh)}(h**Description**h]j)}(hj|=h]h Description}(hhhj~=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz=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.}(hj=hj=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](j1)}(hinth]hint}(hhhj=hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj=hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK~ubjx)}(h h]h }(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=hhhj=hK~ubj)}(hccw_device_clearh]j)}(hccw_device_clearh]hccw_device_clear}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj=hhhj=hK~ubji)}(h0(struct ccw_device *cdev, unsigned long intparm)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj=hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj=ubjx)}(h h]h }(hhhj >hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj>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 }(hhhj<>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=ubj)}(hjh]h*}(hhhjJ>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hcdevh]hcdev}(hhhjW>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj=ubjo)}(hunsigned long intparmh](j1)}(hunsignedh]hunsigned}(hhhjp>hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjl>ubjx)}(h h]h }(hhhj~>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjl>ubj1)}(hlongh]hlong}(hhhj>hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjl>ubjx)}(h h]h }(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjl>ubj)}(hintparmh]hintparm}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjl>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj=ubeh}(h]h ]h"]h$]h&]jjuh1jhhj=hhhj=hK~ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj=hhhj=hK~ubah}(h]j=ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj=hhubj)}(hhh]h)}(h terminate I/O request processingh]h terminate I/O request processing}(hj>hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chK}hj>hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj=hK~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>juh1jThhhjhNhNubj)}(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}(hhhj>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>ubj1)}(hhh](j6)}(h.``struct ccw_device *cdev`` target ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj?h]hstruct ccw_device *cdev}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj?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?ubjX)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hj/?hj-?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)?hK~hj*?ubah}(h]h ]h"]h$]h&]uh1jWhj?ubeh}(h]h ]h"]h$]h&]uh1j5hj)?hK~hj ?ubj6)}(hX``unsigned long intparm`` interruption parameter to be returned upon conclusion of csch h](j<)}(h``unsigned long intparm``h]jB)}(hjM?h]hunsigned long intparm}(hhhjO?hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjK?ubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjG?ubjX)}(hhh]h)}(h=interruption parameter to be returned upon conclusion of cschh]h=interruption parameter to be returned upon conclusion of csch}(hjh?hjf?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjb?hKhjc?ubah}(h]h ]h"]h$]h&]uh1jWhjG?ubeh}(h]h ]h"]h$]h&]uh1j5hjb?hKhj ?ubeh}(h]h ]h"]h$]h&]uh1j0hj>ubh)}(h**Description**h]j)}(hj?h]h Description}(hhhj?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)}(h7ccw_device_clear() calls csch on **cdev**'s subchannel.h](h!ccw_device_clear() calls csch on }(h!ccw_device_clear() calls csch on hj?hhhNhNubj)}(h**cdev**h]hcdev}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubh’s subchannel.}(h'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.chKhj>ubh)}(h **Return**h]j)}(hj?h]hReturn}(hhhj?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?)}(hhh]h)}(h]``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state.h](jB)}(h``0``h]h0}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj?ubh on success, -}(h on success, -hj?hhhNhNubjB)}(h ``ENODEV``h]hENODEV}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj?ubh on device not operational, -}(h on device not operational, -hj?hhhNhNubjB)}(h ``EINVAL``h]hEINVAL}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj?ubh on invalid device state.}(h 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>ubh)}(h **Context**h]j)}(hj(@h]hContext}(hhhj*@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@@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](j1)}(hinth]hint}(hhhjm@hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hji@hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKubjx)}(h h]h }(hhhj|@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhji@hhhj{@hKubj)}(hccw_device_start_timeout_keyh]j)}(hccw_device_start_timeout_keyh]hccw_device_start_timeout_key}(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ](jjeh"]h$]h&]jjuh1jhji@hhhj{@hKubji)}(hx(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags, int expires)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj@hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj@ubjx)}(h h]h }(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj@ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jj@sbc.ccw_device_start_timeout_keyasbuh1hhj@ubjx)}(h h]h }(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj@ubj)}(hjh]h*}(hhhj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hcdevh]hcdev}(hhhjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj@ubjo)}(hstruct ccw1 *cpah](jf)}(hjih]hstruct}(hhhjAhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjAubjx)}(h h]h }(hhhj)AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjAubh)}(hhh]j)}(hccw1h]hccw1}(hhhj:AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Aubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj``struct ccw1 *cpa`` logical start address of channel program h](j<)}(h``struct ccw1 *cpa``h]jB)}(hjCh]hstruct ccw1 *cpa}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj}Cubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjyCubjX)}(hhh]h)}(h(logical start address of channel programh]h(logical start address of channel program}(hjChjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChKhjCubah}(h]h ]h"]h$]h&]uh1jWhjyCubeh}(h]h ]h"]h$]h&]uh1j5hjChKhj=Cubj6)}(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]jB)}(hjCh]hunsigned long intparm}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjCubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjCubjX)}(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 }(h@user specific interruption parameter; will be presented back to hjChhhNhNubj)}(h**cdev**h]hcdev}(hhhjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hf'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&]uh1jWhjCubeh}(h]h ]h"]h$]h&]uh1j5hjChKhj=Cubj6)}(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]jB)}(hjDh]h__u8 lpm}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjDubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjDubjX)}(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.}(hj!DhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjDubah}(h]h ]h"]h$]h&]uh1jWhjDubeh}(h]h ]h"]h$]h&]uh1j5hjDhKhj=Cubj6)}(h0``__u8 key`` storage key to be used for the I/O h](j<)}(h ``__u8 key``h]jB)}(hj@Dh]h__u8 key}(hhhjBDhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj>Dubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj:DubjX)}(hhh]h)}(h"storage key to be used for the I/Oh]h"storage key to be used for the I/O}(hj[DhjYDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUDhKhjVDubah}(h]h ]h"]h$]h&]uh1jWhj:Dubeh}(h]h ]h"]h$]h&]uh1j5hjUDhKhj=Cubj6)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j<)}(h``unsigned long flags``h]jB)}(hjyDh]hunsigned long flags}(hhhj{DhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjwDubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjsDubjX)}(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.}(hjDhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjDubah}(h]h ]h"]h$]h&]uh1jWhjsDubeh}(h]h ]h"]h$]h&]uh1j5hjDhKhj=Cubj6)}(h)``int expires`` timeout value in jiffies h](j<)}(h``int expires``h]jB)}(hjDh]h int expires}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjDubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjDubjX)}(hhh]h)}(htimeout value in jiffiesh]htimeout value in jiffies}(hjDhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhKhjDubah}(h]h ]h"]h$]h&]uh1jWhjDubeh}(h]h ]h"]h$]h&]uh1j5hjDhKhj=Cubeh}(h]h ]h"]h$]h&]uh1j0hj!Cubh)}(h**Description**h]j)}(hjDh]h Description}(hhhjDhhhNhNubah}(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.chKhj!Cubh)}(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 }(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 hjEhhhNhNubj)}(h **expires**h]hexpires}(hhhj EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh. 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(-}(h. 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(-hjEhhhNhNubjB)}(h ``ETIMEDOUT``h]h ETIMEDOUT}(hhhj EhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjEubh/). The interruption handler will echo back the }(h/). The interruption handler will echo back the hjEhhhNhNubj)}(h **intparm**h]hintparm}(hhhj3EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().}(h specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj!Cubh)}(h **Return**h]j)}(hjOEh]hReturn}(hhhjQEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMEubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj!Cubj?)}(hhh]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](jB)}(h``0``h]h0}(hhhjlEhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjhEubh$, if the operation was successful; -}(h$, if the operation was successful; -hjhEhhhNhNubjB)}(h ``EBUSY``h]hEBUSY}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjhEubh-, if the device is busy, or status pending; -}(h-, if the device is busy, or status pending; -hjhEhhhNhNubjB)}(h ``EACCES``h]hEACCES}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjhEubh, if no path specified in }(h, if no path specified in hjhEhhhNhNubj)}(h**lpm**h]hlpm}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhEubh is operational; -}(h is operational; -hjhEhhhNhNubjB)}(h ``ENODEV``h]hENODEV}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjhEubh#, if the device is not operational.}(h#, if the device is not operational.hjhEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjeEubah}(h]h ]h"]h$]h&]uh1j>hj!Cubh)}(h **Context**h]j)}(hjEh]hContext}(hhhjEhhhNhNubah}(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.chKhj!Cubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjEhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj!Cubeh}(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](j1)}(hinth]hint}(hhhjFhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjFhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKubjx)}(h h]h }(hhhj.FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFhhhj-FhKubj)}(hccw_device_start_keyh]j)}(hccw_device_start_keyh]hccw_device_start_key}(hhhj@FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj:Gubjx)}(h h]h }(hhhjLGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:Gubj1)}(hlongh]hlong}(hhhjZGhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj:Gubjx)}(h h]h }(hhhjhGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj:Gubj)}(hintparmh]hintparm}(hhhjvGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:Gubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjTFubjo)}(h__u8 lpmh](h)}(hhh]j)}(h__u8h]h__u8}(hhhjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jFc.ccw_device_start_keyasbuh1hhjGubjx)}(h h]h }(hhhjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjGubj)}(hlpmh]hlpm}(hhhjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjTFubjo)}(h__u8 keyh](h)}(hhh]j)}(h__u8h]h__u8}(hhhjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jFc.ccw_device_start_keyasbuh1hhjGubjx)}(h h]h }(hhhjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjGubj)}(hkeyh]hkey}(hhhjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjTFubjo)}(hunsigned long flagsh](j1)}(hunsignedh]hunsigned}(hhhjHhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjHubjx)}(h h]h }(hhhj-HhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjHubj1)}(hlongh]hlong}(hhhj;HhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjHubjx)}(h h]h }(hhhjIHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjHubj)}(hflagsh]hflags}(hhhjWHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjTFubeh}(h]h ]h"]h$]h&]jjuh1jhhjFhhhj-FhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjFhhhj-FhKubah}(h]jFah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjFhhubj)}(hhh]h)}(h%start a s390 channel program with keyh]h%start a s390 channel program with key}(hjHhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjHhhubah}(h]h ]h"]h$]h&]uh1jhjFhhhj-FhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjuh1jThhhjhNhNubj)}(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)}(hjHh]h Parameters}(hhhjHhhhNhNubah}(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.chKhjHubj1)}(hhh](j6)}(h.``struct ccw_device *cdev`` target ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjHh]hstruct ccw_device *cdev}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjHubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjHubjX)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjHhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhKhjHubah}(h]h ]h"]h$]h&]uh1jWhjHubeh}(h]h ]h"]h$]h&]uh1j5hjHhKhjHubj6)}(h>``struct ccw1 *cpa`` logical start address of channel program h](j<)}(h``struct ccw1 *cpa``h]jB)}(hjHh]hstruct ccw1 *cpa}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjHubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjHubjX)}(hhh]h)}(h(logical start address of channel programh]h(logical start address of channel program}(hjIhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhKhjIubah}(h]h ]h"]h$]h&]uh1jWhjHubeh}(h]h ]h"]h$]h&]uh1j5hjIhKhjHubj6)}(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]jB)}(hj5Ih]hunsigned long intparm}(hhhj7IhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj3Iubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhj/IubjX)}(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 }(h@user specific interruption parameter; will be presented back to hjNIhhhNhNubj)}(h**cdev**h]hcdev}(hhhjWIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNIubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hf's interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.hjNIhhhNhNubeh}(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&]uh1jWhj/Iubeh}(h]h ]h"]h$]h&]uh1j5hjJIhKhjHubj6)}(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]jB)}(hjIh]h__u8 lpm}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjIubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj}IubjX)}(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.}(hjIhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chKhjIubah}(h]h ]h"]h$]h&]uh1jWhj}Iubeh}(h]h ]h"]h$]h&]uh1j5hjIhMhjHubj6)}(h0``__u8 key`` storage key to be used for the I/O h](j<)}(h ``__u8 key``h]jB)}(hjIh]h__u8 key}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjIubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjIubjX)}(hhh]h)}(h"storage key to be used for the I/Oh]h"storage key to be used for the I/O}(hjIhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIhMhjIubah}(h]h ]h"]h$]h&]uh1jWhjIubeh}(h]h ]h"]h$]h&]uh1j5hjIhMhjHubj6)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j<)}(h``unsigned long flags``h]jB)}(hjIh]hunsigned long flags}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjIubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjIubjX)}(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.}(hjJhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj Jubah}(h]h ]h"]h$]h&]uh1jWhjIubeh}(h]h ]h"]h$]h&]uh1j5hj JhMhjHubeh}(h]h ]h"]h$]h&]uh1j0hjHubh)}(h**Description**h]j)}(hj2Jh]h Description}(hhhj4JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Jubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjHubh)}(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 }(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 hjHJhhhNhNubj)}(h **intparm**h]hintparm}(hhhjQJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHJubh specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().}(h specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().hjHJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjHubh)}(h **Return**h]j)}(hjmJh]hReturn}(hhhjoJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkJubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjHubj?)}(hhh]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](jB)}(h``0``h]h0}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjJubh$, if the operation was successful; -}(h$, if the operation was successful; -hjJhhhNhNubjB)}(h ``EBUSY``h]hEBUSY}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjJubh-, if the device is busy, or status pending; -}(h-, if the device is busy, or status pending; -hjJhhhNhNubjB)}(h ``EACCES``h]hEACCES}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjJubh, if no path specified in }(h, if no path specified in hjJhhhNhNubj)}(h**lpm**h]hlpm}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh is operational; -}(h is operational; -hjJhhhNhNubjB)}(h ``ENODEV``h]hENODEV}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjJubh#, if the device is not operational.}(h#, if the device is not operational.hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjJubah}(h]h ]h"]h$]h&]uh1j>hjHubh)}(h **Context**h]j)}(hjJh]hContext}(hhhjJhhhNhNubah}(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.chMhjHubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjKhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjHubeh}(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](j1)}(hinth]hint}(hhhj=KhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj9Khhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hhhjLKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj9KhhhjKKhMubj)}(hccw_device_starth]j)}(hccw_device_starth]hccw_device_start}(hhhj^KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZKubah}(h]h ](jjeh"]h$]h&]jjuh1jhj9KhhhjKKhMubji)}(ha(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjzKhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjvKubjx)}(h h]h }(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjvKubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jj`Ksbc.ccw_device_startasbuh1hhjvKubjx)}(h h]h }(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjvKubj)}(hjh]h*}(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvKubj)}(hcdevh]hcdev}(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvKubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjrKubjo)}(hstruct ccw1 *cpah](jf)}(hjih]hstruct}(hhhjKhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjKubjx)}(h h]h }(hhhjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjKubh)}(hhh]j)}(hccw1h]hccw1}(hhhj LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj LmodnameN classnameNjj)}j]jKc.ccw_device_startasbuh1hhjKubjx)}(h h]h }(hhhj(LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjKubj)}(hjh]h*}(hhhj6LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(hcpah]hcpa}(hhhjCLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjrKubjo)}(hunsigned long intparmh](j1)}(hunsignedh]hunsigned}(hhhj\LhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjXLubjx)}(h h]h }(hhhjjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjXLubj1)}(hlongh]hlong}(hhhjxLhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjXLubjx)}(h h]h }(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjXLubj)}(hintparmh]hintparm}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXLubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjrKubjo)}(h__u8 lpmh](h)}(hhh]j)}(h__u8h]h__u8}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jKc.ccw_device_startasbuh1hhjLubjx)}(h h]h }(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjLubj)}(hlpmh]hlpm}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjrKubjo)}(hunsigned long flagsh](j1)}(hunsignedh]hunsigned}(hhhjLhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjLubjx)}(h h]h }(hhhjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjLubj1)}(hlongh]hlong}(hhhjMhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjLubjx)}(h h]h }(hhhjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjLubj)}(hflagsh]hflags}(hhhj-MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjrKubeh}(h]h ]h"]h$]h&]jjuh1jhhj9KhhhjKKhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj5KhhhjKKhMubah}(h]j0Kah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM5hj2Khhubj)}(hhh]h)}(hstart a s390 channel programh]hstart a s390 channel program}(hjZMhjXMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjUMhhubah}(h]h ]h"]h$]h&]uh1jhj2KhhhjKKhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpMjjpMjuh1jThhhjhNhNubj)}(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)}(hjzMh]h Parameters}(hhhj|MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxMubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjtMubj1)}(hhh](j6)}(h.``struct ccw_device *cdev`` target ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjMh]hstruct ccw_device *cdev}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjMubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjMubjX)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjMhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jWhjMubeh}(h]h ]h"]h$]h&]uh1j5hjMhMhjMubj6)}(h>``struct ccw1 *cpa`` logical start address of channel program h](j<)}(h``struct ccw1 *cpa``h]jB)}(hjMh]hstruct ccw1 *cpa}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjMubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjMubjX)}(hhh]h)}(h(logical start address of channel programh]h(logical start address of channel program}(hjMhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jWhjMubeh}(h]h ]h"]h$]h&]uh1j5hjMhMhjMubj6)}(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]jB)}(hj Nh]hunsigned long intparm}(hhhj NhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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!hjNubjX)}(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 }(h@user specific interruption parameter; will be presented back to hj$NhhhNhNubj)}(h**cdev**h]hcdev}(hhhj-NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Nubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hf's interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.hj$NhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj!Nubah}(h]h ]h"]h$]h&]uh1jWhjNubeh}(h]h ]h"]h$]h&]uh1j5hj NhM!hjMubj6)}(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]jB)}(hjYNh]h__u8 lpm}(hhhj[NhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjWNubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM#hjSNubjX)}(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.}(hjtNhjrNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM"hjoNubah}(h]h ]h"]h$]h&]uh1jWhjSNubeh}(h]h ]h"]h$]h&]uh1j5hjnNhM#hjMubj6)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j<)}(h``unsigned long flags``h]jB)}(hjNh]hunsigned long flags}(hhhjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjNubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM%hjNubjX)}(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.}(hjNhjNhhhNhNubah}(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&]uh1jWhjNubeh}(h]h ]h"]h$]h&]uh1j5hjNhM%hjMubeh}(h]h ]h"]h$]h&]uh1j0hjtMubh)}(h**Description**h]j)}(hjNh]h Description}(hhhjNhhhNhNubah}(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'hjtMubh)}(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 }(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}(hhhjNhhhNhNubah}(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().}(h 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'hjtMubh)}(h **Return**h]j)}(hj Oh]hReturn}(hhhj OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM.hjtMubj?)}(hhh]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](jB)}(h``0``h]h0}(hhhj'OhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj#Oubh$, if the operation was successful; -}(h$, if the operation was successful; -hj#OhhhNhNubjB)}(h ``EBUSY``h]hEBUSY}(hhhj:OhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj#Oubh-, if the device is busy, or status pending; -}(h-, if the device is busy, or status pending; -hj#OhhhNhNubjB)}(h ``EACCES``h]hEACCES}(hhhjMOhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj#Oubh, if no path specified in }(h, if no path specified in hj#OhhhNhNubj)}(h**lpm**h]hlpm}(hhhj`OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Oubh is operational; -}(h is operational; -hj#OhhhNhNubjB)}(h ``ENODEV``h]hENODEV}(hhhjsOhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj#Oubh#, if the device is not operational.}(h#, if the device is not operational.hj#OhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM/hj Oubah}(h]h ]h"]h$]h&]uh1j>hjtMubh)}(h **Context**h]j)}(hjOh]hContext}(hhhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM4hjtMubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjOhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM4hjtMubeh}(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](j1)}(hinth]hint}(hhhjOhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjOhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM>ubjx)}(h h]h }(hhhjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjOhhhjOhM>ubj)}(hccw_device_start_timeouth]j)}(hccw_device_start_timeouth]hccw_device_start_timeout}(hhhjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ](jjeh"]h$]h&]jjuh1jhjOhhhjOhM>ubji)}(hn(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags, int expires)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjPhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjPubjx)}(h h]h }(hhhj$PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj5PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Pubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7PmodnameN classnameNjj)}j]j)}jjOsbc.ccw_device_start_timeoutasbuh1hhjPubjx)}(h h]h }(hhhjUPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubj)}(hjh]h*}(hhhjcPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hcdevh]hcdev}(hhhjpPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjPubjo)}(hstruct ccw1 *cpah](jf)}(hjih]hstruct}(hhhjPhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjPubjx)}(h h]h }(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubh)}(hhh]j)}(hccw1h]hccw1}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]jQPc.ccw_device_start_timeoutasbuh1hhjPubjx)}(h h]h }(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubj)}(hjh]h*}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hcpah]hcpa}(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjPubjo)}(hunsigned long intparmh](j1)}(hunsignedh]hunsigned}(hhhjPhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjPubjx)}(h h]h }(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubj1)}(hlongh]hlong}(hhhjQhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjPubjx)}(h h]h }(hhhj#QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPubj)}(hintparmh]hintparm}(hhhj1QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjPubjo)}(h__u8 lpmh](h)}(hhh]j)}(h__u8h]h__u8}(hhhjMQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOQmodnameN classnameNjj)}j]jQPc.ccw_device_start_timeoutasbuh1hhjFQubjx)}(h h]h }(hhhjkQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFQubj)}(hlpmh]hlpm}(hhhjyQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFQubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjPubjo)}(hunsigned long flagsh](j1)}(hunsignedh]hunsigned}(hhhjQhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjQubjx)}(h h]h }(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjQubj1)}(hlongh]hlong}(hhhjQhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjQubjx)}(h h]h }(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjQubj)}(hflagsh]hflags}(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjPubjo)}(h int expiresh](j1)}(hinth]hint}(hhhjQhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjQubjx)}(h h]h }(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjQubj)}(hexpiresh]hexpires}(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjPubeh}(h]h ]h"]h$]h&]jjuh1jhhjOhhhjOhM>ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjOhhhjOhM>ubah}(h]jOah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM[hjOhhubj)}(hhh]h)}(h)start a s390 channel program with timeouth]h)start a s390 channel program with timeout}(hj,Rhj*RhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM=hj'Rhhubah}(h]h ]h"]h$]h&]uh1jhjOhhhjOhM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBRjjBRjuh1jThhhjhNhNubj)}(hX1**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)}(hjLRh]h Parameters}(hhhjNRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJRubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMAhjFRubj1)}(hhh](j6)}(h.``struct ccw_device *cdev`` target ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjkRh]hstruct ccw_device *cdev}(hhhjmRhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjiRubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM>hjeRubjX)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjRhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhM>hjRubah}(h]h ]h"]h$]h&]uh1jWhjeRubeh}(h]h ]h"]h$]h&]uh1j5hjRhM>hjbRubj6)}(h>``struct ccw1 *cpa`` logical start address of channel program h](j<)}(h``struct ccw1 *cpa``h]jB)}(hjRh]hstruct ccw1 *cpa}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjRubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM?hjRubjX)}(hhh]h)}(h(logical start address of channel programh]h(logical start address of channel program}(hjRhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhM?hjRubah}(h]h ]h"]h$]h&]uh1jWhjRubeh}(h]h ]h"]h$]h&]uh1j5hjRhM?hjbRubj6)}(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]jB)}(hjRh]hunsigned long intparm}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjRubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMBhjRubjX)}(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 }(h@user specific interruption parameter; will be presented back to hjRhhhNhNubj)}(h**cdev**h]hcdev}(hhhjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubhh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.}(hf'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&]uh1jWhjRubeh}(h]h ]h"]h$]h&]uh1j5hjRhMBhjbRubj6)}(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]jB)}(hj+Sh]h__u8 lpm}(hhhj-ShhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj)Subah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMDhj%SubjX)}(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.}(hjFShjDShhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMChjASubah}(h]h ]h"]h$]h&]uh1jWhj%Subeh}(h]h ]h"]h$]h&]uh1j5hj@ShMDhjbRubj6)}(ha``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. h](j<)}(h``unsigned long flags``h]jB)}(hjeSh]hunsigned long flags}(hhhjgShhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjcSubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMFhj_SubjX)}(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.}(hjShj~ShhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMEhj{Subah}(h]h ]h"]h$]h&]uh1jWhj_Subeh}(h]h ]h"]h$]h&]uh1j5hjzShMFhjbRubj6)}(h)``int expires`` timeout value in jiffies h](j<)}(h``int expires``h]jB)}(hjSh]h int expires}(hhhjShhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjSubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMGhjSubjX)}(hhh]h)}(htimeout value in jiffiesh]htimeout value in jiffies}(hjShjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMGhjSubah}(h]h ]h"]h$]h&]uh1jWhjSubeh}(h]h ]h"]h$]h&]uh1j5hjShMGhjbRubeh}(h]h ]h"]h$]h&]uh1j0hjFRubh)}(h**Description**h]j)}(hjSh]h Description}(hhhjShhhNhNubah}(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.chMIhjFRubh)}(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 }(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}(hhhjShhhNhNubah}(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(-}(h. 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(-hjShhhNhNubjB)}(h ``ETIMEDOUT``h]h ETIMEDOUT}(hhhj ThhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjSubh/). The interruption handler will echo back the }(h/). The interruption handler will echo back the hjShhhNhNubj)}(h **intparm**h]hintparm}(hhhjThhhNhNubah}(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().}(h 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.chMIhjFRubh)}(h **Return**h]j)}(hj;Th]hReturn}(hhhj=ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Tubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMThjFRubj?)}(hhh]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](jB)}(h``0``h]h0}(hhhjXThhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjTTubh$, if the operation was successful; -}(h$, if the operation was successful; -hjTThhhNhNubjB)}(h ``EBUSY``h]hEBUSY}(hhhjkThhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjTTubh-, if the device is busy, or status pending; -}(h-, if the device is busy, or status pending; -hjTThhhNhNubjB)}(h ``EACCES``h]hEACCES}(hhhj~ThhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjTTubh, if no path specified in }(h, if no path specified in hjTThhhNhNubj)}(h**lpm**h]hlpm}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTTubh is operational; -}(h is operational; -hjTThhhNhNubjB)}(h ``ENODEV``h]hENODEV}(hhhjThhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjTTubh#, if the device is not operational.}(h#, if the device is not operational.hjTThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMUhjQTubah}(h]h ]h"]h$]h&]uh1j>hjFRubh)}(h **Context**h]j)}(hjTh]hContext}(hhhjThhhNhNubah}(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.chMZhjFRubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjThjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMZhjFRubeh}(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](j1)}(hinth]hint}(hhhj UhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjUhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMgubjx)}(h h]h }(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjUhhhjUhMgubj)}(hccw_device_halth]j)}(hccw_device_halth]hccw_device_halt}(hhhj,UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(Uubah}(h]h ](jjeh"]h$]h&]jjuh1jhjUhhhjUhMgubji)}(h0(struct ccw_device *cdev, unsigned long intparm)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjHUhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjDUubjx)}(h h]h }(hhhjUUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjDUubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjfUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhUmodnameN classnameNjj)}j]j)}jj.Usbc.ccw_device_haltasbuh1hhjDUubjx)}(h h]h }(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjDUubj)}(hjh]h*}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDUubj)}(hcdevh]hcdev}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDUubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj@Uubjo)}(hunsigned long intparmh](j1)}(hunsignedh]hunsigned}(hhhjUhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjUubjx)}(h h]h }(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjUubj1)}(hlongh]hlong}(hhhjUhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjUubjx)}(h h]h }(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjUubj)}(hintparmh]hintparm}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj@Uubeh}(h]h ]h"]h$]h&]jjuh1jhhjUhhhjUhMgubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjUhhhjUhMgubah}(h]jTah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMvhjUhhubj)}(hhh]h)}(hhalt I/O request processingh]hhalt I/O request processing}(hjVhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMfhjVhhubah}(h]h ]h"]h$]h&]uh1jhjUhhhjUhMgubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5Vjj5Vjuh1jThhhjhNhNubj)}(hXk**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)}(hj?Vh]h Parameters}(hhhjAVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Vubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMjhj9Vubj1)}(hhh](j6)}(h.``struct ccw_device *cdev`` target ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj^Vh]hstruct ccw_device *cdev}(hhhj`VhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj\Vubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMghjXVubjX)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjyVhjwVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsVhMghjtVubah}(h]h ]h"]h$]h&]uh1jWhjXVubeh}(h]h ]h"]h$]h&]uh1j5hjsVhMghjUVubj6)}(hX``unsigned long intparm`` interruption parameter to be returned upon conclusion of hsch h](j<)}(h``unsigned long intparm``h]jB)}(hjVh]hunsigned long intparm}(hhhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjVubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhhjVubjX)}(hhh]h)}(h=interruption parameter to be returned upon conclusion of hschh]h=interruption parameter to be returned upon conclusion of hsch}(hjVhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhMhhjVubah}(h]h ]h"]h$]h&]uh1jWhjVubeh}(h]h ]h"]h$]h&]uh1j5hjVhMhhjUVubeh}(h]h ]h"]h$]h&]uh1j0hj9Vubh)}(h**Description**h]j)}(hjVh]h Description}(hhhjVhhhNhNubah}(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.chMjhj9Vubh)}(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 }(h ccw_device_halt() calls hsch on hjVhhhNhNubj)}(h**cdev**h]hcdev}(hhhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubh=’s subchannel. The interruption handler will echo back the }(h;'s subchannel. The interruption handler will echo back the hjVhhhNhNubj)}(h **intparm**h]hintparm}(hhhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubhu specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_clear().}(hu 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.chMjhj9Vubh)}(h **Return**h]j)}(hj Wh]hReturn}(hhhj"WhhhNhNubah}(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.chMohj9Vubj?)}(hhh]h)}(h``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending.h](jB)}(h``0``h]h0}(hhhj=WhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj9Wubh on success, -}(h on success, -hj9WhhhNhNubjB)}(h ``ENODEV``h]hENODEV}(hhhjPWhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj9Wubh on device not operational, -}(h on device not operational, -hj9WhhhNhNubjB)}(h ``EINVAL``h]hEINVAL}(hhhjcWhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj9Wubh on invalid device state, -}(h on invalid device state, -hj9WhhhNhNubjB)}(h ``EBUSY``h]hEBUSY}(hhhjvWhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj9Wubh% on device busy or interrupt pending.}(h% on device busy or interrupt pending.hj9WhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMphj6Wubah}(h]h ]h"]h$]h&]uh1j>hj9Vubh)}(h **Context**h]j)}(hjWh]hContext}(hhhjWhhhNhNubah}(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.chMuhj9Vubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjWhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMuhj9Vubeh}(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](j1)}(hinth]hint}(hhhjWhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjWhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjWhhhjWhMubj)}(hccw_device_resumeh]j)}(hccw_device_resumeh]hccw_device_resume}(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubah}(h]h ](jjeh"]h$]h&]jjuh1jhjWhhhjWhMubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjXhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjXubjx)}(h h]h }(hhhj'XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjXubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj8XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5Xubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:XmodnameN classnameNjj)}j]j)}jjXsbc.ccw_device_resumeasbuh1hhjXubjx)}(h h]h }(hhhjXXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjXubj)}(hjh]h*}(hhhjfXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hcdevh]hcdev}(hhhjsXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjXubah}(h]h ]h"]h$]h&]jjuh1jhhjWhhhjWhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjWhhhjWhMubah}(h]jWah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjWhhubj)}(hhh]h)}(h resume channel program executionh]h resume channel program execution}(hjXhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXhhubah}(h]h ]h"]h$]h&]uh1jhjWhhhjWhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjuh1jThhhjhNhNubj)}(hXe**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)}(hjXh]h Parameters}(hhhjXhhhNhNubah}(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.chMhjXubj1)}(hhh]j6)}(h.``struct ccw_device *cdev`` target ccw device h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjXh]hstruct ccw_device *cdev}(hhhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjXubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXubjX)}(hhh]h)}(htarget ccw deviceh]htarget ccw device}(hjXhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jWhjXubeh}(h]h ]h"]h$]h&]uh1j5hjXhMhjXubah}(h]h ]h"]h$]h&]uh1j0hjXubh)}(h**Description**h]j)}(hjYh]h Description}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXubh)}(h8ccw_device_resume() calls rsch on **cdev**'s subchannel.h](h"ccw_device_resume() calls rsch on }(h"ccw_device_resume() calls rsch on hj0YhhhNhNubj)}(h**cdev**h]hcdev}(hhhj9YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Yubh’s subchannel.}(h's subchannel.hj0YhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXubh)}(h **Return**h]j)}(hjUYh]hReturn}(hhhjWYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSYubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXubj?)}(hhh]h)}(h``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending.h](jB)}(h``0``h]h0}(hhhjrYhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjnYubh on success, -}(h on success, -hjnYhhhNhNubjB)}(h ``ENODEV``h]hENODEV}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjnYubh on device not operational, -}(h on device not operational, -hjnYhhhNhNubjB)}(h ``EINVAL``h]hEINVAL}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjnYubh on invalid device state, -}(h on invalid device state, -hjnYhhhNhNubjB)}(h ``EBUSY``h]hEBUSY}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjnYubh% on device busy or interrupt pending.}(h% on device busy or interrupt pending.hjnYhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjkYubah}(h]h ]h"]h$]h&]uh1j>hjXubh)}(h **Context**h]j)}(hjYh]hContext}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXubh)}(h)Interrupts disabled, ccw device lock heldh]h)Interrupts disabled, ccw device lock held}(hjYhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjXubeh}(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}(hhhjZhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjZhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hhhj ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZhhhjZhMubh)}(hhh]j)}(hciwh]hciw}(hhhj1ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.Zubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3ZmodnameN classnameNjj)}j]j)}jccw_device_get_ciwsbc.ccw_device_get_ciwasbuh1hhjZhhhjZhMubjx)}(h h]h }(hhhjRZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZhhhjZhMubj)}(hjh]h*}(hhhj`ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhjZhMubj)}(hccw_device_get_ciwh]j)}(hjOZh]hccw_device_get_ciw}(hhhjqZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmZubah}(h]h ](jjeh"]h$]h&]jjuh1jhjZhhhjZhMubji)}(h#(struct ccw_device *cdev, __u32 ct)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjZhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjZubjx)}(h h]h }(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]jMZc.ccw_device_get_ciwasbuh1hhjZubjx)}(h h]h }(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZubj)}(hjh]h*}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(hcdevh]hcdev}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjZubjo)}(h__u32 cth](h)}(hhh]j)}(h__u32h]h__u32}(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]jMZc.ccw_device_get_ciwasbuh1hhjZubjx)}(h h]h }(hhhj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZubj)}(hcth]hct}(hhhj+[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjZubeh}(h]h ]h"]h$]h&]jjuh1jhhjZhhhjZhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj ZhhhjZhMubah}(h]jZah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjZhhubj)}(hhh]h)}(h.Search for CIW command in extended sense data.h]h.Search for CIW command in extended sense data.}(hjX[hjV[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjS[hhubah}(h]h ]h"]h$]h&]uh1jhjZhhhjZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjn[jjn[juh1jThhhjhNhNubj)}(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)}(hjx[h]h Parameters}(hhhjz[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv[ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjr[ubj1)}(hhh](j6)}(h2``struct ccw_device *cdev`` ccw device to inspect h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj[h]hstruct ccw_device *cdev}(hhhj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj[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[ubjX)}(hhh]h)}(hccw device to inspecth]hccw device to inspect}(hj[hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jWhj[ubeh}(h]h ]h"]h$]h&]uh1j5hj[hMhj[ubj6)}(h&``__u32 ct`` command type to look for h](j<)}(h ``__u32 ct``h]jB)}(hj[h]h__u32 ct}(hhhj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj[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[ubjX)}(hhh]h)}(hcommand type to look forh]hcommand type to look for}(hj[hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hMhj[ubah}(h]h ]h"]h$]h&]uh1jWhj[ubeh}(h]h ]h"]h$]h&]uh1j5hj[hMhj[ubeh}(h]h ]h"]h$]h&]uh1j0hjr[ubh)}(h**Description**h]j)}(hj \h]h Description}(hhhj \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.chMhjr[ubh)}(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#\hj!\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjr[ubh)}(h **Return**h]j)}(hj2\h]hReturn}(hhhj4\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0\ubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjr[ubj?)}(hhh]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](jB)}(h``NULL``h]hNULL}(hhhjO\hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjK\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.}(h 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.hjK\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjH\ubah}(h]h ]h"]h$]h&]uh1j>hjr[ubeh}(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}(hhhj\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 }(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj\hhhj\hMubj)}(hccw_device_get_path_maskh]j)}(hj\h]hccw_device_get_path_mask}(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj\hhhj\hMubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj\hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj\ubjx)}(h h]h }(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj\ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]modnameN classnameNjj)}j]j\c.ccw_device_get_path_maskasbuh1hhj\ubjx)}(h h]h }(hhhj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj\ubj)}(hjh]h*}(hhhj+]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hcdevh]hcdev}(hhhj8]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj\ubah}(h]h ]h"]h$]h&]jjuh1jhhj\hhhj\hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj\hhhj\hMubah}(h]j\ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj\hhubj)}(hhh]h)}(hget currently available pathsh]hget currently available paths}(hje]hjc]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{]juh1jThhhjhNhNubj)}(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}(hhhj]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]ubj1)}(hhh]j6)}(h5``struct ccw_device *cdev`` ccw device to be queried h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj]h]hstruct ccw_device *cdev}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj]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]ubjX)}(hhh]h)}(hccw device to be queriedh]hccw device to be queried}(hj]hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMhj]ubah}(h]h ]h"]h$]h&]uh1jWhj]ubeh}(h]h ]h"]h$]h&]uh1j5hj]hMhj]ubah}(h]h ]h"]h$]h&]uh1j0hj]ubh)}(h **Return**h]j)}(hj]h]hReturn}(hhhj]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]ubj?)}(hhh]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](jB)}(h``0``h]h0}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj]ubh| if no subchannel for the device is available, else the mask of currently available paths for the ccw device’s subchannel.}(hz 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]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}(hhhj<^hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj8^hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hhhjJ^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj8^hhhjI^hMubh)}(hhh]j)}(hchannel_path_desc_fmt0h]hchannel_path_desc_fmt0}(hhhj[^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]^modnameN classnameNjj)}j]j)}jccw_device_get_chp_descsbc.ccw_device_get_chp_descasbuh1hhj8^hhhjI^hMubjx)}(h h]h }(hhhj|^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj8^hhhjI^hMubj)}(hjh]h*}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8^hhhjI^hMubj)}(hccw_device_get_chp_desch]j)}(hjy^h]hccw_device_get_chp_desc}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj8^hhhjI^hMubji)}(h&(struct ccw_device *cdev, int chp_idx)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj^hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj^ubjx)}(h h]h }(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj^ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]jw^c.ccw_device_get_chp_descasbuh1hhj^ubjx)}(h h]h }(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj^ubj)}(hjh]h*}(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(hcdevh]hcdev}(hhhj _hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj^ubjo)}(h int chp_idxh](j1)}(hinth]hint}(hhhj&_hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj"_ubjx)}(h h]h }(hhhj4_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj"_ubj)}(hchp_idxh]hchp_idx}(hhhjB_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"_ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj^ubeh}(h]h ]h"]h$]h&]jjuh1jhhj8^hhhjI^hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj4^hhhjI^hMubah}(h]j/^ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj1^hhubj)}(hhh]h)}(h.return newly allocated channel-path descriptorh]h.return newly allocated channel-path descriptor}(hjo_hjm_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjj_hhubah}(h]h ]h"]h$]h&]uh1jhj1^hhhjI^hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_juh1jThhhjhNhNubj)}(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}(hhhj_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_ubj1)}(hhh](j6)}(h@``struct ccw_device *cdev`` device to obtain the descriptor for h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj_h]hstruct ccw_device *cdev}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj_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_ubjX)}(hhh]h)}(h#device to obtain the descriptor forh]h#device to obtain the descriptor for}(hj_hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMhj_ubah}(h]h ]h"]h$]h&]uh1jWhj_ubeh}(h]h ]h"]h$]h&]uh1j5hj_hMhj_ubj6)}(h*``int chp_idx`` index of the channel path h](j<)}(h``int chp_idx``h]jB)}(hj_h]h int chp_idx}(hhhj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj_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_ubjX)}(hhh]h)}(hindex of the channel pathh]hindex of the channel path}(hj`hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMhj_ubah}(h]h ]h"]h$]h&]uh1jWhj_ubeh}(h]h ]h"]h$]h&]uh1j5hj_hMhj_ubeh}(h]h ]h"]h$]h&]uh1j0hj_ubh)}(h**Description**h]j)}(hj"`h]h Description}(hhhj$`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 }(h}On success return a newly allocated copy of the channel-path description data associated with the given channel path. Return hj8`hhhNhNubjB)}(h``NULL``h]hNULL}(hhhjA`hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj8`ubh on error.}(h on error.hj8`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}(hhhj~`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_strasbuh1hhjw`hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjw`hhhj`hMubj)}(hjh]h*}(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw`hhhj`hMubj)}(hccw_device_get_util_strh]j)}(hj`h]hccw_device_get_util_str}(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjw`hhhj`hMubji)}(h&(struct ccw_device *cdev, int chp_idx)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj`hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj`ubjx)}(h h]h }(hhhj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj`ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj`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 }(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj`ubj)}(hjh]h*}(hhhj$ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj)}(hcdevh]hcdev}(hhhj1ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj`ubjo)}(h int chp_idxh](j1)}(hinth]hint}(hhhjJahhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjFaubjx)}(h h]h }(hhhjXahhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjFaubj)}(hchp_idxh]hchp_idx}(hhhjfahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFaubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj`ubeh}(h]h ]h"]h$]h&]jjuh1jhhjw`hhhj`hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjs`hhhj`hMubah}(h]jn`ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjp`hhubj)}(hhh]h)}(h&return newly allocated utility stringsh]h&return newly allocated utility strings}(hjahjahhhNhNubah}(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&]uh1jhjp`hhhj`hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjajjajuh1jThhhjhNhNubj)}(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)}(hjah]h Parameters}(hhhjahhhNhNubah}(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.chMhjaubj1)}(hhh](j6)}(hE``struct ccw_device *cdev`` device to obtain the utility strings for h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjah]hstruct ccw_device *cdev}(hhhjahhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjaubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjaubjX)}(hhh]h)}(h(device to obtain the utility strings forh]h(device to obtain the utility strings for}(hjahjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMhjaubah}(h]h ]h"]h$]h&]uh1jWhjaubeh}(h]h ]h"]h$]h&]uh1j5hjahMhjaubj6)}(h*``int chp_idx`` index of the channel path h](j<)}(h``int chp_idx``h]jB)}(hj bh]h int chp_idx}(hhhj bhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj bubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjbubjX)}(hhh]h)}(hindex of the channel pathh]hindex of the channel path}(hj&bhj$bhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj bhMhj!bubah}(h]h ]h"]h$]h&]uh1jWhjbubeh}(h]h ]h"]h$]h&]uh1j5hj bhMhjaubeh}(h]h ]h"]h$]h&]uh1j0hjaubh)}(h**Description**h]j)}(hjFbh]h Description}(hhhjHbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDbubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjaubh)}(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 }(hoOn success return a newly allocated copy of the utility strings associated with the given channel path. Return hj\bhhhNhNubjB)}(h``NULL``h]hNULL}(hhhjebhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj\bubh on error.}(h on error.hj\bhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjaubeh}(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](j1)}(hvoidh]hvoid}(hhhjbhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjbhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM ubjx)}(h h]h }(hhhjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjbhhhjbhM ubj)}(hccw_device_get_idh]j)}(hccw_device_get_idh]hccw_device_get_id}(hhhjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ](jjeh"]h$]h&]jjuh1jhjbhhhjbhM ubji)}(h4(struct ccw_device *cdev, struct ccw_dev_id *dev_id)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjbhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjbubjx)}(h h]h }(hhhjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjbubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjbsbc.ccw_device_get_idasbuh1hhjbubjx)}(h h]h }(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjbubj)}(hjh]h*}(hhhj(chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(hcdevh]hcdev}(hhhj5chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjbubjo)}(hstruct ccw_dev_id *dev_idh](jf)}(hjih]hstruct}(hhhjNchhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjJcubjx)}(h h]h }(hhhj[chhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjJcubh)}(hhh]j)}(h ccw_dev_idh]h ccw_dev_id}(hhhjlchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjicubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjncmodnameN classnameNjj)}j]jcc.ccw_device_get_idasbuh1hhjJcubjx)}(h h]h }(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjJcubj)}(hjh]h*}(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJcubj)}(hdev_idh]hdev_id}(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJcubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjbubeh}(h]h ]h"]h$]h&]jjuh1jhhjbhhhjbhM ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjbhhhjbhM ubah}(h]jbah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjbhhubj)}(hhh]h)}(hobtain a ccw device idh]hobtain a ccw device id}(hjchjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjchhubah}(h]h ]h"]h$]h&]uh1jhjbhhhjbhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjuh1jThhhjhNhNubj)}(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)}(hjch]h Parameters}(hhhjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjcubj1)}(hhh](j6)}(h8``struct ccw_device *cdev`` device to obtain the id for h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjdh]hstruct ccw_device *cdev}(hhhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjdubah}(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 dubjX)}(hhh]h)}(hdevice to obtain the id forh]hdevice to obtain the id for}(hj,dhj*dhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&dhM hj'dubah}(h]h ]h"]h$]h&]uh1jWhj dubeh}(h]h ]h"]h$]h&]uh1j5hj&dhM hjdubj6)}(h9``struct ccw_dev_id *dev_id`` where to fill in the valuesh](j<)}(h``struct ccw_dev_id *dev_id``h]jB)}(hjJdh]hstruct ccw_dev_id *dev_id}(hhhjLdhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjHdubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjDdubjX)}(hhh]h)}(hwhere to fill in the valuesh]hwhere to fill in the values}(hjedhjcdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hj`dubah}(h]h ]h"]h$]h&]uh1jWhjDdubeh}(h]h ]h"]h$]h&]uh1j5hj_dhM hjdubeh}(h]h ]h"]h$]h&]uh1j0hjcubeh}(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](j1)}(hinth]hint}(hhhjdhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjdhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjdhhhjdhMubj)}(hccw_device_tm_start_timeout_keyh]j)}(hccw_device_tm_start_timeout_keyh]hccw_device_tm_start_timeout_key}(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ](jjeh"]h$]h&]jjuh1jhjdhhhjdhMubji)}(h^(struct ccw_device *cdev, struct tcw *tcw, unsigned long intparm, u8 lpm, u8 key, int expires)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjdhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjdubjx)}(h h]h }(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjdubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j)}jjdsb!c.ccw_device_tm_start_timeout_keyasbuh1hhjdubjx)}(h h]h }(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjdubj)}(hjh]h*}(hhhj-ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj)}(hcdevh]hcdev}(hhhj:ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjdubjo)}(hstruct tcw *tcwh](jf)}(hjih]hstruct}(hhhjSehhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjOeubjx)}(h h]h }(hhhj`ehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjOeubh)}(hhh]j)}(htcwh]htcw}(hhhjqehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjneubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsemodnameN classnameNjj)}j]je!c.ccw_device_tm_start_timeout_keyasbuh1hhjOeubjx)}(h h]h }(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjOeubj)}(hjh]h*}(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOeubj)}(htcwh]htcw}(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOeubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjdubjo)}(hunsigned long intparmh](j1)}(hunsignedh]hunsigned}(hhhjehhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjeubjx)}(h h]h }(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeubj1)}(hlongh]hlong}(hhhjehhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjeubjx)}(h h]h }(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeubj)}(hintparmh]hintparm}(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjdubjo)}(hu8 lpmh](h)}(hhh]j)}(hu8h]hu8}(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]je!c.ccw_device_tm_start_timeout_keyasbuh1hhjfubjx)}(h h]h }(hhhj5fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjfubj)}(hlpmh]hlpm}(hhhjCfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjdubjo)}(hu8 keyh](h)}(hhh]j)}(hu8h]hu8}(hhhj_fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\fubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjafmodnameN classnameNjj)}j]je!c.ccw_device_tm_start_timeout_keyasbuh1hhjXfubjx)}(h h]h }(hhhj}fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjXfubj)}(hkeyh]hkey}(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXfubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjdubjo)}(h int expiresh](j1)}(hinth]hint}(hhhjfhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjfubjx)}(h h]h }(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjfubj)}(hexpiresh]hexpires}(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjdubeh}(h]h ]h"]h$]h&]jjuh1jhhjdhhhjdhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjdhhhjdhMubah}(h]jdah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjdhhubj)}(hhh]h)}(hperform start functionh]hperform start function}(hjfhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjfhhubah}(h]h ]h"]h$]h&]uh1jhjdhhhjdhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjuh1jThhhjhNhNubj)}(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)}(hj gh]h Parameters}(hhhjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj gubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjgubj1)}(hhh](j6)}(hN``struct ccw_device *cdev`` ccw device on which to perform the start function h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj,gh]hstruct ccw_device *cdev}(hhhj.ghhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj*gubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj&gubjX)}(hhh]h)}(h1ccw device on which to perform the start functionh]h1ccw device on which to perform the start function}(hjGghjEghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAghMhjBgubah}(h]h ]h"]h$]h&]uh1jWhj&gubeh}(h]h ]h"]h$]h&]uh1j5hjAghMhj#gubj6)}(h9``struct tcw *tcw`` transport-command word to be started h](j<)}(h``struct tcw *tcw``h]jB)}(hjegh]hstruct tcw *tcw}(hhhjgghhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjcgubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj_gubjX)}(hhh]h)}(h$transport-command word to be startedh]h$transport-command word to be started}(hjghj~ghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzghMhj{gubah}(h]h ]h"]h$]h&]uh1jWhj_gubeh}(h]h ]h"]h$]h&]uh1j5hjzghMhj#gubj6)}(hW``unsigned long intparm`` user defined parameter to be passed to the interrupt handler h](j<)}(h``unsigned long intparm``h]jB)}(hjgh]hunsigned long intparm}(hhhjghhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjgubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjgubjX)}(hhh]h)}(hjmodnameN classnameNjj)}j]j@ic.ccw_device_tm_start_keyasbuh1hhj5jubjx)}(h h]h }(hhhjZjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj5jubj)}(hlpmh]hlpm}(hhhjhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5jubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjhubjo)}(hu8 keyh](h)}(hhh]j)}(hu8h]hu8}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j@ic.ccw_device_tm_start_keyasbuh1hhj}jubjx)}(h h]h }(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj}jubj)}(hkeyh]hkey}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}jubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjhubeh}(h]h ]h"]h$]h&]jjuh1jhhjhhhhjhhMKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhhjhhMKubah}(h]jhah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMThjhhhubj)}(hhh]h)}(hperform start functionh]hperform start function}(hjjhjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMJhjjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhhjhhMKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jThhhjhNhNubj)}(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)}(hjjh]h Parameters}(hhhjjhhhNhNubah}(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.chMNhjjubj1)}(hhh](j6)}(hN``struct ccw_device *cdev`` ccw device on which to perform the start function h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjkh]hstruct ccw_device *cdev}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjkubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMKhjkubjX)}(hhh]h)}(h1ccw device on which to perform the start functionh]h1ccw device on which to perform the start function}(hj7khj5khhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1khMKhj2kubah}(h]h ]h"]h$]h&]uh1jWhjkubeh}(h]h ]h"]h$]h&]uh1j5hj1khMKhjkubj6)}(h9``struct tcw *tcw`` transport-command word to be started h](j<)}(h``struct tcw *tcw``h]jB)}(hjUkh]hstruct tcw *tcw}(hhhjWkhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjSkubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMLhjOkubjX)}(hhh]h)}(h$transport-command word to be startedh]h$transport-command word to be started}(hjpkhjnkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjkhMLhjkkubah}(h]h ]h"]h$]h&]uh1jWhjOkubeh}(h]h ]h"]h$]h&]uh1j5hjjkhMLhjkubj6)}(hW``unsigned long intparm`` user defined parameter to be passed to the interrupt handler h](j<)}(h``unsigned long intparm``h]jB)}(hjkh]hunsigned long intparm}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjkubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMMhjkubjX)}(hhh]h)}(hvubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj:vubj1)}(hhh]j6)}(hT``struct ccw_device *cdev`` ccw device on which to perform the interrogate function h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj_vh]hstruct ccw_device *cdev}(hhhjavhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj]vubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjYvubjX)}(hhh]h)}(h7ccw device on which to perform the interrogate functionh]h7ccw device on which to perform the interrogate function}(hjzvhjxvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjtvhMhjuvubah}(h]h ]h"]h$]h&]uh1jWhjYvubeh}(h]h ]h"]h$]h&]uh1j5hjtvhMhjVvubah}(h]h ]h"]h$]h&]uh1j0hj:vubh)}(h**Description**h]j)}(hjvh]h Description}(hhhjvhhhNhNubah}(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.chMhj:vubh)}(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.}(hjvhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj:vubeh}(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](j1)}(hvoidh]hvoid}(hhhjvhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjvhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMubjx)}(h h]h }(hhhjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjvhhhjvhMubj)}(hccw_device_get_schidh]j)}(hccw_device_get_schidh]hccw_device_get_schid}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ](jjeh"]h$]h&]jjuh1jhjvhhhjvhMubji)}(h6(struct ccw_device *cdev, struct subchannel_id *schid)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjwhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjwubjx)}(h h]h }(hhhj)whhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjwubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj:whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj``struct ccw_device *cdev`` device on which PNSO is performed h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj6{h]hstruct ccw_device *cdev}(hhhj8{hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj4{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{ubjX)}(hhh]h)}(h!device on which PNSO is performedh]h!device on which PNSO is performed}(hjQ{hjO{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK{hMhjL{ubah}(h]h ]h"]h$]h&]uh1jWhj0{ubeh}(h]h ]h"]h$]h&]uh1j5hjK{hMhj-{ubj6)}(hR``struct chsc_pnso_area *pnso_area`` request and response block for the operation h](j<)}(h$``struct chsc_pnso_area *pnso_area``h]jB)}(hjo{h]h struct chsc_pnso_area *pnso_area}(hhhjq{hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjm{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{ubjX)}(hhh]h)}(h,request and response block for the operationh]h,request and response block for the operation}(hj{hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jWhji{ubeh}(h]h ]h"]h$]h&]uh1j5hj{hMhj-{ubj6)}(h``u8 oc`` Operation Code h](j<)}(h ``u8 oc``h]jB)}(hj{h]hu8 oc}(hhhj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj{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{ubjX)}(hhh]h)}(hOperation Codeh]hOperation Code}(hj{hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jWhj{ubeh}(h]h ]h"]h$]h&]uh1j5hj{hMhj-{ubj6)}(hT``struct chsc_pnso_resume_token resume_token`` resume token for multiblock response h](j<)}(h.``struct chsc_pnso_resume_token resume_token``h]jB)}(hj{h]h*struct chsc_pnso_resume_token resume_token}(hhhj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj{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{ubjX)}(hhh]h)}(h$resume token for multiblock responseh]h$resume token for multiblock response}(hj{hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jWhj{ubeh}(h]h ]h"]h$]h&]uh1j5hj{hMhj-{ubj6)}(h0``int cnc`` Boolean change-notification control h](j<)}(h ``int cnc``h]jB)}(hj|h]hint cnc}(hhhj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj|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|ubjX)}(hhh]h)}(h#Boolean change-notification controlh]h#Boolean change-notification control}(hj5|hj3|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/|hMhj0|ubah}(h]h ]h"]h$]h&]uh1jWhj|ubeh}(h]h ]h"]h$]h&]uh1j5hj/|hMhj-{ubeh}(h]h ]h"]h$]h&]uh1j0hj{ubh)}(h**Description**h]j)}(hjU|h]h Description}(hhhjW|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS|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)}(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)}(hjm|hjk|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj{ubh)}(hReturns 0 on success.h]hReturns 0 on success.}(hj||hjz|hhhNhNubah}(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_cssid (C function)c.ccw_device_get_cssidhNtauh1jChjhhhNhNubjU)}(hhh](jZ)}(h=int ccw_device_get_cssid (struct ccw_device *cdev, u8 *cssid)h]j`)}(hubjx)}(h h]h }(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj>ubj)}(hjh]h*}(hhhjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hiidh]hiid}(hhhj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj~ubeh}(h]h ]h"]h$]h&]jjuh1jhhj~hhhj~hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj~hhhj~hMubah}(h]j~ah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj~hhubj)}(hhh]h)}(hobtain MIF-image IDh]hobtain MIF-image ID}(hjhjhhhNhNubah}(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&]jjjjjjjuh1jThhhjhNhNubj)}(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)}(hjh]h Parameters}(hhhjhhhNhNubah}(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.chMhjubj1)}(hhh](j6)}(hB``struct ccw_device *cdev`` device to obtain the MIF-image ID for h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjh]hstruct ccw_device *cdev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjubjX)}(hhh]h)}(h%device to obtain the MIF-image ID forh]h%device to obtain the MIF-image ID for}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhMhjubj6)}(h&``u8 *iid`` The resulting MIF-image IDh](j<)}(h ``u8 *iid``h]jB)}(hj#h]hu8 *iid}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj!ubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjubjX)}(hhh]h)}(hThe resulting MIF-image IDh]hThe resulting MIF-image ID}(hj>hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhj9ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj8hMhjubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(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](j1)}(hinth]hint}(hhhj}hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjyhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjyhhhjhM ubj)}(hccw_device_get_chpidh]j)}(hccw_device_get_chpidh]hccw_device_get_chpid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjyhhhjhM ubji)}(h1(struct ccw_device *cdev, int chp_idx, u8 *chpid)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjǀhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj؀hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjՀubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjڀmodnameN classnameNjj)}j]j)}jjsbc.ccw_device_get_chpidasbuh1hhjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdevh]hcdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(h int chp_idxh](j1)}(hinth]hint}(hhhj,hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj(ubjx)}(h h]h }(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj(ubj)}(hchp_idxh]hchp_idx}(hhhjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(h u8 *chpidh](h)}(hhh]j)}(hu8h]hu8}(hhhjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]jc.ccw_device_get_chpidasbuh1hhj]ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj]ubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(hchpidh]hchpid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubeh}(h]h ]h"]h$]h&]jjuh1jhhjyhhhjhM ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjuhhhjhM ubah}(h]jpah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chMhjrhhubj)}(hhh]h)}(hobtain Channel Path IDh]hobtain Channel Path ID}(hjʁ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&]uh1jhjrhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhjhNhNubj)}(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)}(hjh]h Parameters}(hhhjhhhNhNubah}(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 hjubj1)}(hhh](j6)}(hE``struct ccw_device *cdev`` device to obtain the Channel Path ID for h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj h]hstruct ccw_device *cdev}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjubjX)}(hhh]h)}(h(device to obtain the Channel Path ID forh]h(device to obtain the Channel Path ID for}(hj$hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhM hjubj6)}(h*``int chp_idx`` Index of the channel path h](j<)}(h``int chp_idx``h]jB)}(hjBh]h int chp_idx}(hhhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj@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<ubjX)}(hhh]h)}(hIndex of the channel pathh]hIndex of the channel path}(hj]hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhM hjXubah}(h]h ]h"]h$]h&]uh1jWhj<ubeh}(h]h ]h"]h$]h&]uh1j5hjWhM hjubj6)}(h+``u8 *chpid`` The resulting Channel Path IDh](j<)}(h ``u8 *chpid``h]jB)}(hj{h]h u8 *chpid}(hhhj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjyubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM hjuubjX)}(hhh]h)}(hThe resulting Channel Path IDh]hThe resulting Channel Path ID}(hjhjhhhNhNubah}(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&]uh1jWhjuubeh}(h]h ]h"]h$]h&]uh1j5hjhM hjubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(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](j1)}(hinth]hint}(hhhjՂhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjтhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjтhhhjhM ubj)}(hccw_device_get_chidh]j)}(hccw_device_get_chidh]hccw_device_get_chid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjтhhhjhM ubji)}(h1(struct ccw_device *cdev, int chp_idx, u16 *chid)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjsbc.ccw_device_get_chidasbuh1hhjubjx)}(h h]h }(hhhjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdevh]hcdev}(hhhjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj ubjo)}(h int chp_idxh](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hchp_idxh]hchp_idx}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj ubjo)}(h u16 *chidh](h)}(hhh]j)}(hu16h]hu16}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jLc.ccw_device_get_chidasbuh1hhjubjx)}(h h]h }(hhhjڃhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hchidh]hchid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj ubeh}(h]h ]h"]h$]h&]jjuh1jhhjтhhhjhM ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj͂hhhjhM ubah}(h]jȂah ](jjeh"]h$]h&]juh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM$hjʂhhubj)}(hhh]h)}(h1obtain Channel ID associated with specified CHPIDh]h1obtain Channel ID associated with specified CHPID}(hj"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ʂhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8juh1jThhhjhNhNubj)}(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)}(hjBh]h Parameters}(hhhjDhhhNhNubah}(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<ubj1)}(hhh](j6)}(h@``struct ccw_device *cdev`` device to obtain the Channel ID for h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjah]hstruct ccw_device *cdev}(hhhjchhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj_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[ubjX)}(hhh]h)}(h#device to obtain the Channel ID forh]h#device to obtain the Channel ID for}(hj|hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhM hjwubah}(h]h ]h"]h$]h&]uh1jWhj[ubeh}(h]h ]h"]h$]h&]uh1j5hjvhM hjXubj6)}(h*``int chp_idx`` Index of the channel path h](j<)}(h``int chp_idx``h]jB)}(hjh]h int chp_idx}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;he/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.chM!hjubjX)}(hhh]h)}(hIndex of the channel pathh]hIndex of the channel path}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM!hjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhM!hjXubj6)}(h&``u16 *chid`` The resulting Channel IDh](j<)}(h ``u16 *chid``h]jB)}(hjӄh]h u16 *chid}(hhhjՄhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjф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̈́ubjX)}(hhh]h)}(hThe resulting Channel IDh]hThe resulting Channel ID}(hjhjhhhNhNubah}(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&]uh1jWhj̈́ubeh}(h]h ]h"]h$]h&]uh1j5hjhM#hjXubeh}(h]h ]h"]h$]h&]uh1j0hj<ubeh}(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}(hj!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.}(hj/hj-hhhNhNubah}(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}(hhhjUhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjQhhhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhK ubjx)}(h h]h }(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjQhhhjbhK ubj)}(hcmbdatah]j)}(hjOh]hcmbdata}(hhhjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubah}(h]h ](jjeh"]h$]h&]jjuh1jhjQhhhjbhK ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjMhhhjbhK ubah}(h]jGah ](jjeh"]h$]h&]juh1jYhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjJhhubj)}(hhh]h)}(h-channel measurement block data for user spaceh]h-channel measurement block data for user space}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjJhhhjbhK ubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jThhhjhjIhNubj)}(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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhK hjubj)}(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; };}(hhhjՅubah}(h]h ]h"]h$]h&]jjuh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hhhjhhhNhNubah}(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.hhKhjubj1)}(hhh](j6)}(h!``size`` size of the stored data h](j<)}(h``size``h]jB)}(hjh]hsize}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(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 hjubjX)}(hhh]h)}(hsize of the stored datah]hsize of the stored data}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhK hjubj6)}(h*``elapsed_time`` time since last sampling h](j<)}(h``elapsed_time``h]jB)}(hj>h]h elapsed_time}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj<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 hj8ubjX)}(hhh]h)}(htime since last samplingh]htime since last sampling}(hjYhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShK hjTubah}(h]h ]h"]h$]h&]uh1jWhj8ubeh}(h]h ]h"]h$]h&]uh1j5hjShK hjubj6)}(h,``ssch_rsch_count`` number of ssch and rsch h](j<)}(h``ssch_rsch_count``h]jB)}(hjwh]hssch_rsch_count}(hhhjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjuubah}(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 hjqubjX)}(hhh]h)}(hnumber of ssch and rschh]hnumber of ssch and rsch}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jWhjqubeh}(h]h ]h"]h$]h&]uh1j5hjhK hjubj6)}(h#``sample_count`` number of samples h](j<)}(h``sample_count``h]jB)}(hjh]h sample_count}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(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 hjubjX)}(hhh]h)}(hnumber of samplesh]hnumber of samples}(hjˆhjɆhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjņhK hjƆubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjņhK hjubj6)}(h/``device_connect_time`` time of device connect h](j<)}(h``device_connect_time``h]jB)}(hjh]hdevice_connect_time}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjubjX)}(hhh]h)}(htime of device connecth]htime of device connect}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h3``function_pending_time`` time of function pending h](j<)}(h``function_pending_time``h]jB)}(hj"h]hfunction_pending_time}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj 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.hhKhjubjX)}(hhh]h)}(htime of function pendingh]htime of function pending}(hj=hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hKhj8ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj7hKhjubj6)}(h5``device_disconnect_time`` time of device disconnect h](j<)}(h``device_disconnect_time``h]jB)}(hj[h]hdevice_disconnect_time}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjYubah}(h]h ]h"]h$]h&]uh1j;hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjUubjX)}(hhh]h)}(htime of device disconnecth]htime of device disconnect}(hjvhjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphKhjqubah}(h]h ]h"]h$]h&]uh1jWhjUubeh}(h]h ]h"]h$]h&]uh1j5hjphKhjubj6)}(h;``control_unit_queuing_time`` time of control unit queuing h](j<)}(h``control_unit_queuing_time``h]jB)}(hjh]hcontrol_unit_queuing_time}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjubjX)}(hhh]h)}(htime of control unit queuingh]htime of control unit queuing}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h7``device_active_only_time`` time of device active only h](j<)}(h``device_active_only_time``h]jB)}(hj͇h]hdevice_active_only_time}(hhhjχhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjˇ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.hhKhjLJubjX)}(hhh]h)}(htime of device active onlyh]htime of device active only}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjLJubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(h7``device_busy_time`` time of device busy (ext. format) h](j<)}(h``device_busy_time``h]jB)}(hjh]hdevice_busy_time}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjubjX)}(hhh]h)}(h!time of device busy (ext. format)h]h!time of device busy (ext. format)}(hj!hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjubj6)}(hM``initial_command_response_time`` initial command response time (ext. format)h](j<)}(h!``initial_command_response_time``h]jB)}(hj?h]hinitial_command_response_time}(hhhjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj=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.hhKhj9ubjX)}(hhh]h)}(h+initial command response time (ext. format)h]h+initial command response time (ext. format)}(hjZhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhh/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:97: ./arch/s390/include/uapi/asm/cmb.hhKhjUubah}(h]h ]h"]h$]h&]uh1jWhj9ubeh}(h]h ]h"]h$]h&]uh1j5hjThKhjubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhjIhNubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(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](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM[ubjx)}(h h]h }(hhhjψhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjΈhM[ubj)}(h enable_cmfh]j)}(h enable_cmfh]h enable_cmf}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj݈ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjΈhM[ubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.enable_cmfasbuh1hhjubjx)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdevh]hcdev}(hhhjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubah}(h]h ]h"]h$]h&]jjuh1jhhjhhhjΈhM[ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjΈhM[ubah}(h]jah ](jjeh"]h$]h&]juh1jYh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMdhjhhubj)}(hhh]h)}(h7switch on the channel measurement for a specific deviceh]h7switch on the channel measurement for a specific device}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMZhj~hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjΈhM[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhjhNhNubj)}(hXM**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}(hhhjhhhNhNubah}(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^hjubj1)}(hhh]j6)}(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]jB)}(hj‰h]hstruct ccw_device *cdev}(hhhjĉhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM_hjubjX)}(hhh](h)}(hThe ccw device to be enabledh]hThe ccw device to be enabled}(hj݉hjۉhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM[hj؉ubh)}(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 }(h Enable channel measurements for hjhhhNhNubj)}(h**cdev**h]hcdev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh~. If this is called on a device for which channel measurement is already enabled a reset of the measurement data is triggered.}(h~. If this is called on a device for which channel measurement is already enabled a reset of the measurement data is triggered.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chM]hj؉ubeh}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj׉hM_hjubah}(h]h ]h"]h$]h&]uh1j0hjubh)}(h **Return**h]j)}(hj!h]hReturn}(hhhj#hhhNhNubah}(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.chMahjubh)}(h,``0`` for success or a negative error value.h](jB)}(h``0``h]h0}(hhhj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj7ubh' for success or a negative error value.}(h' for success or a negative error value.hj7hhhNhNubeh}(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)}(hjWh]hContext}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMbhjubh)}(h non-atomich]h non-atomic}(hjohjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMchjubeh}(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](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(h disable_cmfh]j)}(h disable_cmfh]h disable_cmf}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjيhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjՊubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjՊubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.disable_cmfasbuh1hhjՊubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjՊubj)}(hjh]h*}(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjՊubj)}(hcdevh]hcdev}(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjՊubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjъubah}(h]h ]h"]h$]h&]jjuh1jhhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]juh1jYh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjhhubj)}(hhh]h)}(h8switch off the channel measurement for a specific deviceh]h8switch off the channel measurement for a specific device}(hj_hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjZhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujuh1jThhhjhNhNubj)}(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}(hhhjhhhNhNubah}(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.chMhjyubj1)}(hhh]j6)}(h:``struct ccw_device *cdev`` The ccw device to be disabled h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjh]hstruct ccw_device *cdev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubjX)}(hhh]h)}(hThe ccw device to be disabledh]hThe ccw device to be disabled}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhMhjubah}(h]h ]h"]h$]h&]uh1j0hjyubh)}(h **Return**h]j)}(hjًh]hReturn}(hhhjۋ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.chMhjyubh)}(h,``0`` for success or a negative error value.h](jB)}(h``0``h]h0}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubh' for success or a negative error value.}(h' 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.chMhjyubh)}(h **Context**h]j)}(hjh]hContext}(hhhjhhhNhNubah}(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.chMhjyubh)}(h non-atomich]h non-atomic}(hj'hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjyubeh}(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}(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jcmf_readsb c.cmf_readasbuh1hhjPhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMubjx)}(h h]h }(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjPhhhjxhMubj)}(hcmf_readh]j)}(hjuh]hcmf_read}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjPhhhjxhMubji)}(h$(struct ccw_device *cdev, int index)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjČhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjƌmodnameN classnameNjj)}j]js c.cmf_readasbuh1hhjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdevh]hcdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(h int indexh](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hindexh]hindex}(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubeh}(h]h ]h"]h$]h&]jjuh1jhhjPhhhjxhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjLhhhjxhMubah}(h]jGah ](jjeh"]h$]h&]juh1jYh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjIhhubj)}(hhh]h)}(h9read one value from the current channel measurement blockh]h9read one value from the current channel measurement block}(hj_hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjZhhubah}(h]h ]h"]h$]h&]uh1jhjIhhhjxhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujuh1jThhhjhNhNubj)}(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}(hhhjhhhNhNubah}(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.chMhjyubj1)}(hhh](j6)}(h3``struct ccw_device *cdev`` the channel to be read h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjh]hstruct ccw_device *cdev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubjX)}(hhh]h)}(hthe channel to be readh]hthe channel to be read}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhMhjubj6)}(h0``int index`` the index of the value to be read h](j<)}(h ``int index``h]jB)}(hj׍h]h int index}(hhhjٍhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjՍubah}(h]h ]h"]h$]h&]uh1j;h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjэubjX)}(hhh]h)}(h!the index of the value to be readh]h!the index of the value to be read}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jWhjэubeh}(h]h ]h"]h$]h&]uh1j5hjhMhjubeh}(h]h ]h"]h$]h&]uh1j0hjyubh)}(h **Return**h]j)}(hjh]hReturn}(hhhjhhhNhNubah}(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.chMhjyubh)}(h4The value read or ``0`` if the value cannot be read.h](hThe value read or }(hThe value read or hj(hhhNhNubjB)}(h``0``h]h0}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj(ubh if the value cannot be read.}(h if the value cannot be read.hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjyubh)}(h **Context**h]j)}(hjMh]hContext}(hhhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjyubh)}(hanyh]hany}(hjehjchhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjyubeh}(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](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(h cmf_readallh]j)}(h cmf_readallh]h cmf_readall}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubji)}(h/(struct ccw_device *cdev, struct cmbdata *data)h](jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjώhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjˎubjx)}(h h]h }(hhhj܎hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjˎubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.cmf_readallasbuh1hhjˎubjx)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjˎubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjˎubj)}(hcdevh]hcdev}(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjˎubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjǎubjo)}(hstruct cmbdata *datah](jf)}(hjih]hstruct}(hhhjAhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj=ubjx)}(h h]h }(hhhjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=ubh)}(hhh]j)}(hcmbdatah]hcmbdata}(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j c.cmf_readallasbuh1hhj=ubjx)}(h h]h }(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj=ubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hdatah]hdata}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjǎubeh}(h]h ]h"]h$]h&]jjuh1jhhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]juh1jYh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjhhubj)}(hhh]h)}(h*read the current channel measurement blockh]h*read the current channel measurement block}(hjŏhjÏhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjۏjjۏjuh1jThhhjhNhNubj)}(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)}(hjh]h Parameters}(hhhjhhhNhNubah}(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.chMhjߏubj1)}(hhh](j6)}(h3``struct ccw_device *cdev`` the channel to be read h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjh]hstruct ccw_device *cdev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjubjX)}(hhh]h)}(hthe channel to be readh]hthe channel to be read}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhMhjubj6)}(hG``struct cmbdata *data`` a pointer to a data block that will be filled h](j<)}(h``struct cmbdata *data``h]jB)}(hj=h]hstruct cmbdata *data}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj;ubah}(h]h ]h"]h$]h&]uh1j;h_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhj7ubjX)}(hhh]h)}(h-a pointer to a data block that will be filledh]h-a pointer to a data block that will be filled}(hjXhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjSubah}(h]h ]h"]h$]h&]uh1jWhj7ubeh}(h]h ]h"]h$]h&]uh1j5hjRhMhjubeh}(h]h ]h"]h$]h&]uh1j0hjߏubh)}(h **Return**h]j)}(hjxh]hReturn}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjߏubh)}(h3``0`` on success, a negative error value otherwise.h](jB)}(h``0``h]h0}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubh. on success, a negative error value otherwise.}(h. 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.chMhjߏubh)}(h **Context**h]j)}(hjh]hContext}(hhhjhhhNhNubah}(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.chMhjߏubh)}(hanyh]hany}(hjƐhjĐhhhNhNubah}(h]h ]h"]h$]h&]uh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.chMhjߏubeh}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKhubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjhhubh)}(hhh](h)}(hccw group devicesh]hccw group devices}(hjhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKqubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccwgroup_device (C struct)c.ccwgroup_devicehNtauh1jChj hhhNhNubjU)}(hhh](jZ)}(hccwgroup_deviceh]j`)}(hstruct ccwgroup_deviceh](jf)}(hjih]hstruct}(hhhj3hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj/hhhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK ubjx)}(h h]h }(hhhjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj/hhhj@hK ubj)}(hccwgroup_deviceh]j)}(hj-h]hccwgroup_device}(hhhjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ](jjeh"]h$]h&]jjuh1jhj/hhhj@hK ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj+hhhj@hK ubah}(h]j&ah ](jjeh"]h$]h&]juh1jYhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhj(hhubj)}(hhh]h)}(hccw group deviceh]hccw group device}(hjxhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjshhubah}(h]h ]h"]h$]h&]uh1jhj(hhhj@hK ubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjuh1jThhhj hNhNubj)}(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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(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[]; };}(hhhjubah}(h]h ]h"]h$]h&]jjuh1jhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjubh)}(h **Members**h]j)}(hjđh]hMembers}(hhhjƑ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.hhKhjubj1)}(hhh](j6)}(h``state`` online/offline state h](j<)}(h ``state``h]jB)}(hjh]hstate}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(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ݑubjX)}(hhh]h)}(honline/offline stateh]honline/offline state}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jWhjݑubeh}(h]h ]h"]h$]h&]uh1j5hjhK hjڑubj6)}(h+``count`` number of attached slave devices h](j<)}(h ``count``h]jB)}(hjh]hcount}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjubjX)}(hhh]h)}(h number of attached slave devicesh]h number of attached slave devices}(hj7hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hK hj2ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj1hK hjڑubj6)}(h"``dev`` embedded device structure h](j<)}(h``dev``h]jB)}(hjUh]hdev}(hhhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjSubah}(h]h ]h"]h$]h&]uh1j;hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjOubjX)}(hhh]h)}(hembedded device structureh]hembedded device structure}(hjphjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhK hjkubah}(h]h ]h"]h$]h&]uh1jWhjOubeh}(h]h ]h"]h$]h&]uh1j5hjjhK hjڑubj6)}(h5``ungroup_work`` used to ungroup the ccwgroup device h](j<)}(h``ungroup_work``h]jB)}(hjh]h ungroup_work}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjubjX)}(hhh]h)}(h#used to ungroup the ccwgroup deviceh]h#used to ungroup the ccwgroup device}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhjڑubj6)}(h>``cdev`` variable number of slave devices, allocated as neededh](j<)}(h``cdev``h]jB)}(hjǒh]hcdev}(hhhjɒhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjŒ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 hjubjX)}(hhh]h)}(h5variable number of slave devices, allocated as neededh]h5variable number of slave devices, allocated as needed}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjݒubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjܒhK hjڑubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jPccwgroup_driver (C struct)c.ccwgroup_driverhNtauh1jChj hhhNhNubjU)}(hhh](jZ)}(hccwgroup_driverh]j`)}(hstruct ccwgroup_driverh](jf)}(hjih]hstruct}(hhhj!hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjhhhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK!ubjx)}(h h]h }(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhj.hK!ubj)}(hccwgroup_driverh]j)}(hjh]hccwgroup_driver}(hhhjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj.hK!ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhj.hK!ubah}(h]jah ](jjeh"]h$]h&]juh1jYhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhKhjhhubj)}(hhh]h)}(hdriver for ccw group devicesh]hdriver for ccw group devices}(hjfhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK hjahhubah}(h]h ]h"]h$]h&]uh1jhjhhhj.hK!ubeh}(h]h ](jstructeh"]h$]h&]jjjj|jj|juh1jThhhj hNhNubj)}(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}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhjhhhNhNubeh}(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; };}(hhhjubah}(h]h ]h"]h$]h&]jjuh1jhi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK&hjubh)}(h **Members**h]j)}(hjh]hMembers}(hhhjhhhNhNubah}(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.hhK0hjubj1)}(hhh](j6)}(hE``setup`` function called during device creation to setup the device h](j<)}(h ``setup``h]jB)}(hjѓh]hsetup}(hhhjӓhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjϓ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˓ubjX)}(hhh]h)}(h:function called during device creation to setup the deviceh]h:function called during device creation to setup the device}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK"hjubah}(h]h ]h"]h$]h&]uh1jWhj˓ubeh}(h]h ]h"]h$]h&]uh1j5hjhK"hjȓubj6)}(h%``remove`` function called on remove h](j<)}(h ``remove``h]jB)}(hj h]hremove}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK#hjubjX)}(hhh]h)}(hfunction called on removeh]hfunction called on remove}(hj%hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK#hj ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhK#hjȓubj6)}(h9``set_online`` function called when device is set online h](j<)}(h``set_online``h]jB)}(hjCh]h set_online}(hhhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjAubah}(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=ubjX)}(hhh]h)}(h)function called when device is set onlineh]h)function called when device is set online}(hj^hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhK$hjYubah}(h]h ]h"]h$]h&]uh1jWhj=ubeh}(h]h ]h"]h$]h&]uh1j5hjXhK$hjȓubj6)}(h;``set_offline`` function called when device is set offline h](j<)}(h``set_offline``h]jB)}(hj|h]h set_offline}(hhhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjzubah}(h]h ]h"]h$]h&]uh1j;hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK%hjvubjX)}(hhh]h)}(h*function called when device is set offlineh]h*function called when device is set offline}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK%hjubah}(h]h ]h"]h$]h&]uh1jWhjvubeh}(h]h ]h"]h$]h&]uh1j5hjhK%hjȓubj6)}(h6``shutdown`` function called when device is shut down h](j<)}(h ``shutdown``h]jB)}(hjh]hshutdown}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK&hjubjX)}(hhh]h)}(h(function called when device is shut downh]h(function called when device is shut down}(hjДhjΔhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjʔhK&hj˔ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjʔhK&hjȓubj6)}(h%``driver`` embedded driver structure h](j<)}(h ``driver``h]jB)}(hjh]hdriver}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.hhK'hjubjX)}(hhh]h)}(hembedded driver structureh]hembedded driver structure}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK'hjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhK'hjȓubj6)}(h.``ccw_driver`` supported ccw_driver (optional)h](j<)}(h``ccw_driver``h]jB)}(hj'h]h ccw_driver}(hhhj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj%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!ubjX)}(hhh]h)}(hsupported ccw_driver (optional)h]hsupported ccw_driver (optional)}(hjBhj@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=ubah}(h]h ]h"]h$]h&]uh1jWhj!ubeh}(h]h ]h"]h$]h&]uh1j5hj<hK'hjȓubeh}(h]h ]h"]h$]h&]uh1j0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccwgroup_set_online (C function)c.ccwgroup_set_onlinehNtauh1jChj hhhNhNubjU)}(hhh](jZ)}(h6int ccwgroup_set_online (struct ccwgroup_device *gdev)h]j`)}(h5int ccwgroup_set_online(struct ccwgroup_device *gdev)h](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj}hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK2ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj}hhhjhK2ubj)}(hccwgroup_set_onlineh]j)}(hccwgroup_set_onlineh]hccwgroup_set_online}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhj}hhhjhK2ubji)}(h(struct ccwgroup_device *gdev)h]jo)}(hstruct ccwgroup_device *gdevh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhj˕hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hccwgroup_deviceh]hccwgroup_device}(hhhjܕhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjٕubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjޕmodnameN classnameNjj)}j]j)}jjsbc.ccwgroup_set_onlineasbuh1hhjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hgdevh]hgdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubah}(h]h ]h"]h$]h&]jjuh1jhhj}hhhjhK2ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjyhhhjhK2ubah}(h]jtah ](jjeh"]h$]h&]juh1jYhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK8hjvhhubj)}(hhh]h)}(henable a ccwgroup deviceh]henable a ccwgroup device}(hjDhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK1hj?hhubah}(h]h ]h"]h$]h&]uh1jhjvhhhjhK2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjuh1jThhhj hNhNubj)}(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)}(hjdh]h Parameters}(hhhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK5hj^ubj1)}(hhh]j6)}(h8``struct ccwgroup_device *gdev`` target ccwgroup device h](j<)}(h ``struct ccwgroup_device *gdev``h]jB)}(hjh]hstruct ccwgroup_device *gdev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chK2hj}ubjX)}(hhh]h)}(htarget ccwgroup deviceh]htarget ccwgroup device}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK2hjubah}(h]h ]h"]h$]h&]uh1jWhj}ubeh}(h]h ]h"]h$]h&]uh1j5hjhK2hjzubah}(h]h ]h"]h$]h&]uh1j0hj^ubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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.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֖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)}(hjh]hReturn}(hhhjhhhNhNubah}(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.chK6hj^ubj?)}(hhh]h)}(h7``0`` on success and a negative error value on failure.h](jB)}(h``0``h]h0}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubh2 on success and a negative error value on failure.}(h2 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.chK7hjubah}(h]h ]h"]h$]h&]uh1j>hj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP!ccwgroup_set_offline (C function)c.ccwgroup_set_offlinehNtauh1jChj hhhNhNubjU)}(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](j1)}(hinth]hint}(hhhjBhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj>hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKOubjx)}(h h]h }(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj>hhhjPhKOubj)}(hccwgroup_set_offlineh]j)}(hccwgroup_set_offlineh]hccwgroup_set_offline}(hhhjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj>hhhjPhKOubji)}(h.(struct ccwgroup_device *gdev, bool call_gdrv)h](jo)}(hstruct ccwgroup_device *gdevh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj{ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj{ubh)}(hhh]j)}(hccwgroup_deviceh]hccwgroup_device}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjesbc.ccwgroup_set_offlineasbuh1hhj{ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj{ubj)}(hjh]h*}(hhhj˗hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj)}(hgdevh]hgdev}(hhhjؗhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjwubjo)}(hbool call_gdrvh](j1)}(hboolh]hbool}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(h call_gdrvh]h call_gdrv}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjwubeh}(h]h ]h"]h$]h&]jjuh1jhhj>hhhjPhKOubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj:hhhjPhKOubah}(h]j5ah ](jjeh"]h$]h&]juh1jYhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKVhj7hhubj)}(hhh]h)}(hdisable a ccwgroup deviceh]hdisable a ccwgroup device}(hj:hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKNhj5hhubah}(h]h ]h"]h$]h&]uh1jhj7hhhjPhKOubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjuh1jThhhj hNhNubj)}(hX1**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)}(hjZh]h Parameters}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKRhjTubj1)}(hhh](j6)}(h8``struct ccwgroup_device *gdev`` target ccwgroup device h](j<)}(h ``struct ccwgroup_device *gdev``h]jB)}(hjyh]hstruct ccwgroup_device *gdev}(hhhj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjwubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKOhjsubjX)}(hhh]h)}(htarget ccwgroup deviceh]htarget ccwgroup device}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKOhjubah}(h]h ]h"]h$]h&]uh1jWhjsubeh}(h]h ]h"]h$]h&]uh1j5hjhKOhjpubj6)}(hA``bool call_gdrv`` Call the registered gdrv set_offline function h](j<)}(h``bool call_gdrv``h]jB)}(hjh]hbool call_gdrv}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKPhjubjX)}(hhh]h)}(h-Call the registered gdrv set_offline functionh]h-Call the registered gdrv set_offline function}(hj͘hj˘hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjǘhKPhjȘubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjǘhKPhjpubeh}(h]h ]h"]h$]h&]uh1j0hjTubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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.chKRhjTubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chKRhjTubh)}(h **Return**h]j)}(hjh]hReturn}(hhhjhhhNhNubah}(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.chKThjTubj?)}(hhh]h)}(h7``0`` on success and a negative error value on failure.h](jB)}(h``0``h]h0}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj-ubh2 on success and a negative error value on failure.}(h2 on success and a negative error value 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.chKUhj*ubah}(h]h ]h"]h$]h&]uh1j>hjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP ccwgroup_create_dev (C function)c.ccwgroup_create_devhNtauh1jChj hhhNhNubjU)}(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](j1)}(hinth]hint}(hhhjqhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjmhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM-ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjmhhhjhM-ubj)}(hccwgroup_create_devh]j)}(hccwgroup_create_devh]hccwgroup_create_dev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjmhhhjhM-ubji)}(hW(struct device *parent, struct ccwgroup_driver *gdrv, int num_devices, const char *buf)h](jo)}(hstruct device *parenth](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hdeviceh]hdevice}(hhhj̙hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjəubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjΙmodnameN classnameNjj)}j]j)}jjsbc.ccwgroup_create_devasbuh1hhjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hparenth]hparent}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(hstruct ccwgroup_driver *gdrvh](jf)}(hjih]hstruct}(hhhj hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hccwgroup_driverh]hccwgroup_driver}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]jc.ccwgroup_create_devasbuh1hhjubjx)}(h h]h }(hhhj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hgdrvh]hgdrv}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(hint num_devicesh](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(h num_devicesh]h num_devices}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(hconst char *bufh](jf)}(hj-h]hconst}(hhhjŚhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjҚhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj1)}(hcharh]hchar}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbufh]hbuf}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubeh}(h]h ]h"]h$]h&]jjuh1jhhjmhhhjhM-ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjihhhjhM-ubah}(h]jdah ](jjeh"]h$]h&]juh1jYhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM9hjfhhubj)}(hhh]h)}(h&create and register a ccw group deviceh]h&create and register a ccw group device}(hj6hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM,hj1hhubah}(h]h ]h"]h$]h&]uh1jhjfhhhjhM-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjuh1jThhhj hNhNubj)}(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)}(hjVh]h Parameters}(hhhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM0hjPubj1)}(hhh](j6)}(h;``struct device *parent`` parent device for the new device h](j<)}(h``struct device *parent``h]jB)}(hjuh]hstruct device *parent}(hhhjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjsubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM-hjoubjX)}(hhh]h)}(h parent device for the new deviceh]h parent device for the new device}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM-hjubah}(h]h ]h"]h$]h&]uh1jWhjoubeh}(h]h ]h"]h$]h&]uh1j5hjhM-hjlubj6)}(hA``struct ccwgroup_driver *gdrv`` driver for the new group device h](j<)}(h ``struct ccwgroup_driver *gdrv``h]jB)}(hjh]hstruct ccwgroup_driver *gdrv}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM.hjubjX)}(hhh]h)}(hdriver for the new group deviceh]hdriver for the new group device}(hjɛhjǛhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjÛhM.hjěubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjÛhM.hjlubj6)}(h,``int num_devices`` number of slave devices h](j<)}(h``int num_devices``h]jB)}(hjh]hint num_devices}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM/hjubjX)}(hhh]h)}(hnumber of slave devicesh]hnumber of slave devices}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM/hjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhM/hjlubj6)}(hO``const char *buf`` buffer containing comma separated bus ids of slave devices h](j<)}(h``const char *buf``h]jB)}(hj h]hconst char *buf}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM0hjubjX)}(hhh]h)}(h:buffer containing comma separated bus ids of slave devicesh]h:buffer containing comma separated bus ids of slave devices}(hj;hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hM0hj6ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj5hM0hjlubeh}(h]h ]h"]h$]h&]uh1j0hjPubh)}(h**Description**h]j)}(hj[h]h Description}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM2hjPubh)}(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 }(h9Create and register a new ccw group device as a child of hjqhhhNhNubj)}(h **parent**h]hparent}(hhhjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh?. Slave devices are obtained from the list of bus ids given in }(h?. Slave devices are obtained from the list of bus ids given in hjqhhhNhNubj)}(h**buf**h]hbuf}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh.}(hj_'hjqhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM2hjPubh)}(h **Return**h]j)}(hjh]hReturn}(hhhjhhhNhNubah}(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.chM5hjPubj?)}(hhh]h)}(h.``0`` on success and an error code on failure.h](jB)}(h``0``h]h0}(hhhjŜhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubh) on success and an error code on failure.}(h) on success and an error code on failure.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM6hjubah}(h]h ]h"]h$]h&]uh1j>hjPubh)}(h **Context**h]j)}(hjh]hContext}(hhhjhhhNhNubah}(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.chM8hjPubh)}(h non-atomich]h non-atomic}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM8hjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP%ccwgroup_driver_register (C function)c.ccwgroup_driver_registerhNtauh1jChj hhhNhNubjU)}(hhh](jZ)}(h>int ccwgroup_driver_register (struct ccwgroup_driver *cdriver)h]j`)}(h=int ccwgroup_driver_register(struct ccwgroup_driver *cdriver)h](j1)}(hinth]hint}(hhhj,hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj(hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMubjx)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj(hhhj:hMubj)}(hccwgroup_driver_registerh]j)}(hccwgroup_driver_registerh]hccwgroup_driver_register}(hhhjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ](jjeh"]h$]h&]jjuh1jhj(hhhj:hMubji)}(h!(struct ccwgroup_driver *cdriver)h]jo)}(hstruct ccwgroup_driver *cdriverh](jf)}(hjih]hstruct}(hhhjihhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjeubjx)}(h h]h }(hhhjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeubh)}(hhh]j)}(hccwgroup_driverh]hccwgroup_driver}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjOsbc.ccwgroup_driver_registerasbuh1hhjeubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjeubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj)}(hcdriverh]hcdriver}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjaubah}(h]h ]h"]h$]h&]jjuh1jhhj(hhhj:hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj$hhhj:hMubah}(h]jah ](jjeh"]h$]h&]juh1jYhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj!hhubj)}(hhh]h)}(hregister a ccw group driverh]hregister a ccw group driver}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj!hhhj:hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhj hNhNubj)}(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)}(hjh]h Parameters}(hhhjhhhNhNubah}(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 ubj1)}(hhh]j6)}(h<``struct ccwgroup_driver *cdriver`` driver to be registered h](j<)}(h#``struct ccwgroup_driver *cdriver``h]jB)}(hj.h]hstruct ccwgroup_driver *cdriver}(hhhj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj,ubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj(ubjX)}(hhh]h)}(hdriver to be registeredh]hdriver to be registered}(hjIhjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMhjDubah}(h]h ]h"]h$]h&]uh1jWhj(ubeh}(h]h ]h"]h$]h&]uh1j5hjChMhj%ubah}(h]h ]h"]h$]h&]uh1j0hj ubh)}(h**Description**h]j)}(hjih]h Description}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj ubh)}(h;This function is mainly a wrapper around driver_register().h]h;This function is mainly a wrapper around driver_register().}(hjhjhhhNhNubah}(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&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP'ccwgroup_driver_unregister (C function)c.ccwgroup_driver_unregisterhNtauh1jChj hhhNhNubjU)}(hhh](jZ)}(hAvoid ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver)h]j`)}(h@void ccwgroup_driver_unregister(struct ccwgroup_driver *cdriver)h](j1)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhMubj)}(hccwgroup_driver_unregisterh]j)}(hccwgroup_driver_unregisterh]hccwgroup_driver_unregister}(hhhjϞhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj˞ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhMubji)}(h!(struct ccwgroup_driver *cdriver)h]jo)}(hstruct ccwgroup_driver *cdriverh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hccwgroup_driverh]hccwgroup_driver}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjўsbc.ccwgroup_driver_unregisterasbuh1hhjubjx)}(h h]h }(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcdriverh]hcdriver}(hhhjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubah}(h]h ]h"]h$]h&]jjuh1jhhjhhhjhMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]juh1jYhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjhhubj)}(hhh]h)}(hderegister a ccw group driverh]hderegister a ccw group driver}(hjqhjohhhNhNubah}(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&]jjjjjjjuh1jThhhj hNhNubj)}(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}(hhhjhhhNhNubah}(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.chMhjubj1)}(hhh]j6)}(h>``struct ccwgroup_driver *cdriver`` driver to be deregistered h](j<)}(h#``struct ccwgroup_driver *cdriver``h]jB)}(hjh]hstruct ccwgroup_driver *cdriver}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjubjX)}(hhh]h)}(hdriver to be deregisteredh]hdriver to be deregistered}(hj˟hjɟhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjşhMhjƟubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjşhMhjubah}(h]h ]h"]h$]h&]uh1j0hjubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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.chMhjubh)}(h=This function is mainly a wrapper around driver_unregister().h]h=This function is mainly a wrapper around driver_unregister().}(hjhjhhhNhNubah}(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&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP"ccwgroup_probe_ccwdev (C function)c.ccwgroup_probe_ccwdevhNtauh1jChj hhhNhNubjU)}(hhh](jZ)}(h3int ccwgroup_probe_ccwdev (struct ccw_device *cdev)h]j`)}(h2int ccwgroup_probe_ccwdev(struct ccw_device *cdev)h](j1)}(hinth]hint}(hhhj0hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj,hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMubjx)}(h h]h }(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj,hhhj>hMubj)}(hccwgroup_probe_ccwdevh]j)}(hccwgroup_probe_ccwdevh]hccwgroup_probe_ccwdev}(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubah}(h]h ](jjeh"]h$]h&]jjuh1jhj,hhhj>hMubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhjmhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjiubjx)}(h h]h }(hhhjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjiubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjSsbc.ccwgroup_probe_ccwdevasbuh1hhjiubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjiubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj)}(hcdevh]hcdev}(hhhjƠhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjeubah}(h]h ]h"]h$]h&]jjuh1jhhj,hhhj>hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhj(hhhj>hMubah}(h]j#ah ](jjeh"]h$]h&]juh1jYhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj%hhubj)}(hhh]h)}(h probe function for slave devicesh]h probe function for slave devices}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj>hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj juh1jThhhj hNhNubj)}(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)}(hjh]h Parameters}(hhhjhhhNhNubah}(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 ubj1)}(hhh]j6)}(h4``struct ccw_device *cdev`` ccw device to be probed h](j<)}(h``struct ccw_device *cdev``h]jB)}(hj2h]hstruct ccw_device *cdev}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj0ubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj,ubjX)}(hhh]h)}(hccw device to be probedh]hccw device to be probed}(hjMhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jWhj,ubeh}(h]h ]h"]h$]h&]uh1j5hjGhMhj)ubah}(h]h ]h"]h$]h&]uh1j0hj ubh)}(h**Description**h]j)}(hjmh]h Description}(hhhjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj ubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhj ubh)}(h **Return**h]j)}(hjh]hReturn}(hhhjhhhNhNubah}(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 ubj?)}(hhh]h)}(h always ``0``h](halways }(halways hjhhhNhNubjB)}(h``0``h]h0}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubeh}(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 ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj hhhNhNubjD)}(hhh]h}(h]h ]h"]h$]h&]entries](jP#ccwgroup_remove_ccwdev (C function)c.ccwgroup_remove_ccwdevhNtauh1jChj hhhNhNubjU)}(hhh](jZ)}(h5void ccwgroup_remove_ccwdev (struct ccw_device *cdev)h]j`)}(h4void ccwgroup_remove_ccwdev(struct ccw_device *cdev)h](j1)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM ubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjhM ubj)}(hccwgroup_remove_ccwdevh]j)}(hccwgroup_remove_ccwdevh]hccwgroup_remove_ccwdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhM ubji)}(h(struct ccw_device *cdev)h]jo)}(hstruct ccw_device *cdevh](jf)}(hjih]hstruct}(hhhj.hhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehj*ubjx)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj*ubh)}(hhh]j)}(h ccw_deviceh]h ccw_device}(hhhjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjsbc.ccwgroup_remove_ccwdevasbuh1hhj*ubjx)}(h h]h }(hhhjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhj*ubj)}(hjh]h*}(hhhjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(hcdevh]hcdev}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj&ubah}(h]h ]h"]h$]h&]jjuh1jhhjhhhjhM ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjhM ubah}(h]jah ](jjeh"]h$]h&]juh1jYhd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chMhjhhubj)}(hhh]h)}(h!remove function for slave devicesh]h!remove function for slave devices}(hjhjhhhNhNubah}(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&]uh1jhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjʢjjʢjuh1jThhhj hNhNubj)}(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)}(hjԢh]h Parameters}(hhhj֢hhhNwhNubah}(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΢ubj1)}(hhh]j6)}(h5``struct ccw_device *cdev`` ccw device to be removed h](j<)}(h``struct ccw_device *cdev``h]jB)}(hjh]hstruct ccw_device *cdev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;hd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.chM hjubjX)}(hhh]h)}(hccw device to be removedh]hccw device to be removed}(hjhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hj ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhM hjubah}(h]h ]h"]h$]h&]uh1j0hj΢ubh)}(h**Description**h]j)}(hj.h]h Description}(hhhj0hhhNhNubah}(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΢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.}(hjFhjDhhhNhNubah}(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&]uh1jhj hhhNhNubeh}(h]ccw-group-devicesah ]h"]ccw group devicesah$]h&]uh1hhjhhhhhKqubeh}(h]the-ccwgroup-busah ]h"]the ccwgroup busah$]h&]uh1hhhhhhhhKhubh)}(hhh](h)}(hGeneric interfacesh]hGeneric interfaces}(hjohjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhhhhhKzubh)}(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}hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjjhhubh)}(hhh](h)}(hAdapter interruptsh]hAdapter interrupts}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(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](j1)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK$ubjx)}(h h]h }(hhhjУhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjϣhK$ubj)}(hregister_adapter_interrupth]j)}(hregister_adapter_interrupth]hregister_adapter_interrupt}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjޣubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjϣhK$ubji)}(h(struct airq_struct *airq)h]jo)}(hstruct airq_struct *airqh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(h airq_structh]h airq_struct}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.register_adapter_interruptasbuh1hhjubjx)}(h h]h }(hhhj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hairqh]hairq}(hhhjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubah}(h]h ]h"]h$]h&]jjuh1jhhjhhhjϣhK$ubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjϣhK$ubah}(h]jah ](jjeh"]h$]h&]juh1jYh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK(hjhhubj)}(hhh]h)}(h"register adapter interrupt handlerh]h"register adapter interrupt handler}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK#hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjϣhK$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhjhNhNubj)}(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}(hhhjhhhNhNubah}(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'hjubj1)}(hhh]j6)}(hE``struct airq_struct *airq`` pointer to adapter interrupt descriptor h](j<)}(h``struct airq_struct *airq``h]jB)}(hjäh]hstruct airq_struct *airq}(hhhjŤhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK$hjubjX)}(hhh]h)}(h'pointer to adapter interrupt descriptorh]h'pointer to adapter interrupt descriptor}(hjޤhjܤhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjؤhK$hj٤ubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjؤhK$hjubah}(h]h ]h"]h$]h&]uh1j0hjubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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&hjubh)}(h!Returns 0 on success, or -EINVAL.h]h!Returns 0 on success, or -EINVAL.}(hjhjhhhNhNubah}(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``unsigned long bits`` number of bits in the interrupt vector h](j<)}(h``unsigned long bits``h]jB)}(hjlh]hunsigned long bits}(hhhjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKxhjfubjX)}(hhh]h)}(h&number of bits in the interrupt vectorh]h&number of bits in the interrupt vector}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKxhjubah}(h]h ]h"]h$]h&]uh1jWhjfubeh}(h]h ]h"]h$]h&]uh1j5hjhKxhjcubj6)}(h)``unsigned long flags`` allocation flags h](j<)}(h``unsigned long flags``h]jB)}(hjh]hunsigned long flags}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKyhjubjX)}(hhh]h)}(hallocation flagsh]hallocation flags}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKyhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKyhjcubj6)}(hJ``unsigned long *vec`` pointer to pinned guest memory if AIRQ_IV_GUESTVEC h](j<)}(h``unsigned long *vec``h]jB)}(hjިh]hunsigned long *vec}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjܨubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKzhjبubjX)}(hhh]h)}(h2pointer to pinned guest memory if AIRQ_IV_GUESTVECh]h2pointer to pinned guest memory if AIRQ_IV_GUESTVEC}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKzhjubah}(h]h ]h"]h$]h&]uh1jWhjبubeh}(h]h ]h"]h$]h&]uh1j5hjhKzhjcubeh}(h]h ]h"]h$]h&]uh1j0hjGubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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|hjGubh)}(h2Returns a pointer to an interrupt vector structureh]h2Returns a pointer to an interrupt vector structure}(hj1hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chK|hjGubeh}(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](j1)}(hvoidh]hvoid}(hhhj^hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjZhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKubjx)}(h h]h }(hhhjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjZhhhjlhKubj)}(hairq_iv_releaseh]j)}(hairq_iv_releaseh]hairq_iv_release}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjZhhhjlhKubji)}(h(struct airq_iv *iv)h]jo)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.airq_iv_releaseasbuh1hhjubjx)}(h h]h }(hhhj٩hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hivh]hiv}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubah}(h]h ]h"]h$]h&]jjuh1jhhjZhhhjlhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjVhhhjlhKubah}(h]jQah ](jjeh"]h$]h&]juh1jYh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjShhubj)}(hhh]h)}(hrelease an interrupt vectorh]hrelease an interrupt vector}(hj!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&]uh1jhjShhhjlhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7juh1jThhhjhNhNubj)}(hN**Parameters** ``struct airq_iv *iv`` pointer to interrupt vector structureh](h)}(h**Parameters**h]j)}(hjAh]h Parameters}(hhhjChhhNhNubah}(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;ubj1)}(hhh]j6)}(h<``struct airq_iv *iv`` pointer to interrupt vector structureh](j<)}(h``struct airq_iv *iv``h]jB)}(hj`h]hstruct airq_iv *iv}(hhhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj^ubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjZubjX)}(hhh]h)}(h%pointer to interrupt vector structureh]h%pointer to interrupt vector structure}(hj{hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjvubah}(h]h ]h"]h$]h&]uh1jWhjZubeh}(h]h ]h"]h$]h&]uh1j5hjuhKhjWubah}(h]h ]h"]h$]h&]uh1j0hj;ubeh}(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](j1)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKubjx)}(h h]h }(hhhjɪhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjȪhKubj1)}(hlongh]hlong}(hhhjתhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjhhhjȪhKubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjhhhjȪhKubj)}(h airq_iv_alloch]j)}(h airq_iv_alloch]h airq_iv_alloc}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjȪhKubji)}(h'(struct airq_iv *iv, unsigned long num)h](jo)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jjsbc.airq_iv_allocasbuh1hhjubjx)}(h h]h }(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hivh]hiv}(hhhjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj ubjo)}(hunsigned long numh](j1)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj1)}(hlongh]hlong}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hnumh]hnum}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhj ubeh}(h]h ]h"]h$]h&]jjuh1jhhjhhhjȪhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjhhhjȪhKubah}(h]jah ](jjeh"]h$]h&]juh1jYh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjhhubj)}(hhh]h)}(h*allocate irq bits from an interrupt vectorh]h*allocate irq bits from an interrupt vector}(hjhjhhhNhNubah}(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&]uh1jhjhhhjȪhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhjhNhNubj)}(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)}(hj h]h Parameters}(hhhj hhhNhNubah}(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.chKhjubj1)}(hhh](j6)}(h@``struct airq_iv *iv`` pointer to an interrupt vector structure h](j<)}(h``struct airq_iv *iv``h]jB)}(hj)h]hstruct airq_iv *iv}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj'ubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhj#ubjX)}(hhh]h)}(h(pointer to an interrupt vector structureh]h(pointer to an interrupt vector structure}(hjDhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKhj?ubah}(h]h ]h"]h$]h&]uh1jWhj#ubeh}(h]h ]h"]h$]h&]uh1j5hj>hKhj ubj6)}(hA``unsigned long num`` number of consecutive irq bits to allocate h](j<)}(h``unsigned long num``h]jB)}(hjbh]hunsigned long num}(hhhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhj`ubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhj\ubjX)}(hhh]h)}(h*number of consecutive irq bits to allocateh]h*number of consecutive irq bits to allocate}(hj}hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhjxubah}(h]h ]h"]h$]h&]uh1jWhj\ubeh}(h]h ]h"]h$]h&]uh1j5hjwhKhj ubeh}(h]h ]h"]h$]h&]uh1j0hjubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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.chKhjubh)}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjubeh}(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](j1)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjެhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjެhhhjhKubj)}(h airq_iv_freeh]j)}(h airq_iv_freeh]h airq_iv_free}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjެhhhjhKubji)}(h:(struct airq_iv *iv, unsigned long bit, unsigned long num)h](jo)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jjsbc.airq_iv_freeasbuh1hhjubjx)}(h h]h }(hhhj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hivh]hiv}(hhhjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(hunsigned long bith](j1)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj1)}(hlongh]hlong}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hbith]hbit}(hhhjɭhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(hunsigned long numh](j1)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjޭubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjޭubj1)}(hlongh]hlong}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjޭubjx)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjޭubj)}(hnumh]hnum}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjޭubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubeh}(h]h ]h"]h$]h&]jjuh1jhhjެhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjڬhhhjhKubah}(h]jլah ](jjeh"]h$]h&]juh1jYh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhj׬hhubj)}(hhh]h)}(h$free irq bits of an interrupt vectorh]h$free irq bits of an interrupt vector}(hjGhjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjBhhubah}(h]h ]h"]h$]h&]uh1jhj׬hhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]juh1jThhhjhNhNubj)}(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)}(hjgh]h Parameters}(hhhjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjaubj1)}(hhh](j6)}(h=``struct airq_iv *iv`` pointer to interrupt vector structure h](j<)}(h``struct airq_iv *iv``h]jB)}(hjh]hstruct airq_iv *iv}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chKhjubjX)}(hhh]h)}(h%pointer to interrupt vector structureh]h%pointer to interrupt vector structure}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjhKhj}ubj6)}(h:``unsigned long bit`` number of the first irq bit to free h](j<)}(h``unsigned long bit``h]jB)}(hjh]hunsigned long bit}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjubjX)}(hhh]h)}(h#number of the first irq bit to freeh]h#number of the first irq bit to free}(hjڮhjخhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjԮhMhjծubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hjԮhMhj}ubj6)}(h<``unsigned long num`` number of consecutive irq bits to freeh](j<)}(h``unsigned long num``h]jB)}(hjh]hunsigned long num}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjubjX)}(hhh]h)}(h&number of consecutive irq bits to freeh]h&number of consecutive irq bits to free}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjubah}(h]h ]h"]h$]h&]uh1jWhjubeh}(h]h ]h"]h$]h&]uh1j5hj hMhj}ubeh}(h]h ]h"]h$]h&]uh1j0hjaubeh}(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](j1)}(hunsignedh]hunsigned}(hhhjRhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjNhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMubjx)}(h h]h }(hhhjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjNhhhj`hMubj1)}(hlongh]hlong}(hhhjohhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjNhhhj`hMubjx)}(h h]h }(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjNhhhj`hMubj)}(h airq_iv_scanh]j)}(h airq_iv_scanh]h airq_iv_scan}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjNhhhj`hMubji)}(h<(struct airq_iv *iv, unsigned long start, unsigned long end)h](jo)}(hstruct airq_iv *ivh](jf)}(hjih]hstruct}(hhhjhhhNhNubah}(h]h ]jrah"]h$]h&]uh1jehjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubh)}(hhh]j)}(hairq_ivh]hairq_iv}(hhhjɯhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjƯubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj˯modnameN classnameNjj)}j]j)}jjsbc.airq_iv_scanasbuh1hhjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hivh]hiv}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(hunsigned long starth](j1)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj1)}(hlongh]hlong}(hhhj9hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubjx)}(h h]h }(hhhjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjubj)}(hstarth]hstart}(hhhjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubjo)}(hunsigned long endh](j1)}(hunsignedh]hunsigned}(hhhjnhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjjubjx)}(h h]h }(hhhj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjjubj1)}(hlongh]hlong}(hhhjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjjubjx)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jwhjjubj)}(hendh]hend}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]noemphjjuh1jnhjubeh}(h]h ]h"]h$]h&]jjuh1jhhjNhhhj`hMubeh}(h]h ]h"]h$]h&]jjjuh1j_jjhjJhhhj`hMubah}(h]jEah ](jjeh"]h$]h&]juh1jYh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chM"hjGhhubj)}(hhh]h)}(h'scan interrupt vector for non-zero bitsh]h'scan interrupt vector for non-zero bits}(hjӰ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&]uh1jhjGhhhj`hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jThhhjhNhNubj)}(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)}(hjh]h Parameters}(hhhjhhhNhNubah}(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.chMhjubj1)}(hhh](j6)}(h=``struct airq_iv *iv`` pointer to interrupt vector structure h](j<)}(h``struct airq_iv *iv``h]jB)}(hjh]hstruct airq_iv *iv}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhj ubjX)}(hhh]h)}(h%pointer to interrupt vector structureh]h%pointer to interrupt vector structure}(hj-hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hMhj(ubah}(h]h ]h"]h$]h&]uh1jWhj ubeh}(h]h ]h"]h$]h&]uh1j5hj'hMhj ubj6)}(h7``unsigned long start`` bit number to start the search h](j<)}(h``unsigned long start``h]jB)}(hjKh]hunsigned long start}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjIubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjEubjX)}(hhh]h)}(hbit number to start the searchh]hbit number to start the search}(hjfhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMhjaubah}(h]h ]h"]h$]h&]uh1jWhjEubeh}(h]h ]h"]h$]h&]uh1j5hj`hMhj ubj6)}(h3``unsigned long end`` bit number to end the search h](j<)}(h``unsigned long end``h]jB)}(hjh]hunsigned long end}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jAhjubah}(h]h ]h"]h$]h&]uh1j;h`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhj~ubjX)}(hhh]h)}(hbit number to end the searchh]hbit number to end the search}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jWhj~ubeh}(h]h ]h"]h$]h&]uh1j5hjhMhj ubeh}(h]h ]h"]h$]h&]uh1j0hjubh)}(h**Description**h]j)}(hjh]h Description}(hhhjhhhNhNubah}(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.chMhjubh)}(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ױhjձhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]adapter-interruptsah ]h"]adapter interruptsah$]h&]uh1hhjjhhhhhKubeh}(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.confapep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacefile_insertion_enabled raw_enabledKline_length_limitM'syntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_link embed_imagesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjUjRjjjjjjjjjߐjܐjgjdj_j\jjjju nametypes}(jNjUNjNjNjNjNjߐNjgNj_NjNjNuh}(jhjRhjjXjjjj$jRj[jbjgjwj|j j j j j+j0jjjjjjjjjjjjjjj#j(jjjjj0 j5 j"j"j%j%j'j'j*j*j,j,j.j.j0j0j2j2j3j3j6j#6j8j8j:j:j2<j7<j=j=j`@je@jFjFj0Kj5KjOjOjTjUjWjWjZj Zj\j\j/^j4^jn`js`jbjbjdjdjhjhjsljxljojojMsjRsjPujUujvjvjxjxj|j|j~j~jpjujȂj͂jܐjjGjMjjjjjGjLjjjdjj\j j&j+jjjtjyj5j:jdjijj$jjj#j(jjjjjjjjjj6j;jjjQjVjjjլjڬjEjJu 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.