sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget,/translations/zh_CN/driver-api/tty/tty_ioctlmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/zh_TW/driver-api/tty/tty_ioctlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/it_IT/driver-api/tty/tty_ioctlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ja_JP/driver-api/tty/tty_ioctlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ko_KR/driver-api/tty/tty_ioctlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/sp_SP/driver-api/tty/tty_ioctlmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhF/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl.rsthKubhsection)}(hhh](htitle)}(hTTY IOCTL Helpersh]hTTY IOCTL Helpers}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single tty_chars_in_buffer (C function)c.tty_chars_in_bufferhNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(h9unsigned int tty_chars_in_buffer (struct tty_struct *tty)h]hdesc_signature_line)}(h8unsigned int tty_chars_in_buffer(struct tty_struct *tty)h](hdesc_sig_keyword_type)}(hunsignedh]hunsigned}(hhhhhNhNubah}(h]h ]ktah"]h$]h&]uh1hhhhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK0ubhdesc_sig_space)}(h h]h }(hhhhhNhNubah}(h]h ]wah"]h$]h&]uh1hhhhhhhhK0ubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhhhhhhhK0ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhhhhhhhK0ubh desc_name)}(htty_chars_in_bufferh]h desc_sig_name)}(htty_chars_in_bufferh]htty_chars_in_buffer}(hj2hhhNhNubah}(h]h ]nah"]h$]h&]uh1j0hj,ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j*hhhhhhhK0ubhdesc_parameterlist)}(h(struct tty_struct *tty)h]hdesc_parameter)}(hstruct tty_struct *ttyh](hdesc_sig_keyword)}(hstructh]hstruct}(hjWhhhNhNubah}(h]h ]kah"]h$]h&]uh1jUhjQubh)}(h h]h }(hjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjQubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hjwhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjtubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjymodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj4sbc.tty_chars_in_bufferasbuh1hhjQubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjQubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjQubj1)}(httyh]htty}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjQubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjKubah}(h]h ]h"]h$]h&]hhuh1jIhhhhhhhK0ubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhhhK0ubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhhhK0hhhhubh desc_content)}(hhh]h paragraph)}(hcharacters pendingh]hcharacters pending}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK*hjhhubah}(h]h ]h"]h$]h&]uh1jhhhhhhhK0ubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypej desctypej noindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(h**Parameters** ``struct tty_struct *tty`` terminal **Return** the number of bytes of data in the device private output queue. If no private method is supplied there is assumed to be no queue on the device.h](j)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK.hjubhdefinition_list)}(hhh]hdefinition_list_item)}(h$``struct tty_struct *tty`` terminal h](hterm)}(h``struct tty_struct *tty``h]hliteral)}(hjFh]hstruct tty_struct *tty}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjDubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK+hj>ubh definition)}(hhh]j)}(hterminalh]hterminal}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]hK+hj`ubah}(h]h ]h"]h$]h&]uh1j^hj>ubeh}(h]h ]h"]h$]h&]uh1j<hj]hK+hj9ubah}(h]h ]h"]h$]h&]uh1j7hjubj)}(h **Return**h]j")}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK-hjubj)}(hthe number of bytes of data in the device private output queue. If no private method is supplied there is assumed to be no queue on the device.h]hthe number of bytes of data in the device private output queue. If no private method is supplied there is assumed to be no queue on the device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK-hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_write_room (C function)c.tty_write_roomhNtauh1hhhhhhNhNubh)}(hhh](h)}(h4unsigned int tty_write_room (struct tty_struct *tty)h]h)}(h3unsigned int tty_write_room(struct tty_struct *tty)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKBubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKBubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhjhKBubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKBubj+)}(htty_write_roomh]j1)}(htty_write_roomh]htty_write_room}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hjhhhjhKBubjJ)}(h(struct tty_struct *tty)h]jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hj#hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjubh)}(h h]h }(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hjAhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jj sbc.tty_write_roomasbuh1hhjubh)}(h h]h }(hjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj1)}(httyh]htty}(hj|hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubah}(h]h ]h"]h$]h&]hhuh1jIhjhhhjhKBubeh}(h]h ]h"]h$]h&]hhjuh1hjjhjhhhjhKBubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhKBhjhhubj)}(hhh]j)}(hwrite queue spaceh]hwrite queue space}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK9hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKBubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct tty_struct *tty`` terminal **Return** the number of bytes that can be queued to this device at the present time. The result should be treated as a guarantee and the driver cannot offer a value it later shrinks by more than the number of bytes written. If no method is provided, 2K is always returned and data may be lost as there will be no flow control.h](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK=hjubj8)}(hhh]j=)}(h$``struct tty_struct *tty`` terminal h](jC)}(h``struct tty_struct *tty``h]jI)}(hjh]hstruct tty_struct *tty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK:hjubj_)}(hhh]j)}(hterminalh]hterminal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK:hjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhK:hjubah}(h]h ]h"]h$]h&]uh1j7hjubj)}(h **Return**h]j")}(hj"h]hReturn}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKtermios_rwsem ` to protect against parallel throttle/unthrottle and also to ensure the driver can consistently reference its own termios data at this point when implementing software flow control. Drivers should however remember that the stack can issue a throttle, then change flow control method, then unthrottle.h](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK^hjubj8)}(hhh]j=)}(h$``struct tty_struct *tty`` terminal h](jC)}(h``struct tty_struct *tty``h]jI)}(hjh]hstruct tty_struct *tty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK[hjubj_)}(hhh]j)}(hterminalh]hterminal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK[hjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhK[hjubah}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hj$h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj"ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK]hjubj)}(hX6Indicate that a **tty** may continue transmitting data down the stack. Takes the :c:type:`tty_struct->termios_rwsem ` to protect against parallel throttle/unthrottle and also to ensure the driver can consistently reference its own termios data at this point when implementing software flow control.h](hIndicate that a }(hj:hhhNhNubj")}(h**tty**h]htty}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj:ubh: may continue transmitting data down the stack. Takes the }(hj:hhhNhNubh)}(h0:c:type:`tty_struct->termios_rwsem `h]jI)}(hjVh]htty_struct->termios_rwsem}(hjXhhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jHhjTubah}(h]h ]h"]h$]h&]refdocdriver-api/tty/tty_ioctl refdomainjreftypetype refexplicitrefwarnjj)}j]sb reftarget tty_structuh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK]hj:ubh to protect against parallel throttle/unthrottle and also to ensure the driver can consistently reference its own termios data at this point when implementing software flow control.}(hj:hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjyhK]hjubj)}(hvDrivers should however remember that the stack can issue a throttle, then change flow control method, then unthrottle.h]hvDrivers should however remember that the stack can issue a throttle, then change flow control method, then unthrottle.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKbhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_throttle_safe (C function)c.tty_throttle_safehNtauh1hhhhhhNhNubh)}(hhh](h)}(h/bool tty_throttle_safe (struct tty_struct *tty)h]h)}(h.bool tty_throttle_safe(struct tty_struct *tty)h](h)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chK{ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhK{ubj+)}(htty_throttle_safeh]j1)}(htty_throttle_safeh]htty_throttle_safe}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hjhhhjhK{ubjJ)}(h(struct tty_struct *tty)h]jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hjhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.tty_throttle_safeasbuh1hhjubh)}(h h]h }(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj1)}(httyh]htty}(hjIhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubah}(h]h ]h"]h$]h&]hhuh1jIhjhhhjhK{ubeh}(h]h ]h"]h$]h&]hhjuh1hjjhjhhhjhK{ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhK{hjhhubj)}(hhh]j)}(h flow controlh]h flow control}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKqhjphhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK{ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct tty_struct *tty`` terminal **Description** Indicate that a **tty** should stop transmitting data down the stack. tty_throttle_safe() will only attempt throttle if **tty->flow_change** is ``TTY_THROTTLE_SAFE``. Prevents an accidental throttle due to race conditions when throttling is conditional on factors evaluated prior to throttling. **Return** ``true`` if **tty** is throttled (or was already throttled)h](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKuhjubj8)}(hhh]j=)}(h$``struct tty_struct *tty`` terminal h](jC)}(h``struct tty_struct *tty``h]jI)}(hjh]hstruct tty_struct *tty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKrhjubj_)}(hhh]j)}(hterminalh]hterminal}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKrhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhKrhjubah}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKthjubj)}(hX&Indicate that a **tty** should stop transmitting data down the stack. tty_throttle_safe() will only attempt throttle if **tty->flow_change** is ``TTY_THROTTLE_SAFE``. Prevents an accidental throttle due to race conditions when throttling is conditional on factors evaluated prior to throttling.h](hIndicate that a }(hj hhhNhNubj")}(h**tty**h]htty}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubha should stop transmitting data down the stack. tty_throttle_safe() will only attempt throttle if }(hj hhhNhNubj")}(h**tty->flow_change**h]htty->flow_change}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubh is }(hj hhhNhNubjI)}(h``TTY_THROTTLE_SAFE``h]hTTY_THROTTLE_SAFE}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj ubh. Prevents an accidental throttle due to race conditions when throttling is conditional on factors evaluated prior to throttling.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKthjubj)}(h **Return**h]j")}(hjL h]hReturn}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjJ ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKyhjubj)}(h;``true`` if **tty** is throttled (or was already throttled)h](jI)}(h``true``h]htrue}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjb ubh if }(hjb hhhNhNubj")}(h**tty**h]htty}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjb ubh( is throttled (or was already throttled)}(hjb hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKyhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌ tty_unthrottle_safe (C function)c.tty_unthrottle_safehNtauh1hhhhhhNhNubh)}(hhh](h)}(h1bool tty_unthrottle_safe (struct tty_struct *tty)h]h)}(h0bool tty_unthrottle_safe(struct tty_struct *tty)h](h)}(hjh]hbool}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj+)}(htty_unthrottle_safeh]j1)}(htty_unthrottle_safeh]htty_unthrottle_safe}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hj hhhj hKubjJ)}(h(struct tty_struct *tty)h]jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hj hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.tty_unthrottle_safeasbuh1hhj ubh)}(h h]h }(hj+ hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj9 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj1)}(httyh]htty}(hjF hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubah}(h]h ]h"]h$]h&]hhuh1jIhj hhhj hKubeh}(h]h ]h"]h$]h&]hhjuh1hjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj hKhj hhubj)}(hhh]j)}(h flow controlh]h flow control}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjm hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct tty_struct *tty`` terminal **Description** Similar to tty_unthrottle() but will only attempt unthrottle if **tty->flow_change** is ``TTY_UNTHROTTLE_SAFE``. Prevents an accidental unthrottle due to race conditions when unthrottling is conditional on factors evaluated prior to unthrottling. **Return** ``true`` if **tty** is unthrottled (or was already unthrottled)h](j)}(h**Parameters**h]j")}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj8)}(hhh]j=)}(h$``struct tty_struct *tty`` terminal h](jC)}(h``struct tty_struct *tty``h]jI)}(hj h]hstruct tty_struct *tty}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj_)}(hhh]j)}(hterminalh]hterminal}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1j<hj hKhj ubah}(h]h ]h"]h$]h&]uh1j7hj ubj)}(h**Description**h]j")}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj)}(hSimilar to tty_unthrottle() but will only attempt unthrottle if **tty->flow_change** is ``TTY_UNTHROTTLE_SAFE``. Prevents an accidental unthrottle due to race conditions when unthrottling is conditional on factors evaluated prior to unthrottling.h](h@Similar to tty_unthrottle() but will only attempt unthrottle if }(hj hhhNhNubj")}(h**tty->flow_change**h]htty->flow_change}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubh is }(hj hhhNhNubjI)}(h``TTY_UNTHROTTLE_SAFE``h]hTTY_UNTHROTTLE_SAFE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj ubh. Prevents an accidental unthrottle due to race conditions when unthrottling is conditional on factors evaluated prior to unthrottling.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj)}(h **Return**h]j")}(hj7 h]hReturn}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj5 ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj)}(h?``true`` if **tty** is unthrottled (or was already unthrottled)h](jI)}(h``true``h]htrue}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjM ubh if }(hjM hhhNhNubj")}(h**tty**h]htty}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjM ubh, is unthrottled (or was already unthrottled)}(hjM hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌ tty_wait_until_sent (C function)c.tty_wait_until_senthNtauh1hhhhhhNhNubh)}(hhh](h)}(h?void tty_wait_until_sent (struct tty_struct *tty, long timeout)h]h)}(h>void tty_wait_until_sent(struct tty_struct *tty, long timeout)h](h)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj+)}(htty_wait_until_senth]j1)}(htty_wait_until_senth]htty_wait_until_sent}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hj hhhj hKubjJ)}(h&(struct tty_struct *tty, long timeout)h](jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hj hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.tty_wait_until_sentasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj% hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj1)}(httyh]htty}(hj2 hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubjP)}(h long timeouth](h)}(hlongh]hlong}(hjK hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjG ubh)}(h h]h }(hjY hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjG ubj1)}(htimeouth]htimeout}(hjg hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjG ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubeh}(h]h ]h"]h$]h&]hhuh1jIhj hhhj hKubeh}(h]h ]h"]h$]h&]hhjuh1hjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj hKhj hhubj)}(hhh]j)}(hwait for I/O to finishh]hwait for I/O to finish}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhhhNhNubj)}(h**Parameters** ``struct tty_struct *tty`` tty we are waiting for ``long timeout`` how long we will wait **Description** Wait for characters pending in a tty driver to hit the wire, or for a timeout to occur (eg due to flow control). Locking: noneh](j)}(h**Parameters**h]j")}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj8)}(hhh](j=)}(h2``struct tty_struct *tty`` tty we are waiting for h](jC)}(h``struct tty_struct *tty``h]jI)}(hj h]hstruct tty_struct *tty}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj_)}(hhh]j)}(htty we are waiting forh]htty we are waiting for}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKhj ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1j<hj hKhj ubj=)}(h'``long timeout`` how long we will wait h](jC)}(h``long timeout``h]jI)}(hj h]h long timeout}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj_)}(hhh]j)}(hhow long we will waith]hhow long we will wait}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKhj! ubah}(h]h ]h"]h$]h&]uh1j^hj ubeh}(h]h ]h"]h$]h&]uh1j<hj hKhj ubeh}(h]h ]h"]h$]h&]uh1j7hj ubj)}(h**Description**h]j")}(hjF h]h Description}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjD ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj)}(hpWait for characters pending in a tty driver to hit the wire, or for a timeout to occur (eg due to flow control).h]hpWait for characters pending in a tty driver to hit the wire, or for a timeout to occur (eg due to flow control).}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubj)}(h Locking: noneh]h Locking: none}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌ tty_termios_copy_hw (C function)c.tty_termios_copy_hwhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKvoid tty_termios_copy_hw (struct ktermios *new, const struct ktermios *old)h]h)}(hJvoid tty_termios_copy_hw(struct ktermios *new, const struct ktermios *old)h](h)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj+)}(htty_termios_copy_hwh]j1)}(htty_termios_copy_hwh]htty_termios_copy_hw}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hj hhhj hKubjJ)}(h2(struct ktermios *new, const struct ktermios *old)h](jP)}(hstruct ktermios *newh](jV)}(hjYh]hstruct}(hj hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j1)}(hktermiosh]hktermios}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.tty_termios_copy_hwasbuh1hhj ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj1)}(hnewh]hnew}(hj0hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubjP)}(hconst struct ktermios *oldh](jV)}(hconsth]hconst}(hjIhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjEubh)}(h h]h }(hjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjEubjV)}(hjYh]hstruct}(hjehhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjEubh)}(h h]h }(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjEubh)}(hhh]j1)}(hktermiosh]hktermios}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tty_termios_copy_hwasbuh1hhjEubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj1)}(holdh]hold}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjEubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubeh}(h]h ]h"]h$]h&]hhuh1jIhj hhhj hKubeh}(h]h ]h"]h$]h&]hhjuh1hjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj hKhj hhubj)}(hhh]j)}(hcopy hardware settingsh]hcopy hardware settings}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX{**Parameters** ``struct ktermios *new`` new termios ``const struct ktermios *old`` old termios **Description** Propagate the hardware specific terminal setting bits from the **old** termios structure to the **new** one. This is used in cases where the hardware does not support reconfiguration or as a helper in some cases where only minimal reconfiguration is supported.h](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj8)}(hhh](j=)}(h%``struct ktermios *new`` new termios h](jC)}(h``struct ktermios *new``h]jI)}(hj'h]hstruct ktermios *new}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj%ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhj!ubj_)}(hhh]j)}(h new termiosh]h new termios}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<hKhj=ubah}(h]h ]h"]h$]h&]uh1j^hj!ubeh}(h]h ]h"]h$]h&]uh1j<hj<hKhjubj=)}(h+``const struct ktermios *old`` old termios h](jC)}(h``const struct ktermios *old``h]jI)}(hj`h]hconst struct ktermios *old}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj^ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjZubj_)}(hhh]j)}(h old termiosh]h old termios}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuhKhjvubah}(h]h ]h"]h$]h&]uh1j^hjZubeh}(h]h ]h"]h$]h&]uh1j<hjuhKhjubeh}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj)}(hXPropagate the hardware specific terminal setting bits from the **old** termios structure to the **new** one. This is used in cases where the hardware does not support reconfiguration or as a helper in some cases where only minimal reconfiguration is supported.h](h?Propagate the hardware specific terminal setting bits from the }(hjhhhNhNubj")}(h**old**h]hold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubh termios structure to the }(hjhhhNhNubj")}(h**new**h]hnew}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubh one. This is used in cases where the hardware does not support reconfiguration or as a helper in some cases where only minimal reconfiguration is supported.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌"tty_termios_hw_change (C function)c.tty_termios_hw_changehNtauh1hhhhhhNhNubh)}(hhh](h)}(hObool tty_termios_hw_change (const struct ktermios *a, const struct ktermios *b)h]h)}(hNbool tty_termios_hw_change(const struct ktermios *a, const struct ktermios *b)h](h)}(hjh]hbool}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj+)}(htty_termios_hw_changeh]j1)}(htty_termios_hw_changeh]htty_termios_hw_change}(hj$hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hjhhhjhMubjJ)}(h4(const struct ktermios *a, const struct ktermios *b)h](jP)}(hconst struct ktermios *ah](jV)}(hjKh]hconst}(hj@hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhj<ubh)}(h h]h }(hjMhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj<ubjV)}(hjYh]hstruct}(hj[hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhj<ubh)}(h h]h }(hjhhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj<ubh)}(hhh]j1)}(hktermiosh]hktermios}(hjyhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jj&sbc.tty_termios_hw_changeasbuh1hhj<ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj1)}(hah]ha}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj8ubjP)}(hconst struct ktermios *bh](jV)}(hjKh]hconst}(hjhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubjV)}(hjYh]hstruct}(hjhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j1)}(hktermiosh]hktermios}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tty_termios_hw_changeasbuh1hhjubh)}(h h]h }(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj1)}(hbh]hb}(hj?hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj8ubeh}(h]h ]h"]h$]h&]hhuh1jIhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(hcheck for setting changeh]hcheck for setting change}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjfhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX&**Parameters** ``const struct ktermios *a`` termios ``const struct ktermios *b`` termios to compare **Description** Check if any of the bits that affect a dumb device have changed between the two termios structures, or a speed change is needed. **Return** ``true`` if change is neededh](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj8)}(hhh](j=)}(h%``const struct ktermios *a`` termios h](jC)}(h``const struct ktermios *a``h]jI)}(hjh]hconst struct ktermios *a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj_)}(hhh]j)}(htermiosh]htermios}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhKhjubj=)}(h0``const struct ktermios *b`` termios to compare h](jC)}(h``const struct ktermios *b``h]jI)}(hjh]hconst struct ktermios *b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj_)}(hhh]j)}(htermios to compareh]htermios to compare}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhKhjubeh}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj)}(hCheck if any of the bits that affect a dumb device have changed between the two termios structures, or a speed change is needed.h]hCheck if any of the bits that affect a dumb device have changed between the two termios structures, or a speed change is needed.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj)}(h **Return**h]j")}(hjEh]hReturn}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjCubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubj)}(h``true`` if change is neededh](jI)}(h``true``h]htrue}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj[ubh if change is needed}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_get_char_size (C function)c.tty_get_char_sizehNtauh1hhhhhhNhNubh)}(hhh](h)}(h4unsigned char tty_get_char_size (unsigned int cflag)h]h)}(h3unsigned char tty_get_char_size(unsigned int cflag)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhjhMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj+)}(htty_get_char_sizeh]j1)}(htty_get_char_sizeh]htty_get_char_size}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hjhhhjhMubjJ)}(h(unsigned int cflag)h]jP)}(hunsigned int cflagh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hinth]hint}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj1)}(hcflagh]hcflag}(hj)hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubah}(h]h ]h"]h$]h&]hhuh1jIhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(hget size of a characterh]hget size of a character}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM hjPhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhhhNhNubj)}(h**Parameters** ``unsigned int cflag`` termios cflag value **Return** size (in bits) of a character depending on **cflag**'s ``CSIZE`` settingh](j)}(h**Parameters**h]j")}(hjuh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjsubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjoubj8)}(hhh]j=)}(h+``unsigned int cflag`` termios cflag value h](jC)}(h``unsigned int cflag``h]jI)}(hjh]hunsigned int cflag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM hjubj_)}(hhh]j)}(htermios cflag valueh]htermios cflag value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhM hjubah}(h]h ]h"]h$]h&]uh1j7hjoubj)}(h **Return**h]j")}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjoubj)}(hHsize (in bits) of a character depending on **cflag**'s ``CSIZE`` settingh](h+size (in bits) of a character depending on }(hjhhhNhNubj")}(h **cflag**h]hcflag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubh’s }(hjhhhNhNubjI)}(h ``CSIZE``h]hCSIZE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubh setting}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_get_frame_size (C function)c.tty_get_frame_sizehNtauh1hhhhhhNhNubh)}(hhh](h)}(h5unsigned char tty_get_frame_size (unsigned int cflag)h]h)}(h4unsigned char tty_get_frame_size(unsigned int cflag)h](h)}(hunsignedh]hunsigned}(hj8hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj4hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM*ubh)}(h h]h }(hjGhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj4hhhjFhM*ubh)}(hcharh]hchar}(hjUhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj4hhhjFhM*ubh)}(h h]h }(hjchhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj4hhhjFhM*ubj+)}(htty_get_frame_sizeh]j1)}(htty_get_frame_sizeh]htty_get_frame_size}(hjuhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjqubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hj4hhhjFhM*ubjJ)}(h(unsigned int cflag)h]jP)}(hunsigned int cflagh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj1)}(hcflagh]hcflag}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubah}(h]h ]h"]h$]h&]hhuh1jIhj4hhhjFhM*ubeh}(h]h ]h"]h$]h&]hhjuh1hjjhj0hhhjFhM*ubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1hhjFhM*hj-hhubj)}(hhh]j)}(hget size of a frameh]hget size of a frame}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM!hjhhubah}(h]h ]h"]h$]h&]uh1jhj-hhhjFhM*ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``unsigned int cflag`` termios cflag value **Description** Get the size (in bits) of a frame depending on **cflag**'s ``CSIZE``, ``CSTOPB``, and ``PARENB`` setting. The result is a sum of character size, start and stop bits -- one bit each -- second stop bit (if set), and parity bit (if set). **Return** size (in bits) of a frame depending on **cflag**'s setting.h](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM%hjubj8)}(hhh]j=)}(h+``unsigned int cflag`` termios cflag value h](jC)}(h``unsigned int cflag``h]jI)}(hj4h]hunsigned int cflag}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj2ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM"hj.ubj_)}(hhh]j)}(htermios cflag valueh]htermios cflag value}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIhM"hjJubah}(h]h ]h"]h$]h&]uh1j^hj.ubeh}(h]h ]h"]h$]h&]uh1j<hjIhM"hj+ubah}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hjoh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjmubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM$hjubj)}(hGet the size (in bits) of a frame depending on **cflag**'s ``CSIZE``, ``CSTOPB``, and ``PARENB`` setting. The result is a sum of character size, start and stop bits -- one bit each -- second stop bit (if set), and parity bit (if set).h](h/Get the size (in bits) of a frame depending on }(hjhhhNhNubj")}(h **cflag**h]hcflag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubh’s }(hjhhhNhNubjI)}(h ``CSIZE``h]hCSIZE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubh, }(hjhhhNhNubjI)}(h ``CSTOPB``h]hCSTOPB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubh, and }(hjhhhNhNubjI)}(h ``PARENB``h]hPARENB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubh setting. The result is a sum of character size, start and stop bits -- one bit each -- second stop bit (if set), and parity bit (if set).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM$hjubj)}(h **Return**h]j")}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM(rhjubj)}(h;size (in bits) of a frame depending on **cflag**'s setting.h](h'size (in bits) of a frame depending on }(hjhhhNhNubj")}(h **cflag**h]hcflag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubh ’s setting.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM(hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_set_termios (C function)c.tty_set_termioshNtauh1hhhhhhNhNubh)}(hhh](h)}(hJint tty_set_termios (struct tty_struct *tty, struct ktermios *new_termios)h]h)}(hIint tty_set_termios(struct tty_struct *tty, struct ktermios *new_termios)h](h)}(hinth]hint}(hj5hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj1hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMCubh)}(h h]h }(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj1hhhjChMCubj+)}(htty_set_termiosh]j1)}(htty_set_termiosh]htty_set_termios}(hjVhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjRubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hj1hhhjChMCubjJ)}(h6(struct tty_struct *tty, struct ktermios *new_termios)h](jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hjrhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjnubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjnubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjXsbc.tty_set_termiosasbuh1hhjnubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj1)}(httyh]htty}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjnubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjjubjP)}(hstruct ktermios *new_termiosh](jV)}(hjYh]hstruct}(hjhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j1)}(hktermiosh]hktermios}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.tty_set_termiosasbuh1hhjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj1)}(h new_termiosh]h new_termios}(hj;hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjjubeh}(h]h ]h"]h$]h&]hhuh1jIhj1hhhjChMCubeh}(h]h ]h"]h$]h&]hhjuh1hjjhj-hhhjChMCubah}(h]j(ah ](jjeh"]h$]h&]jj)jhuh1hhjChMChj*hhubj)}(hhh]j)}(hupdate termios valuesh]hupdate termios values}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM:hjbhhubah}(h]h ]h"]h$]h&]uh1jhj*hhhjChMCubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhhhNhNubj)}(hX$**Parameters** ``struct tty_struct *tty`` tty to update ``struct ktermios *new_termios`` desired new value **Description** Perform updates to the termios values set on this **tty**. A master pty's termios should never be set. Locking: :c:type:`tty_struct->termios_rwsem `h](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM>hjubj8)}(hhh](j=)}(h)``struct tty_struct *tty`` tty to update h](jC)}(h``struct tty_struct *tty``h]jI)}(hjh]hstruct tty_struct *tty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM;hjubj_)}(hhh]j)}(h tty to updateh]h tty to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM;hjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhM;hjubj=)}(h3``struct ktermios *new_termios`` desired new value h](jC)}(h ``struct ktermios *new_termios``h]jI)}(hjh]hstruct ktermios *new_termios}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM<hjubj_)}(hhh]j)}(hdesired new valueh]hdesired new value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM<hjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhM<hjubeh}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM>hjubj)}(hfPerform updates to the termios values set on this **tty**. A master pty's termios should never be set.h](h2Perform updates to the termios values set on this }(hj0hhhNhNubj")}(h**tty**h]htty}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj0ubh/. A master pty’s termios should never be set.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chM>hjubj)}(h9Locking: :c:type:`tty_struct->termios_rwsem `h](h Locking: }(hjQhhhNhNubh)}(h0:c:type:`tty_struct->termios_rwsem `h]jI)}(hj[h]htty_struct->termios_rwsem}(hj]hhhNhNubah}(h]h ](jbjc-typeeh"]h$]h&]uh1jHhjYubah}(h]h ]h"]h$]h&]refdocjn refdomainjreftypetype refexplicitrefwarnjjtjw tty_structuh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMAhjQubeh}(h]h ]h"]h$]h&]uh1jhjxhMAhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌set_termios (C function) c.set_termioshNtauh1hhhhhhNhNubh)}(hhh](h)}(hCint set_termios (struct tty_struct *tty, void __user *arg, int opt)h]h)}(hBint set_termios(struct tty_struct *tty, void __user *arg, int opt)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj+)}(h set_termiosh]j1)}(h set_termiosh]h set_termios}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hjhhhjhMubjJ)}(h3(struct tty_struct *tty, void __user *arg, int opt)h](jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hjhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.set_termiosasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj1)}(httyh]htty}(hj5hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubjP)}(hvoid __user *argh](h)}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjJubh)}(h h]h }(hj\hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjJubh__user}(hjJhhhNhNubh)}(h h]h }(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjJubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj1)}(hargh]harg}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjJubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubjP)}(hint opth](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj1)}(hopth]hopt}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubeh}(h]h ]h"]h$]h&]hhuh1jIhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(hset termios values for a ttyh]hset termios values for a tty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct tty_struct *tty`` terminal device ``void __user *arg`` user data ``int opt`` option information **Description** Helper function to prepare termios data and run necessary other functions before using tty_set_termios() to do the actual changes. Locking: called functions take :c:type:`tty_struct->ldisc_sem ` and :c:type:`tty_struct->termios_rwsem ` locks **Return** 0 on success, an error otherwiseh](j)}(h**Parameters**h]j")}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubj8)}(hhh](j=)}(h+``struct tty_struct *tty`` terminal device h](jC)}(h``struct tty_struct *tty``h]jI)}(hj)h]hstruct tty_struct *tty}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj'ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj#ubj_)}(hhh]j)}(hterminal deviceh]hterminal device}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>hMhj?ubah}(h]h ]h"]h$]h&]uh1j^hj#ubeh}(h]h ]h"]h$]h&]uh1j<hj>hMhj ubj=)}(h``void __user *arg`` user data h](jC)}(h``void __user *arg``h]jI)}(hjbh]hvoid __user *arg}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj`ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj\ubj_)}(hhh]j)}(h user datah]h user data}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwhMhjxubah}(h]h ]h"]h$]h&]uh1j^hj\ubeh}(h]h ]h"]h$]h&]uh1j<hjwhMhj ubj=)}(h``int opt`` option information h](jC)}(h ``int opt``h]jI)}(hjh]hint opt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubj_)}(hhh]j)}(hoption informationh]hoption information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhMhj ubeh}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubj)}(hHelper function to prepare termios data and run necessary other functions before using tty_set_termios() to do the actual changes.h]hHelper function to prepare termios data and run necessary other functions before using tty_set_termios() to do the actual changes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubj)}(hLocking: called functions take :c:type:`tty_struct->ldisc_sem ` and :c:type:`tty_struct->termios_rwsem ` locksh](hLocking: called functions take }(hjhhhNhNubh)}(h,:c:type:`tty_struct->ldisc_sem `h]jI)}(hjh]htty_struct->ldisc_sem}(hjhhhNhNubah}(h]h ](jbjc-typeeh"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]refdocjn refdomainjreftypetype refexplicitrefwarnjjtjw tty_structuh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubh and }(hjhhhNhNubh)}(h0:c:type:`tty_struct->termios_rwsem `h]jI)}(hj)h]htty_struct->termios_rwsem}(hj+hhhNhNubah}(h]h ](jbjc-typeeh"]h$]h&]uh1jHhj'ubah}(h]h ]h"]h$]h&]refdocjn refdomainjreftypetype refexplicitrefwarnjjtjw tty_structuh1hhj"hMhjubh locks}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj"hMhjubj)}(h **Return**h]j")}(hjRh]hReturn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjPubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubj)}(h 0 on success, an error otherwiseh]h 0 on success, an error otherwise}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌set_sgttyb (C function) c.set_sgttybhNtauh1hhhhhhNhNubh)}(hhh](h)}(hEint set_sgttyb (struct tty_struct *tty, struct sgttyb __user *sgttyb)h]h)}(hDint set_sgttyb(struct tty_struct *tty, struct sgttyb __user *sgttyb)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMuubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMuubj+)}(h set_sgttybh]j1)}(h set_sgttybh]h set_sgttyb}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hjhhhjhMuubjJ)}(h6(struct tty_struct *tty, struct sgttyb __user *sgttyb)h](jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hjhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.set_sgttybasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj1)}(httyh]htty}(hj-hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubjP)}(hstruct sgttyb __user *sgttybh](jV)}(hjYh]hstruct}(hjFhhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjBubh)}(h h]h }(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjBubh)}(hhh]j1)}(hsgttybh]hsgttyb}(hjdhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j c.set_sgttybasbuh1hhjBubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjBubh__user}(hjBhhhNhNubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjBubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj1)}(hsgttybh]hsgttyb}(hjhhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjBubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjubeh}(h]h ]h"]h$]h&]hhuh1jIhjhhhjhMuubeh}(h]h ]h"]h$]h&]hhjuh1hjjhjhhhjhMuubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMuhjhhubj)}(hhh]j)}(hset legacy terminal valuesh]hset legacy terminal values}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMkhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMuubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hXN**Parameters** ``struct tty_struct *tty`` tty structure ``struct sgttyb __user *sgttyb`` pointer to old style terminal structure **Description** Updates a terminal from the legacy BSD style terminal information structure. Locking: :c:type:`tty_struct->termios_rwsem ` **Return** 0 on success, an error otherwiseh](j)}(h**Parameters**h]j")}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMohjubj8)}(hhh](j=)}(h)``struct tty_struct *tty`` tty structure h](jC)}(h``struct tty_struct *tty``h]jI)}(hjh]hstruct tty_struct *tty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMlhjubj_)}(hhh]j)}(h tty structureh]h tty structure}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/hMlhj0ubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hj/hMlhjubj=)}(hI``struct sgttyb __user *sgttyb`` pointer to old style terminal structure h](jC)}(h ``struct sgttyb __user *sgttyb``h]jI)}(hjSh]hstruct sgttyb __user *sgttyb}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjQubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMmhjMubj_)}(hhh]j)}(h'pointer to old style terminal structureh]h'pointer to old style terminal structure}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhMmhjiubah}(h]h ]h"]h$]h&]uh1j^hjMubeh}(h]h ]h"]h$]h&]uh1j<hjhhMmhjubeh}(h]h ]h"]h$]h&]uh1j7hjubj)}(h**Description**h]j")}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMohjubj)}(hLUpdates a terminal from the legacy BSD style terminal information structure.h]hLUpdates a terminal from the legacy BSD style terminal information structure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMohjubj)}(h9Locking: :c:type:`tty_struct->termios_rwsem `h](h Locking: }(hjhhhNhNubh)}(h0:c:type:`tty_struct->termios_rwsem `h]jI)}(hjh]htty_struct->termios_rwsem}(hjhhhNhNubah}(h]h ](jbjc-typeeh"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]refdocjn refdomainjreftypetype refexplicitrefwarnjjtjw tty_structuh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMqhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhjubj)}(h **Return**h]j")}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMshjubj)}(h 0 on success, an error otherwiseh]h 0 on success, an error otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMshjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_change_softcar (C function)c.tty_change_softcarhNtauh1hhhhhhNhNubh)}(hhh](h)}(htermios_rwsem `. **Return** 0 on success, an error otherwiseh](j)}(h**Parameters**h]j")}(hj>h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj<ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj8ubj8)}(hhh](j=)}(h)``struct tty_struct *tty`` tty to update h](jC)}(h``struct tty_struct *tty``h]jI)}(hj]h]hstruct tty_struct *tty}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj[ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjWubj_)}(hhh]j)}(h tty to updateh]h tty to update}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrhMhjsubah}(h]h ]h"]h$]h&]uh1j^hjWubeh}(h]h ]h"]h$]h&]uh1j<hjrhMhjTubj=)}(h*``bool enable`` enable/disable ``CLOCAL`` h](jC)}(h``bool enable``h]jI)}(hjh]h bool enable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhjubj_)}(hhh]j)}(henable/disable ``CLOCAL``h](henable/disable }(hjhhhNhNubjI)}(h ``CLOCAL``h]hCLOCAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1j^hjubeh}(h]h ]h"]h$]h&]uh1j<hjhMhjTubeh}(h]h ]h"]h$]h&]uh1j7hj8ubj)}(h**Description**h]j")}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj8ubj)}(h[Perform a change to the ``CLOCAL`` state and call into the driver layer to make it visible.h](hPerform a change to the }(hjhhhNhNubjI)}(h ``CLOCAL``h]hCLOCAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjubh9 state and call into the driver layer to make it visible.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj8ubj)}(h:Locking: :c:type:`tty_struct->termios_rwsem `.h](h Locking: }(hj hhhNhNubh)}(h0:c:type:`tty_struct->termios_rwsem `h]jI)}(hj h]htty_struct->termios_rwsem}(hj" hhhNhNubah}(h]h ](jbjc-typeeh"]h$]h&]uh1jHhj ubah}(h]h ]h"]h$]h&]refdocjn refdomainjreftypetype refexplicitrefwarnjjtjw tty_structuh1hh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj= hMhj8ubj)}(h **Return**h]j")}(hjJ h]hReturn}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hjH ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj8ubj)}(h 0 on success, an error otherwiseh]h 0 on success, an error otherwise}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_mode_ioctl (C function)c.tty_mode_ioctlhNtauh1hhhhhhNhNubh)}(hhh](h)}(hPint tty_mode_ioctl (struct tty_struct *tty, unsigned int cmd, unsigned long arg)h]h)}(hOint tty_mode_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj hhh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hMubj+)}(htty_mode_ioctlh]j1)}(htty_mode_ioctlh]htty_mode_ioctl}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hj hhhj hMubjJ)}(h=(struct tty_struct *tty, unsigned int cmd, unsigned long arg)h](jP)}(hstruct tty_struct *ttyh](jV)}(hjYh]hstruct}(hj hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hj hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.tty_mode_ioctlasbuh1hhj ubh)}(h h]h }(hj !hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj1)}(httyh]htty}(hj%!hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubjP)}(hunsigned int cmdh](h)}(hunsignedh]hunsigned}(hj>!hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj:!ubh)}(h h]h }(hjL!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj:!ubh)}(hinth]hint}(hjZ!hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj:!ubh)}(h h]h }(hjh!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj:!ubj1)}(hcmdh]hcmd}(hjv!hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj:!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubjP)}(hunsigned long argh](h)}(hunsignedh]hunsigned}(hj!hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj!ubh)}(h h]h }(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj!ubh)}(hlongh]hlong}(hj!hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj!ubh)}(h h]h }(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj!ubj1)}(hargh]harg}(hj!hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhj ubeh}(h]h ]h"]h$]h&]hhuh1jIhj hhhj hMubeh}(h]h ]h"]h$]h&]hhjuh1hjjhj hhhj hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj hMhj hhubj)}(hhh]j)}(hmode related ioctlsh]hmode related ioctls}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj!hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj "jj "jjjuh1hhhhhhNhNubj)}(hX4**Parameters** ``struct tty_struct *tty`` tty for the ioctl ``unsigned int cmd`` command ``unsigned long arg`` ioctl argument **Description** Perform non-line discipline specific mode control ioctls. This is designed to be called by line disciplines to ensure they provide consistent mode setting.h](j)}(h**Parameters**h]j")}(hj"h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj"ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj "ubj8)}(hhh](j=)}(h-``struct tty_struct *tty`` tty for the ioctl h](jC)}(h``struct tty_struct *tty``h]jI)}(hj2"h]hstruct tty_struct *tty}(hj4"hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj0"ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj,"ubj_)}(hhh]j)}(htty for the ioctlh]htty for the ioctl}(hjK"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG"hMhjH"ubah}(h]h ]h"]h$]h&]uh1j^hj,"ubeh}(h]h ]h"]h$]h&]uh1j<hjG"hMhj)"ubj=)}(h``unsigned int cmd`` command h](jC)}(h``unsigned int cmd``h]jI)}(hjk"h]hunsigned int cmd}(hjm"hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhji"ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhje"ubj_)}(hhh]j)}(hcommandh]hcommand}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1j^hje"ubeh}(h]h ]h"]h$]h&]uh1j<hj"hMhj)"ubj=)}(h%``unsigned long arg`` ioctl argument h](jC)}(h``unsigned long arg``h]jI)}(hj"h]hunsigned long arg}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhj"ubah}(h]h ]h"]h$]h&]uh1jBh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj"ubj_)}(hhh]j)}(hioctl argumenth]hioctl argument}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1j^hj"ubeh}(h]h ]h"]h$]h&]uh1j<hj"hMhj)"ubeh}(h]h ]h"]h$]h&]uh1j7hj "ubj)}(h**Description**h]j")}(hj"h]h Description}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj"ubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj "ubj)}(hPerform non-line discipline specific mode control ioctls. This is designed to be called by line disciplines to ensure they provide consistent mode setting.h]hPerform non-line discipline specific mode control ioctls. This is designed to be called by line disciplines to ensure they provide consistent mode setting.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jh_/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:7: ./drivers/tty/tty_ioctl.chMhj "ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌tty_get_baud_rate (C function)c.tty_get_baud_ratehNtauh1hhhhhhNhNubh)}(hhh](h)}(h8speed_t tty_get_baud_rate (const struct tty_struct *tty)h]h)}(h7speed_t tty_get_baud_rate(const struct tty_struct *tty)h](h)}(hhh]j1)}(hspeed_th]hspeed_t}(hj'#hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj$#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)#modnameN classnameNjj)}j]j)}jtty_get_baud_ratesbc.tty_get_baud_rateasbuh1hhj #hhh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMubh)}(h h]h }(hjI#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj #hhhjH#hMubj+)}(htty_get_baud_rateh]j1)}(hjE#h]htty_get_baud_rate}(hj[#hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjW#ubah}(h]h ](jDjEeh"]h$]h&]hhuh1j*hj #hhhjH#hMubjJ)}(h(const struct tty_struct *tty)h]jP)}(hconst struct tty_struct *ttyh](jV)}(hjKh]hconst}(hjv#hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjr#ubh)}(h h]h }(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjr#ubjV)}(hjYh]hstruct}(hj#hhhNhNubah}(h]h ]jbah"]h$]h&]uh1jUhjr#ubh)}(h h]h }(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjr#ubh)}(hhh]j1)}(h tty_structh]h tty_struct}(hj#hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]jC#c.tty_get_baud_rateasbuh1hhjr#ubh)}(h h]h }(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjr#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr#ubj1)}(httyh]htty}(hj#hhhNhNubah}(h]h ]j=ah"]h$]h&]uh1j0hjr#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jOhjn#ubah}(h]h ]h"]h$]h&]hhuh1jIhj #hhhjH#hMubeh}(h]h ]h"]h$]h&]hhjuh1hjjhj#hhhjH#hMubah}(h]j#ah ](jjeh"]h$]h&]jj)jhuh1hhjH#hMhj#hhubj)}(hhh]j)}(hget tty bit ratesh]hget tty bit rates}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMhj$hhubah}(h]h ]h"]h$]h&]uh1jhj#hhhjH#hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*$jj*$jjjuh1hhhhhhNhNubj)}(h**Parameters** ``const struct tty_struct *tty`` tty to query **Return** the baud rate as an integer for this terminal **Description** Locking: The termios lock must be held by the caller.h](j)}(h**Parameters**h]j")}(hj4$h]h Parameters}(hj6$hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj2$ubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMhj.$ubj8)}(hhh]j=)}(h.``const struct tty_struct *tty`` tty to query h](jC)}(h ``const struct tty_struct *tty``h]jI)}(hjS$h]hconst struct tty_struct *tty}(hjU$hhhNhNubah}(h]h ]h"]h$]h&]uh1jHhjQ$ubah}(h]h ]h"]h$]h&]uh1jBh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMhjM$ubj_)}(hhh]j)}(h tty to queryh]h tty to query}(hjl$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh$hMhji$ubah}(h]h ]h"]h$]h&]uh1j^hjM$ubeh}(h]h ]h"]h$]h&]uh1j<hjh$hMhjJ$ubah}(h]h ]h"]h$]h&]uh1j7hj.$ubj)}(h **Return**h]j")}(hj$h]hReturn}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj$ubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMhj.$ubj)}(h-the baud rate as an integer for this terminalh]h-the baud rate as an integer for this terminal}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMhj.$ubj)}(h**Description**h]j")}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j!hj$ubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMhj.$ubj)}(h5Locking: The termios lock must be held by the caller.h]h5Locking: The termios lock must be held by the caller.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jh[/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_ioctl:9: ./include/linux/tty.hhMhj.$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubeh}(h]tty-ioctl-helpersah ]h"]tty ioctl helpersah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj %error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}j$j$s nametypes}j$sh}(j$hhhjjjZj_jjjjj j j j j j jjjjj+j0j(j-jjjjjj j j j#j#u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.