€•.Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ+/translations/zh_CN/driver-api/s390-drivers”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/zh_TW/driver-api/s390-drivers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/it_IT/driver-api/s390-drivers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ja_JP/driver-api/s390-drivers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/ko_KR/driver-api/s390-drivers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/pt_BR/driver-api/s390-drivers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ+/translations/sp_SP/driver-api/s390-drivers”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ#Writing s390 channel device drivers”h]”hŒ#Writing s390 channel device drivers”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒE/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers.rst”h´KubhŒ field_list”“”)�”}”(hhh]”hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hh×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÕhhÒh³hÊh´KubhŒ field_body”“”)�”}”(hŒCornelia Huck ”h]”hŒ paragraph”“”)�”}”(hŒ Cornelia Huck”h]”hŒ Cornelia Huck”…”�”}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khhçubah}”(h]”h ]”h"]”h$]”h&]”uh1håhhÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÐh³hÊh´KhhÍh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1hËhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj h²hh³hÊh´Kubhì)�”}”(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.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K hj h²hubhì)�”}”(hŒóThe 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]”hŒ÷The 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.”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khj h²hubhì)�”}”(hŒÖWhile 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]”hŒÖWhile 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:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khj h²hubhì)�”}”(hŒÀThe 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]”hŒÀThe 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.”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khj h²hubhì)�”}”(hŒrSome additional information can also be found in the kernel source under Documentation/arch/s390/driver-model.rst.”h]”hŒrSome additional information can also be found in the kernel source under Documentation/arch/s390/driver-model.rst.”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khj h²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ The css bus”h]”hŒ The css bus”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjlh²hh³hÊh´K!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:”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K#hjlh²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒqStandard I/O subchannels, for use by the system. They have a child device on the ccw bus and are described below.”h]”hì)�”}”(hŒqStandard I/O subchannels, for use by the system. They have a child device on the ccw bus and are described below.”h]”hŒqStandard I/O subchannels, for use by the system. They have a child device on the ccw bus and are described below.”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K&hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�h²hh³hÊh´Nubj‘)�”}”(hŒWI/O subchannels bound to the vfio-ccw driver. See Documentation/arch/s390/vfio-ccw.rst.”h]”hì)�”}”(hŒWI/O subchannels bound to the vfio-ccw driver. See Documentation/arch/s390/vfio-ccw.rst.”h]”hŒWI/O subchannels bound to the vfio-ccw driver. See Documentation/arch/s390/vfio-ccw.rst.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K(hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�h²hh³hÊh´Nubj‘)�”}”(hŒ6Message subchannels. No Linux driver currently exists.”h]”hì)�”}”(hjÄh]”hŒ6Message subchannels. No Linux driver currently exists.”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K*hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�h²hh³hÊh´Nubj‘)�”}”(hŒjCHSC subchannels (at most one). The chsc subchannel driver can be used to send asynchronous chsc commands.”h]”hì)�”}”(hŒjCHSC subchannels (at most one). The chsc subchannel driver can be used to send asynchronous chsc commands.”h]”hŒjCHSC subchannels (at most one). The chsc subchannel driver can be used to send asynchronous chsc commands.”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K+hjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�h²hh³hÊh´Nubj‘)�”}”(hŒhj8h²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œccw1 (C struct)”Œc.ccw1”hNt”auh1jWhj8h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒccw1”h]”hŒdesc_signature_line”“”)�”}”(hŒ struct ccw1”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jyhjuh²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j‹hjuh²hh³jŠh´KubhŒ desc_name”“”)�”}”(hŒccw1”h]”hŒ desc_sig_name”“”)�”}”(hjqh]”hŒccw1”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j¢hjžubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jœhjuh²hh³jŠh´Kubeh}”(h]”h ]”h"]”h$]”h&]”jºj»Œ add_permalink”ˆuh1jsŒsphinx_line_type”Œ declarator”hjoh²hh³jŠh´Kubah}”(h]”jfah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jmh³jŠh´Khjjh²hubhŒ desc_content”“”)�”}”(hhh]”hì)�”}”(hŒchannel command word”h]”hŒchannel command word”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KhjÒh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjjh²hh³jŠh´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”jíŒobjtype”jîŒdesctype”jîŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jhh²hhj8h³Nh´NubhŒ 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 address”h]”(hì)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþubhŒ:”…”�”}”(hjþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KhjúubhŒ literal_block”“”)�”}”(hŒUstruct ccw1 { __u8 cmd_code; __u8 flags; __u16 count; dma32_t cda; };”h]”hŒUstruct ccw1 { __u8 cmd_code; __u8 flags; __u16 count; dma32_t cda; };”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Khjúubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj0h]”hŒMembers”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K%hjúubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ``cmd_code`` command code ”h]”(hŒterm”“”)�”}”(hŒ ``cmd_code``”h]”hŒliteral”“”)�”}”(hjUh]”hŒcmd_code”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KhjMubhŒ definition”“”)�”}”(hhh]”hì)�”}”(hŒ command code”h]”hŒ command code”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jlh´Khjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jlh´KhjHubjL)�”}”(hŒ+``flags`` flags, like IDA addressing, etc. ”h]”(jR)�”}”(hŒ ``flags``”h]”jX)�”}”(hj’h]”hŒflags”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KhjŒubjn)�”}”(hhh]”hì)�”}”(hŒ flags, like IDA addressing, etc.”h]”hŒ flags, like IDA addressing, etc.”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j§h´Khj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j§h´KhjHubjL)�”}”(hŒ``count`` byte count ”h]”(jR)�”}”(hŒ ``count``”h]”jX)�”}”(hjËh]”hŒcount”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KhjÅubjn)�”}”(hhh]”hì)�”}”(hŒ byte count”h]”hŒ byte count”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jàh´Khjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jàh´KhjHubjL)�”}”(hŒ``cda`` data address”h]”(jR)�”}”(hŒ``cda``”h]”jX)�”}”(hjh]”hŒcda”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Khjþubjn)�”}”(hhh]”hì)�”}”(hŒ data address”h]”hŒ data address”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jh´KhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjúubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´Nubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjGh]”hŒ Description”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K hj8h²hubhì)�”}”(hŒ¨The 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]”hŒ¨The 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.”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Khj8h²hubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw0 (C struct)”Œc.ccw0”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒccw0”h]”jt)�”}”(hŒ struct ccw0”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj�h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K$ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�h²hh³j’h´K$ubj�)�”}”(hŒccw0”h]”j£)�”}”(hjh]”hŒccw0”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¡ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj�h²hh³j’h´K$ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj}h²hh³j’h´K$ubah}”(h]”jxah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j’h´K$hjzh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒchannel command word”h]”hŒchannel command word”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K*hjÄh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjzh²hh³j’h´K$ubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójßjôjßjõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 count”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjçubhŒ:”…”�”}”(hjçh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K.hjãubj)�”}”(hŒkstruct ccw0 { __u8 cmd_code; __u32 cda : 24; __u8 flags; __u8 reserved; __u16 count; };”h]”hŒkstruct ccw0 { __u8 cmd_code; __u32 cda : 24; __u8 flags; __u8 reserved; __u16 count; };”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K0hjãubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjh]”hŒMembers”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K8hjãubjG)�”}”(hhh]”(jL)�”}”(hŒ``cmd_code`` command code ”h]”(jR)�”}”(hŒ ``cmd_code``”h]”jX)�”}”(hj4h]”hŒcmd_code”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K,hj.ubjn)�”}”(hhh]”hì)�”}”(hŒ command code”h]”hŒ command code”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jIh´K,hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jIh´K,hj+ubjL)�”}”(hŒ``cda`` data address ”h]”(jR)�”}”(hŒ``cda``”h]”jX)�”}”(hjmh]”hŒcda”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K-hjgubjn)�”}”(hhh]”hì)�”}”(hŒ data address”h]”hŒ data address”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‚h´K-hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j‚h´K-hj+ubjL)�”}”(hŒ+``flags`` flags, like IDA addressing, etc. ”h]”(jR)�”}”(hŒ ``flags``”h]”jX)�”}”(hj¦h]”hŒflags”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K.hj ubjn)�”}”(hhh]”hì)�”}”(hŒ flags, like IDA addressing, etc.”h]”hŒ flags, like IDA addressing, etc.”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j»h´K.hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j»h´K.hj+ubjL)�”}”(hŒ``reserved`` will be ignored ”h]”(jR)�”}”(hŒ ``reserved``”h]”jX)�”}”(hjßh]”hŒreserved”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K/hjÙubjn)�”}”(hhh]”hì)�”}”(hŒwill be ignored”h]”hŒwill be ignored”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jôh´K/hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jôh´K/hj+ubjL)�”}”(hŒ``count`` byte count”h]”(jR)�”}”(hŒ ``count``”h]”jX)�”}”(hjh]”hŒcount”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K/hjubjn)�”}”(hhh]”hì)�”}”(hŒ byte count”h]”hŒ byte count”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K0hj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j-h´K/hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjãubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´Nubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj[h]”hŒ Description”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K3hj8h²hubhì)�”}”(hŒThe format-0 ccw structure.”h]”hŒThe format-0 ccw structure.”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K0hj8h²hubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒerw (C struct)”Œc.erw”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒerw”h]”jt)�”}”(hŒ struct erw”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj•h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K5ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj•h²hh³j¦h´K5ubj�)�”}”(hŒerw”h]”j£)�”}”(hj“h]”hŒerw”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjµubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj•h²hh³j¦h´K5ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj‘h²hh³j¦h´K5ubah}”(h]”jŒah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j¦h´K5hjŽh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒextended report word”h]”hŒextended report word”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KShjØh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjŽh²hh³j¦h´K5ubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójójôjójõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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`` reserved”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûubhŒ:”…”�”}”(hjûh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KWhj÷ubj)�”}”(hŒâ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; };”h]”hŒâ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; };”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KYhj÷ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj)h]”hŒMembers”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kfhj÷ubjG)�”}”(hhh]”(jL)�”}”(hŒ``res0`` reserved ”h]”(jR)�”}”(hŒ``res0``”h]”jX)�”}”(hjHh]”hŒres0”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KUhjBubjn)�”}”(hhh]”hì)�”}”(hŒreserved”h]”hŒreserved”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j]h´KUhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j]h´KUhj?ubjL)�”}”(hŒ``auth`` authorization check ”h]”(jR)�”}”(hŒ``auth``”h]”jX)�”}”(hj�h]”hŒauth”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KVhj{ubjn)�”}”(hhh]”hì)�”}”(hŒauthorization check”h]”hŒauthorization check”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j–h´KVhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j–h´KVhj?ubjL)�”}”(hŒ)``pvrf`` path-verification-required flag ”h]”(jR)�”}”(hŒ``pvrf``”h]”jX)�”}”(hjºh]”hŒpvrf”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KWhj´ubjn)�”}”(hhh]”hì)�”}”(hŒpath-verification-required flag”h]”hŒpath-verification-required flag”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÏh´KWhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÏh´KWhj?ubjL)�”}”(hŒ``cpt`` channel-path timeout ”h]”(jR)�”}”(hŒ``cpt``”h]”jX)�”}”(hjóh]”hŒcpt”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KXhjíubjn)�”}”(hhh]”hì)�”}”(hŒchannel-path timeout”h]”hŒchannel-path timeout”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´KXhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jh´KXhj?ubjL)�”}”(hŒ0``fsavf`` failing storage address validity flag ”h]”(jR)�”}”(hŒ ``fsavf``”h]”jX)�”}”(hj,h]”hŒfsavf”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KYhj&ubjn)�”}”(hhh]”hì)�”}”(hŒ%failing storage address validity flag”h]”hŒ%failing storage address validity flag”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jAh´KYhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jAh´KYhj?ubjL)�”}”(hŒ``cons`` concurrent sense ”h]”(jR)�”}”(hŒ``cons``”h]”jX)�”}”(hjeh]”hŒcons”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KZhj_ubjn)�”}”(hhh]”hì)�”}”(hŒconcurrent sense”h]”hŒconcurrent sense”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jzh´KZhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jzh´KZhj?ubjL)�”}”(hŒ.``scavf`` secondary ccw address validity flag ”h]”(jR)�”}”(hŒ ``scavf``”h]”jX)�”}”(hjžh]”hŒscavf”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K[hj˜ubjn)�”}”(hhh]”hì)�”}”(hŒ#secondary ccw address validity flag”h]”hŒ#secondary ccw address validity flag”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j³h´K[hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j³h´K[hj?ubjL)�”}”(hŒ(``fsaf`` failing storage address format ”h]”(jR)�”}”(hŒ``fsaf``”h]”jX)�”}”(hj×h]”hŒfsaf”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K\hjÑubjn)�”}”(hhh]”hì)�”}”(hŒfailing storage address format”h]”hŒfailing storage address format”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jìh´K\hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jìh´K\hj?ubjL)�”}”(hŒ+``scnt`` sense count, if **cons** == ``1`` ”h]”(jR)�”}”(hŒ``scnt``”h]”jX)�”}”(hj h]”hŒscnt”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K]hj ubjn)�”}”(hhh]”hì)�”}”(hŒ!sense count, if **cons** == ``1``”h]”(hŒsense count, if ”…”�”}”(hj) h²hh³Nh´Nubj)�”}”(hŒ**cons**”h]”hŒcons”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj) ubhŒ == ”…”�”}”(hj) h²hh³Nh´NubjX)�”}”(hŒ``1``”h]”hŒ1”…”�”}”(hjC h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj) ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j% h´K]hj& ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j% h´K]hj?ubjL)�”}”(hŒ``res16`` reserved”h]”(jR)�”}”(hŒ ``res16``”h]”jX)�”}”(hji h]”hŒres16”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K]hjc ubjn)�”}”(hhh]”hì)�”}”(hŒreserved”h]”hŒreserved”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K^hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjc ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j~ h´K]hj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj÷ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒerw_eadm (C struct)”Œ c.erw_eadm”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒerw_eadm”h]”jt)�”}”(hŒstruct erw_eadm”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj¿ h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KdubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¿ h²hh³jÐ h´Kdubj�)�”}”(hŒerw_eadm”h]”j£)�”}”(hj½ h]”hŒerw_eadm”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjß ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj¿ h²hh³jÐ h´Kdubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj» h²hh³jÐ h´Kdubah}”(h]”j¶ ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÐ h´Kdhj¸ h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ$EADM Subchannel extended report word”h]”hŒ$EADM Subchannel extended report word”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kmhj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj¸ h²hh³jÐ h´Kdubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój jôj jõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(hŒ¨**Definition**:: struct erw_eadm { __u32 : 16; __u32 b : 1; __u32 r : 1; __u32 : 14; }; **Members** ``b`` aob error ``r`` arsb error”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj% ubhŒ:”…”�”}”(hj% h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kqhj! ubj)�”}”(hŒVstruct erw_eadm { __u32 : 16; __u32 b : 1; __u32 r : 1; __u32 : 14; };”h]”hŒVstruct erw_eadm { __u32 : 16; __u32 b : 1; __u32 r : 1; __u32 : 14; };”…”�”}”hjB sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kshj! ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjS h]”hŒMembers”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kzhj! ubjG)�”}”(hhh]”(jL)�”}”(hŒ``b`` aob error ”h]”(jR)�”}”(hŒ``b``”h]”jX)�”}”(hjr h]”hŒb”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjp ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kohjl ubjn)�”}”(hhh]”hì)�”}”(hŒ aob error”h]”hŒ aob error”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‡ h´Kohjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjl ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j‡ h´Kohji ubjL)�”}”(hŒ``r`` arsb error”h]”(jR)�”}”(hŒ``r``”h]”jX)�”}”(hj« h]”hŒr”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj© ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kohj¥ ubjn)�”}”(hhh]”hì)�”}”(hŒ arsb error”h]”hŒ arsb error”…”�”}”(hjÄ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KphjÁ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¥ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÀ h´Kohji ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj! ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒsublog (C struct)”Œc.sublog”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒsublog”h]”jt)�”}”(hŒ struct sublog”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KvubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj h²hh³j h´Kvubj�)�”}”(hŒsublog”h]”j£)�”}”(hjÿ h]”hŒsublog”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj! ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj h²hh³j h´Kvubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjý h²hh³j h´Kvubah}”(h]”jø ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j h´Kvhjú h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒsubchannel logout area”h]”hŒsubchannel logout area”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KyhjD h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjú h²hh³j h´Kvubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój_ jôj_ jõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 code”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjg ubhŒ:”…”�”}”(hjg h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K}hjc ubj)�”}”(hŒù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; };”h]”hŒù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; };”…”�”}”hj„ sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Khjc ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj• h]”hŒMembers”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj“ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K�hjc ubjG)�”}”(hhh]”(jL)�”}”(hŒ``res0`` reserved ”h]”(jR)�”}”(hŒ``res0``”h]”jX)�”}”(hj´ h]”hŒres0”…”�”}”(hj¶ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj² ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K{hj® ubjn)�”}”(hhh]”hì)�”}”(hŒreserved”h]”hŒreserved”…”�”}”(hjÍ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÉ h´K{hjÊ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj® ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÉ h´K{hj« ubjL)�”}”(hŒ``esf`` extended status flags ”h]”(jR)�”}”(hŒ``esf``”h]”jX)�”}”(hjí h]”hŒesf”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K|hjç ubjn)�”}”(hhh]”hì)�”}”(hŒextended status flags”h]”hŒextended status flags”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´K|hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjç ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j h´K|hj« ubjL)�”}”(hŒ``lpum`` last path used mask ”h]”(jR)�”}”(hŒ``lpum``”h]”jX)�”}”(hj& h]”hŒlpum”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj$ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K}hj ubjn)�”}”(hhh]”hì)�”}”(hŒlast path used mask”h]”hŒlast path used mask”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j; h´K}hj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j; h´K}hj« ubjL)�”}”(hŒ``arep`` ancillary report ”h]”(jR)�”}”(hŒ``arep``”h]”jX)�”}”(hj_ h]”hŒarep”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj] ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K~hjY ubjn)�”}”(hhh]”hì)�”}”(hŒancillary report”h]”hŒancillary report”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jt h´K~hju ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjY ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jt h´K~hj« ubjL)�”}”(hŒ``fvf`` field-validity flags ”h]”(jR)�”}”(hŒ``fvf``”h]”jX)�”}”(hj˜ h]”hŒfvf”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Khj’ ubjn)�”}”(hhh]”hì)�”}”(hŒfield-validity flags”h]”hŒfield-validity flags”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j­ h´Khj® ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj’ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j­ h´Khj« ubjL)�”}”(hŒ``sacc`` storage access code ”h]”(jR)�”}”(hŒ``sacc``”h]”jX)�”}”(hjÑ h]”hŒsacc”…”�”}”(hjÓ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÏ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K€hjË ubjn)�”}”(hhh]”hì)�”}”(hŒstorage access code”h]”hŒstorage access code”…”�”}”(hjê h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jæ h´K€hjç ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjË ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jæ h´K€hj« ubjL)�”}”(hŒ``termc`` termination code ”h]”(jR)�”}”(hŒ ``termc``”h]”jX)�”}”(hj h]”hŒtermc”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K�hj ubjn)�”}”(hhh]”hì)�”}”(hŒtermination code”h]”hŒtermination code”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´K�hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j h´K�hj« ubjL)�”}”(hŒ``devsc`` device-status check ”h]”(jR)�”}”(hŒ ``devsc``”h]”jX)�”}”(hjC h]”hŒdevsc”…”�”}”(hjE h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K‚hj= ubjn)�”}”(hhh]”hì)�”}”(hŒdevice-status check”h]”hŒdevice-status check”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jX h´K‚hjY ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj= ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jX h´K‚hj« ubjL)�”}”(hŒ``serr`` secondary error ”h]”(jR)�”}”(hŒ``serr``”h]”jX)�”}”(hj| h]”hŒserr”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjz ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kƒhjv ubjn)�”}”(hhh]”hì)�”}”(hŒsecondary error”h]”hŒsecondary error”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‘ h´Kƒhj’ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjv ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j‘ h´Kƒhj« ubjL)�”}”(hŒ``ioerr`` i/o-error alert ”h]”(jR)�”}”(hŒ ``ioerr``”h]”jX)�”}”(hjµ h]”hŒioerr”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj³ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K„hj¯ ubjn)�”}”(hhh]”hì)�”}”(hŒi/o-error alert”h]”hŒi/o-error alert”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÊ h´K„hjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¯ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÊ h´K„hj« ubjL)�”}”(hŒ``seqc`` sequence code”h]”(jR)�”}”(hŒ``seqc``”h]”jX)�”}”(hjî h]”hŒseqc”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjì ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K„hjè ubjn)�”}”(hhh]”hì)�”}”(hŒ sequence code”h]”hŒ sequence code”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K…hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjè ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jh´K„hj« ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjc ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒesw0 (C struct)”Œc.esw0”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒesw0”h]”jt)�”}”(hŒ struct esw0”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjDh²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K‹ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjDh²hh³jUh´K‹ubj�)�”}”(hŒesw0”h]”j£)�”}”(hjBh]”hŒesw0”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjdubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjDh²hh³jUh´K‹ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj@h²hh³jUh´K‹ubah}”(h]”j;ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jUh´K‹hj=h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ#Format 0 Extended Status Word (ESW)”h]”hŒ#Format 0 Extended Status Word (ESW)”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K•hj‡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj=h²hh³jUh´K‹ubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój¢jôj¢jõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 address”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjªubhŒ:”…”�”}”(hjªh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K™hj¦ubj)�”}”(hŒgstruct esw0 { struct sublog sublog; struct erw erw; dma32_t faddr[2]; dma32_t saddr; };”h]”hŒgstruct esw0 { struct sublog sublog; struct erw erw; dma32_t faddr[2]; dma32_t saddr; };”…”�”}”hjÇsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K›hj¦ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjØh]”hŒMembers”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¢hj¦ubjG)�”}”(hhh]”(jL)�”}”(hŒ``sublog`` subchannel logout ”h]”(jR)�”}”(hŒ ``sublog``”h]”jX)�”}”(hj÷h]”hŒsublog”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K—hjñubjn)�”}”(hhh]”hì)�”}”(hŒsubchannel logout”h]”hŒsubchannel logout”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´K—hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j h´K—hjîubjL)�”}”(hŒ``erw`` extended report word ”h]”(jR)�”}”(hŒ``erw``”h]”jX)�”}”(hj0h]”hŒerw”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K˜hj*ubjn)�”}”(hhh]”hì)�”}”(hŒextended report word”h]”hŒextended report word”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jEh´K˜hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jEh´K˜hjîubjL)�”}”(hŒ"``faddr`` failing storage address ”h]”(jR)�”}”(hŒ ``faddr``”h]”jX)�”}”(hjih]”hŒfaddr”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K™hjcubjn)�”}”(hhh]”hì)�”}”(hŒfailing storage address”h]”hŒfailing storage address”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j~h´K™hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j~h´K™hjîubjL)�”}”(hŒ``saddr`` secondary ccw address”h]”(jR)�”}”(hŒ ``saddr``”h]”jX)�”}”(hj¢h]”hŒsaddr”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K™hjœubjn)�”}”(hhh]”hì)�”}”(hŒsecondary ccw address”h]”hŒsecondary ccw address”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kšhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j·h´K™hjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¦ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒesw1 (C struct)”Œc.esw1”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒesw1”h]”jt)�”}”(hŒ struct esw1”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjøh²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjøh²hh³j h´K ubj�)�”}”(hŒesw1”h]”j£)�”}”(hjöh]”hŒesw1”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjøh²hh³j h´K ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjôh²hh³j h´K ubah}”(h]”jïah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j h´K hjñh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ#Format 1 Extended Status Word (ESW)”h]”hŒ#Format 1 Extended Status Word (ESW)”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K£hj;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjñh²hh³j h´K ubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójVjôjVjõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 zeros”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^ubhŒ:”…”�”}”(hj^h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K§hjZubj)�”}”(hŒistruct esw1 { __u8 zero0; __u8 lpum; __u16 zero16; struct erw erw; __u32 zeros[3]; };”h]”hŒistruct esw1 { __u8 zero0; __u8 lpum; __u16 zero16; struct erw erw; __u32 zeros[3]; };”…”�”}”hj{sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K©hjZubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjŒh]”hŒMembers”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K±hjZubjG)�”}”(hhh]”(jL)�”}”(hŒ``zero0`` reserved zeros ”h]”(jR)�”}”(hŒ ``zero0``”h]”jX)�”}”(hj«h]”hŒzero0”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¥hj¥ubjn)�”}”(hhh]”hì)�”}”(hŒreserved zeros”h]”hŒreserved zeros”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÀh´K¥hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÀh´K¥hj¢ubjL)�”}”(hŒ``lpum`` last path used mask ”h]”(jR)�”}”(hŒ``lpum``”h]”jX)�”}”(hjäh]”hŒlpum”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¦hjÞubjn)�”}”(hhh]”hì)�”}”(hŒlast path used mask”h]”hŒlast path used mask”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jùh´K¦hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÞubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jùh´K¦hj¢ubjL)�”}”(hŒ``zero16`` reserved zeros ”h]”(jR)�”}”(hŒ ``zero16``”h]”jX)�”}”(hjh]”hŒzero16”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K§hjubjn)�”}”(hhh]”hì)�”}”(hŒreserved zeros”h]”hŒreserved zeros”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j2h´K§hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j2h´K§hj¢ubjL)�”}”(hŒ``erw`` extended report word ”h]”(jR)�”}”(hŒ``erw``”h]”jX)�”}”(hjVh]”hŒerw”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¨hjPubjn)�”}”(hhh]”hì)�”}”(hŒextended report word”h]”hŒextended report word”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jkh´K¨hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jkh´K¨hj¢ubjL)�”}”(hŒ"``zeros`` three fullwords of zeros”h]”(jR)�”}”(hŒ ``zeros``”h]”jX)�”}”(hj�h]”hŒzeros”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¨hj‰ubjn)�”}”(hhh]”hì)�”}”(hŒthree fullwords of zeros”h]”hŒthree fullwords of zeros”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K©hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¤h´K¨hj¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjZubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒesw2 (C struct)”Œc.esw2”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒesw2”h]”jt)�”}”(hŒ struct esw2”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjåh²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¯ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjåh²hh³jöh´K¯ubj�)�”}”(hŒesw2”h]”j£)�”}”(hjãh]”hŒesw2”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjåh²hh³jöh´K¯ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjáh²hh³jöh´K¯ubah}”(h]”jÜah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jöh´K¯hjÞh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ#Format 2 Extended Status Word (ESW)”h]”hŒ#Format 2 Extended Status Word (ESW)”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K³hj(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjÞh²hh³jöh´K¯ubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójCjôjCjõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 zeros”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjKubhŒ:”…”�”}”(hjKh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K·hjGubj)�”}”(hŒgstruct esw2 { __u8 zero0; __u8 lpum; __u16 dcti; struct erw erw; __u32 zeros[3]; };”h]”hŒgstruct esw2 { __u8 zero0; __u8 lpum; __u16 dcti; struct erw erw; __u32 zeros[3]; };”…”�”}”hjhsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¹hjGubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjyh]”hŒMembers”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÁhjGubjG)�”}”(hhh]”(jL)�”}”(hŒ``zero0`` reserved zeros ”h]”(jR)�”}”(hŒ ``zero0``”h]”jX)�”}”(hj˜h]”hŒzero0”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kµhj’ubjn)�”}”(hhh]”hì)�”}”(hŒreserved zeros”h]”hŒreserved zeros”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j­h´Kµhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j­h´Kµhj�ubjL)�”}”(hŒ``lpum`` last path used mask ”h]”(jR)�”}”(hŒ``lpum``”h]”jX)�”}”(hjÑh]”hŒlpum”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¶hjËubjn)�”}”(hhh]”hì)�”}”(hŒlast path used mask”h]”hŒlast path used mask”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jæh´K¶hjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jæh´K¶hj�ubjL)�”}”(hŒ&``dcti`` device-connect-time interval ”h]”(jR)�”}”(hŒ``dcti``”h]”jX)�”}”(hj h]”hŒdcti”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K·hjubjn)�”}”(hhh]”hì)�”}”(hŒdevice-connect-time interval”h]”hŒdevice-connect-time interval”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´K·hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jh´K·hj�ubjL)�”}”(hŒ``erw`` extended report word ”h]”(jR)�”}”(hŒ``erw``”h]”jX)�”}”(hjCh]”hŒerw”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¸hj=ubjn)�”}”(hhh]”hì)�”}”(hŒextended report word”h]”hŒextended report word”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jXh´K¸hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jXh´K¸hj�ubjL)�”}”(hŒ"``zeros`` three fullwords of zeros”h]”(jR)�”}”(hŒ ``zeros``”h]”jX)�”}”(hj|h]”hŒzeros”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¸hjvubjn)�”}”(hhh]”hì)�”}”(hŒthree fullwords of zeros”h]”hŒthree fullwords of zeros”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¹hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j‘h´K¸hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjGubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒesw3 (C struct)”Œc.esw3”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒesw3”h]”jt)�”}”(hŒ struct esw3”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÒh²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K¿ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÒh²hh³jãh´K¿ubj�)�”}”(hŒesw3”h]”j£)�”}”(hjÐh]”hŒesw3”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjòubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjÒh²hh³jãh´K¿ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÎh²hh³jãh´K¿ubah}”(h]”jÉah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jãh´K¿hjËh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ#Format 3 Extended Status Word (ESW)”h]”hŒ#Format 3 Extended Status Word (ESW)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÃhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjËh²hh³jãh´K¿ubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój0jôj0jõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 zeros”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj8ubhŒ:”…”�”}”(hj8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÇhj4ubj)�”}”(hŒfstruct esw3 { __u8 zero0; __u8 lpum; __u16 res; struct erw erw; __u32 zeros[3]; };”h]”hŒfstruct esw3 { __u8 zero0; __u8 lpum; __u16 res; struct erw erw; __u32 zeros[3]; };”…”�”•}”hjUsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÉhj4ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjfh]”hŒMembers”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÑhj4ubjG)�”}”(hhh]”(jL)�”}”(hŒ``zero0`` reserved zeros ”h]”(jR)�”}”(hŒ ``zero0``”h]”jX)�”}”(hj…h]”hŒzero0”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÅhjubjn)�”}”(hhh]”hì)�”}”(hŒreserved zeros”h]”hŒreserved zeros”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jšh´KÅhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jšh´KÅhj|ubjL)�”}”(hŒ``lpum`` last path used mask ”h]”(jR)�”}”(hŒ``lpum``”h]”jX)�”}”(hj¾h]”hŒlpum”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÆhj¸ubjn)�”}”(hhh]”hì)�”}”(hŒlast path used mask”h]”hŒlast path used mask”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÓh´KÆhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÓh´KÆhj|ubjL)�”}”(hŒ``res`` reserved ”h]”(jR)�”}”(hŒ``res``”h]”jX)�”}”(hj÷h]”hŒres”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÇhjñubjn)�”}”(hhh]”hì)�”}”(hŒreserved”h]”hŒreserved”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´KÇhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j h´KÇhj|ubjL)�”}”(hŒ``erw`` extended report word ”h]”(jR)�”}”(hŒ``erw``”h]”jX)�”}”(hj0h]”hŒerw”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÈhj*ubjn)�”}”(hhh]”hì)�”}”(hŒextended report word”h]”hŒextended report word”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jEh´KÈhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jEh´KÈhj|ubjL)�”}”(hŒ"``zeros`` three fullwords of zeros”h]”(jR)�”}”(hŒ ``zeros``”h]”jX)�”}”(hjih]”hŒzeros”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÈhjcubjn)�”}”(hhh]”hì)�”}”(hŒthree fullwords of zeros”h]”hŒthree fullwords of zeros”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÉhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j~h´KÈhj|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒesw_eadm (C struct)”Œ c.esw_eadm”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒesw_eadm”h]”jt)�”}”(hŒstruct esw_eadm”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj¿h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÏubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¿h²hh³jÐh´KÏubj�)�”}”(hŒesw_eadm”h]”j£)�”}”(hj½h]”hŒesw_eadm”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjßubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj¿h²hh³jÐh´KÏubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj»h²hh³jÐh´KÏubah}”(h]”j¶ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÐh´KÏhj¸h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ*EADM Subchannel Extended Status Word (ESW)”h]”hŒ*EADM Subchannel Extended Status Word (ESW)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÓhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj¸h²hh³jÐh´KÏubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójjôjjõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(hŒÜ**Definition**:: struct esw_eadm { __u32 sublog; struct erw_eadm erw; __u32 : 32; __u32 : 32; __u32 : 32; }; **Members** ``sublog`` subchannel logout ``erw`` extended report word”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%ubhŒ:”…”�”}”(hj%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´K×hj!ubj)�”}”(hŒostruct esw_eadm { __u32 sublog; struct erw_eadm erw; __u32 : 32; __u32 : 32; __u32 : 32; };”h]”hŒostruct esw_eadm { __u32 sublog; struct erw_eadm erw; __u32 : 32; __u32 : 32; __u32 : 32; };”…”�”}”hjBsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÙhj!ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjSh]”hŒMembers”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Káhj!ubjG)�”}”(hhh]”(jL)�”}”(hŒ``sublog`` subchannel logout ”h]”(jR)�”}”(hŒ ``sublog``”h]”jX)�”}”(hjrh]”hŒsublog”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÕhjlubjn)�”}”(hhh]”hì)�”}”(hŒsubchannel logout”h]”hŒsubchannel logout”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‡h´KÕhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjlubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j‡h´KÕhjiubjL)�”}”(hŒ``erw`` extended report word”h]”(jR)�”}”(hŒ``erw``”h]”jX)�”}”(hj«h]”hŒerw”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÕhj¥ubjn)�”}”(hhh]”hì)�”}”(hŒextended report word”h]”hŒextended report word”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÖhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÀh´KÕhjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒirb (C struct)”Œc.irb”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒirb”h]”jt)�”}”(hŒ struct irb”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjh²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KÜubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjh²hh³jh´KÜubj�)�”}”(hŒirb”h]”j£)�”}”(hjÿh]”hŒirb”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj!ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjh²hh³jh´KÜubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjýh²hh³jh´KÜubah}”(h]”jøah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jh´KÜhjúh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒinterruption response block”h]”hŒinterruption response block”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KàhjDh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjúh²hh³jh´KÜubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój_jôj_jõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 word”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjgubhŒ:”…”�”}”(hjgh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kähjcubj)�”}”(hŒÓ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]; };”h]”hŒÓ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]; };”…”�”}”hj„sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kæhjcubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj•h]”hŒMembers”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KòhjcubjG)�”}”(hhh]”(jL)�”}”(hŒ ``scsw`` subchannel status word ”h]”(jR)�”}”(hŒ``scsw``”h]”jX)�”}”(hj´h]”hŒscsw”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kâhj®ubjn)�”}”(hhh]”hì)�”}”(hŒsubchannel status word”h]”hŒsubchannel status word”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÉh´KâhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÉh´Kâhj«ubjL)�”}”(hŒ``esw`` extended status word ”h]”(jR)�”}”(hŒ``esw``”h]”jX)�”}”(hjíh]”hŒesw”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kãhjçubjn)�”}”(hhh]”hì)�”}”(hŒextended status word”h]”hŒextended status word”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´Kãhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jh´Kãhj«ubjL)�”}”(hŒ``ecw`` extended control word”h]”(jR)�”}”(hŒ``ecw``”h]”jX)�”}”(hj&h]”hŒecw”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kãhj ubjn)�”}”(hhh]”hì)�”}”(hŒextended control word”h]”hŒextended control word”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kähj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j;h´Kãhj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjcubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´Nubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjih]”hŒ Description”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kçhj8h²hubhì)�”}”(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]”(hŒÓThe 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 ”…”�”}”(hjh²hh³Nh´NubjX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjubhŒ. If a unit check occurred, ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ**ecw**”h]”hŒecw”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhX 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).”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kähj8h²hubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒciw (C struct)”Œc.ciw”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒciw”h]”jt)�”}”(hŒ struct ciw”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÇh²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´KðubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÇh²hh³jØh´Kðubj�)�”}”(hŒciw”h]”j£)�”}”(hjÅh]”hŒciw”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjçubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjÇh²hh³jØh´Kðubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÃh²hh³jØh´Kðubah}”(h]”j¾ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jØh´KðhjÀh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ%command information word (CIW) layout”h]”hŒ%command information word (CIW) layout”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kûhj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjÀh²hh³jØh´Kðubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój%jôj%jõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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 count”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-ubhŒ:”…”�”}”(hj-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kÿhj)ubj)�”}”(hŒŒstruct ciw { __u32 et : 2; __u32 reserved : 2; __u32 ct : 4; __u32 cmd : 8; __u32 count : 16; };”h]”hŒŒstruct ciw { __u32 et : 2; __u32 reserved : 2; __u32 ct : 4; __u32 cmd : 8; __u32 count : 16; };”…”�”}”hjJsbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Mhj)ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj[h]”hŒMembers”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´M hj)ubjG)�”}”(hhh]”(jL)�”}”(hŒ``et`` entry type ”h]”(jR)�”}”(hŒ``et``”h]”jX)�”}”(hjzh]”hŒet”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kýhjtubjn)�”}”(hhh]”hì)�”}”(hŒ entry type”h]”hŒ entry type”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�h´Kýhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j�h´KýhjqubjL)�”}”(hŒ``reserved`` reserved bits ”h]”(jR)�”}”(hŒ ``reserved``”h]”jX)�”}”(hj³h]”hŒreserved”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kþhj­ubjn)�”}”(hhh]”hì)�”}”(hŒ reserved bits”h]”hŒ reserved bits”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÈh´KþhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÈh´KþhjqubjL)�”}”(hŒ``ct`` command type ”h]”(jR)�”}”(hŒ``ct``”h]”jX)�”}”(hjìh]”hŒct”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Kÿhjæubjn)�”}”(hhh]”hì)�”}”(hŒ command type”h]”hŒ command type”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´Kÿhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jh´KÿhjqubjL)�”}”(hŒ``cmd`` command code ”h]”(jR)�”}”(hŒ``cmd``”h]”jX)�”}”(hj%h]”hŒcmd”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Mhjubjn)�”}”(hhh]”hì)�”}”(hŒ command code”h]”hŒ command code”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j:h´Mhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j:h´MhjqubjL)�”}”(hŒ``count`` command count”h]”(jR)�”}”(hŒ ``count``”h]”jX)�”}”(hj^h]”hŒcount”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MhjXubjn)�”}”(hhh]”hì)�”}”(hŒ command count”h]”hŒ command count”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Mhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jsh´Mhjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_dev_id (C struct)”Œ c.ccw_dev_id”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ ccw_dev_id”h]”jt)�”}”(hŒstruct ccw_dev_id”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj´h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj´h²hh³jÅh´Mubj�)�”}”(hŒ ccw_dev_id”h]”j£)�”}”(hj²h]”hŒ ccw_dev_id”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÔubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj´h²hh³jÅh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj°h²hh³jÅh´Mubah}”(h]”j«ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÅh´Mhj­h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ!unique identifier for ccw devices”h]”hŒ!unique identifier for ccw devices”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´M?hj÷h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj­h²hh³jÅh´Mubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójjôjjõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(hŒ’**Definition**:: struct ccw_dev_id { u8 ssid; u16 devno; }; **Members** ``ssid`` subchannel set id ``devno`` device number”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MChjubj)�”}”(hŒ2struct ccw_dev_id { u8 ssid; u16 devno; };”h]”hŒ2struct ccw_dev_id { u8 ssid; u16 devno; };”…”�”}”hj7sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MEhjubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjHh]”hŒMembers”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MJhjubjG)�”}”(hhh]”(jL)�”}”(hŒ``ssid`` subchannel set id ”h]”(jR)�”}”(hŒ``ssid``”h]”jX)�”}”(hjgh]”hŒssid”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MAhjaubjn)�”}”(hhh]”hì)�”}”(hŒsubchannel set id”h]”hŒsubchannel set id”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j|h´MAhj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j|h´MAhj^ubjL)�”}”(hŒ``devno`` device number”h]”(jR)�”}”(hŒ ``devno``”h]”jX)�”}”(hj h]”hŒdevno”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjžubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MAhjšubjn)�”}”(hhh]”hì)�”}”(hŒ device number”h]”hŒ device number”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MBhj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jµh´MAhj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´Nubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjãh]”hŒ Description”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjáubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MEhj8h²hubhì)�”}”(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]”(hŒý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, ”…”�”}”(hjùh²hh³Nh´Nubj)�”}”(hŒ **struct**”h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùubhŒ ccw_dev_id has been introduced.”…”�”}”(hjùh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MBhj8h²hubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ ccw_dev_id_is_equal (C function)”Œc.ccw_dev_id_is_equal”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒPint ccw_dev_id_is_equal (struct ccw_dev_id *dev_id1, struct ccw_dev_id *dev_id2)”h]”jt)�”}”(hŒOint ccw_dev_id_is_equal(struct ccw_dev_id *dev_id1, struct ccw_dev_id *dev_id2)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j3hj/h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MOubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj/h²hh³jDh´MOubj�)�”}”(hŒccw_dev_id_is_equal”h]”j£)�”}”(hŒccw_dev_id_is_equal”h]”hŒccw_dev_id_is_equal”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjSubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj/h²hh³jDh´MOubhŒdesc_parameterlist”“”)�”}”(hŒ8(struct ccw_dev_id *dev_id1, struct ccw_dev_id *dev_id2)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct ccw_dev_id *dev_id1”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjsubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjsubh)�”}”(hhh]”j£)�”}”(hŒ ccw_dev_id”h]”hŒ ccw_dev_id”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj’ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”Œ identifier”Œ reftarget”j—Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j°Œ ASTIdentifier”“”)�”}”j«jYsbŒc.ccw_dev_id_is_equal”†”asbuh1hhjsubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjsubhŒdesc_sig_punctuation”“”)�”}”(hjh]”hŒ*”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jËhjsubj£)�”}”(hŒdev_id1”h]”hŒdev_id1”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjsubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjmubjr)�”}”(hŒstruct ccw_dev_id *dev_id2”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjðubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjðubh)�”}”(hhh]”j£)�”}”(hŒ ccw_dev_id”h]”hŒ ccw_dev_id”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¹Œc.ccw_dev_id_is_equal”†”asbuh1hhjðubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjðubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjðubj£)�”}”(hŒdev_id2”h]”hŒdev_id2”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjmubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj/h²hh³jDh´MOubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj+h²hh³jDh´MOubah}”(h]”j&ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jDh´MOhj(h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒcompare two ccw_dev_ids”h]”hŒcompare two ccw_dev_ids”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MOhjrh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj(h²hh³jDh´MOubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój�jôj�jõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(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** any”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj—h]”hŒ Parameters”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MShj‘ubjG)�”}”(hhh]”(jL)�”}”(hŒ,``struct ccw_dev_id *dev_id1`` a ccw_dev_id ”h]”(jR)�”}”(hŒ``struct ccw_dev_id *dev_id1``”h]”jX)�”}”(hj¶h]”hŒstruct ccw_dev_id *dev_id1”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MPhj°ubjn)�”}”(hhh]”hì)�”}”(hŒ a ccw_dev_id”h]”hŒ a ccw_dev_id”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jËh´MPhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jËh´MPhj­ubjL)�”}”(hŒ2``struct ccw_dev_id *dev_id2`` another ccw_dev_id ”h]”(jR)�”}”(hŒ``struct ccw_dev_id *dev_id2``”h]”jX)�”}”(hjïh]”hŒstruct ccw_dev_id *dev_id2”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MQhjéubjn)�”}”(hhh]”hì)�”}”(hŒanother ccw_dev_id”h]”hŒanother ccw_dev_id”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´MQhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jh´MQhj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‘ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hj*h]”hŒReturn”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MShj‘ubhì)�”}”(hŒC``1`` if the two structures are equal field-by-field, ``0`` if not.”h]”(jX)�”}”(hŒ``1``”h]”hŒ1”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj@ubhŒ1 if the two structures are equal field-by-field, ”…”�”}”(hj@h²hh³Nh´NubjX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj@ubhŒ if not.”…”�”}”(hj@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MRhj‘ubhì)�”}”(hŒ **Context**”h]”j)�”}”(hjqh]”hŒContext”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MUhj‘ubhì)�”}”(hŒany”h]”hŒany”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MUhj‘ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒpathmask_to_pos (C function)”Œc.pathmask_to_pos”hNt”auh1jWhj8h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒu8 pathmask_to_pos (u8 mask)”h]”jt)�”}”(hŒu8 pathmask_to_pos(u8 mask)”h]”(h)�”}”(hhh]”j£)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j»Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«Œpathmask_to_pos”sbŒc.pathmask_to_pos”†”asbuh1hhj²h²hh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´MbubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj²h²hh³jÚh´Mbubj�)�”}”(hŒpathmask_to_pos”h]”j£)�”}”(hj×h]”hŒpathmask_to_pos”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjéubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj²h²hh³jÚh´Mbubjl)�”}”(hŒ (u8 mask)”h]”jr)�”}”(hŒu8 mask”h]”(h)�”}”(hhh]”j£)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jÕŒc.pathmask_to_pos”†”asbuh1hhjubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjubj£)�”}”(hŒmask”h]”hŒmask”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj²h²hh³jÚh´Mbubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj®h²hh³jÚh´Mbubah}”(h]”j©ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÚh´Mbhj«h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ4find the position of the left-most bit in a pathmask”h]”hŒ4find the position of the left-most bit in a pathmask”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Mbhj^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj«h²hh³jÚh´Mbubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójyjôjyjõ‰jö‰j÷‰uh1jhh²hhj8h³Nh´Nubjù)�”}”(hŒ@**Parameters** ``u8 mask`` pathmask with at least one bit set”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjƒh]”hŒ Parameters”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Mfhj}ubjG)�”}”(hhh]”jL)�”}”(hŒ.``u8 mask`` pathmask with at least one bit set”h]”(jR)�”}”(hŒ ``u8 mask``”h]”jX)�”}”(hj¢h]”hŒu8 mask”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Mhhjœubjn)�”}”(hhh]”hì)�”}”(hŒ"pathmask with at least one bit set”h]”hŒ"pathmask with at least one bit set”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œc/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:67: ./arch/s390/include/asm/cio.h”h´Mchj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j·h´Mhhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj}ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj8h²hh³Nh´Nubeh}”(h]”Œ*i-o-functions-for-channel-attached-devices”ah ]”h"]”Œ*i/o functions for channel-attached devices”ah$]”h&]”uh1hµhjh²hh³hÊh´K h´Kubj�)�”}”(hŒ ccw_device”h]”j£)�”}”(hj+ h]”hŒ ccw_device”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjM ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj- h²hh³j> h´Kubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj) h²hh³j> h´Kubah}”(h]”j$ ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j> h´Khj& h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒchannel attached device”h]”hŒchannel attached device”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KKhjp h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj& h²hh³j> h´Kubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój‹ jôj‹ jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hXÚ**Definition**:: struct ccw_device { spinlock_t *ccwlock; struct ccw_device_id id; struct ccw_driver *drv; struct device dev; int online; void (*handler) (struct ccw_device *, unsigned long, struct irb *); }; **Members** ``ccwlock`` pointer to device lock ``id`` id of this device ``drv`` ccw driver for this device ``dev`` embedded device structure ``online`` online status of device ``handler`` interrupt handler”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj“ ubhŒ:”…”�”}”(hj“ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KOhj� ubj)�”}”(hŒ×struct ccw_device { spinlock_t *ccwlock; struct ccw_device_id id; struct ccw_driver *drv; struct device dev; int online; void (*handler) (struct ccw_device *, unsigned long, struct irb *); };”h]”hŒ×struct ccw_device { spinlock_t *ccwlock; struct ccw_device_id id; struct ccw_driver *drv; struct device dev; int online; void (*handler) (struct ccw_device *, unsigned long, struct irb *); };”…”�”}”hj° sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KQhj� ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hjÁ h]”hŒMembers”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KZhj� ubjG)�”}”(hhh]”(jL)�”}”(hŒ#``ccwlock`` pointer to device lock ”h]”(jR)�”}”(hŒ ``ccwlock``”h]”jX)�”}”(hjà h]”hŒccwlock”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÞ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KMhjÚ ubjn)�”}”(hhh]”hì)�”}”(hŒpointer to device lock”h]”hŒpointer to device lock”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jõ h´KMhjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÚ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jõ h´KMhj× ubjL)�”}”(hŒ``id`` id of this device ”h]”(jR)�”}”(hŒ``id``”h]”jX)�”}”(hj!h]”hŒid”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KNhj!ubjn)�”}”(hhh]”hì)�”}”(hŒid of this device”h]”hŒid of this device”…”�”}”(hj2!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j.!h´KNhj/!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j.!h´KNhj× ubjL)�”}”(hŒ#``drv`` ccw driver for this device ”h]”(jR)�”}”(hŒ``drv``”h]”jX)�”}”(hjR!h]”hŒdrv”…”�”}”(hjT!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjP!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KOhjL!ubjn)�”}”(hhh]”hì)�”}”(hŒccw driver for this device”h]”hŒccw driver for this device”…”�”}”(hjk!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jg!h´KOhjh!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjL!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jg!h´KOhj× ubjL)�”}”(hŒ"``dev`` embedded device structure ”h]”(jR)�”}”(hŒ``dev``”h]”jX)�”}”(hj‹!h]”hŒdev”…”�”}”(hj�!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‰!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KPhj…!ubjn)�”}”(hhh]”hì)�”}”(hŒembedded device structure”h]”hŒembedded device structure”…”�”}”(hj¤!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j !h´KPhj¡!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj…!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j !h´KPhj× ubjL)�”}”(hŒ#``online`` online status of device ”h]”(jR)�”}”(hŒ ``online``”h]”jX)�”}”(hjÄ!h]”hŒonline”…”�”}”(hjÆ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÂ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KQhj¾!ubjn)�”}”(hhh]”hì)�”}”(hŒonline status of device”h]”hŒonline status of device”…”�”}”(hjÝ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÙ!h´KQhjÚ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¾!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÙ!h´KQhj× ubjL)�”}”(hŒ``handler`` interrupt handler”h]”(jR)�”}”(hŒ ``handler``”h]”jX)�”}”(hjý!h]”hŒhandler”…”�”}”(hjÿ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjû!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KQhj÷!ubjn)�”}”(hhh]”hì)�”}”(hŒinterrupt handler”h]”hŒinterrupt handler”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KRhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj÷!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j"h´KQhj× ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj� ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´Nubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj@"h]”hŒ Description”…”�”}”(hjB"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj>"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KUhjëh²hubhì)�”}”(hŒ§**handler** is a member of the device rather than the driver since a driver can have different interrupt handlers for different ccw devices (multi-subchannel drivers).”h]”(j)�”}”(hŒ **handler**”h]”hŒhandler”…”�”}”(hjZ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjV"ubhŒœ is a member of the device rather than the driver since a driver can have different interrupt handlers for different ccw devices (multi-subchannel drivers).”…”�”}”(hjV"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KRhjëh²hubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_driver (C struct)”Œ c.ccw_driver”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ ccw_driver”h]”jt)�”}”(hŒstruct ccw_driver”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjŒ"h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjˆ"h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KYubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš"h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjˆ"h²hh³j™"h´KYubj�)�”}”(hŒ ccw_driver”h]”j£)�”}”(hj†"h]”hŒ ccw_driver”…”�”}”(hj¬"h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¨"ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjˆ"h²hh³j™"h´KYubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj„"h²hh³j™"h´KYubah}”(h]”j"ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j™"h´KYhj�"h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ*device driver for channel attached devices”h]”hŒ*device driver for channel attached devices”…”�”}”(hjÎ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KzhjË"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj�"h²hh³j™"h´KYubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójæ"jôjæ"jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hXQ**Definition**:: struct ccw_driver { struct ccw_device_id *ids; int (*probe) (struct ccw_device *); void (*remove) (struct ccw_device *); int (*set_online) (struct ccw_device *); int (*set_offline) (struct ccw_device *); int (*notify) (struct ccw_device *, int); void (*path_event) (struct ccw_device *, int *); void (*shutdown) (struct ccw_device *); enum uc_todo (*uc_handler) (struct ccw_device *, struct irb *); struct device_driver driver; enum interruption_class int_class; }; **Members** ``ids`` ids supported by this driver ``probe`` function called on probe ``remove`` function called on remove ``set_online`` called when setting device online ``set_offline`` called when setting device offline ``notify`` notify driver of device state changes ``path_event`` notify driver of channel path events ``shutdown`` called at device shutdown ``uc_handler`` callback for unit check handler ``driver`` embedded device driver structure ``int_class`` interruption class to use for accounting interrupts”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjò"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjî"ubhŒ:”…”�”}”(hjî"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K~hjê"ubj)�”}”(hXýstruct ccw_driver { struct ccw_device_id *ids; int (*probe) (struct ccw_device *); void (*remove) (struct ccw_device *); int (*set_online) (struct ccw_device *); int (*set_offline) (struct ccw_device *); int (*notify) (struct ccw_device *, int); void (*path_event) (struct ccw_device *, int *); void (*shutdown) (struct ccw_device *); enum uc_todo (*uc_handler) (struct ccw_device *, struct irb *); struct device_driver driver; enum interruption_class int_class; };”h]”hXýstruct ccw_driver { struct ccw_device_id *ids; int (*probe) (struct ccw_device *); void (*remove) (struct ccw_device *); int (*set_online) (struct ccw_device *); int (*set_offline) (struct ccw_device *); int (*notify) (struct ccw_device *, int); void (*path_event) (struct ccw_device *, int *); void (*shutdown) (struct ccw_device *); enum uc_todo (*uc_handler) (struct ccw_device *, struct irb *); struct device_driver driver; enum interruption_class int_class; };”…”�”}”hj #sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K€hjê"ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj#h]”hŒMembers”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KŽhjê"ubjG)�”}”(hhh]”(jL)�”}”(hŒ%``ids`` ids supported by this driver ”h]”(jR)�”}”(hŒ``ids``”h]”jX)�”}”(hj;#h]”hŒids”…”�”}”(hj=#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj9#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K|hj5#ubjn)�”}”(hhh]”hì)�”}”(hŒids supported by this driver”h]”hŒids supported by this driver”…”�”}”(hjT#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jP#h´K|hjQ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj5#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jP#h´K|hj2#ubjL)�”}”(hŒ#``probe`` function called on probe ”h]”(jR)�”}”(hŒ ``probe``”h]”jX)�”}”(hjt#h]”hŒprobe”…”�”}”(hjv#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjr#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K}hjn#ubjn)�”}”(hhh]”hì)�”}”(hŒfunction called on probe”h]”hŒfunction called on probe”…”�”}”(hj�#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‰#h´K}hjŠ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjn#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j‰#h´K}hj2#ubjL)�”}”(hŒ%``remove`` function called on remove ”h]”(jR)�”}”(hŒ ``remove``”h]”jX)�”}”(hj­#h]”hŒremove”…”�”}”(hj¯#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj«#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K~hj§#ubjn)�”}”(hhh]”hì)�”}”(hŒfunction called on remove”h]”hŒfunction called on remove”…”�”}”(hjÆ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÂ#h´K~hjÃ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj§#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÂ#h´K~hj2#ubjL)�”}”(hŒ1``set_online`` called when setting device online ”h]”(jR)�”}”(hŒ``set_online``”h]”jX)�”}”(hjæ#h]”hŒ set_online”…”�”}”(hjè#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjä#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´Khjà#ubjn)�”}”(hhh]”hì)�”}”(hŒ!called when setting device online”h]”hŒ!called when setting device online”…”�”}”(hjÿ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jû#h´Khjü#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjà#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jû#h´Khj2#ubjL)�”}”(hŒ3``set_offline`` called when setting device offline ”h]”(jR)�”}”(hŒ``set_offline``”h]”jX)�”}”(hj$h]”hŒ set_offline”…”�”}”(hj!$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K€hj$ubjn)�”}”(hhh]”hì)�”}”(hŒ"called when setting device offline”h]”hŒ"called when setting device offline”…”�”}”(hj8$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j4$h´K€hj5$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j4$h´K€hj2#ubjL)�”}”(hŒ1``notify`` notify driver of device state changes ”h]”(jR)�”}”(hŒ ``notify``”h]”jX)�”}”(hjX$h]”hŒnotify”…”�”}”(hjZ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjV$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K�hjR$ubjn)�”}”(hhh]”hì)�”}”(hŒ%notify driver of device state changes”h]”hŒ%notify driver of device state changes”…”�”}”(hjq$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jm$h´K�hjn$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjR$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jm$h´K�hj2#ubjL)�”}”(hŒ4``path_event`` notify driver of channel path events ”h]”(jR)�”}”(hŒ``path_event``”h]”jX)�”}”(hj‘$h]”hŒ path_event”…”�”}”(hj“$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj�$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K‚hj‹$ubjn)�”}”(hhh]”hì)�”}”(hŒ$notify driver of channel path events”h]”hŒ$notify driver of channel path events”…”�”}”(hjª$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¦$h´K‚hj§$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj‹$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¦$h´K‚hj2#ubjL)�”}”(hŒ'``shutdown`` called at device shutdown ”h]”(jR)�”}”(hŒ ``shutdown``”h]”jX)�”}”(hjÊ$h]”hŒshutdown”…”�”}”(hjÌ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÈ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´KƒhjÄ$ubjn)�”}”(hhh]”hì)�”}”(hŒcalled at device shutdown”h]”hŒcalled at device shutdown”…”�”}”(hjã$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jß$h´Kƒhjà$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÄ$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jß$h´Kƒhj2#ubjL)�”}”(hŒ/``uc_handler`` callback for unit check handler ”h]”(jR)�”}”(hŒ``uc_handler``”h]”jX)�”}”(hj%h]”hŒ uc_handler”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K„hjý$ubjn)�”}”(hhh]”hì)�”}”(hŒcallback for unit check handler”h]”hŒcallback for unit check handler”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j%h´K„hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjý$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j%h´K„hj2#ubjL)�”}”(hŒ,``driver`` embedded device driver structure ”h]”(jR)�”}”(hŒ ``driver``”h]”jX)�”}”(hj<%h]”hŒdriver”…”�”}”(hj>%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj:%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K…hj6%ubjn)�”}”(hhh]”hì)�”}”(hŒ embedded device driver structure”h]”hŒ embedded device driver structure”…”�”}”(hjU%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jQ%h´K…hjR%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj6%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jQ%h´K…hj2#ubjL)�”}”(hŒA``int_class`` interruption class to use for accounting interrupts”h]”(jR)�”}”(hŒ ``int_class``”h]”jX)�”}”(hju%h]”hŒ int_class”…”�”}”(hjw%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjs%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K…hjo%ubjn)�”}”(hhh]”hì)�”}”(hŒ3interruption class to use for accounting interrupts”h]”hŒ3interruption class to use for accounting interrupts”…”�”}”(hjŽ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:81: ./arch/s390/include/asm/ccwdev.h”h´K†hj‹%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjo%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jŠ%h´K…hj2#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjê"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ#ccw_device_set_offline (C function)”Œc.ccw_device_set_offline”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ4int ccw_device_set_offline (struct ccw_device *cdev)”h]”jt)�”}”(hŒ3int ccw_device_set_offline(struct ccw_device *cdev)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjÏ%h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjË%h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞ%h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjË%h²hh³jÝ%h´Mubj�)�”}”(hŒccw_device_set_offline”h]”j£)�”}”(hŒccw_device_set_offline”h]”hŒccw_device_set_offline”…”�”}”(hjð%h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjì%ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjË%h²hh³jÝ%h´Mubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj &h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj&ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj&ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj*&h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj'&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j,&Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jò%sbŒc.ccw_device_set_offline”†”asbuh1hhj&ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJ&h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj&ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjX&h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj&ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hje&h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj&ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjË%h²hh³jÝ%h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÇ%h²hh³jÝ%h´Mubah}”(h]”jÂ%ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÝ%h´MhjÄ%h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒdisable a ccw device for I/O”h]”hŒdisable a ccw device for I/O”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MhjŒ&h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjÄ%h²hh³jÝ%h´Mubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój§&jôj§&jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX2**Parameters** ``struct ccw_device *cdev`` target ccw device **Description** This function calls the driver's set_offline() function for **cdev**, if given, and then disables **cdev**. **Return** ``0`` on success and a negative error value on failure. **Context** enabled, ccw device lock not held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj±&h]”hŒ Parameters”…”�”}”(hj³&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¯&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M hj«&ubjG)�”}”(hhh]”jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjÐ&h]”hŒstruct ccw_device *cdev”…”�”}”(hjÒ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÎ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MhjÊ&ubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hjé&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jå&h´Mhjæ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÊ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jå&h´MhjÇ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj«&ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj 'h]”hŒ Description”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj 'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhj«&ubhì)�”}”(hŒkThis function calls the driver's set_offline() function for **cdev**, if given, and then disables **cdev**.”h]”(hŒ>This function calls the driver’s set_offline() function for ”…”�”}”(hj!'h²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj)'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj!'ubhŒ, if given, and then disables ”…”�”}”(hj!'h²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj;'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj!'ubhŒ.”…”�”}”(hj!'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhj«&ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjV'h]”hŒReturn”…”�”}”(hjX'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjT'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M hj«&ubhì)�”}”(hŒ7``0`` on success and a negative error value on failure.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjp'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjl'ubhŒ2 on success and a negative error value on failure.”…”�”}”(hjl'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M hj«&ubhì)�”}”(hŒ **Context**”h]”j)�”}”(hj‹'h]”hŒContext”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‰'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M hj«&ubhì)�”}”(hŒ!enabled, ccw device lock not held”h]”hŒ!enabled, ccw device lock not held”…”�”}”(hj¡'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M hj«&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ"ccw_device_set_online (C function)”Œc.ccw_device_set_online”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ3int ccw_device_set_online (struct ccw_device *cdev)”h]”jt)�”}”(hŒ2int ccw_device_set_online(struct ccw_device *cdev)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjÐ'h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÌ'h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MQubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß'h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÌ'h²hh³jÞ'h´MQubj�)�”}”(hŒccw_device_set_online”h]”j£)�”}”(hŒccw_device_set_online”h]”hŒccw_device_set_online”…”�”}”(hjñ'h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjí'ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjÌ'h²hh³jÞ'h´MQubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj (ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj (ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj+(h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj((ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j-(Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jó'sbŒc.ccw_device_set_online”†”asbuh1hhj (ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK(h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj (ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjY(h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj (ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjf(h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj (ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj(ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjÌ'h²hh³jÞ'h´MQubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÈ'h²hh³jÞ'h´MQubah}”(h]”jÃ'ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÞ'h´MQhjÅ'h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒenable a ccw device for I/O”h]”hŒenable a ccw device for I/O”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MQhj�(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjÅ'h²hh³jÞ'•h´MQubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój¨(jôj¨(jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hXs**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 held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj²(h]”hŒ Parameters”…”�”}”(hj´(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj°(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MUhj¬(ubjG)�”}”(hhh]”jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjÑ(h]”hŒstruct ccw_device *cdev”…”�”}”(hjÓ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÏ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MRhjË(ubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hjê(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jæ(h´MRhjç(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjË(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jæ(h´MRhjÈ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¬(ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj )h]”hŒ Description”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj )ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MThj¬(ubhì)�”}”(hŒ¬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.”h]”(hŒThis function first enables ”…”�”}”(hj")h²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj*)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj")ubhŒ9 and then calls the driver’s set_online() function for ”…”�”}”(hj")h²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj<)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj")ubhŒ., if given. If set_online() returns an error, ”…”�”}”(hj")h²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hjN)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj")ubhŒ is disabled again.”…”�”}”(hj")h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MShj¬(ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hji)h]”hŒReturn”…”�”}”(hjk)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjg)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MWhj¬(ubhì)�”}”(hŒ7``0`` on success and a negative error value on failure.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjƒ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj)ubhŒ2 on success and a negative error value on failure.”…”�”}”(hj)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MWhj¬(ubhì)�”}”(hŒ **Context**”h]”j)�”}”(hjž)h]”hŒContext”…”�”}”(hj )h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MYhj¬(ubhì)�”}”(hŒ!enabled, ccw device lock not held”h]”hŒ!enabled, ccw device lock not held”…”�”}”(hj´)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MYhj¬(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ!get_ccwdev_by_dev_id (C function)”Œc.get_ccwdev_by_dev_id”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒDstruct ccw_device * get_ccwdev_by_dev_id (struct ccw_dev_id *dev_id)”h]”jt)�”}”(hŒBstruct ccw_device *get_ccwdev_by_dev_id(struct ccw_dev_id *dev_id)”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjã)h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjß)h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M|ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ)h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjß)h²hh³jð)h´M|ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÿ)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j*Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«Œget_ccwdev_by_dev_id”sbŒc.get_ccwdev_by_dev_id”†”asbuh1hhjß)h²hh³jð)h´M|ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#*h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjß)h²hh³jð)h´M|ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj1*h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjß)h²hh³jð)h´M|ubj�)�”}”(hŒget_ccwdev_by_dev_id”h]”j£)�”}”(hj *h]”hŒget_ccwdev_by_dev_id”…”�”}”(hjB*h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj>*ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjß)h²hh³jð)h´M|ubjl)�”}”(hŒ(struct ccw_dev_id *dev_id)”h]”jr)�”}”(hŒstruct ccw_dev_id *dev_id”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj]*h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjY*ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj*h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjY*ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_dev_id”h]”hŒ ccw_dev_id”…”�”}”(hj{*h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjx*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j}*Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j*Œc.get_ccwdev_by_dev_id”†”asbuh1hhjY*ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™*h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjY*ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj§*h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjY*ubj£)�”}”(hŒdev_id”h]”hŒdev_id”…”�”}”(hj´*h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjY*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjU*ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjß)h²hh³jð)h´M|ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÛ)h²hh³jð)h´M|ubah}”(h]”jÖ)ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jð)h´M|hjØ)h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ"obtain device from a ccw device id”h]”hŒ"obtain device from a ccw device id”…”�”}”(hjÞ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M|hjÛ*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjØ)h²hh³jð)h´M|ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójö*jôjö*jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX***Parameters** ``struct ccw_dev_id *dev_id`` id of the device to be searched **Description** This function searches all devices attached to the ccw bus for a device matching **dev_id**. **Return** If a device is found its reference count is increased and returned; else ``NULL`` is returned.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj+h]”hŒ Parameters”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M€hjú*ubjG)�”}”(hhh]”jL)�”}”(hŒ>``struct ccw_dev_id *dev_id`` id of the device to be searched ”h]”(jR)�”}”(hŒ``struct ccw_dev_id *dev_id``”h]”jX)�”}”(hj+h]”hŒstruct ccw_dev_id *dev_id”…”�”}”(hj!+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M}hj+ubjn)�”}”(hhh]”hì)�”}”(hŒid of the device to be searched”h]”hŒid of the device to be searched”…”�”}”(hj8+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j4+h´M}hj5+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j4+h´M}hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjú*ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjZ+h]”hŒ Description”…”�”}”(hj\+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjX+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhjú*ubhì)�”}”(hŒ\This function searches all devices attached to the ccw bus for a device matching **dev_id**.”h]”(hŒQThis function searches all devices attached to the ccw bus for a device matching ”…”�”}”(hjp+h²hh³Nh´Nubj)�”}”(hŒ **dev_id**”h]”hŒdev_id”…”�”}”(hjx+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjp+ubhŒ.”…”�”}”(hjp+h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M~hjú*ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hj“+h]”hŒReturn”…”�”}”(hj•+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M�hjú*ubhì)�”}”(hŒ^If a device is found its reference count is increased and returned; else ``NULL`` is returned.”h]”(hŒIIf a device is found its reference count is increased and returned; else ”…”�”}”(hj©+h²hh³Nh´NubjX)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj±+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj©+ubhŒ is returned.”…”�”}”(hj©+h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M�hjú*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ get_ccwdev_by_busid (C function)”Œc.get_ccwdev_by_busid”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒUstruct ccw_device * get_ccwdev_by_busid (struct ccw_driver *cdrv, const char *bus_id)”h]”jt)�”}”(hŒSstruct ccw_device *get_ccwdev_by_busid(struct ccw_driver *cdrv, const char *bus_id)”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjê+h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjæ+h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M°ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø+h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjæ+h²hh³j÷+h´M°ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj ,h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j ,Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«Œget_ccwdev_by_busid”sbŒc.get_ccwdev_by_busid”†”asbuh1hhjæ+h²hh³j÷+h´M°ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*,h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjæ+h²hh³j÷+h´M°ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj8,h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjæ+h²hh³j÷+h´M°ubj�)�”}”(hŒget_ccwdev_by_busid”h]”j£)�”}”(hj',h]”hŒget_ccwdev_by_busid”…”�”}”(hjI,h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjE,ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjæ+h²hh³j÷+h´M°ubjl)�”}”(hŒ-(struct ccw_driver *cdrv, const char *bus_id)”h]”(jr)�”}”(hŒstruct ccw_driver *cdrv”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjd,h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj`,ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq,h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`,ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_driver”h]”hŒ ccw_driver”…”�”}”(hj‚,h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j„,Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j%,Œc.get_ccwdev_by_busid”†”asbuh1hhj`,ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ,h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`,ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj®,h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj`,ubj£)�”}”(hŒcdrv”h]”hŒcdrv”…”�”}”(hj»,h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj`,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj\,ubjr)�”}”(hŒconst char *bus_id”h]”(jz)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjÔ,h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÐ,ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ,h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÐ,ubj4)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjð,h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÐ,ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ,h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÐ,ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj -h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÐ,ubj£)�”}”(hŒbus_id”h]”hŒbus_id”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÐ,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj\,ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjæ+h²hh³j÷+h´M°ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjâ+h²hh³j÷+h´M°ubah}”(h]”jÝ+ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j÷+h´M°hjß+h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒobtain device from a bus id”h]”hŒobtain device from a bus id”…”�”}”(hjC-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M°hj@-h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjß+h²hh³j÷+h´M°ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój[-jôj[-jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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)�”}”(hje-h]”hŒ Parameters”…”�”}”(hjg-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjc-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M´hj_-ubjG)�”}”(hhh]”(jL)�”}”(hŒ:``struct ccw_driver *cdrv`` driver the device is owned by ”h]”(jR)�”}”(hŒ``struct ccw_driver *cdrv``”h]”jX)�”}”(hj„-h]”hŒstruct ccw_driver *cdrv”…”�”}”(hj†-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‚-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M±hj~-ubjn)�”}”(hhh]”hì)�”}”(hŒdriver the device is owned by”h]”hŒdriver the device is owned by”…”�”}”(hj�-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j™-h´M±hjš-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj~-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j™-h´M±hj{-ubjL)�”}”(hŒ;``const char *bus_id`` bus id of the device to be searched ”h]”(jR)�”}”(hŒ``const char *bus_id``”h]”jX)�”}”(hj½-h]”hŒconst char *bus_id”…”�”}”(hj¿-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj»-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M²hj·-ubjn)�”}”(hhh]”hì)�”}”(hŒ#bus id of the device to be searched”h]”hŒ#bus id of the device to be searched”…”�”}”(hjÖ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÒ-h´M²hjÓ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj·-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÒ-h´M²hj{-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj_-ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjø-h]”hŒ Description”…”�”}”(hjú-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjö-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M´hj_-ubhì)�”}”(hŒdThis function searches all devices owned by **cdrv** for a device with a bus id matching **bus_id**.”h]”(hŒ,This function searches all devices owned by ”…”�”}”(hj.h²hh³Nh´Nubj)�”}”(hŒ**cdrv**”h]”hŒcdrv”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.ubhŒ% for a device with a bus id matching ”…”�”}”(hj.h²hh³Nh´Nubj)�”}”(hŒ **bus_id**”h]”hŒbus_id”…”�”}”(hj(.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.ubhŒ.”…”�”}”(hj.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M³hj_-ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjC.h]”hŒReturn”…”�”}”(hjE.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjA.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M¶hj_-ubhì)�”}”(hŒxIf a match is found, its reference count of the found device is increased and it is returned; else ``NULL`` is returned.”h]”(hŒcIf a match is found, its reference count of the found device is increased and it is returned; else ”…”�”}”(hjY.h²hh³Nh´NubjX)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hja.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjY.ubhŒ is returned.”…”�”}”(hjY.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M¶hj_-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ ccw_driver_register (C function)”Œc.ccw_driver_register”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ4int ccw_driver_register (struct ccw_driver *cdriver)”h]”jt)�”}”(hŒ3int ccw_driver_register(struct ccw_driver *cdriver)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjš.h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj–.h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©.h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj–.h²hh³j¨.h´Mubj�)�”}”(hŒccw_driver_register”h]”j£)�”}”(hŒccw_driver_register”h]”hŒccw_driver_register”…”�”}”(hj».h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj·.ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj–.h²hh³j¨.h´Mubjl)�”}”(hŒ(struct ccw_driver *cdriver)”h]”jr)�”}”(hŒstruct ccw_driver *cdriver”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj×.h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÓ.ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä.h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÓ.ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_driver”h]”hŒ ccw_driver”…”�”}”(hjõ.h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjò.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j÷.Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j½.sbŒc.ccw_driver_register”†”asbuh1hhjÓ.ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÓ.ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj#/h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÓ.ubj£)�”}”(hŒcdriver”h]”hŒcdriver”…”�”}”(hj0/h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÓ.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÏ.ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj–.h²hh³j¨.h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj’.h²hh³j¨.h´Mubah}”(h]”j�.ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j¨.h´Mhj�.h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒregister a ccw driver”h]”hŒregister a ccw driver”…”�”}”(hjZ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´MhjW/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj�.h²hh³j¨.h´Mubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójr/jôjr/jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hŒÛ**Parameters** ``struct ccw_driver *cdriver`` driver to be registered **Description** This function is mainly a wrapper around driver_register(). **Return** ``0`` on success and a negative error value on failure.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj|/h]”hŒ Parameters”…”�”}”(hj~/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjz/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhjv/ubjG)�”}”(hhh]”jL)�”}”(hŒ7``struct ccw_driver *cdriver`` driver to be registered ”h]”(jR)�”}”(hŒ``struct ccw_driver *cdriver``”h]”jX)�”}”(hj›/h]”hŒstruct ccw_driver *cdriver”…”�”}”(hj�/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj™/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhj•/ubjn)�”}”(hhh]”hì)�”}”(hŒdriver to be registered”h]”hŒdriver to be registered”…”�”}”(hj´/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j°/h´Mhj±/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj•/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j°/h´Mhj’/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjv/ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjÖ/h]”hŒ Description”…”�”}”(hjØ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhjv/ubhì)�”}”(hŒ;This function is mainly a wrapper around driver_register().”h]”hŒ;This function is mainly a wrapper around driver_register().”…”�”}”(hjì/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhjv/ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjý/h]”hŒReturn”…”�”}”(hjÿ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjû/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhjv/ubhì)�”}”(hŒ7``0`` on success and a negative error value on failure.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj0ubhŒ2 on success and a negative error value on failure.”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhjv/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ"ccw_driver_unregister (C function)”Œc.ccw_driver_unregister”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ7void ccw_driver_unregister (struct ccw_driver *cdriver)”h]”jt)�”}”(hŒ6void ccw_driver_unregister(struct ccw_driver *cdriver)”h]”(j4)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjP0h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjL0h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M*ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjL0h²hh³j^0h´M*ubj�)�”}”(hŒccw_driver_unregister”h]”j£)�”}”(hŒccw_driver_unregister”h]”hŒccw_driver_unregister”…”�”}”(hjq0h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjm0ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjL0h²hh³j^0h´M*ubjl)�”}”(hŒ(struct ccw_driver *cdriver)”h]”jr)�”}”(hŒstruct ccw_driver *cdriver”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj‰0ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‰0ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_driver”h]”hŒ ccw_driver”…”�”}”(hj«0h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¨0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j­0Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«js0sbŒc.ccw_driver_unregister”†”asbuh1hhj‰0ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjË0h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‰0ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjÙ0h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj‰0ubj£)�”}”(hŒcdriver”h]”hŒcdriver”…”�”}”(hjæ0h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj‰0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj…0ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjL0h²hh³j^0h´M*ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjH0h²hh³j^0h´M*ubah}”(h]”jC0ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j^0h´M*hjE0h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒderegister a ccw driver”h]”hŒderegister a ccw driver”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M*hj 1h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjE0h²hh³j^0h´M*ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój(1jôj(1jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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)�”}”(hj21h]”hŒ Parameters”…”�”}”(hj41h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj01ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M.hj,1ubjG)�”}”(hhh]”jL)�”}”(hŒ9``struct ccw_driver *cdriver`` driver to be deregistered ”h]”(jR)�”}”(hŒ``struct ccw_driver *cdriver``”h]”jX)�”}”(hjQ1h]”hŒstruct ccw_driver *cdriver”…”�”}”(hjS1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjO1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M+hjK1ubjn)�”}”(hhh]”hì)�”}”(hŒdriver to be deregistered”h]”hŒdriver to be deregistered”…”�”}”(hjj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jf1h´M+hjg1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjK1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jf1h´M+hjH1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj,1ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjŒ1h]”hŒ Description”…”�”}”(hjŽ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŠ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M-hj,1ubhì)�”}”(hŒ=This function is mainly a wrapper around driver_unregister().”h]”hŒ=This function is mainly a wrapper around driver_unregister().”…”�”}”(hj¢1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M,hj,1ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_device_siosl (C function)”Œc.ccw_device_siosl”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ.int ccw_device_siosl (struct ccw_device *cdev)”h]”jt)�”}”(hŒ-int ccw_device_siosl(struct ccw_device *cdev)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjÑ1h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÍ1h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M|ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjà1h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÍ1h²hh³jß1h´M|ubj�)�”}”(hŒccw_device_siosl”h]”j£)�”}”(hŒccw_device_siosl”h]”hŒccw_device_siosl”…”�”}”(hjò1h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjî1ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjÍ1h²hh³jß1h´M|ubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj 2ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj 2ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj,2h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj)2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j.2Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jô1sbŒc.ccw_device_siosl”†”asbuh1hhj 2ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL2h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj 2ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjZ2h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj 2ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjg2h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj 2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj2ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjÍ1h²hh³jß1h´M|ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÉ1h²hh³jß1h´M|ubah}”(h]”jÄ1ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jß1h´M|hjÆ1h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒinitiate logging”h]”hŒinitiate logging”…”�”}”(hj‘2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M|hjŽ2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjÆ1h²hh³jß1h´M|ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój©2jôj©2jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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)�”}”(hj³2h]”hŒ Parameters”…”�”}”(hjµ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj±2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M€hj­2ubjG)�”}”(hhh]”jL)�”}”(hŒ'``struct ccw_device *cdev`` ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjÒ2h]”hŒstruct ccw_device *cdev”…”�”}”(hjÔ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÐ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M}hjÌ2ubjn)�”}”(hhh]”hì)�”}”(hŒ ccw device”h]”hŒ ccw device”…”�”}”(hjë2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jç2h´M}hjè2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÌ2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jç2h´M}hjÉ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj­2ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj 3h]”hŒ Description”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj 3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´Mhj­2ubhì)�”}”(hŒUThis function is used to invoke model-dependent logging within the channel subsystem.”h]”hŒUThis function is used to invoke model-dependent logging within the channel subsystem.”…”�”}”(hj#3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:84: ./drivers/s390/cio/device.c”h´M~hj­2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ(ccw_device_set_options_mask (C function)”Œc.ccw_device_set_options_mask”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒNint ccw_device_set_options_mask (struct ccw_device *cdev, unsigned long flags)”h]”jt)�”}”(hŒMint ccw_device_set_options_mask(struct ccw_device *cdev, unsigned long flags)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjR3h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjN3h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´KubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja3h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjN3h²hh³j`3h´Kubj�)�”}”(hŒccw_device_set_options_mask”h]”j£)�”}”(hŒccw_device_set_options_mask”h]”hŒccw_device_set_options_mask”…”�”}”(hjs3h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjo3ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjN3h²hh³j`3h´Kubjl)�”}”(hŒ.(struct ccw_device *cdev, unsigned long flags)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj�3h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj‹3ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ3h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‹3ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj­3h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjª3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j¯3Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«ju3sbŒc.ccw_device_set_options_mask”†”asbuh1hhj‹3ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍ3h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‹3ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjÛ3h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj‹3ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjè3h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj‹3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj‡3ubjr)�”}”(hŒunsigned long flags”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjý3ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjý3ubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjý3ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+4h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjý3ubj£)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj94h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjý3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj‡3ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjN3h²hh³j`3h´Kubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjJ3h²hh³j`3h´Kubah}”(h]”jE3ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j`3h´KhjG3h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ#set some options and unset the rest”h]”hŒ#set some options and unset the rest”…”�”}”(hjc4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Khj`4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjG3h²hh³j`3h´Kubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój{4jôj{4jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX>**Parameters** ``struct ccw_device *cdev`` device for which the options are to be set ``unsigned long flags`` options to be set **Description** All flags specified in **flags** are set, all flags not specified in **flags** are cleared. **Return** ``0`` on success, -``EINVAL`` on an invalid flag combination.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj…4h]”hŒ Parameters”…”�”}”(hj‡4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K"hj4ubjG)�”}”(hhh]”(jL)�”}”(hŒG``struct ccw_device *cdev`` device for which the options are to be set ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj¤4h]”hŒstruct ccw_device *cdev”…”�”}”(hj¦4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¢4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Khjž4ubjn)�”}”(hhh]”hì)�”}”(hŒ*device for which the options are to be set”h]”hŒ*device for which the options are to be set”…”�”}”(hj½4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¹4h´Khjº4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjž4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¹4h´Khj›4ubjL)�”}”(hŒ*``unsigned long flags`` options to be set ”h]”(jR)�”}”(hŒ``unsigned long flags``”h]”jX)�”}”(hjÝ4h]”hŒunsigned long flags”…”�”}”(hjß4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÛ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K hj×4ubjn)�”}”(hhh]”hì)�”}”(hŒoptions to be set”h]”hŒoptions to be set”…”�”}”(hjö4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jò4h´K hjó4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj×4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jò4h´K hj›4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj4ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj5h]”hŒ Description”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K"hj4ubhì)�”}”(hŒ[All flags specified in **flags** are set, all flags not specified in **flags** are cleared.”h]”(hŒAll flags specified in ”…”�”}”(hj.5h²hh³Nh´Nubj)�”}”(hŒ **flags**”h]”hŒflags”…”�”}”(hj65h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.5ubhŒ% are set, all flags not specified in ”…”�”}”(hj.5h²hh³Nh´Nubj)�”}”(hŒ **flags**”h]”hŒflags”…”�”}”(hjH5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.5ubhŒ are cleared.”…”�”}”(hj.5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K!hj4ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjc5h]”hŒReturn”…”�”}”(hje5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhja5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K$hj4ubhì)�”}”(hŒ=``0`` on success, -``EINVAL`` on an invalid flag combination.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj}5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjy5ubhŒ on success, -”…”�”}”(hjy5h²hh³Nh´NubjX)�”}”(hŒ ``EINVAL``”h]”hŒEINVAL”…”�”}”(hj�5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjy5ubhŒ on an invalid flag combination.”…”�”}”(hjy5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K$hj4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ#ccw_device_set_options (C function)”Œc.ccw_device_set_options”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒIint ccw_device_set_options (struct ccw_device *cdev, unsigned long flags)”h]”jt)�”}”(hŒHint ccw_device_set_options(struct ccw_device *cdev, unsigned long flags)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjÈ5h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÄ5h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K8ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×5h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÄ5h²hh³jÖ5h´K8ubj�)�”}”(hŒccw_device_set_options”h]”j£)�”}”(hŒccw_device_set_options”h]”hŒccw_device_set_options”…”�”}”(hjé5h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjå5ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjÄ5h²hh³jÖ5h´K8ubjl)�”}”(hŒ.(struct ccw_device *cdev, unsigned long flags)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj6ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj6ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj#6h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj 6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j%6Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jë5sbŒc.ccw_device_set_options”†”asbuh1hhj6ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC6h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj6ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjQ6h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj6ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj^6h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjý5ubjr)�”}”(hŒunsigned long flags”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjw6h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjs6ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…6h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjs6ubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj“6h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjs6ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡6h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjs6ubj£)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj¯6h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjs6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjý5ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjÄ5h²hh³jÖ5h´K8ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÀ5h²hh³jÖ5h´K8ubah}”(h]”j»5ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÖ5h´K8hj½5h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒset some options”h]”hŒset some options”…”�”}”(hjÙ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K8hjÖ6h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj½5h²hh³jÖ5h´K8ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójñ6jôjñ6jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX9**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û6h]”hŒ Parameters”…”�”}”(hjý6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjù6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K:h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ-determine if paths to this device are grouped”h]”hŒ-determine if paths to this device are grouped”…”�”}”(hj ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kehj;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj>:h²hh³jW:h´Keubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój!;jôj!;jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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”…”�”}”(hj-;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj);ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kihj%;ubjG)�”}”(hhh]”jL)�”}”(hŒ'``struct ccw_device *cdev`` ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjJ;h]”hŒstruct ccw_device *cdev”…”�”}”(hjL;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjH;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´KfhjD;ubjn)�”}”(hhh]”hì)�”}”(hŒ ccw device”h]”hŒ ccw device”…”�”}”(hjc;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j_;h´Kfhj`;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjD;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j_;h´KfhjA;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj%;ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj…;h]”hŒ Description”…”�”}”(hj‡;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Khhj%;ubhì)�”}”(hŒ9Return non-zero if there is a path group, zero otherwise.”h]”hŒ9Return non-zero if there is a path group, zero otherwise.”…”�”}”(hj›;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kghj%;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ$ccw_device_is_multipath (C function)”Œc.ccw_device_is_multipath”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ5int ccw_device_is_multipath (struct ccw_device *cdev)”h]”jt)�”}”(hŒ4int ccw_device_is_multipath(struct ccw_device *cdev)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjÊ;h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÆ;h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´KqubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ;h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÆ;h²hh³jØ;h´Kqubj�)�”}”(hŒccw_device_is_multipath”h]”j£)�”}”(hŒccw_device_is_multipath”h]”hŒccw_device_is_multipath”…”�”}”(hjë;h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjç;ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjÆ;h²hh³jØ;h´Kqubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj<ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj<ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj%<h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj"<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j'<Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jí;sbŒc.ccw_device_is_multipath”†”asbuh1hhj<ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE<h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj<ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjS<h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj<ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj`<h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÿ;ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjÆ;h²hh³jØ;h´Kqubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÂ;h²hh³jØ;h´Kqubah}”(h]”j½;ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jØ;h´Kqhj¿;h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ2determine if device is operating in multipath mode”h]”hŒ2determine if device is operating in multipath mode”…”�”}”(hjŠ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kqhj‡<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj¿;h²hh³jØ;h´Kqubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój¢<jôj¢<jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hŒ”**Parameters** ``struct ccw_device *cdev`` ccw device **Description** Return non-zero if device is operating in multipath mode, zero otherwise.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj¬<h]”hŒ Parameters”…”�”}”(hj®<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjª<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kuhj¦<ubjG)�”}”(hhh]”jL)�”}”(hŒ'``struct ccw_device *cdev`` ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjË<h]”hŒstruct ccw_device *cdev”…”�”}”(hjÍ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÉ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´KrhjÅ<ubjn)�”}”(hhh]”hì)�”}”(hŒ ccw device”h]”hŒ ccw device”…”�”}”(hjä<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jà<h´Krhjá<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÅ<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jà<h´KrhjÂ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj¦<ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj=h]”hŒ Description”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kthj¦<ubhì)�”}”(hŒIReturn non-zero if device is operating in multipath mode, zero otherwise.”h]”hŒIReturn non-zero if device is operating in multipath mode, zero otherwise.”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kshj¦<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_device_clear (C function)”Œc.ccw_device_clear”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒEint ccw_device_clear (struct ccw_device *cdev, unsigned long intparm)”h]”jt)�”}”(hŒDint ccw_device_clear(struct ccw_device *cdev, unsigned long intparm)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjK=h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjG=h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K}ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ=h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjG=h²hh³jY=h´K}ubj�)�”}”(hŒccw_device_clear”h]”j£)�”}”(hŒccw_device_clear”h]”hŒccw_device_clear”…”�”}”(hjl=h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjh=ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjG=h²hh³jY=h´K}ubjl)�”}”(hŒ0(struct ccw_device *cdev, unsigned long intparm)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjˆ=h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj„=ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•=h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj„=ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj¦=h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj£=ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j¨=Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jn=sbŒc.ccw_device_clear”†”asbuh1hhj„=ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ=h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj„=ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjÔ=h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj„=ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjá=h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj„=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj€=ubjr)�”}”(hŒunsigned long intparm”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjú=h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjö=ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjö=ubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjö=ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$>h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjö=ubj£)�”}”(hŒintparm”h]”hŒintparm”…”�”}”(hj2>h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjö=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj€=ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjG=h²hh³jY=h´K}ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjC=h²hh³jY=h´K}ubah}”(h]”j>=ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jY=h´K}hj@=h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ terminate I/O request processing”h]”hŒ terminate I/O request processing”…”�”}”(hj\>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K}hjY>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj@=h²hh³jY=h´K}ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójt>jôjt>jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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 held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj~>h]”hŒ Parameters”…”�”}”(hj€>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|>ubah}”(h]”h ]”h"]”h$]”h&]”u•.h1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K�hjx>ubjG)�”}”(hhh]”(jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj�>h]”hŒstruct ccw_device *cdev”…”�”}”(hjŸ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj›>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K~hj—>ubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hj¶>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j²>h´K~hj³>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj—>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j²>h´K~hj”>ubjL)�”}”(hŒX``unsigned long intparm`` interruption parameter to be returned upon conclusion of csch ”h]”(jR)�”}”(hŒ``unsigned long intparm``”h]”jX)�”}”(hjÖ>h]”hŒunsigned long intparm”…”�”}”(hjØ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÔ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´KhjÐ>ubjn)�”}”(hhh]”hì)�”}”(hŒ=interruption parameter to be returned upon conclusion of csch”h]”hŒ=interruption parameter to be returned upon conclusion of csch”…”�”}”(hjï>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jë>h´Khjì>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÐ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jë>h´Khj”>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjx>ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj?h]”hŒ Description”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K�hjx>ubhì)�”}”(hŒ7ccw_device_clear() calls csch on **cdev**'s subchannel.”h]”(hŒ!ccw_device_clear() calls csch on ”…”�”}”(hj'?h²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj/?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'?ubhŒ’s subchannel.”…”�”}”(hj'?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K€hjx>ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjJ?h]”hŒReturn”…”�”}”(hjL?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjH?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K‚hjx>ubhì)�”}”(hŒ]``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjd?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj`?ubhŒ on success, -”…”�”}”(hj`?h²hh³Nh´NubjX)�”}”(hŒ ``ENODEV``”h]”hŒENODEV”…”�”}”(hjv?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj`?ubhŒ on device not operational, -”…”�”}”(hj`?h²hh³Nh´NubjX)�”}”(hŒ ``EINVAL``”h]”hŒEINVAL”…”�”}”(hjˆ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj`?ubhŒ on invalid device state.”…”�”}”(hj`?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K‚hjx>ubhì)�”}”(hŒ **Context**”h]”j)�”}”(hj£?h]”hŒContext”…”�”}”(hj¥?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¡?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K†hjx>ubhì)�”}”(hŒ)Interrupts disabled, ccw device lock held”h]”hŒ)Interrupts disabled, ccw device lock held”…”�”}”(hj¹?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K†hjx>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ)ccw_device_start_timeout_key (C function)”Œc.ccw_device_start_timeout_key”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ™int 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]”jt)�”}”(hŒ˜int 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]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjè?h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjä?h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¢ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷?h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjä?h²hh³jö?h´K¢ubj�)�”}”(hŒccw_device_start_timeout_key”h]”j£)�”}”(hŒccw_device_start_timeout_key”h]”hŒccw_device_start_timeout_key”…”�”}”(hj @h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj@ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjä?h²hh³jö?h´K¢ubjl)�”}”(hŒx(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags, int expires)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj%@h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj!@ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2@h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj!@ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjC@h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj@@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jE@Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j @sbŒc.ccw_device_start_timeout_key”†”asbuh1hhj!@ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc@h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj!@ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjq@h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj!@ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj~@h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj!@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj@ubjr)�”}”(hŒstruct ccw1 *cpa”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj—@h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj“@ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤@h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj“@ubh)�”}”(hhh]”j£)�”}”(hŒccw1”h]”hŒccw1”…”�”}”(hjµ@h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj²@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j·@Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j_@Œc.ccw_device_start_timeout_key”†”asbuh1hhj“@ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ@h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj“@ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjá@h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj“@ubj£)�”}”(hŒcpa”h]”hŒcpa”…”�”}”(hjî@h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj“@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj@ubjr)�”}”(hŒunsigned long intparm”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjAubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjAubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj#Ah²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjAubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1Ah²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjAubj£)�”}”(hŒintparm”h]”hŒintparm”…”�”}”(hj?Ah²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj@ubjr)�”}”(hŒ__u8 lpm”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hj[Ah²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjXAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j]AŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j_@Œc.ccw_device_start_timeout_key”†”asbuh1hhjTAubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyAh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjTAubj£)�”}”(hŒlpm”h]”hŒlpm”…”�”}”(hj‡Ah²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjTAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj@ubjr)�”}”(hŒ__u8 key”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hj£Ah²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj Aubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j¥AŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j_@Œc.ccw_device_start_timeout_key”†”asbuh1hhjœAubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁAh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjœAubj£)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÏAh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjœAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj@ubjr)�”}”(hŒunsigned long flags”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjèAh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjäAubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöAh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjäAubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjäAubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjäAubj£)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj Bh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjäAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj@ubjr)�”}”(hŒ int expires”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj9Bh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj5BubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGBh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj5Bubj£)�”}”(hŒexpires”h]”hŒexpires”…”�”}”(hjUBh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj5Bubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj@ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjä?h²hh³jö?h´K¢ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjà?h²hh³jö?h´K¢ubah}”(h]”jÛ?ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jö?h´K¢hjÝ?h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ1start a s390 channel program with timeout and key”h]”hŒ1start a s390 channel program with timeout and key”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¢hj|Bh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjÝ?h²hh³jö?h´K¢ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój—Bjôj—Bjõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX\**Parameters** ``struct ccw_device *cdev`` target ccw device ``struct ccw1 *cpa`` logical start address of channel program ``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. ``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. ``__u8 key`` storage key to be used for the I/O ``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ``int expires`` timeout value in jiffies **Description** Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by **expires**. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device's interrupt handler will be called with an irb containing ERR_PTR(-``ETIMEDOUT``). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear(). **Return** ``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. **Context** Interrupts disabled, ccw device lock held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj¡Bh]”hŒ Parameters”…”�”}”(hj£Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸBubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¦hj›BubjG)�”}”(hhh]”(jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjÀBh]”hŒstruct ccw_device *cdev”…”�”}”(hjÂBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¾Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K£hjºBubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hjÙBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÕBh´K£hjÖBubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjºBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÕBh´K£hj·BubjL)�”}”(hŒ>``struct ccw1 *cpa`` logical start address of channel program ”h]”(jR)�”}”(hŒ``struct ccw1 *cpa``”h]”jX)�”}”(hjùBh]”hŒstruct ccw1 *cpa”…”�”}”(hjûBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj÷Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¤hjóBubjn)�”}”(hhh]”hì)�”}”(hŒ(logical start address of channel program”h]”hŒ(logical start address of channel program”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jCh´K¤hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjóBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jCh´K¤hj·BubjL)�”}”(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]”(jR)�”}”(hŒ``unsigned long intparm``”h]”jX)�”}”(hj2Ch]”hŒunsigned long intparm”…”�”}”(hj4Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj0Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K§hj,Cubjn)�”}”(hhh]”hì)�”}”(hŒ®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]”(hŒ@user specific interruption parameter; will be presented back to ”…”�”}”(hjKCh²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hjSCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjKCubhŒh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.”…”�”}”(hjKCh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¥hjHCubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj,Cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jGCh´K§hj·BubjL)�”}”(hŒu``__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]”(jR)�”}”(hŒ ``__u8 lpm``”h]”jX)�”}”(hj~Ch]”hŒ__u8 lpm”…”�”}”(hj€Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj|Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K©hjxCubjn)�”}”(hhh]”hì)�”}”(hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”h]”hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”…”�”}”(hj—Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¨hj”Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjxCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j“Ch´K©hj·BubjL)�”}”(hŒ0``__u8 key`` storage key to be used for the I/O ”h]”(jR)�”}”(hŒ ``__u8 key``”h]”jX)�”}”(hj¸Ch]”hŒ__u8 key”…”�”}”(hjºCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¶Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kªhj²Cubjn)�”}”(hhh]”hì)�”}”(hŒ"storage key to be used for the I/O”h]”hŒ"storage key to be used for the I/O”…”�”}”(hjÑCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÍCh´KªhjÎCubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj²Cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÍCh´Kªhj·BubjL)�”}”(hŒa``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ”h]”(jR)�”}”(hŒ``unsigned long flags``”h]”jX)�”}”(hjñCh]”hŒunsigned long flags”…”�”}”(hjóCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjïCubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¬hjëCubjn)�”}”(hhh]”hì)�”}”(hŒHadditional flags; defines the action to be performed for I/O processing.”h]”hŒHadditional flags; defines the action to be performed for I/O processing.”…”�”}”(hj Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K«hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjëCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jDh´K¬hj·BubjL)�”}”(hŒ)``int expires`` timeout value in jiffies ”h]”(jR)�”}”(hŒ``int expires``”h]”jX)�”}”(hj+Dh]”hŒ int expires”…”�”}”(hj-Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj)Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K­hj%Dubjn)�”}”(hhh]”hì)�”}”(hŒtimeout value in jiffies”h]”hŒtimeout value in jiffies”…”�”}”(hjDDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j@Dh´K­hjADubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj%Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j@Dh´K­hj·Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj›Bubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjfDh]”hŒ Description”…”�”}”(hjhDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdDubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¯hj›Bubhì)�”}”(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 **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 ”…”�”}”(hj|Dh²hh³Nh´Nubj)�”}”(hŒ **expires**”h]”hŒexpires”…”�”}”(hj„Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|DubhŒ¥. 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(-”…”�”}”(hj|Dh²hh³Nh´NubjX)�”}”(hŒ ``ETIMEDOUT``”h]”hŒ ETIMEDOUT”…”�”}”(hj–Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj|DubhŒ/). The interruption handler will echo back the ”…”�”}”(hj|Dh²hh³Nh´Nubj)�”}”(hŒ **intparm**”h]”hŒintparm”…”�”}”(hj¨Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|DubhŒŠ specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().”…”�”}”(hj|Dh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K®hj›Bubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjÃDh]”hŒReturn”…”�”}”(hjÅDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÁDubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¹hj›Bubhì)�”}”(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]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjÝDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÙDubhŒ$, if the operation was successful; -”…”�”}”(hjÙDh²hh³Nh´NubjX)�”}”(hŒ ``EBUSY``”h]”hŒEBUSY”…”�”}”(hjïDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÙDubhŒ-, if the device is busy, or status pending; -”…”�”}”(hjÙDh²hh³Nh´NubjX)�”}”(hŒ ``EACCES``”h]”hŒEACCES”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÙDubhŒ, if no path specified in ”…”�”}”(hjÙDh²hh³Nh´Nubj)�”}”(hŒ**lpm**”h]”hŒlpm”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙDubhŒ is operational; -”…”�”}”(hjÙDh²hh³Nh´NubjX)�”}”(hŒ ``ENODEV``”h]”hŒENODEV”…”�”}”(hj%Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÙDubhŒ#, if the device is not operational.”…”�”}”(hjÙDh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¹hj›Bubhì)�”}”(hŒ **Context**”h]”j)�”}”(hj@Eh]”hŒContext”…”�”}”(hjBEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj>Eubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¾hj›Bubhì)�”}”(hŒ)Interrupts disabled, ccw device lock held”h]”hŒ)Interrupts disabled, ccw device lock held”…”�”}”(hjVEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´K¾hj›Bubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ!ccw_device_start_key (C function)”Œc.ccw_device_start_key”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ„int ccw_device_start_key (struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags)”h]”jt)�”}”(hŒƒint ccw_device_start_key(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj…Eh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj�Eh²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´KýubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”Eh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�Eh²hh³j“Eh´Kýubj�)�”}”(hŒccw_device_start_key”h]”j£)�”}”(hŒccw_device_start_key”h]”hŒccw_device_start_key”…”�”}”(hj¦Eh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¢Eubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj�Eh²hh³j“Eh´Kýubjl)�”}”(hŒk(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, __u8 key, unsigned long flags)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÂEh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj¾EubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏEh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¾Eubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjàEh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÝEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jâEŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j¨EsbŒc.ccw_device_start_key”†”asbuh1hhj¾EubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¾EubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj¾Eubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¾Eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjºEubjr)�”}”(hŒstruct ccw1 *cpa”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj4Fh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj0FubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAFh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj0Fubh)�”}”(hhh]”j£)�”}”(hŒccw1”h]”hŒccw1”…”�”}”(hjRFh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjOFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jTFŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jüEŒc.ccw_device_start_key”†”asbuh1hhj0FubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjpFh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj0FubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj~Fh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj0Fubj£)�”}”(hŒcpa”h]”hŒcpa”…”�”}”(hj‹Fh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj0Fubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjºEubjr)�”}”(hŒunsigned long intparm”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¤Fh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj FubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²Fh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj Fubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjÀFh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj FubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎFh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj Fubj£)�”}”(hŒintparm”h]”hŒintparm”…”�”}”(hjÜFh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj Fubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjºEubjr)�”}”(hŒ__u8 lpm”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hjøFh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjõFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”júFŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jüEŒc.ccw_device_start_key”†”asbuh1hhjñFubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjñFubj£)�”}”(hŒlpm”h]”hŒlpm”…”�”}”(hj$Gh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjñFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjºEubjr)�”}”(hŒ__u8 key”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hj@Gh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj=Gubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jBGŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jüEŒc.ccw_device_start_key”†”asbuh1hhj9GubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^Gh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj9Gubj£)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjlGh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj9Gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjºEubjr)�”}”(hŒunsigned long flags”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj…Gh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj�GubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“Gh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�Gubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj¡Gh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj�GubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯Gh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�Gubj£)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj½Gh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj�Gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjºEubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj�Eh²hh³j“Eh´Kýubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj}Eh²hh³j“Eh´Kýubah}”(h]”jxEah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j“Eh´KýhjzEh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ%start a s390 channel program with key”h]”hŒ%start a s390 channel program with key”…”�”}”(hjçGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´KýhjäGh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjzEh²hh³j“Eh´Kýubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójÿGjôjÿGjõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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 held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj Hh]”hŒ Parameters”…”�”}”(hj Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjHubjG)�”}”(hhh]”(jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj(Hh]”hŒstruct ccw_device *cdev”…”�”}”(hj*Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj&Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kþhj"Hubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hjAHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j=Hh´Kþhj>Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj"Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j=Hh´KþhjHubjL)�”}”(hŒ>``struct ccw1 *cpa`` logical start address of channel program ”h]”(jR)�”}”(hŒ``struct ccw1 *cpa``”h]”jX)�”}”(hjaHh]”hŒstruct ccw1 *cpa”…”�”}”(hjcHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj_Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Kÿhj[Hubjn)�”}”(hhh]”hì)�”}”(hŒ(logical start address of channel program”h]”hŒ(logical start address of channel program”…”�”}”(hjzHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jvHh´KÿhjwHubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj[Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jvHh´KÿhjHubjL)�”}”(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]”(jR)�”}”(hŒ``unsigned long intparm``”h]”jX)�”}”(hjšHh]”hŒunsigned long intparm”…”�”}”(hjœHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj˜Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mhj”Hubjn)�”}”(hhh]”hì)�”}”(hŒ®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]”(hŒ@user specific interruption parameter; will be presented back to ”…”�”}”(hj³Hh²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj»Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj³HubhŒh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.”…”�”}”(hj³Hh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mhj°Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj”Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¯Hh´MhjHubjL)�”}”(hŒu``__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]”(jR)�”}”(hŒ ``__u8 lpm``”h]”jX)�”}”(hjæHh]”hŒ__u8 lpm”…”�”}”(hjèHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjäHubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjàHubjn)�”}”(hhh]”hì)�”}”(hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”h]”hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”…”�”}”(hjÿHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjüHubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjàHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jûHh´MhjHubjL)�”}”(hŒ0``__u8 key`` storage key to be used for the I/O ”h]”(jR)�”}”(hŒ ``__u8 key``”h]”jX)�”}”(hj Ih]”hŒ__u8 key”…”�”}”(hj"Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjIubjn)�”}”(hhh]”hì)�”}”(hŒ"storage key to be used for the I/O”h]”hŒ"storage key to be used for the I/O”…”�”}”(hj9Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j5Ih´Mhj6Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j5Ih´MhjHubjL)�”}”(hŒa``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ”h]”(jR)�”}”(hŒ``unsigned long flags``”h]”jX)�”}”(hjYIh]”hŒunsigned long flags”…”�”}”(hj[Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjWIubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjSIubjn)�”}”(hhh]”hì)�”}”(hŒHadditional flags; defines the action to be performed for I/O processing.”h]”hŒHadditional flags; defines the action to be performed for I/O processing.”…”�”}”(hjrIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjoIubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjSIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jnIh´MhjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjHubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj•Ih]”hŒ Description”…”�”}”(hj—Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj“Iubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M hjHubhì)�”}”(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]”(hŒé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 ”…”�”}”(hj«Ih²hh³Nh´Nubj)�”}”(hŒ **intparm**”h]”hŒintparm”…”�”}”(hj³Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj«IubhŒŠ specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().”…”�”}”(hj«Ih²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjHubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjÎIh]”hŒReturn”…”�”}”(hjÐIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÌIubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjHubhì)�”}”(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]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjèIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjäIubhŒ$, if the operation was successful; -”…”�”}”(hjäIh²hh³Nh´NubjX)�”}”(hŒ ``EBUSY``”h]”hŒEBUSY”…”�”}”(hjúIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjäIubhŒ-, if the device is busy, or status pending; -”…”�”}”(hjäIh²hh³Nh´NubjX)�”}”(hŒ ``EACCES``”h]”hŒEACCES”…”�”}”(hj Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjäIubhŒ, if no path specified in ”…”�”}”(hjäIh²hh³Nh´Nubj)�”}”(hŒ**lpm**”h]”hŒlpm”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjäIubhŒ is operational; -”…”�”}”(hjäIh²hh³Nh´NubjX)�”}”(hŒ ``ENODEV``”h]”hŒENODEV”…”�”}”(hj0Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjäIubhŒ#, if the device is not operational.”…”�”}”(hjäIh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjHubhì)�”}”(hŒ **Context**”h]”j)�”}”(hjKJh]”hŒContext”…”�”}”(hjMJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjIJubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjHubhì)�”}”(hŒ)Interrupts disabled, ccw device lock held”h]”hŒ)Interrupts disabled, ccw device lock held”…”�”}”(hjaJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MhjHubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_device_start (C function)”Œc.ccw_device_start”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒvint ccw_device_start (struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags)”h]”jt)�”}”(hŒuint ccw_device_start(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj�Jh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjŒJh²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸJh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŒJh²hh³jžJh´M ubj�)�”}”(hŒccw_device_start”h]”j£)�”}”(hŒccw_device_start”h]”hŒccw_device_start”…”�”}”(hj±Jh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj­Jubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjŒJh²hh³jžJh´M ubjl)�”}”(hŒa(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÍJh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÉJubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚJh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÉJubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjëJh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjèJubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jíJŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j³JsbŒc.ccw_device_start”†”asbuh1hhjÉJubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Kh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÉJubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÉJubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj&Kh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÉJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÅJubjr)�”}”(hŒstruct ccw1 *cpa”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj?Kh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj;KubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLKh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj;Kubh)�”}”(hhh]”j£)�”}”(hŒccw1”h]”hŒccw1”…”�”}”(hj]Kh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjZKubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j_KŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jKŒc.ccw_device_start”†”asbuh1hhj;KubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{Kh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj;KubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj‰Kh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj;Kubj£)�”}”(hŒcpa”h]”hŒcpa”…”�”}”(hj–Kh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj;Kubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÅJubjr)�”}”(hŒunsigned long intparm”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¯Kh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj«KubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½Kh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj«Kubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjËKh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj«KubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙKh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj«Kubj£)�”}”(hŒintparm”h]”hŒintparm”…”�”}”(hjçKh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj«Kubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÅJubjr)�”}”(hŒ__u8 lpm”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjLubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jLŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jKŒc.ccw_device_start”†”asbuh1hhjüKubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!Lh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjüKubj£)�”}”(hŒlpm”h]”hŒlpm”…”�”}”(hj/Lh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjüKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÅJubjr)�”}”(hŒunsigned long flags”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjHLh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjDLubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjVLh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjDLubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjdLh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjDLubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrLh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjDLubj£)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj€Lh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjDLubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÅJubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjŒJh²hh³jžJh´M ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjˆJh²hh³jžJh´M ubah}”(h]”jƒJah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jžJh´M hj…Jh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒstart a s390 channel program”h]”hŒstart a s390 channel program”…”�”}”(hjªLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M hj§Lh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj…Jh²hh³jžJh´M ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójÂLjôjÂLjõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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 held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjÌLh]”hŒ Parameters”…”�”}”(hjÎLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊLubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M$hjÆLubjG)�”}”(hhh]”(jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjëLh]”hŒstruct ccw_device *cdev”…”�”}”(hjíLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjéLubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M!hjåLubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jMh´M!hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjåLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jMh´M!hjâLubjL)�”}”(hŒ>``struct ccw1 *cpa`` logical start address of channel program ”h]”(jR)�”}”(hŒ``struct ccw1 *cpa``”h]”jX)�”}”(hj$Mh]”hŒstruct ccw1 *cpa”…”�”}”(hj&Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj"Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M"hjMubjn)�”}”(hhh]”hì)�”}”(hŒ(logical start address of channel program”h]”hŒ(logical start address of channel program”…”�”}”(hj=Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j9Mh´M"hj:Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j9Mh´M"hjâLubjL)�”}”(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]”(jR)�”}”(hŒ``unsigned long intparm``”h]”jX)�”}”(hj]Mh]”hŒunsigned long intparm”…”�”}”(hj_Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj[Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M%hjWMubjn)�”}”(hhh]”hì)�”}”(hŒ®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]”(hŒ@user specific interruption parameter; will be presented back to ”…”�”}”(hjvMh²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj~Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjvMubhŒh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.”…”�”}”(hjvMh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M#hjsMubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjWMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jrMh´M%hjâLubjL)�”}”(hŒu``__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]”(jR)�”}”(hŒ ``__u8 lpm``”h]”jX)�”}”(hj©Mh]”hŒ__u8 lpm”…”�”}”(hj«Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj§Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M'hj£Mubjn)�”}”(hhh]”hì)�”}”(hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”h]”hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”…”�”}”(hjÂMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M&hj¿Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj£Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¾Mh´M'hjâLubjL)�”}”(hŒa``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ”h]”(jR)�”}”(hŒ``unsigned long flags``”h]”jX)�”}”(hjãMh]”hŒunsigned long flags”…”�”}”(hjåMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjáMubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M)hjÝMubjn)�”}”(hhh]”hì)�”}”(hŒHadditional flags; defines the action to be performed for I/O processing.”h]”hŒHadditional flags; defines the action to be performed for I/O processing.”…”�”}”(hjüMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M(hjùMubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÝMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jøMh´M)hjâLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÆLubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjNh]”hŒ Description”…”�”}”(hj!Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M+hjÆLubhì)�”}”(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]”(hŒé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 ”…”�”}”(hj5Nh²hh³Nh´Nubj)�”}”(hŒ **intparm**”h]”hŒintparm”…”�”}”(hj=Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5NubhŒŠ specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().”…”�”}”(hj5Nh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M*hjÆLubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjXNh]”hŒReturn”…”�”}”(hjZNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjVNubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M1hjÆLubhì)�”}”(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]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjrNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjnNubhŒ$, if the operation was successful; -”…”�”}”(hjnNh²hh³Nh´NubjX)�”}”(hŒ ``EBUSY``”h]”hŒEBUSY”…”�”}”(hj„Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjnNubhŒ-, if the device is busy, or status pending; -”…”�”}”(hjnNh²hh³Nh´NubjX)�”}”(hŒ ``EACCES``”h]”hŒEACCES”…”�”}”(hj–Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjnNubhŒ, if no path specified in ”…”�”}”(hjnNh²hh³Nh´Nubj)�”}”(hŒ**lpm**”h]”hŒlpm”…”�”}”(hj¨Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjnNubhŒ is operational; -”…”�”}”(hjnNh²hh³Nh´NubjX)�”}”(hŒ ``ENODEV``”h]”hŒENODEV”…”�”}”(hjºNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjnNubhŒ#, if the device is not operational.”…”�”}”(hjnNh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M1hjÆLubhì)�”}”(hŒ **Context**”h]”j)�”}”(hjÕNh]”hŒContext”…”�”}”(hj×Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÓNubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M6hjÆLubhì)�”}”(hŒ)Interrupts disabled, ccw device lock held”h]”hŒ)Interrupts disabled, ccw device lock held”…”�”}”(hjëNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M6hjÆLubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ%ccw_device_start_timeout (C function)”Œc.ccw_device_start_timeout”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ‹int ccw_device_start_timeout (struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags, int expires)”h]”jt)�”}”(hŒŠint ccw_device_start_timeout(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags, int expires)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjOh²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MAubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)Oh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjOh²hh³j(Oh´MAubj�)�”}”(hŒccw_device_start_timeout”h]”j£)�”}”(hŒccw_device_start_timeout”h]”hŒccw_device_start_timeout”…”�”}”(hj;Oh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj7Oubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjOh²hh³j(Oh´MAubjl)�”}”(hŒn(struct ccw_device *cdev, struct ccw1 *cpa, unsigned long intparm, __u8 lpm, unsigned long flags, int expires)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjWOh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjSOubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdOh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjSOubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjuOh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjrOubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jwOŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j=OsbŒc.ccw_device_start_timeout”†”asbuh1hhjSOubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•Oh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjSOubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj£Oh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjSOubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj°Oh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjSOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjOOubjr)�”}”(hŒstruct ccw1 *cpa”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÉOh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÅOubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖOh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÅOubh)�”}”(hhh]”j£)�”}”(hŒccw1”h]”hŒccw1”…”�”}”(hjçOh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjäOubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jéOŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j‘OŒc.ccw_device_start_timeout”†”asbuh1hhjÅOubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÅOubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÅOubj£)�”}”(hŒcpa”h]”hŒcpa”…”�”}”(hj Ph²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÅOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjOOubjr)�”}”(hŒunsigned long intparm”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj9Ph²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj5PubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGPh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj5Pubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjUPh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj5PubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjcPh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj5Pubj£)�”}”(hŒintparm”h]”hŒintparm”…”�”}”(hjqPh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj5Pubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjOOubjr)�”}”(hŒ__u8 lpm”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hj�Ph²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjŠPubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j�PŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j‘OŒc.ccw_device_start_timeout”†”asbuh1hhj†PubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«Ph²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj†Pubj£)�”}”(hŒlpm”h]”hŒlpm”…”�”}”(hj¹Ph²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj†Pubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjOOubjr)�”}”(hŒunsigned long flags”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÒPh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÎPubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàPh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÎPubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjîPh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÎPubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjüPh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÎPubj£)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj Qh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÎPubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjOOubjr)�”}”(hŒ int expires”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj#Qh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjQubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1Qh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjQubj£)�”}”(hŒexpires”h]”hŒexpires”…”�”}”(hj?Qh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjQubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjOOubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjOh²hh³j(Oh´MAubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjOh²hh³j(Oh´MAubah}”(h]”j Oah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j(Oh´MAhjOh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ)start a s390 channel program with timeout”h]”hŒ)start a s390 channel program with timeout”…”�”}”(hjiQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MAhjfQh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjOh²hh³j(Oh´MAubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój�Qjôj�Qjõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX)**Parameters** ``struct ccw_device *cdev`` target ccw device ``struct ccw1 *cpa`` logical start address of channel program ``unsigned long intparm`` user specific interruption parameter; will be presented back to **cdev**'s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request. ``__u8 lpm`` defines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm. ``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ``int expires`` timeout value in jiffies **Description** Start a S/390 channel program. When the interrupt arrives, the IRQ handler is called, either immediately, delayed (dev-end missing, or sense required) or never (no IRQ handler registered). This function notifies the device driver if the channel program has not completed during the time specified by **expires**. If a timeout occurs, the channel program is terminated via xsch, hsch or csch, and the device's interrupt handler will be called with an irb containing ERR_PTR(-``ETIMEDOUT``). The interruption handler will echo back the **intparm** specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear(). **Return** ``0``, if the operation was successful; -``EBUSY``, if the device is busy, or status pending; -``EACCES``, if no path specified in **lpm** is operational; -``ENODEV``, if the device is not operational. **Context** Interrupts disabled, ccw device lock held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj‹Qh]”hŒ Parameters”…”�”}”(hj�Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‰Qubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MEhj…QubjG)�”}”(hhh]”(jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjªQh]”hŒstruct ccw_device *cdev”…”�”}”(hj¬Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¨Qubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MBhj¤Qubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hjÃQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¿Qh´MBhjÀQubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¤Qubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¿Qh´MBhj¡QubjL)�”}”(hŒ>``struct ccw1 *cpa`` logical start address of channel program ”h]”(jR)�”}”(hŒ``struct ccw1 *cpa``”h]”jX)�”}”(hjãQh]”hŒstruct ccw1 *cpa”…”�”}”(hjåQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjáQubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MChjÝQubjn)�”}”(hhh]”hì)�”}”(hŒ(logical start address of channel program”h]”hŒ(logical start address of channel program”…”�”}”(hjüQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jøQh´MChjùQubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÝQubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jøQh´MChj¡QubjL)�”}”(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]”(jR)�”}”(hŒ``unsigned long intparm``”h]”jX)�”}”(hjRh]”hŒunsigned long intparm”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MFhjRubjn)�”}”(hhh]”hì)�”}”(hŒ®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]”(hŒ@user specific interruption parameter; will be presented back to ”…”�”}”(hj5Rh²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hj=Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5RubhŒh’s interrupt handler. Allows a device driver to associate the interrupt with a particular I/O request.”…”�”}”(hj5Rh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MDhj2Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j1Rh´MFhj¡QubjL)�”}”(hŒu``__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]”(jR)�”}”(hŒ ``__u8 lpm``”h]”jX)�”}”(hjhRh]”hŒ__u8 lpm”…”�”}”(hjjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjfRubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MHhjbRubjn)�”}”(hhh]”hì)�”}”(hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”h]”hŒgdefines the channel path to be used for a specific I/O request. A value of 0 will make cio use the opm.”…”�”}”(hj�Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MGhj~Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjbRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j}Rh´MHhj¡QubjL)�”}”(hŒa``unsigned long flags`` additional flags; defines the action to be performed for I/O processing. ”h]”(jR)�”}”(hŒ``unsigned long flags``”h]”jX)�”}”(hj¢Rh]”hŒunsigned long flags”…”�”}”(hj¤Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MJhjœRubjn)�”}”(hhh]”hì)�”}”(hŒHadditional flags; defines the action to be performed for I/O processing.”h]”hŒHadditional flags; defines the action to be performed for I/O processing.”…”�”}”(hj»Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MIhj¸Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjœRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j·Rh´MJhj¡QubjL)�”}”(hŒ)``int expires`` timeout value in jiffies ”h]”(jR)�”}”(hŒ``int expires``”h]”jX)�”}”(hjÜRh]”hŒ int expires”…”�”}”(hjÞRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÚRubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MKhjÖRubjn)�”}”(hhh]”hì)�”}”(hŒtimeout value in jiffies”h]”hŒtimeout value in jiffies”…”�”}”(hjõRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jñRh´MKhjòRubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÖRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jñRh´MKhj¡Qubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj…Qubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjSh]”hŒ Description”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MMhj…Qubhì)�”}”(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 **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 ”…”�”}”(hj-Sh²hh³Nh´Nubj)�”}”(hŒ **expires**”h]”hŒexpires”…”�”}”(hj5Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-SubhŒ¥. 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(-”…”�”}”(hj-Sh²hh³Nh´NubjX)�”}”(hŒ ``ETIMEDOUT``”h]”hŒ ETIMEDOUT”…”�”}”(hjGSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj-SubhŒ/). The interruption handler will echo back the ”…”�”}”(hj-Sh²hh³Nh´Nubj)�”}”(hŒ **intparm**”h]”hŒintparm”…”�”}”(hjYSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-SubhŒŠ specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_halt() or ccw_device_clear().”…”�”}”(hj-Sh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MLhj…Qubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjtSh]”hŒReturn”…”�”}”(hjvSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjrSubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MWhj…Qubhì)�”}”(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]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjŽSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjŠSubhŒ$, if the operation was successful; -”…”�”}”(hjŠSh²hh³Nh´NubjX)�”}”(hŒ ``EBUSY``”h]”hŒEBUSY”…”�”}”(hj Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjŠSubhŒ-, if the device is busy, or status pending; -”…”�”}”(hjŠSh²hh³Nh´NubjX)�”}”(hŒ ``EACCES``”h]”hŒEACCES”…”�”}”(hj²Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjŠSubhŒ, if no path specified in ”…”�”}”(hjŠSh²hh³Nh´Nubj)�”}”(hŒ**lpm**”h]”hŒlpm”…”�”}”(hjÄSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŠSubhŒ is operational; -”…”�”}”(hjŠSh²hh³Nh´NubjX)�”}”(hŒ ``ENODEV``”h]”hŒENODEV”…”�”}”(hjÖSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjŠSubhŒ#, if the device is not operational.”…”�”}”(hjŠSh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MWhj…Qubhì)�”}”(hŒ **Context**”h]”j)�”}”(hjñSh]”hŒContext”…”�”}”(hjóSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjïSubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M\hj…Qubhì)�”}”(hŒ)Interrupts disabled, ccw device lock held”h]”hŒ)Interrupts disabled, ccw device lock held”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M\hj…Qubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_device_halt (C function)”Œc.ccw_device_halt”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒDint ccw_device_halt (struct ccw_device *cdev, unsigned long intparm)”h]”jt)�”}”(hŒCint ccw_device_halt(struct ccw_device *cdev, unsigned long intparm)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj6Th²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj2Th²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MjubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjETh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj2Th²hh³jDTh´Mjubj�)�”}”(hŒccw_device_halt”h]”j£)�”}”(hŒccw_device_halt”h]”hŒccw_device_halt”…”�”}”(hjWTh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjSTubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj2Th²hh³jDTh´Mjubjl)�”}”(hŒ0(struct ccw_device *cdev, unsigned long intparm)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjsTh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjoTubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€Th²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjoTubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj‘Th²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjŽTubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j“TŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jYTsbŒc.ccw_device_halt”†”asbuh1hhjoTubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±Th²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjoTubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj¿Th²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjoTubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjÌTh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjoTubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjkTubjr)�”}”(hŒunsigned long intparm”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjåTh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjáTubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjóTh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjáTubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjáTubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjáTubj£)�”}”(hŒintparm”h]”hŒintparm”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjáTubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjkTubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj2Th²hh³jDTh´Mjubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj.Th²hh³jDTh´Mjubah}”(h]”j)Tah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jDTh´Mjhj+Th²hubjÑ)�”}”(hhh]”hì)�”}”(hŒhalt I/O request processing”h]”hŒhalt I/O request processing”…”�”}”(hjGUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MjhjDUh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj+Th²hh³jDTh´Mjubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój_Ujôj_Ujõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hXc**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 held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjiUh]”hŒ Parameters”…”�”}”(hjkUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjgUubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MnhjcUubjG)�”}”(hhh]”(jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjˆUh]”hŒstruct ccw_device *cdev”…”�”}”(hjŠUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj†Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mkhj‚Uubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hj¡Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�Uh´MkhjžUubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj‚Uubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j�Uh´MkhjUubjL)�”}”(hŒX``unsigned long intparm`` interruption parameter to be returned upon conclusion of hsch ”h]”(jR)�”}”(hŒ``unsigned long intparm``”h]”jX)�”}”(hjÁUh]”hŒunsigned long intparm”…”�”}”(hjÃUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¿Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mlhj»Uubjn)�”}”(hhh]”hì)�”}”(hŒ=interruption parameter to be returned upon conclusion of hsch”h]”hŒ=interruption parameter to be returned upon conclusion of hsch”…”�”}”(hjÚUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÖUh´Mlhj×Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj»Uubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÖUh´MlhjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjcUubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjüUh]”hŒ Description”…”�”}”(hjþUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjúUubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MnhjcUubhì)�”}”(hŒã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().”h]”(hŒ ccw_device_halt() calls hsch on ”…”�”}”(hjVh²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjVubhŒ=’s subchannel. The interruption handler will echo back the ”…”�”}”(hjVh²hh³Nh´Nubj)�”}”(hŒ **intparm**”h]”hŒintparm”…”�”}”(hj,Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjVubhŒu specified here, unless another interruption parameter is specified by a subsequent invocation of ccw_device_clear().”…”�”}”(hjVh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MmhjcUubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjGVh]”hŒReturn”…”�”}”(hjIVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjEVubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MrhjcUubhì)�”}”(hŒ�``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjaVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj]VubhŒ on success, -”…”�”}”(hj]Vh²hh³Nh´NubjX)�”}”(hŒ ``ENODEV``”h]”hŒENODEV”…”�”}”(hjsVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj]VubhŒ on device not operational, -”…”�”}”(hj]Vh²hh³Nh´NubjX)�”}”(hŒ ``EINVAL``”h]”hŒEINVAL”…”�”}”(hj…Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj]VubhŒ on invalid device state, -”…”�”}”(hj]Vh²hh³Nh´NubjX)�”}”(hŒ ``EBUSY``”h]”hŒEBUSY”…”�”}”(hj—Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj]VubhŒ% on device busy or interrupt pending.”…”�”}”(hj]Vh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MrhjcUubhì)�”}”(hŒ **Context**”h]”j)�”}”(hj²Vh]”hŒContext”…”�”}”(hj´Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj°Vubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MwhjcUubhì)�”}”(hŒ)Interrupts disabled, ccw device lock held”h]”hŒ)Interrupts disabled, ccw device lock held”…”�”}”(hjÈVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MwhjcUubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_device_resume (C function)”Œc.ccw_device_resume”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ/int ccw_device_resume (struct ccw_device *cdev)”h]”jt)�”}”(hŒ.int ccw_device_resume(struct ccw_device *cdev)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj÷Vh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjóVh²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M“ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjóVh²hh³jWh´M“ubj�)�”}”(hŒccw_device_resume”h]”j£)�”}”(hŒccw_device_resume”h]”hŒccw_device_resume”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjWubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjóVh²hh³jWh´M“ubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj4Wh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj0WubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAWh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj0Wubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjRWh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjOWubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jTWŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jWsbŒc.ccw_device_resume”†”asbuh1hhj0WubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrWh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj0WubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj€Wh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj0Wubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj�Wh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj0Wubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj,Wubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjóVh²hh³jWh´M“ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjïVh²hh³jWh´M“ubah}”(h]”jêVah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jWh´M“hjìVh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ resume channel program execution”h]”hŒ resume channel program execution”…”�”}”(hj·Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M“hj´Wh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjìVh²hh³jWh´M“ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójÏWjôjÏWjõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX]**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 held”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjÙWh]”hŒ Parameters”…”�”}”(hjÛWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj×Wubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M—hjÓWubjG)�”}”(hhh]”jL)�”}”(hŒ.``struct ccw_device *cdev`` target ccw device ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjøWh]”hŒstruct ccw_device *cdev”…”�”}”(hjúWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjöWubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M”hjòWubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccw device”h]”hŒtarget ccw device”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j Xh´M”hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjòWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j Xh´M”hjïWubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÓWubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj3Xh]”hŒ Description”…”�”}”(hj5Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj1Xubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M–hjÓWubhì)�”}”(hŒ8ccw_device_resume() calls rsch on **cdev**'s subchannel.”h]”(hŒ"ccw_device_resume() calls rsch on ”…”�”}”(hjIXh²hh³Nh´Nubj)�”}”(hŒ**cdev**”h]”hŒcdev”…”�”}”(hjQXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjIXubhŒ’s subchannel.”…”�”}”(hjIXh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M•hjÓWubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjlXh]”hŒReturn”…”�”}”(hjnXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjjXubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M—hjÓWubhì)�”}”(hŒ�``0`` on success, -``ENODEV`` on device not operational, -``EINVAL`` on invalid device state, -``EBUSY`` on device busy or interrupt pending.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj†Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‚XubhŒ on success, -”…”�”}”(hj‚Xh²hh³Nh´NubjX)�”}”(hŒ ``ENODEV``”h]”hŒENODEV”…”�”}”(hj˜Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‚XubhŒ on device not operational, -”…”�”}”(hj‚Xh²hh³Nh´NubjX)�”}”(hŒ ``EINVAL``”h]”hŒEINVAL”…”�”}”(hjªXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‚XubhŒ on invalid device state, -”…”�”}”(hj‚Xh²hh³Nh´NubjX)�”}”(hŒ ``EBUSY``”h]”hŒEBUSY”…”�”}”(hj¼Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‚XubhŒ% on device busy or interrupt pending.”…”�”}”(hj‚Xh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M—hjÓWubhì)�”}”(hŒ **Context**”h]”j)�”}”(hj×Xh]”hŒContext”…”�”}”(hjÙXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕXubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MœhjÓWubhì)�”}”(hŒ)Interrupts disabled, ccw device lock held”h]”hŒ)Interrupts disabled, ccw device lock held”…”�”}”(hjíXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MœhjÓWubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_device_get_ciw (C function)”Œc.ccw_device_get_ciw”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒCstruct ciw * ccw_device_get_ciw (struct ccw_device *cdev, __u32 ct)”h]”jt)�”}”(hŒAstruct ciw *ccw_device_get_ciw(struct ccw_device *cdev, __u32 ct)”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjYh²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M³ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*Yh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjYh²hh³j)Yh´M³ubh)�”}”(hhh]”j£)�”}”(hŒciw”h]”hŒciw”…”�”}”(hj;Yh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj8Yubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j=YŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«Œccw_device_get_ciw”sbŒc.ccw_device_get_ciw”†”asbuh1hhjYh²hh³j)Yh´M³ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\Yh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjYh²hh³j)Yh´M³ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjjYh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjYh²hh³j)Yh´M³ubj�)�”}”(hŒccw_device_get_ciw”h]”j£)�”}”(hjYYh]”hŒccw_device_get_ciw”…”�”}”(hj{Yh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjwYubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjYh²hh³j)Yh´M³ubjl)�”}”(hŒ#(struct ccw_device *cdev, __u32 ct)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj–Yh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj’YubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£Yh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj’Yubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj´Yh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj±Yubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j¶YŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jWYŒc.ccw_device_get_ciw”†”asbuh1hhj’YubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒYh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj’YubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjàYh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj’Yubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjíYh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj’Yubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjŽYubjr)�”}”(hŒ__u32 ct”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u32”h]”hŒ__u32”…”�”}”(hj Zh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j ZŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jWYŒc.ccw_device_get_ciw”†”asbuh1hhjZubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'Zh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjZubj£)�”}”(hŒct”h]”hŒct”…”�”}”(hj5Zh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjŽYubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjYh²hh³j)Yh´M³ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjYh²hh³j)Yh´M³ubah}”(h]”jYah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j)Yh´M³hjYh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ.Search for CIW command in extended sense data.”h]”hŒ.Search for CIW command in extended sense data.”…”�”}”(hj_Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M³hj\Zh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjYh²hh³j)Yh´M³ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójwZjôjwZjõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX **Parameters** ``struct ccw_device *cdev`` ccw device to inspect ``__u32 ct`` command type to look for **Description** During SenseID, command information words (CIWs) describing special commands available to the device may have been stored in the extended sense data. This function searches for CIWs of a specified command type in the extended sense data. **Return** ``NULL`` if no extended sense data has been stored or if no CIW of the specified command type could be found, else a pointer to the CIW of the specified command type.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj�Zh]”hŒ Parameters”…”�”}”(hjƒZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M·hj{ZubjG)�”}”(hhh]”(jL)�”}”(hŒ2``struct ccw_device *cdev`` ccw device to inspect ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj Zh]”hŒstruct ccw_device *cdev”…”�”}”(hj¢Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjžZubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M´hjšZubjn)�”}”(hhh]”hì)�”}”(hŒccw device to inspect”h]”hŒccw device to inspect”…”�”}”(hj¹Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jµZh´M´hj¶Zubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjšZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jµZh´M´hj—ZubjL)�”}”(hŒ&``__u32 ct`` command type to look for ”h]”(jR)�”}”(hŒ ``__u32 ct``”h]”jX)�”}”(hjÙZh]”hŒ__u32 ct”…”�”}”(hjÛZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj×Zubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MµhjÓZubjn)�”}”(hhh]”hì)�”}”(hŒcommand type to look for”h]”hŒcommand type to look for”…”�”}”(hjòZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jîZh´MµhjïZubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÓZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jîZh´Mµhj—Zubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj{Zubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj[h]”hŒ Description”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M·hj{Zubhì)�”}”(hŒí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.”h]”hŒí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.”…”�”}”(hj*[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M¶hj{Zubhì)�”}”(hŒ **Return**”h]”j)�”}”(hj;[h]”hŒReturn”…”�”}”(hj=[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M»hj{Zubhì)�”}”(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]”(jX)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjU[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjQ[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.”…”�”}”(hjQ[h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M»hj{Zubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ%ccw_device_get_path_mask (C function)”Œc.ccw_device_get_path_mask”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ7__u8 ccw_device_get_path_mask (struct ccw_device *cdev)”h]”jt)�”}”(hŒ6__u8 ccw_device_get_path_mask(struct ccw_device *cdev)”h]”(h)�”}”(hhh]”j£)�”}”(hŒ__u8”h]”hŒ__u8”…”�”}”(hj‘[h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjŽ[ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j“[Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«Œccw_device_get_path_mask”sbŒc.ccw_device_get_path_mask”†”asbuh1hhjŠ[h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MÍubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³[h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŠ[h²hh³j²[h´MÍubj�)�”}”(hŒccw_device_get_path_mask”h]”j£)�”}”(hj¯[h]”hŒccw_device_get_path_mask”…”�”}”(hjÅ[h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÁ[ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjŠ[h²hh³j²[h´MÍubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjà[h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÜ[ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí[h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÜ[ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjþ[h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjû[ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j\Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j­[Œc.ccw_device_get_path_mask”†”asbuh1hhjÜ[ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÜ[ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj*\h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÜ[ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj7\h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÜ[ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjØ[ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjŠ[h²hh³j²[h´MÍubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj†[h²hh³j²[h´MÍubah}”(h]”j�[ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j²[h´MÍhjƒ[h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒget currently available paths”h]”hŒget currently available paths”…”�”}”(hja\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MÍhj^\h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjƒ[h²hh³j²[h´MÍubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójy\jôjy\jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hŒÓ**Parameters** ``struct ccw_device *cdev`` ccw device to be queried **Return** ``0`` if no subchannel for the device is available, else the mask of currently available paths for the ccw device's subchannel.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjƒ\h]”hŒ Parameters”…”�”}”(hj…\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MÑhj}\ubjG)�”}”(hhh]”jL)�”}”(hŒ5``struct ccw_device *cdev`` ccw device to be queried ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj¢\h]”hŒstruct ccw_device *cdev”…”�”}”(hj¤\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj \ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MÎhjœ\ubjn)�”}”(hhh]”hì)�”}”(hŒccw device to be queried”h]”hŒccw device to be queried”…”�”}”(hj»\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j·\h´MÎhj¸\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjœ\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j·\h´MÎhj™\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj}\ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjÝ\h]”hŒReturn”…”�”}”(hjß\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛ\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MÐhj}\ubhì)�”}”(hŒ``0`` if no subchannel for the device is available, else the mask of currently available paths for the ccw device's subchannel.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj÷\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjó\ubhŒ| if no subchannel for the device is available, else the mask of currently available paths for the ccw device’s subchannel.”…”�”}”(hjó\h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MÏhj}\ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ$ccw_device_get_chp_desc (C function)”Œc.ccw_device_get_chp_desc”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ^struct channel_path_desc_fmt0 * ccw_device_get_chp_desc (struct ccw_device *cdev, int chp_idx)”h]”jt)�”}”(hŒ\struct channel_path_desc_fmt0 *ccw_device_get_chp_desc(struct ccw_device *cdev, int chp_idx)”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj0]h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj,]h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MßubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>]h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj,]h²hh³j=]h´Mßubh)�”}”(hhh]”j£)�”}”(hŒchannel_path_desc_fmt0”h]”hŒchannel_path_desc_fmt0”…”�”}”(hjO]h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjL]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jQ]Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«Œccw_device_get_chp_desc”sbŒc.ccw_device_get_chp_desc”†”asbuh1hhj,]h²hh³j=]h´MßubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp]h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj,]h²hh³j=]h´MßubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj~]h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj,]h²hh³j=]h´Mßubj�)�”}”(hŒccw_device_get_chp_desc”h]”j£)�”}”(hjm]h]”hŒccw_device_get_chp_desc”…”�”}”(hj�]h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj‹]ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj,]h²hh³j=]h´Mßubjl)�”}”(hŒ&(struct ccw_device *cdev, int chp_idx)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjª]h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj¦]ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·]h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¦]ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjÈ]h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÅ]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jÊ]Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jk]Œc.ccw_device_get_chp_desc”†”asbuh1hhj¦]ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ]h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¦]ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjô]h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj¦]ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¦]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj¢]ubjr)�”}”(hŒ int chp_idx”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj^ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(^h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj^ubj£)�”}”(hŒchp_idx”h]”hŒchp_idx”…”�”}”(hj6^h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj^ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj¢]ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj,]h²hh³j=]h´Mßubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj(]h²hh³j=]h´Mßubah}”(h]”j#]ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j=]h´Mßhj%]h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ.return newly allocated channel-path descriptor”h]”hŒ.return newly allocated channel-path descriptor”…”�”}”(hj`^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mßhj]^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj%]h²hh³j=]h´Mßubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójx^jôjx^jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX **Parameters** ``struct ccw_device *cdev`` device to obtain the descriptor for ``int chp_idx`` index of the channel path **Description** On success return a newly allocated copy of the channel-path description data associated with the given channel path. Return ``NULL`` on error.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj‚^h]”hŒ Parameters”…”�”}”(hj„^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mãhj|^ubjG)�”}”(hhh]”(jL)�”}”(hŒ@``struct ccw_device *cdev`` device to obtain the descriptor for ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj¡^h]”hŒstruct ccw_device *cdev”…”�”}”(hj£^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjŸ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Màhj›^ubjn)�”}”(hhh]”hì)�”}”(hŒ#device to obtain the descriptor for”h]”hŒ#device to obtain the descriptor for”…”�”}”(hjº^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¶^h´Màhj·^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj›^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¶^h´Màhj˜^ubjL)�”}”(hŒ*``int chp_idx`` index of the channel path ”h]”(jR)�”}”(hŒ``int chp_idx``”h]”jX)�”}”(hjÚ^h]”hŒ int chp_idx”…”�”}”(hjÜ^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjØ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MáhjÔ^ubjn)�”}”(hhh]”hì)�”}”(hŒindex of the channel path”h]”hŒindex of the channel path”…”�”}”(hjó^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jï^h´Máhjð^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÔ^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jï^h´Máhj˜^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj|^ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj_h]”hŒ Description”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mãhj|^ubhì)�”}”(hŒ�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Œ}On success return a newly allocated copy of the channel-path description data associated with the given channel path. Return ”…”�”}”(hj+_h²hh³Nh´NubjX)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj3_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj+_ubhŒ on error.”…”�”}”(hj+_h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mâhj|^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ$ccw_device_get_util_str (C function)”Œc.ccw_device_get_util_str”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒCu8 * ccw_device_get_util_str (struct ccw_device *cdev, int chp_idx)”h]”jt)�”}”(hŒAu8 *ccw_device_get_util_str(struct ccw_device *cdev, int chp_idx)”h]”(h)�”}”(hhh]”j£)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjo_h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjl_ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jq_Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«Œccw_device_get_util_str”sbŒc.ccw_device_get_util_str”†”asbuh1hhjh_h²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MõubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘_h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjh_h²hh³j�_h´MõubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjŸ_h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjh_h²hh³j�_h´Mõubj�)�”}”(hŒccw_device_get_util_str”h]”j£)�”}”(hj�_h]”hŒccw_device_get_util_str”…”�”}”(hj°_h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¬_ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjh_h²hh³j�_h´Mõubjl)�”}”(hŒ&(struct ccw_device *cdev, int chp_idx)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjË_h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÇ_ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ_h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÇ_ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjé_h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjæ_ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jë_Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j‹_Œc.ccw_device_get_util_str”†”asbuh1hhjÇ_ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÇ_ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÇ_ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj"`h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÇ_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÃ_ubjr)�”}”(hŒ int chp_idx”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj;`h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj7`ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjI`h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj7`ubj£)�”}”(hŒchp_idx”h]”hŒchp_idx”…”�”}”(hjW`h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj7`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÃ_ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjh_h²hh³j�_h´Mõubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjd_h²hh³j�_h´Mõubah}”(h]”j__ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j�_h´Mõhja_h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ&return newly allocated utility strings”h]”hŒ&return newly allocated utility strings”…”�”}”(hj�`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mõhj~`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhja_h²hh³j�_h´Mõubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój™`jôj™`jõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(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)�”}”(hj£`h]”hŒ Parameters”…”�”}”(hj¥`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¡`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mùhj�`ubjG)�”}”(hhh]”(jL)�”}”(hŒE``struct ccw_device *cdev`` device to obtain the utility strings for ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjÂ`h]”hŒstruct ccw_device *cdev”…”�”}”(hjÄ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÀ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Möhj¼`ubjn)�”}”(hhh]”hì)�”}”(hŒ(device to obtain the utility strings for”h]”hŒ(device to obtain the utility strings for”…”�”}”(hjÛ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j×`h´MöhjØ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¼`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j×`h´Möhj¹`ubjL)�”}”(hŒ*``int chp_idx`` index of the channel path ”h]”(jR)�”}”(hŒ``int chp_idx``”h]”jX)�”}”(hjû`h]”hŒ int chp_idx”…”�”}”(hjý`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjù`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M÷hjõ`ubjn)�”}”(hhh]”hì)�”}”(hŒindex of the channel path”h]”hŒindex of the channel path”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jah´M÷hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjõ`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jah´M÷hj¹`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj�`ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj6ah]”hŒ Description”…”�”}”(hj8ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4aubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mùhj�`ubhì)�”}”(hŒ�On success return a newly allocated copy of the utility strings associated with the given channel path. Return ``NULL`` on error.”h]”(hŒoOn success return a newly allocated copy of the utility strings associated with the given channel path. Return ”…”�”}”(hjLah²hh³Nh´NubjX)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjTah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjLaubhŒ on error.”…”�”}”(hjLah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Møhj�`ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccw_device_get_id (C function)”Œc.ccw_device_get_id”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒKvoid ccw_device_get_id (struct ccw_device *cdev, struct ccw_dev_id *dev_id)”h]”jt)�”}”(hŒJvoid ccw_device_get_id(struct ccw_device *cdev, struct ccw_dev_id *dev_id)”h]”(j4)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�ah²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj‰ah²hh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœah²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‰ah²hh³j›ah´Mubj�)�”}”(hŒccw_device_get_id”h]”j£)�”}”(hŒccw_device_get_id”h]”hŒccw_device_get_id”…”�”}”(hj®ah²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjªaubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj‰ah²hh³j›ah´Mubjl)�”}”(hŒ4(struct ccw_device *cdev, struct ccw_dev_id *dev_id)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÊah²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÆaubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×ah²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÆaubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjèah²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjåaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jêaŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j°asbŒc.ccw_device_get_id”†”asbuh1hhjÆaubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÆaubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÆaubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj#bh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÆaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÂaubjr)�”}”(hŒstruct ccw_dev_id *dev_id”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjîgubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjKhh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjîgubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjêgubjr)�”}”(hŒstruct tcw *tcw”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjdhh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj`hubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqhh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`hubh)�”}”(hhh]”j£)�”}”(hŒtcw”h]”hŒtcw”…”�”}”(hj‚hh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjhubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j„hŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j,hŒc.ccw_device_tm_start_key”†”asbuh1hhj`hubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj hh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj`hubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj®hh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj`hubj£)�”}”(hŒtcw”h]”hŒtcw”…”�”}”(hj»hh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj`hubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjêgubjr)�”}”(hŒunsigned long intparm”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÔhh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÐhubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâhh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÐhubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjðhh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÐhubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþhh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÐhubj£)�”}”(hŒintparm”h]”hŒintparm”…”�”}”(hj ih²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÐhubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjêgubjr)�”}”(hŒu8 lpm”h]”(h)�”}”(hhh]”j£)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj(ih²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj%iubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j*iŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j,hŒc.ccw_device_tm_start_key”†”asbuh1hhj!iubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFih²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj!iubj£)�”}”(hŒlpm”h]”hŒlpm”…”�”}”(hjTih²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj!iubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjêgubjr)�”}”(hŒu8 key”h]”(h)�”}”(hhh]”j£)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjpih²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjmiubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jriŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j,hŒc.ccw_device_tm_start_key”†”asbuh1hhjiiubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽih²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjiiubj£)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjœih²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjiiubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjêgubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj±gh²hh³jÃgh´MZubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj­gh²hh³jÃgh´MZubah}”(h]”j¨gah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÃgh´MZhjªgh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒperform start function”h]”hŒperform start function”…”�”}”(hjÆih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MZhjÃih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjªgh²hh³jÃgh´MZubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójÞijôjÞijõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX±**Parameters** ``struct ccw_device *cdev`` ccw device on which to perform the start function ``struct tcw *tcw`` transport-command word to be started ``unsigned long intparm`` user defined parameter to be passed to the interrupt handler ``u8 lpm`` mask of paths to use ``u8 key`` storage key to use for storage access **Description** Start the tcw on the given ccw device. Return zero on success, non-zero otherwise.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjèih]”hŒ Parameters”…”�”}”(hjêih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæiubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M^hjâiubjG)�”}”(hhh]”(jL)�”}”(hŒN``struct ccw_device *cdev`` ccw device on which to perform the start function ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjjh]”hŒstruct ccw_device *cdev”…”�”}”(hj jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M[hjjubjn)�”}”(hhh]”hì)�”}”(hŒ1ccw device on which to perform the start function”h]”hŒ1ccw device on which to perform the start function”…”�”}”(hj jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jjh´M[hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jjh´M[hjþiubjL)�”}”(hŒ9``struct tcw *tcw`` transport-command word to be started ”h]”(jR)�”}”(hŒ``struct tcw *tcw``”h]”jX)�”}”(hj@jh]”hŒstruct tcw *tcw”…”�”}”(hjBjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj>jubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M\hj:jubjn)�”}”(hhh]”hì)�”}”(hŒ$transport-command word to be started”h]”hŒ$transport-command word to be started”…”�”}”(hjYjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jUjh´M\hjVjubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj:jubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jUjh´M\hjþiubjL)�”}”(hŒW``unsigned long intparm`` user defined parameter to be passed to the interrupt handler ”h]”(jR)�”}”(hŒ``unsigned long intparm``”h]”jX)�”}”(hjyjh]”hŒunsigned long intparm”…”�”}”(hj{jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjwjubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´M]hjsjubjn)�”}”(hhh]”hì)�”}”(hŒyh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj-yubh)�”}”(hhh]”j£)�”}”(hŒchsc_pnso_resume_token”h]”hŒchsc_pnso_resume_token”…”�”}”(hjOyh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjLyubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jQyŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jAxŒc.ccw_device_pnso”†”asbuh1hhj-yubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjmyh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj-yubj£)�”}”(hŒ resume_token”h]”hŒ resume_token”…”�”}”(hj{yh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj-yubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÿwubjr)�”}”(hŒint cnc”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj”yh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj�yubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢yh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj�yubj£)�”}”(hŒcnc”h]”hŒcnc”…”�”}”(hj°yh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj�yubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÿwubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjÆwh²hh³jØwh´Mçubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjÂwh²hh³jØwh´Mçubah}”(h]”j½wah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jØwh´Mçhj¿wh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ$Perform Network-Subchannel Operation”h]”hŒ$Perform Network-Subchannel Operation”…”�”}”(hjÚyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mçhj×yh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj¿wh²hh³jØwh´Mçubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójòyjôjòyjõ‰jö‰j÷‰uh1jhh²hhjëh³Nh´Nubjù)�”}”(hX¾**Parameters** ``struct ccw_device *cdev`` device on which PNSO is performed ``struct chsc_pnso_area *pnso_area`` request and response block for the operation ``u8 oc`` Operation Code ``struct chsc_pnso_resume_token resume_token`` resume token for multiblock response ``int cnc`` Boolean change-notification control **Description** pnso_area must be allocated by the caller with get_zeroed_page(GFP_KERNEL) Returns 0 on success.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjüyh]”hŒ Parameters”…”�”}”(hjþyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjúyubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MëhjöyubjG)�”}”(hhh]”(jL)�”}”(hŒ>``struct ccw_device *cdev`` device on which PNSO is performed ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjzh]”hŒstruct ccw_device *cdev”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mèhjzubjn)�”}”(hhh]”hì)�”}”(hŒ!device on which PNSO is performed”h]”hŒ!device on which PNSO is performed”…”�”}”(hj4zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j0zh´Mèhj1zubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j0zh´MèhjzubjL)�”}”(hŒR``struct chsc_pnso_area *pnso_area`` request and response block for the operation ”h]”(jR)�”}”(hŒ$``struct chsc_pnso_area *pnso_area``”h]”jX)�”}”(hjTzh]”hŒ struct chsc_pnso_area *pnso_area”…”�”}”(hjVzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjRzubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MéhjNzubjn)�”}”(hhh]”hì)�”}”(hŒ,request and response block for the operation”h]”hŒ,request and response block for the operation”…”�”}”(hjmzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jizh´Méhjjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjNzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jizh´MéhjzubjL)�”}”(hŒ``u8 oc`` Operation Code ”h]”(jR)�”}”(hŒ ``u8 oc``”h]”jX)�”}”(hj�zh]”hŒu8 oc”…”�”}”(hj�zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‹zubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mêhj‡zubjn)�”}”(hhh]”hì)�”}”(hŒOperation Code”h]”hŒOperation Code”…”�”}”(hj¦zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¢zh´Mêhj£zubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj‡zubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¢zh´MêhjzubjL)�”}”(hŒT``struct chsc_pnso_resume_token resume_token`` resume token for multiblock response ”h]”(jR)�”}”(hŒ.``struct chsc_pnso_resume_token resume_token``”h]”jX)�”}”(hjÆzh]”hŒ*struct chsc_pnso_resume_token resume_token”…”�”}”(hjÈzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÄzubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´MëhjÀzubjn)�”}”(hhh]”hì)�”}”(hŒ$resume token for multiblock response”h]”hŒ$resume token for multiblock response”…”�”}”(hjßzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÛzh´MëhjÜzubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÀzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÛzh´MëhjzubjL)�”}”(hŒ0``int cnc`` Boolean change-notification control ”h]”(jR)�”}”(hŒ ``int cnc``”h]”jX)�”}”(hjÿzh]”hŒint cnc”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjýzubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mìhjùzubjn)�”}”(hhh]”hì)�”}”(hŒ#Boolean change-notification control”h]”hŒ#Boolean change-notification control”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j{h´Mìhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjùzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j{h´Mìhjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjöyubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj:{h]”hŒ Description”…”�”}”(hj<{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj8{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mîhjöyubhì)�”}”(hŒJpnso_area must be allocated by the caller with get_zeroed_page(GFP_KERNEL)”h]”hŒJpnso_area must be allocated by the caller with get_zeroed_page(GFP_KERNEL)”…”�”}”(hjP{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Míhjöyubhì)�”}”(hŒReturns 0 on success.”h]”hŒReturns 0 on success.”…”�”}”(hj_{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œe/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:87: ./drivers/s390/cio/device_ops.c”h´Mïhjöyubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjëh²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ!ccw_device_get_cssid (C function)”Œc.ccw_device_get_cssid”hNt”auh1jWhjëh²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ=int ccw_device_get_cssid (struct ccw_device *cdev, u8 *cssid)”h]”jt)�”}”(hŒint cmf_readall(struct ccw_device *cdev, struct cmbdata *data)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjŒ�h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjˆ�h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´M¾ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjˆ�h²hh³jš�h´M¾ubj�)�”}”(hŒ cmf_readall”h]”j£)�”}”(hŒ cmf_readall”h]”hŒ cmf_readall”…”�”}”(hj­�h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj©�ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjˆ�h²hh³jš�h´M¾ubjl)�”}”(hŒ/(struct ccw_device *cdev, struct cmbdata *data)”h]”(jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÉ�h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÅ�ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÅ�ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hjç�h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjä�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jé�Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j¯�sbŒ c.cmf_readall”†”asbuh1hhjÅ�ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÅ�ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÅ�ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj"Žh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÅ�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÁ�ubjr)�”}”(hŒstruct cmbdata *data”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj;Žh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj7ŽubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHŽh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj7Žubh)�”}”(hhh]”j£)�”}”(hŒcmbdata”h]”hŒcmbdata”…”�”}”(hjYŽh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjVŽubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j[ŽŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jŽŒ c.cmf_readall”†”asbuh1hhj7ŽubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwŽh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj7ŽubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj…Žh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj7Žubj£)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj’Žh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj7Žubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÁ�ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjˆ�h²hh³jš�h´M¾ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj„�h²hh³jš�h´M¾ubah}”(h]”j�ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jš�h´M¾hj��h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ*read the current channel measurement block”h]”hŒ*read the current channel measurement block”…”�”}”(hj¼Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´M¾hj¹Žh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj��h²hh³jš�h´M¾ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójÔŽjôjÔŽjõ‰jö‰j÷‰uh1jhh²hhjýƒh³Nh´Nubjù)�”}”(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** any”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjÞŽh]”hŒ Parameters”…”�”}”(hjàŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÜŽubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´MÂhjØŽubjG)�”}”(hhh]”(jL)�”}”(hŒ3``struct ccw_device *cdev`` the channel to be read ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hjýŽh]”hŒstruct ccw_device *cdev”…”�”}”(hjÿŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjûŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´M¿hj÷Žubjn)�”}”(hhh]”hì)�”}”(hŒthe channel to be read”h]”hŒthe channel to be read”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�h´M¿hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj÷Žubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j�h´M¿hjôŽubjL)�”}”(hŒG``struct cmbdata *data`` a pointer to a data block that will be filled ”h]”(jR)�”}”(hŒ``struct cmbdata *data``”h]”jX)�”}”(hj6�h]”hŒstruct cmbdata *data”…”�”}”(hj8�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj4�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´MÀhj0�ubjn)�”}”(hhh]”hì)�”}”(hŒ-a pointer to a data block that will be filled”h]”hŒ-a pointer to a data block that will be filled”…”�”}”(hjO�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jK�h´MÀhjL�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj0�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jK�h´MÀhjôŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjØŽubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjq�h]”hŒReturn”…”�”}”(hjs�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´MÂhjØŽubhì)�”}”(hŒ3``0`` on success, a negative error value otherwise.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj‹�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‡�ubhŒ. on success, a negative error value otherwise.”…”�”}”(hj‡�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´MÂhjØŽubhì)�”}”(hŒ **Context**”h]”j)�”}”(hj¦�h]”hŒContext”…”�”}”(hj¨�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´MÄhjØŽubhì)�”}”(hŒany”h]”hŒany”…”�”}”(hj¼�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:100: ./drivers/s390/cio/cmf.c”h´MÄhjØŽubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjýƒh²hh³Nh´Nubeh}”(h]”Œ the-channel-measurement-facility”ah ]”h"]”Œ the channel-measurement facility”ah$]”h&]”uh1hµhjh²hh³hÊh´K[ubeh}”(h]”Œ the-ccw-bus”ah ]”h"]”Œ the ccw bus”ah$]”h&]”uh1hµhh·h²hh³hÊh´K0ubh¶)�”}”(hhh]”(h»)�”}”(hŒThe ccwgroup bus”h]”hŒThe ccwgroup bus”…”�”}”(hjå�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjâ�h²hh³hÊh´Khubhì)�”}”(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.”…”�”}”(hjó�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Kjhjâ�h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒccw group devices”h]”hŒccw group devices”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj�h²hh³hÊh´KqubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccwgroup_device (C struct)”Œc.ccwgroup_device”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒccwgroup_device”h]”jt)�”}”(hŒstruct ccwgroup_device”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj+�h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj'�h²hh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´KubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj'�h²hh³j8�h´Kubj�)�”}”(hŒccwgroup_device”h]”j£)�”}”(hj%�h]”hŒccwgroup_device”…”�”}”(hjK�h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjG�ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj'�h²hh³j8�h´Kubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj#�h²hh³j8�h´Kubah}”(h]”j�ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j8�h´Khj �h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒccw group device”h]”hŒccw group device”…”�”}”(hjm�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K hjj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj �h²hh³j8�h´Kubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjój…�jôj…�jõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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 needed”h]”(hì)�”}”(hŒ**Definition**::”h]”(j)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj‘�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj��ubhŒ:”…”�”}”(hj��h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K hj‰�ubj)�”}”(hŒÛstruct ccwgroup_device { enum { CCWGROUP_OFFLINE, CCWGROUP_ONLINE, } state; unsigned int count; struct device dev; struct work_struct ungroup_work; struct ccw_device *cdev[]; };”h]”hŒÛstruct ccwgroup_device { enum { CCWGROUP_OFFLINE, CCWGROUP_ONLINE, } state; unsigned int count; struct device dev; struct work_struct ungroup_work; struct ccw_device *cdev[]; };”…”�”}”hjª�sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´Khj‰�ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj»�h]”hŒMembers”…”�”}”(hj½�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´Khj‰�ubjG)�”}”(hhh]”(jL)�”}”(hŒ``state`` online/offline state ”h]”(jR)�”}”(hŒ ``state``”h]”jX)�”}”(hjÚ�h]”hŒstate”…”�”}”(hjÜ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjØ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K hjÔ�ubjn)�”}”(hhh]”hì)�”}”(hŒonline/offline state”h]”hŒonline/offline state”…”�”}”(hjó�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jï�h´K hjð�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÔ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jï�h´K hjÑ�ubjL)�”}”(hŒ+``count`` number of attached slave devices ”h]”(jR)�”}”(hŒ ``count``”h]”jX)�”}”(hj‘h]”hŒcount”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K hj ‘ubjn)�”}”(hhh]”hì)�”}”(hŒ number of attached slave devices”h]”hŒ number of attached slave devices”…”�”}”(hj,‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j(‘h´K hj)‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj ‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j(‘h´K hjÑ�ubjL)�”}”(hŒ"``dev`` embedded device structure ”h]”(jR)�”}”(hŒ``dev``”h]”jX)�”}”(hjL‘h]”hŒdev”…”�”}”(hjN‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjJ‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K hjF‘ubjn)�”}”(hhh]”hì)�”}”(hŒembedded device structure”h]”hŒembedded device structure”…”�”}”(hje‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³ja‘h´K hjb‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjF‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³ja‘h´K hjÑ�ubjL)�”}”(hŒ5``ungroup_work`` used to ungroup the ccwgroup device ”h]”(jR)�”}”(hŒ``ungroup_work``”h]”jX)�”}”(hj…‘h]”hŒ ungroup_work”…”�”}”(hj‡‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjƒ‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´Khj‘ubjn)�”}”(hhh]”hì)�”}”(hŒ#used to ungroup the ccwgroup device”h]”hŒ#used to ungroup the ccwgroup device”…”�”}”(hjž‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jš‘h´Khj›‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jš‘h´KhjÑ�ubjL)�”}”(hŒ>``cdev`` variable number of slave devices, allocated as needed”h]”(jR)�”}”(hŒ``cdev``”h]”jX)�”}”(hj¾‘h]”hŒcdev”…”�”}”(hjÀ‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¼‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K hj¸‘ubjn)�”}”(hhh]”hì)�”}”(hŒ5variable number of slave devices, allocated as needed”h]”hŒ5variable number of slave devices, allocated as needed”…”�”}”(hjבh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´KhjÔ‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¸‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÓ‘h´K hjÑ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj‰�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒccwgroup_driver (C struct)”Œc.ccwgroup_driver”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒccwgroup_driver”h]”jt)�”}”(hŒstruct ccwgroup_driver”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj’h²hh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´KubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&’h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj’h²hh³j%’h´Kubj�)�”}”(hŒccwgroup_driver”h]”j£)�”}”(hj’h]”hŒccwgroup_driver”…”�”}”(hj8’h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj4’ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj’h²hh³j%’h´Kubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj’h²hh³j%’h´Kubah}”(h]”j ’ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j%’h´Khj ’h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒdriver for ccw group devices”h]”hŒdriver for ccw group devices”…”�”}”(hjZ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K hjW’h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj ’h²hh³j%’h´Kubeh}”(h]”h ]”(jíŒstruct”eh"]”h$]”h&]”jòjíjójr’jôjr’jõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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”…”�”}”(hj~’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjz’ubhŒ:”…”�”}”(hjz’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K$hjv’ubj)�”}”(hXPstruct ccwgroup_driver { int (*setup) (struct ccwgroup_device *); void (*remove) (struct ccwgroup_device *); int (*set_online) (struct ccwgroup_device *); int (*set_offline) (struct ccwgroup_device *); void (*shutdown)(struct ccwgroup_device *); struct device_driver driver; struct ccw_driver *ccw_driver; };”h]”hXPstruct ccwgroup_driver { int (*setup) (struct ccwgroup_device *); void (*remove) (struct ccwgroup_device *); int (*set_online) (struct ccwgroup_device *); int (*set_offline) (struct ccwgroup_device *); void (*shutdown)(struct ccwgroup_device *); struct device_driver driver; struct ccw_driver *ccw_driver; };”…”�”}”hj—’sbah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K&hjv’ubhì)�”}”(hŒ **Members**”h]”j)�”}”(hj¨’h]”hŒMembers”…”�”}”(hjª’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K0hjv’ubjG)�”}”(hhh]”(jL)�”}”(hŒE``setup`` function called during device creation to setup the device ”h]”(jR)�”}”(hŒ ``setup``”h]”jX)�”}”(hjÇ’h]”hŒsetup”…”�”}”(hjÉ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÅ’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K"hjÁ’ubjn)�”}”(hhh]”hì)�”}”(hŒ:function called during device creation to setup the device”h]”hŒ:function called during device creation to setup the device”…”�”•}”(hjà’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÜ’h´K"hjÝ’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÁ’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÜ’h´K"hj¾’ubjL)�”}”(hŒ%``remove`` function called on remove ”h]”(jR)�”}”(hŒ ``remove``”h]”jX)�”}”(hj“h]”hŒremove”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjþ’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K#hjú’ubjn)�”}”(hhh]”hì)�”}”(hŒfunction called on remove”h]”hŒfunction called on remove”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j“h´K#hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjú’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j“h´K#hj¾’ubjL)�”}”(hŒ9``set_online`` function called when device is set online ”h]”(jR)�”}”(hŒ``set_online``”h]”jX)�”}”(hj9“h]”hŒ set_online”…”�”}”(hj;“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj7“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K$hj3“ubjn)�”}”(hhh]”hì)�”}”(hŒ)function called when device is set online”h]”hŒ)function called when device is set online”…”�”}”(hjR“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jN“h´K$hjO“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj3“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jN“h´K$hj¾’ubjL)�”}”(hŒ;``set_offline`` function called when device is set offline ”h]”(jR)�”}”(hŒ``set_offline``”h]”jX)�”}”(hjr“h]”hŒ set_offline”…”�”}”(hjt“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjp“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K%hjl“ubjn)�”}”(hhh]”hì)�”}”(hŒ*function called when device is set offline”h]”hŒ*function called when device is set offline”…”�”}”(hj‹“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j‡“h´K%hjˆ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjl“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j‡“h´K%hj¾’ubjL)�”}”(hŒ6``shutdown`` function called when device is shut down ”h]”(jR)�”}”(hŒ ``shutdown``”h]”jX)�”}”(hj«“h]”hŒshutdown”…”�”}”(hj­“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj©“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K&hj¥“ubjn)�”}”(hhh]”hì)�”}”(hŒ(function called when device is shut down”h]”hŒ(function called when device is shut down”…”�”}”(hjÄ“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÀ“h´K&hjÁ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj¥“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÀ“h´K&hj¾’ubjL)�”}”(hŒ%``driver`` embedded driver structure ”h]”(jR)�”}”(hŒ ``driver``”h]”jX)�”}”(hjä“h]”hŒdriver”…”�”}”(hjæ“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjâ“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K'hjÞ“ubjn)�”}”(hhh]”hì)�”}”(hŒembedded driver structure”h]”hŒembedded driver structure”…”�”}”(hjý“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jù“h´K'hjú“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÞ“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jù“h´K'hj¾’ubjL)�”}”(hŒ.``ccw_driver`` supported ccw_driver (optional)”h]”(jR)�”}”(hŒ``ccw_driver``”h]”jX)�”}”(hj”h]”hŒ ccw_driver”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K'hj”ubjn)�”}”(hhh]”hì)�”}”(hŒsupported ccw_driver (optional)”h]”hŒsupported ccw_driver (optional)”…”�”}”(hj6”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œi/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:115: ./arch/s390/include/asm/ccwgroup.h”h´K(hj3”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j2”h´K'hj¾’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjv’ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ ccwgroup_set_online (C function)”Œc.ccwgroup_set_online”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ6int ccwgroup_set_online (struct ccwgroup_device *gdev)”h]”jt)�”}”(hŒ5int ccwgroup_set_online(struct ccwgroup_device *gdev)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjw”h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjs”h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K3ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†”h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjs”h²hh³j…”h´K3ubj�)�”}”(hŒccwgroup_set_online”h]”j£)�”}”(hŒccwgroup_set_online”h]”hŒccwgroup_set_online”…”�”}”(hj˜”h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj””ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjs”h²hh³j…”h´K3ubjl)�”}”(hŒ(struct ccwgroup_device *gdev)”h]”jr)�”}”(hŒstruct ccwgroup_device *gdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj´”h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj°”ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ”h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj°”ubh)�”}”(hhh]”j£)�”}”(hŒccwgroup_device”h]”hŒccwgroup_device”…”�”}”(hjÒ”h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÏ”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jÔ”Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jš”sbŒc.ccwgroup_set_online”†”asbuh1hhj°”ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò”h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj°”ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj°”ubj£)�”}”(hŒgdev”h]”hŒgdev”…”�”}”(hj •h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj°”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj¬”ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjs”h²hh³j…”h´K3ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjo”h²hh³j…”h´K3ubah}”(h]”jj”ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j…”h´K3hjl”h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒenable a ccwgroup device”h]”hŒenable a ccwgroup device”…”�”}”(hj7•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K3hj4•h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjl”h²hh³j…”h´K3ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójO•jôjO•jõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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)�”}”(hjY•h]”hŒ Parameters”…”�”}”(hj[•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjW•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K7hjS•ubjG)�”}”(hhh]”jL)�”}”(hŒ8``struct ccwgroup_device *gdev`` target ccwgroup device ”h]”(jR)�”}”(hŒ ``struct ccwgroup_device *gdev``”h]”jX)�”}”(hjx•h]”hŒstruct ccwgroup_device *gdev”…”�”}”(hjz•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjv•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K4hjr•ubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccwgroup device”h]”hŒtarget ccwgroup device”…”�”}”(hj‘•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�•h´K4hjŽ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjr•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j�•h´K4hjo•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjS•ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj³•h]”hŒ Description”…”�”}”(hjµ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj±•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K6hjS•ubhì)�”}”(hŒHThis function attempts to put the ccwgroup device into the online state.”h]”hŒHThis function attempts to put the ccwgroup device into the online state.”…”�”}”(hjÉ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K5hjS•ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjÚ•h]”hŒReturn”…”�”}”(hjÜ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjØ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K7hjS•ubhì)�”}”(hŒ7``0`` on success and a negative error value on failure.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjô•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjð•ubhŒ2 on success and a negative error value on failure.”…”�”}”(hjð•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´K7hjS•ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ!ccwgroup_set_offline (C function)”Œc.ccwgroup_set_offline”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒGint ccwgroup_set_offline (struct ccwgroup_device *gdev, bool call_gdrv)”h]”jt)�”}”(hŒFint ccwgroup_set_offline(struct ccwgroup_device *gdev, bool call_gdrv)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj-–h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj)–h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KPubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<–h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj)–h²hh³j;–h´KPubj�)�”}”(hŒccwgroup_set_offline”h]”j£)�”}”(hŒccwgroup_set_offline”h]”hŒccwgroup_set_offline”…”�”}”(hjN–h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjJ–ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj)–h²hh³j;–h´KPubjl)�”}”(hŒ.(struct ccwgroup_device *gdev, bool call_gdrv)”h]”(jr)�”}”(hŒstruct ccwgroup_device *gdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjj–h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjf–ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw–h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjf–ubh)�”}”(hhh]”j£)�”}”(hŒccwgroup_device”h]”hŒccwgroup_device”…”�”}”(hjˆ–h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj…–ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jŠ–Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jP–sbŒc.ccwgroup_set_offline”†”asbuh1hhjf–ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨–h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjf–ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj¶–h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjf–ubj£)�”}”(hŒgdev”h]”hŒgdev”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjf–ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjb–ubjr)�”}”(hŒbool call_gdrv”h]”(j4)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjÜ–h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjØ–ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjê–h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjØ–ubj£)�”}”(hŒ call_gdrv”h]”hŒ call_gdrv”…”�”}”(hjø–h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjØ–ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjb–ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj)–h²hh³j;–h´KPubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj%–h²hh³j;–h´KPubah}”(h]”j –ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j;–h´KPhj"–h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒdisable a ccwgroup device”h]”hŒdisable a ccwgroup device”…”�”}”(hj"—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KPhj—h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj"–h²hh³j;–h´KPubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój:—jôj:—jõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(hX.**Parameters** ``struct ccwgroup_device *gdev`` target ccwgroup device ``bool call_gdrv`` Call the registered gdrv set_offline function **Description** This function attempts to put the ccwgroup device into the offline state. **Return** ``0`` on success and a negative error value on failure.”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjD—h]”hŒ Parameters”…”�”}”(hjF—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjB—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KThj>—ubjG)�”}”(hhh]”(jL)�”}”(hŒ8``struct ccwgroup_device *gdev`` target ccwgroup device ”h]”(jR)�”}”(hŒ ``struct ccwgroup_device *gdev``”h]”jX)�”}”(hjc—h]”hŒstruct ccwgroup_device *gdev”…”�”}”(hje—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhja—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KQhj]—ubjn)�”}”(hhh]”hì)�”}”(hŒtarget ccwgroup device”h]”hŒtarget ccwgroup device”…”�”}”(hj|—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jx—h´KQhjy—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj]—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jx—h´KQhjZ—ubjL)�”}”(hŒA``bool call_gdrv`` Call the registered gdrv set_offline function ”h]”(jR)�”}”(hŒ``bool call_gdrv``”h]”jX)�”}”(hjœ—h]”hŒbool call_gdrv”…”�”}”(hjž—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjš—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KRhj–—ubjn)�”}”(hhh]”hì)�”}”(hŒ-Call the registered gdrv set_offline function”h]”hŒ-Call the registered gdrv set_offline function”…”�”}”(hjµ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j±—h´KRhj²—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj–—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j±—h´KRhjZ—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj>—ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj×—h]”hŒ Description”…”�”}”(hjÙ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕ—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KThj>—ubhì)�”}”(hŒIThis function attempts to put the ccwgroup device into the offline state.”h]”hŒIThis function attempts to put the ccwgroup device into the offline state.”…”�”}”(hjí—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KShj>—ubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjþ—h]”hŒReturn”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjü—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KUhj>—ubhì)�”}”(hŒ7``0`` on success and a negative error value on failure.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj˜ubhŒ2 on success and a negative error value on failure.”…”�”}”(hj˜h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´KUhj>—ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ ccwgroup_create_dev (C function)”Œc.ccwgroup_create_dev”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒoint ccwgroup_create_dev (struct device *parent, struct ccwgroup_driver *gdrv, int num_devices, const char *buf)”h]”jt)�”}”(hŒnint ccwgroup_create_dev(struct device *parent, struct ccwgroup_driver *gdrv, int num_devices, const char *buf)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjQ˜h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjM˜h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M.ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`˜h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjM˜h²hh³j_˜h´M.ubj�)�”}”(hŒccwgroup_create_dev”h]”j£)�”}”(hŒccwgroup_create_dev”h]”hŒccwgroup_create_dev”…”�”}”(hjr˜h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjn˜ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjM˜h²hh³j_˜h´M.ubjl)�”}”(hŒW(struct device *parent, struct ccwgroup_driver *gdrv, int num_devices, const char *buf)”h]”(jr)�”}”(hŒstruct device *parent”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjŽ˜h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjŠ˜ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›˜h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŠ˜ubh)�”}”(hhh]”j£)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj¬˜h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj©˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j®˜Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jt˜sbŒc.ccwgroup_create_dev”†”asbuh1hhjŠ˜ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj̘h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjŠ˜ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjÚ˜h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjŠ˜ubj£)�”}”(hŒparent”h]”hŒparent”…”�”}”(hjç˜h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjŠ˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj†˜ubjr)�”}”(hŒstruct ccwgroup_driver *gdrv”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjü˜ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ™h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjü˜ubh)�”}”(hhh]”j£)�”}”(hŒccwgroup_driver”h]”hŒccwgroup_driver”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j ™Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jȘŒc.ccwgroup_create_dev”†”asbuh1hhjü˜ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<™h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjü˜ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjJ™h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjü˜ubj£)�”}”(hŒgdrv”h]”hŒgdrv”…”�”}”(hjW™h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjü˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj†˜ubjr)�”}”(hŒint num_devices”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjp™h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjl™ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~™h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjl™ubj£)�”}”(hŒ num_devices”h]”hŒ num_devices”…”�”}”(hjŒ™h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjl™ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj†˜ubjr)�”}”(hŒconst char *buf”h]”(jz)�”}”(hjÖ,h]”hŒconst”…”�”}”(hj¥™h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj¡™ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²™h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¡™ubj4)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjÀ™h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj¡™ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjΙh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¡™ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjÜ™h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj¡™ubj£)�”}”(hŒbuf”h]”hŒbuf”…”�”}”(hjé™h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¡™ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj†˜ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjM˜h²hh³j_˜h´M.ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjI˜h²hh³j_˜h´M.ubah}”(h]”jD˜ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j_˜h´M.hjF˜h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ&create and register a ccw group device”h]”hŒ&create and register a ccw group device”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M.hjšh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjF˜h²hh³j_˜h´M.ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój+šjôj+šjõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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-atomic”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj5šh]”hŒ Parameters”…”�”}”(hj7šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3šubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M2hj/šubjG)�”}”(hhh]”(jL)�”}”(hŒ;``struct device *parent`` parent device for the new device ”h]”(jR)�”}”(hŒ``struct device *parent``”h]”jX)�”}”(hjTšh]”hŒstruct device *parent”…”�”}”(hjVšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjRšubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M/hjNšubjn)�”}”(hhh]”hì)�”}”(hŒ parent device for the new device”h]”hŒ parent device for the new device”…”�”}”(hjmšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jišh´M/hjjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjNšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jišh´M/hjKšubjL)�”}”(hŒA``struct ccwgroup_driver *gdrv`` driver for the new group device ”h]”(jR)�”}”(hŒ ``struct ccwgroup_driver *gdrv``”h]”jX)�”}”(hj�šh]”hŒstruct ccwgroup_driver *gdrv”…”�”}”(hj�šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj‹šubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M0hj‡šubjn)�”}”(hhh]”hì)�”}”(hŒdriver for the new group device”h]”hŒdriver for the new group device”…”�”}”(hj¦šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¢šh´M0hj£šubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj‡šubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j¢šh´M0hjKšubjL)�”}”(hŒ,``int num_devices`` number of slave devices ”h]”(jR)�”}”(hŒ``int num_devices``”h]”jX)�”}”(hjÆšh]”hŒint num_devices”…”�”}”(hjÈšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjÄšubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M1hjÀšubjn)�”}”(hhh]”hì)�”}”(hŒnumber of slave devices”h]”hŒnumber of slave devices”…”�”}”(hjßšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÛšh´M1hjÜšubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjÀšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÛšh´M1hjKšubjL)�”}”(hŒO``const char *buf`` buffer containing comma separated bus ids of slave devices ”h]”(jR)�”}”(hŒ``const char *buf``”h]”jX)�”}”(hjÿšh]”hŒconst char *buf”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjýšubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M2hjùšubjn)�”}”(hhh]”hì)�”}”(hŒ:buffer containing comma separated bus ids of slave devices”h]”hŒ:buffer containing comma separated bus ids of slave devices”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j›h´M2hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjùšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j›h´M2hjKšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj/šubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj:›h]”hŒ Description”…”�”}”(hj<›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj8›ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M4hj/šubhì)�”}”(hŒŠ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**.”h]”(hŒ9Create and register a new ccw group device as a child of ”…”�”}”(hjP›h²hh³Nh´Nubj)�”}”(hŒ **parent**”h]”hŒparent”…”�”}”(hjX›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjP›ubhŒ?. Slave devices are obtained from the list of bus ids given in ”…”�”}”(hjP›h²hh³Nh´Nubj)�”}”(hŒ**buf**”h]”hŒbuf”…”�”}”(hjj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjP›ubhŒ.”…”�”}”(hjP›h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M3hj/šubhì)�”}”(hŒ **Return**”h]”j)�”}”(hj…›h]”hŒReturn”…”�”}”(hj‡›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒ›ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M6hj/šubhì)�”}”(hŒ.``0`` on success and an error code on failure.”h]”(jX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjŸ›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj››ubhŒ) on success and an error code on failure.”…”�”}”(hj››h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M6hj/šubhì)�”}”(hŒ **Context**”h]”j)�”}”(hjº›h]”hŒContext”…”�”}”(hj¼›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¸›ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M8hj/šubhì)�”}”(hŒ non-atomic”h]”hŒ non-atomic”…”�”}”(hjЛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M8hj/šubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ%ccwgroup_driver_register (C function)”Œc.ccwgroup_driver_register”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ>int ccwgroup_driver_register (struct ccwgroup_driver *cdriver)”h]”jt)�”}”(hŒ=int ccwgroup_driver_register(struct ccwgroup_driver *cdriver)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjÿ›h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjû›h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MäubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjû›h²hh³j œh´Mäubj�)�”}”(hŒccwgroup_driver_register”h]”j£)�”}”(hŒccwgroup_driver_register”h]”hŒccwgroup_driver_register”…”�”}”(hj œh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjœubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjû›h²hh³j œh´Mäubjl)�”}”(hŒ!(struct ccwgroup_driver *cdriver)”h]”jr)�”}”(hŒstruct ccwgroup_driver *cdriver”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj<œh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj8œubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIœh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj8œubh)�”}”(hhh]”j£)�”}”(hŒccwgroup_driver”h]”hŒccwgroup_driver”…”�”}”(hjZœh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjWœubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j\œŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j"œsbŒc.ccwgroup_driver_register”†”asbuh1hhj8œubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzœh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj8œubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjˆœh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj8œubj£)�”}”(hŒcdriver”h]”hŒcdriver”…”�”}”(hj•œh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj8œubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj4œubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjû›h²hh³j œh´Mäubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj÷›h²hh³j œh´Mäubah}”(h]”jò›ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j œh´Mähjô›h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒregister a ccw group driver”h]”hŒregister a ccw group driver”…”�”}”(hj¿œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mähj¼œh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjô›h²hh³j œh´Mäubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójלjôjלjõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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)�”}”(hjáœh]”hŒ Parameters”…”�”}”(hjãœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßœubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MèhjÛœubjG)�”}”(hhh]”jL)�”}”(hŒ<``struct ccwgroup_driver *cdriver`` driver to be registered ”h]”(jR)�”}”(hŒ#``struct ccwgroup_driver *cdriver``”h]”jX)�”}”(hj�h]”hŒstruct ccwgroup_driver *cdriver”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjþœubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Måhjúœubjn)�”}”(hhh]”hì)�”}”(hŒdriver to be registered”h]”hŒdriver to be registered”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�h´Måhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjúœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j�h´Måhj÷œubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÛœubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj;�h]”hŒ Description”…”�”}”(hj=�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MçhjÛœubhì)�”}”(hŒ;This function is mainly a wrapper around driver_register().”h]”hŒ;This function is mainly a wrapper around driver_register().”…”�”}”(hjQ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MæhjÛœubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ'ccwgroup_driver_unregister (C function)”Œc.ccwgroup_driver_unregister”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒAvoid ccwgroup_driver_unregister (struct ccwgroup_driver *cdriver)”h]”jt)�”}”(hŒ@void ccwgroup_driver_unregister(struct ccwgroup_driver *cdriver)”h]”(j4)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj€�h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj|�h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MóubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj��h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj|�h²hh³jŽ�h´Móubj�)�”}”(hŒccwgroup_driver_unregister”h]”j£)�”}”(hŒccwgroup_driver_unregister”h]”hŒccwgroup_driver_unregister”…”�”}”(hj¡�h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj��ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj|�h²hh³jŽ�h´Móubjl)�”}”(hŒ!(struct ccwgroup_driver *cdriver)”h]”jr)�”}”(hŒstruct ccwgroup_driver *cdriver”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj½�h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj¹�ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¹�ubh)�”}”(hhh]”j£)�”}”(hŒccwgroup_driver”h]”hŒccwgroup_driver”…”�”}”(hjÛ�h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjØ�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jÝ�Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j£�sbŒc.ccwgroup_driver_unregister”†”asbuh1hhj¹�ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû�h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¹�ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj žh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj¹�ubj£)�”}”(hŒcdriver”h]”hŒcdriver”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¹�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjµ�ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj|�h²hh³jŽ�h´Móubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjx�h²hh³jŽ�h´Móubah}”(h]”js�ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jŽ�h´Móhju�h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒderegister a ccw group driver”h]”hŒderegister a ccw group driver”…”�”}”(hj@žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Móhj=žh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhju�h²hh³jŽ�h´Móubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójXžjôjXžjõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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)�”}”(hjbžh]”hŒ Parameters”…”�”}”(hjdžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj`žubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´M÷hj\žubjG)�”}”(hhh]”jL)�”}”(hŒ>``struct ccwgroup_driver *cdriver`` driver to be deregistered ”h]”(jR)�”}”(hŒ#``struct ccwgroup_driver *cdriver``”h]”jX)�”}”(hj�žh]”hŒstruct ccwgroup_driver *cdriver”…”�”}”(hjƒžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjžubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Môhj{žubjn)�”}”(hhh]”hì)�”}”(hŒdriver to be deregistered”h]”hŒdriver to be deregistered”…”�”}”(hjšžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j–žh´Môhj—žubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj{žubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j–žh´Môhjxžubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj\žubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj¼žh]”hŒ Description”…”�”}”(hj¾žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjºžubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Möhj\žubhì)�”}”(hŒ=This function is mainly a wrapper around driver_unregister().”h]”hŒ=This function is mainly a wrapper around driver_unregister().”…”�”}”(hjÒžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mõhj\žubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ"ccwgroup_probe_ccwdev (C function)”Œc.ccwgroup_probe_ccwdev”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ3int ccwgroup_probe_ccwdev (struct ccw_device *cdev)”h]”jt)�”}”(hŒ2int ccwgroup_probe_ccwdev(struct ccw_device *cdev)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjýžh²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MÿubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjýžh²hh³jŸh´Mÿubj�)�”}”(hŒccwgroup_probe_ccwdev”h]”j£)�”}”(hŒccwgroup_probe_ccwdev”h]”hŒccwgroup_probe_ccwdev”…”�”}”(hj"Ÿh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjŸubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjýžh²hh³jŸh´Mÿubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj>Ÿh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj:ŸubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKŸh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj:Ÿubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj\Ÿh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjYŸubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j^ŸŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j$ŸsbŒc.ccwgroup_probe_ccwdev”†”asbuh1hhj:ŸubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|Ÿh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj:ŸubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hjŠŸh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj:Ÿubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hj—Ÿh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj:Ÿubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj6Ÿubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjýžh²hh³jŸh´Mÿubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjùžh²hh³jŸh´Mÿubah}”(h]”jôžah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jŸh´Mÿhjöžh²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ probe function for slave devices”h]”hŒ probe function for slave devices”…”�”}”(hjÁŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mÿhj¾Ÿh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjöžh²hh³jŸh´Mÿubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójÙŸjôjÙŸjõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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)�”}”(hjãŸh]”hŒ Parameters”…”�”}”(hjåŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjáŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MhjÝŸubjG)�”}”(hhh]”jL)�”}”(hŒ4``struct ccw_device *cdev`` ccw device to be probed ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj h]”hŒstruct ccw_device *cdev”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MhjüŸubjn)�”}”(hhh]”hì)�”}”(hŒccw device to be probed”h]”hŒccw device to be probed”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´Mhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjüŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j h´MhjùŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjÝŸubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj= h]”hŒ Description”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj; ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MhjÝŸ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.”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MhjÝŸubhì)�”}”(hŒ **Return**”h]”j)�”}”(hjd h]”hŒReturn”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MhjÝŸubhì)�”}”(hŒ always ``0``”h]”(hŒalways ”…”�”}”(hjz h²hh³Nh´NubjX)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjz ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MhjÝŸubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ#ccwgroup_remove_ccwdev (C function)”Œc.ccwgroup_remove_ccwdev”hNt”auh1jWhj�h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ5void ccwgroup_remove_ccwdev (struct ccw_device *cdev)”h]”jt)�”}”(hŒ4void ccwgroup_remove_ccwdev(struct ccw_device *cdev)”h]”(j4)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj³ h²hh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´MubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj³ h²hh³jÅ h´Mubj�)�”}”(hŒccwgroup_remove_ccwdev”h]”j£)�”}”(hŒccwgroup_remove_ccwdev”h]”hŒccwgroup_remove_ccwdev”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÔ ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj³ h²hh³jÅ h´Mubjl)�”}”(hŒ(struct ccw_device *cdev)”h]”jr)�”}”(hŒstruct ccw_device *cdev”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjô h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjð ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjð ubh)�”}”(hhh]”j£)�”}”(hŒ ccw_device”h]”hŒ ccw_device”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j¡Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jÚ sbŒc.ccwgroup_remove_ccwdev”†”asbuh1hhjð ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2¡h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjð ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj@¡h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjð ubj£)�”}”(hŒcdev”h]”hŒcdev”…”�”}”(hjM¡h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjð ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjì ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj³ h²hh³jÅ h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj¯ h²hh³jÅ h´Mubah}”(h]”jª ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³jÅ h´Mhj¬ h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ!remove function for slave devices”h]”hŒ!remove function for slave devices”…”�”}”(hjw¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mhjt¡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj¬ h²hh³jÅ h´Mubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój�¡jôj�¡jõ‰jö‰j÷‰uh1jhh²hhj�h³Nh´Nubjù)�”}”(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”…”�”}”(hj›¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj—¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mhj“¡ubjG)�”}”(hhh]”jL)�”}”(hŒ5``struct ccw_device *cdev`` ccw device to be removed ”h]”(jR)�”}”(hŒ``struct ccw_device *cdev``”h]”jX)�”}”(hj¸¡h]”hŒstruct ccw_device *cdev”…”�”}”(hjº¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj¶¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mhj²¡ubjn)�”}”(hhh]”hì)�”}”(hŒccw device to be removed”h]”hŒccw device to be removed”…”�”}”(hjÑ¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÍ¡h´MhjΡubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj²¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÍ¡h´Mhj¯¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhj“¡ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjó¡h]”hŒ Description”…”�”}”(hjõ¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjñ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mhj“¡ubhì)�”}”(hŒ«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Œ«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.”…”�”}”(hj ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:118: ./drivers/s390/cio/ccwgroup.c”h´Mhj“¡ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhj�h²hh³Nh´Nubeh}”(h]”Œccw-group-devices”ah ]”h"]”Œccw group devices”ah$]”h&]”uh1hµhjâ�h²hh³hÊh´Kqubeh}”(h]”Œthe-ccwgroup-bus”ah ]”h"]”Œthe ccwgroup bus”ah$]”h&]”uh1hµhh·h²hh³hÊh´Khubh¶)�”}”(hhh]”(h»)�”}”(hŒGeneric interfaces”h]”hŒGeneric interfaces”…”�”}”(hj2¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj/¢h²hh³hÊh´Kzubhì)�”}”(hŒ“The following section contains interfaces in use not only by drivers dealing with ccw devices, but drivers for various other s390 hardware as well.”h]”hŒ“The following section contains interfaces in use not only by drivers dealing with ccw devices, but drivers for various other s390 hardware as well.”…”�”}”(hj@¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K|hj/¢h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒAdapter interrupts”h]”hŒAdapter interrupts”…”�”}”(hjQ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjN¢h²hh³hÊh´K�ubhì)�”}”(hŒiThe common I/O layer provides helper functions for dealing with adapter interrupts and interrupt vectors.”h]”hŒiThe common I/O layer provides helper functions for dealing with adapter interrupts and interrupt vectors.”…”�”}”(hj_¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´KƒhjN¢h²hubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ'register_adapter_interrupt (C function)”Œc.register_adapter_interrupt”hNt”auh1jWhjN¢h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ9int register_adapter_interrupt (struct airq_struct *airq)”h]”jt)�”}”(hŒ8int register_adapter_interrupt(struct airq_struct *airq)”h]”(j4)�”}”(hŒint”h]”hŒint”…”�”}”(hj†¢h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj‚¢h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K$ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•¢h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj‚¢h²hh³j”¢h´K$ubj�)�”}”(hŒregister_adapter_interrupt”h]”j£)�”}”(hŒregister_adapter_interrupt”h]”hŒregister_adapter_interrupt”…”�”}”(hj§¢h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj£¢ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj‚¢h²hh³j”¢h´K$ubjl)�”}”(hŒ(struct airq_struct *airq)”h]”jr)�”}”(hŒstruct airq_struct *airq”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhj¿¢ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjТh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¿¢ubh)�”}”(hhh]”j£)�”}”(hŒ airq_struct”h]”hŒ airq_struct”…”�”}”(hjá¢h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÞ¢ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j㢌modname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«j©¢sbŒc.register_adapter_interrupt”†”asbuh1hhj¿¢ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¿¢ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhj¿¢ubj£)�”}”(hŒairq”h]”hŒairq”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¿¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj»¢ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj‚¢h²hh³j”¢h´K$ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj~¢h²hh³j”¢h´K$ubah}”(h]”jy¢ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j”¢h´K$hj{¢h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ"register adapter interrupt handler”h]”hŒ"register adapter interrupt handler”…”�”}”(hjF£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K$hjC£h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj{¢h²hh³j”¢h´K$ubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój^£jôj^£jõ‰jö‰j÷‰uh1jhh²hhjN¢h³Nh´Nubjù)�”}”(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]”hŒ Parameters”…”�”}”(hjj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjf£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K(hjb£ubjG)�”}”(hhh]”jL)�”}”(hŒE``struct airq_struct *airq`` pointer to adapter interrupt descriptor ”h]”(jR)�”}”(hŒ``struct airq_struct *airq``”h]”jX)�”}”(hj‡£h]”hŒstruct airq_struct *airq”…”�”}”(hj‰£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj…£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K%hj�£ubjn)�”}”(hhh]”hì)�”}”(hŒ'pointer to adapter interrupt descriptor”h]”hŒ'pointer to adapter interrupt descriptor”…”�”}”(hj £h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jœ£h´K%hj�£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj�£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jœ£h´K%hj~£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjb£ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj£h]”hŒ Description”…”�”}”(hjÄ£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀ£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K'hjb£ubhì)�”}”(hŒ!Returns 0 on success, or -EINVAL.”h]”hŒ!Returns 0 on success, or -EINVAL.”…”�”}”(hjØ£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K&hjb£ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjN¢h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒ)unregister_adapter_interrupt (C function)”Œc.unregister_adapter_interrupt”hNt”auh1jWhjN¢h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ``unsigned long bits`` number of bits in the interrupt vector ”h]”(jR)�”}”(hŒ``unsigned long bits``”h]”jX)�”}”(hj.§h]”hŒunsigned long bits”…”�”}”(hj0§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj,§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Kyhj(§ubjn)�”}”(hhh]”hì)�”}”(hŒ&number of bits in the interrupt vector”h]”hŒ&number of bits in the interrupt vector”…”�”}”(hjG§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jC§h´KyhjD§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj(§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jC§h´Kyhj%§ubjL)�”}”(hŒ)``unsigned long flags`` allocation flags ”h]”(jR)�”}”(hŒ``unsigned long flags``”h]”jX)�”}”(hjg§h]”hŒunsigned long flags”…”�”}”(hji§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhje§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Kzhja§ubjn)�”}”(hhh]”hì)�”}”(hŒallocation flags”h]”hŒallocation flags”…”�”}”(hj€§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j|§h´Kzhj}§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhja§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j|§h´Kzhj%§ubjL)�”}”(hŒJ``unsigned long *vec`` pointer to pinned guest memory if AIRQ_IV_GUESTVEC ”h]”(jR)�”}”(hŒ``unsigned long *vec``”h]”jX)�”}”(hj §h]”hŒunsigned long *vec”…”�”}”(hj¢§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjž§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K{hjš§ubjn)�”}”(hhh]”hì)�”}”(hŒ2pointer to pinned guest memory if AIRQ_IV_GUESTVEC”h]”hŒ2pointer to pinned guest memory if AIRQ_IV_GUESTVEC”…”�”}”(hj¹§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jµ§h´K{hj¶§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjš§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jµ§h´K{hj%§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj §ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hjÛ§h]”hŒ Description”…”�”}”(hjݧh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙ§ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K}hj §ubhì)�”}”(hŒ2Returns a pointer to an interrupt vector structure”h]”hŒ2Returns a pointer to an interrupt vector structure”…”�”}”(hjñ§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´K|hj §ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjN¢h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒairq_iv_release (C function)”Œc.airq_iv_release”hNt”auh1jWhjN¢h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒ)void airq_iv_release (struct airq_iv *iv)”h]”jt)�”}”(hŒ(void airq_iv_release(struct airq_iv *iv)”h]”(j4)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj ¨h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj¨h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÇubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/¨h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj¨h²hh³j.¨h´KÇubj�)�”}”(hŒairq_iv_release”h]”j£)�”}”(hŒairq_iv_release”h]”hŒairq_iv_release”…”�”}”(hjA¨h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj=¨ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj¨h²hh³j.¨h´KÇubjl)�”}”(hŒ(struct airq_iv *iv)”h]”jr)�”}”(hŒstruct airq_iv *iv”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hj]¨h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjY¨ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj¨h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjY¨ubh)�”}”(hhh]”j£)�”}”(hŒairq_iv”h]”hŒairq_iv”…”�”}”(hj{¨h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjx¨ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”j}¨Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jC¨sbŒc.airq_iv_release”†”asbuh1hhjY¨ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›¨h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjY¨ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj©¨h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjY¨ubj£)�”}”(hŒiv”h]”hŒiv”…”�”}”(hj¶¨h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjY¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjU¨ubah}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj¨h²hh³j.¨h´KÇubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj¨h²hh³j.¨h´KÇubah}”(h]”j¨ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j.¨h´KÇhj¨h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒrelease an interrupt vector”h]”hŒrelease an interrupt vector”…”�”•vd}”(hjà¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÇhjݨh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj¨h²hh³j.¨h´KÇubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójø¨jôjø¨jõ‰jö‰j÷‰uh1jhh²hhjN¢h³Nh´Nubjù)�”}”(hŒN**Parameters** ``struct airq_iv *iv`` pointer to interrupt vector structure”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj©h]”hŒ Parameters”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KËhjü¨ubjG)�”}”(hhh]”jL)�”}”(hŒ<``struct airq_iv *iv`` pointer to interrupt vector structure”h]”(jR)�”}”(hŒ``struct airq_iv *iv``”h]”jX)�”}”(hj!©h]”hŒstruct airq_iv *iv”…”�”}”(hj#©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÍhj©ubjn)�”}”(hhh]”hì)�”}”(hŒ%pointer to interrupt vector structure”h]”hŒ%pointer to interrupt vector structure”…”�”}”(hj:©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÈhj7©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j6©h´KÍhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jFhjü¨ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjN¢h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒairq_iv_alloc (C function)”Œc.airq_iv_alloc”hNt”auh1jWhjN¢h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒCunsigned long airq_iv_alloc (struct airq_iv *iv, unsigned long num)”h]”jt)�”}”(hŒBunsigned long airq_iv_alloc(struct airq_iv *iv, unsigned long num)”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj{©h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjw©h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÙubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠ©h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjw©h²hh³j‰©h´KÙubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj˜©h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjw©h²hh³j‰©h´KÙubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦©h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjw©h²hh³j‰©h´KÙubj�)�”}”(hŒ airq_iv_alloc”h]”j£)�”}”(hŒ airq_iv_alloc”h]”hŒ airq_iv_alloc”…”�”}”(hj¸©h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj´©ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjw©h²hh³j‰©h´KÙubjl)�”}”(hŒ'(struct airq_iv *iv, unsigned long num)”h]”(jr)�”}”(hŒstruct airq_iv *iv”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjÔ©h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjЩubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjá©h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjЩubh)�”}”(hhh]”j£)�”}”(hŒairq_iv”h]”hŒairq_iv”…”�”}”(hjò©h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjï©ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jô©Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jº©sbŒc.airq_iv_alloc”†”asbuh1hhjЩubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjЩubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj ªh²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjЩubj£)�”}”(hŒiv”h]”hŒiv”…”�”}”(hj-ªh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjЩubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÌ©ubjr)�”}”(hŒunsigned long num”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjFªh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjBªubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTªh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjBªubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjbªh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjBªubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjpªh²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjBªubj£)�”}”(hŒnum”h]”hŒnum”…”�”}”(hj~ªh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjBªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjÌ©ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjw©h²hh³j‰©h´KÙubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjs©h²hh³j‰©h´KÙubah}”(h]”jn©ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j‰©h´KÙhjp©h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ*allocate irq bits from an interrupt vector”h]”hŒ*allocate irq bits from an interrupt vector”…”�”}”(hj¨ªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÙhj¥ªh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhjp©h²hh³j‰©h´KÙubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjójÀªjôjÀªjõ‰jö‰j÷‰uh1jhh²hhjN¢h³Nh´Nubjù)�”}”(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 specified”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hjʪh]”hŒ Parameters”…”�”}”(hj̪h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjȪubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÝhjĪubjG)�”}”(hhh]”(jL)�”}”(hŒ@``struct airq_iv *iv`` pointer to an interrupt vector structure ”h]”(jR)�”}”(hŒ``struct airq_iv *iv``”h]”jX)�”}”(hjéªh]”hŒstruct airq_iv *iv”…”�”}”(hjëªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjçªubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÚhjãªubjn)�”}”(hhh]”hì)�”}”(hŒ(pointer to an interrupt vector structure”h]”hŒ(pointer to an interrupt vector structure”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jþªh´KÚhjÿªubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjãªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jþªh´KÚhjàªubjL)�”}”(hŒA``unsigned long num`` number of consecutive irq bits to allocate ”h]”(jR)�”}”(hŒ``unsigned long num``”h]”jX)�”}”(hj"«h]”hŒunsigned long num”…”�”}”(hj$«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj «ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÛhj«ubjn)�”}”(hhh]”hì)�”}”(hŒ*number of consecutive irq bits to allocate”h]”hŒ*number of consecutive irq bits to allocate”…”�”}”(hj;«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j7«h´KÛhj8«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j7«h´KÛhjàªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhjĪubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj]«h]”hŒ Description”…”�”}”(hj_«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[«ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÝhjĪubhì)�”}”(hŒ—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 specified”h]”hŒ—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 specified”…”�”}”(hjs«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÜhjĪubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjN¢h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒairq_iv_free (C function)”Œc.airq_iv_free”hNt”auh1jWhjN¢h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒLvoid airq_iv_free (struct airq_iv *iv, unsigned long bit, unsigned long num)”h]”jt)�”}”(hŒKvoid airq_iv_free(struct airq_iv *iv, unsigned long bit, unsigned long num)”h]”(j4)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¢«h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjž«h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´KÿubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±«h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjž«h²hh³j°«h´Kÿubj�)�”}”(hŒ airq_iv_free”h]”j£)�”}”(hŒ airq_iv_free”h]”hŒ airq_iv_free”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj¿«ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhjž«h²hh³j°«h´Kÿubjl)�”}”(hŒ:(struct airq_iv *iv, unsigned long bit, unsigned long num)”h]”(jr)�”}”(hŒstruct airq_iv *iv”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjß«h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjÛ«ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì«h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÛ«ubh)�”}”(hhh]”j£)�”}”(hŒairq_iv”h]”hŒairq_iv”…”�”}”(hjý«h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjú«ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jÿ«Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jÅ«sbŒc.airq_iv_free”†”asbuh1hhjÛ«ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjÛ«ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj+¬h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjÛ«ubj£)�”}”(hŒiv”h]”hŒiv”…”�”}”(hj8¬h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjÛ«ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj׫ubjr)�”}”(hŒunsigned long bit”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjQ¬h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjM¬ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_¬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjM¬ubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjm¬h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjM¬ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{¬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjM¬ubj£)�”}”(hŒbit”h]”hŒbit”…”�”}”(hj‰¬h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjM¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj׫ubjr)�”}”(hŒunsigned long num”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¢¬h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjž¬ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°¬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjž¬ubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj¾¬h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjž¬ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj̬h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjž¬ubj£)�”}”(hŒnum”h]”hŒnum”…”�”}”(hjÚ¬h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjž¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhj׫ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhjž«h²hh³j°«h´Kÿubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhjš«h²hh³j°«h´Kÿubah}”(h]”j•«ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j°«h´Kÿhj—«h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ$free irq bits of an interrupt vector”h]”hŒ$free irq bits of an interrupt vector”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Kÿhj­h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj—«h²hh³j°«h´Kÿubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój­jôj­jõ‰jö‰j÷‰uh1jhh²hhjN¢h³Nh´Nubjù)�”}”(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 free”h]”(hì)�”}”(hŒ**Parameters**”h]”j)�”}”(hj&­h]”hŒ Parameters”…”�”}”(hj(­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj$­ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhj ­ubjG)�”}”(hhh]”(jL)�”}”(hŒ=``struct airq_iv *iv`` pointer to interrupt vector structure ”h]”(jR)�”}”(hŒ``struct airq_iv *iv``”h]”jX)�”}”(hjE­h]”hŒstruct airq_iv *iv”…”�”}”(hjG­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjC­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhj?­ubjn)�”}”(hhh]”hì)�”}”(hŒ%pointer to interrupt vector structure”h]”hŒ%pointer to interrupt vector structure”…”�”}”(hj^­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jZ­h´Mhj[­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj?­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jZ­h´Mhj<­ubjL)�”}”(hŒ:``unsigned long bit`` number of the first irq bit to free ”h]”(jR)�”}”(hŒ``unsigned long bit``”h]”jX)�”}”(hj~­h]”hŒunsigned long bit”…”�”}”(hj€­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj|­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhjx­ubjn)�”}”(hhh]”hì)�”}”(hŒ#number of the first irq bit to free”h]”hŒ#number of the first irq bit to free”…”�”}”(hj—­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j“­h´Mhj”­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjx­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j“­h´Mhj<­ubjL)�”}”(hŒ<``unsigned long num`` number of consecutive irq bits to free”h]”(jR)�”}”(hŒ``unsigned long num``”h]”jX)�”}”(hj·­h]”hŒunsigned long num”…”�”}”(hj¹­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjµ­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhj±­ubjn)�”}”(hhh]”hì)�”}”(hŒ&number of consecutive irq bits to free”h]”hŒ&number of consecutive irq bits to free”…”�”}”(hjЭh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´MhjÍ­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj±­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jÌ­h´Mhj<­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj ­ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjN¢h²hh³Nh´NubjX)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jdŒairq_iv_scan (C function)”Œc.airq_iv_scan”hNt”auh1jWhjN¢h²hh³Nh´Nubji)�”}”(hhh]”(jn)�”}”(hŒWunsigned long airq_iv_scan (struct airq_iv *iv, unsigned long start, unsigned long end)”h]”jt)�”}”(hŒVunsigned long airq_iv_scan(struct airq_iv *iv, unsigned long start, unsigned long end)”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj ®h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´MubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ®h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj ®h²hh³j®h´Mubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hj.®h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj ®h²hh³j®h´MubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<®h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj ®h²hh³j®h´Mubj�)�”}”(hŒ airq_iv_scan”h]”j£)�”}”(hŒ airq_iv_scan”h]”hŒ airq_iv_scan”…”�”}”(hjN®h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjJ®ubah}”(h]”h ]”(jµj¶eh"]”h$]”h&]”jºj»uh1jœhj ®h²hh³j®h´Mubjl)�”}”(hŒ<(struct airq_iv *iv, unsigned long start, unsigned long end)”h]”(jr)�”}”(hŒstruct airq_iv *iv”h]”(jz)�”}”(hj}h]”hŒstruct”…”�”}”(hjj®h²hh³Nh´Nubah}”(h]”h ]”j†ah"]”h$]”h&]”uh1jyhjf®ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw®h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjf®ubh)�”}”(hhh]”j£)�”}”(hŒairq_iv”h]”hŒairq_iv”…”�”}”(hjˆ®h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj…®ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jíŒreftype”j«Œ reftarget”jŠ®Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j¸)�”}”j«jP®sbŒc.airq_iv_scan”†”asbuh1hhjf®ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨®h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjf®ubjÌ)�”}”(hjh]”hŒ*”…”�”}”(hj¶®h²hh³Nh´Nubah}”(h]”h ]”j×ah"]”h$]”h&]”uh1jËhjf®ubj£)�”}”(hŒiv”h]”hŒiv”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjf®ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjb®ubjr)�”}”(hŒunsigned long start”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÜ®h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjØ®ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjê®h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjØ®ubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjø®h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjØ®ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hjØ®ubj£)�”}”(hŒstart”h]”hŒstart”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hjØ®ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjb®ubjr)�”}”(hŒunsigned long end”h]”(j4)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj-¯h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj)¯ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;¯h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj)¯ubj4)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjI¯h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj)¯ubjŒ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW¯h²hh³Nh´Nubah}”(h]”h ]”j˜ah"]”h$]”h&]”uh1j‹hj)¯ubj£)�”}”(hŒend”h]”hŒend”…”�”}”(hje¯h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¢hj)¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjºj»uh1jqhjb®ubeh}”(h]”h ]”h"]”h$]”h&]”jºj»uh1jkhj ®h²hh³j®h´Mubeh}”(h]”h ]”h"]”h$]”h&]”jºj»jˆuh1jsjÃjÄhj ®h²hh³j®h´Mubah}”(h]”j®ah ]”(jÈjÉeh"]”h$]”h&]”j͈jÎ)jÏhuh1jmh³j®h´Mhj®h²hubjÑ)�”}”(hhh]”hì)�”}”(hŒ'scan interrupt vector for non-zero bits”h]”hŒ'scan interrupt vector for non-zero bits”…”�”}”(hj�¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´MhjŒ¯h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÐhj®h²hh³j®h´Mubeh}”(h]”h ]”(jíŒfunction”eh"]”h$]”h&]”jòjíjój§¯jôj§¯jõ‰jö‰j÷‰uh1jhh²hhjN¢h³Nh´Nubjù)�”}”(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)�”}”(hj±¯h]”hŒ Parameters”…”�”}”(hj³¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¯¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhj«¯ubjG)�”}”(hhh]”(jL)�”}”(hŒ=``struct airq_iv *iv`` pointer to interrupt vector structure ”h]”(jR)�”}”(hŒ``struct airq_iv *iv``”h]”jX)�”}”(hjЯh]”hŒstruct airq_iv *iv”…”�”}”(hjÒ¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhjίubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhjʯubjn)�”}”(hhh]”hì)�”}”(hŒ%pointer to interrupt vector structure”h]”hŒ%pointer to interrupt vector structure”…”�”}”(hjé¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jå¯h´Mhjæ¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhjʯubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jå¯h´MhjǯubjL)�”}”(hŒ7``unsigned long start`` bit number to start the search ”h]”(jR)�”}”(hŒ``unsigned long start``”h]”jX)�”}”(hj °h]”hŒunsigned long start”…”�”}”(hj °h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhj°ubjn)�”}”(hhh]”hì)�”}”(hŒbit number to start the search”h]”hŒbit number to start the search”…”�”}”(hj"°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j°h´Mhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³j°h´MhjǯubjL)�”}”(hŒ3``unsigned long end`` bit number to end the search ”h]”(jR)�”}”(hŒ``unsigned long end``”h]”jX)�”}”(hjB°h]”hŒunsigned long end”…”�”}”(hjD°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jWhj@°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jQh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhj<°ubjn)�”}”(hhh]”hì)�”}”(hŒbit number to end the search”h]”hŒbit number to end the search”…”�”}”(hj[°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jW°h´MhjX°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jmhj<°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jKh³jW°h´Mhjǯubeh}”(h]”h ]”h"]”h$]”h&]”uh1jFhj«¯ubhì)�”}”(hŒ**Description**”h]”j)�”}”(hj}°h]”hŒ Description”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj{°ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´M hj«¯ubhì)�”}”(hŒ„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Œ„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.”…”�”}”(hj“°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/s390-drivers:134: ./drivers/s390/cio/airq.c”h´Mhj«¯ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jøhjN¢h²hh³Nh´Nubeh}”(h]”Œadapter-interrupts”ah ]”h"]”Œadapter interrupts”ah$]”h&]”uh1hµhj/¢h²hh³hÊh´K�ubeh}”(h]”Œgeneric-interfaces”ah ]”h"]”Œgeneric interfaces”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kzubeh}”(h]”Œ#writing-s390-channel-device-drivers”ah ]”h"]”Œ#writing s390 channel device drivers”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jä°Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j¾°j»°jijfjjjß�jÜ�jèjåjúƒj÷ƒj×�jÔ�j,¢j)¢j$¢j!¢j¶°j³°j®°j«°uŒ nametypes”}”(j¾°‰ji‰j‰jß�‰jè‰júƒ‰j×�‰j,¢‰j$¢‰j¶°‰j®°‰uh}”(j»°h·jfj jjljÜ�jjåj8jfjojxj}jŒj‘j¶ j» jø jý j;j@jïjôjÜjájÉjÎj¶j»jøjýj¾jÃj«j°j&j+j©j®j÷ƒjëj$ j) j"j„"jÂ%jÇ%jÃ'jÈ'jÖ)jÛ)jÝ+jâ+j�.j’.jC0jH0jÄ1jÉ1jE3jJ3j»5jÀ5j8j$8j<:jA:j½;jÂ;j>=jC=jÛ?jà?jxEj}EjƒJjˆJj OjOj)Tj.TjêVjïVjYjYj�[j†[j#]j(]j__jd_j€aj…aj„cj‰cj¨gj­gj^kjckj“nj˜nj6rj;rj8tj=tj¹uj¾uj½wjÂwj�{j†{jj}jo}jSjXjª�j¯�jÔ�jýƒj(„j.„j“‡j˜‡jމj“‰jD‹jI‹j�j„�j)¢jâ�j!¢j�j�j#�j ’j’jj”jo”j –j%–jD˜jI˜jò›j÷›js�jx�jôžjùžjª j¯ j³°j/¢j«°jN¢jy¢j~¢jú£jÿ£jU¥jZ¥j¨j¨jn©js©j•«jš«j®j ®uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.