€•Œ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/tty/tty_buffer”Œ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/tty/tty_buffer”Œ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/tty/tty_buffer”Œ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/tty/tty_buffer”Œ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/tty/tty_buffer”Œ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/tty/tty_buffer”Œ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/tty/tty_buffer”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒG/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ TTY Buffer”h]”hŒ TTY Buffer”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒtopic”“”)�”}”(hhh]”hŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hhh]”hŒ paragraph”“”)�”}”(hhh]”hŒ reference”“”)�”}”(hhh]”hŒFlip Buffer Management”…”�”}”(hhóh²hh³Nh´Nubah}”(h]”Œid1”ah ]”h"]”h$]”h&]”Œrefid”Œflip-buffer-management”uh1hñhhîubah}”(h]”h ]”h"]”h$]”h&]”uh1hìhhéubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhäubhè)�”}”(hhh]”hí)�”}”(hhh]”hò)�”}”(hhh]”hŒOther Functions”…”�”}”(hjh²hh³Nh´Nubah}”(h]”Œid2”ah ]”h"]”h$]”h&]”Œrefid”Œother-functions”uh1hñhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hìhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhäubhè)�”}”(hhh]”hí)�”}”(hhh]”hò)�”}”(hhh]”hŒBuffer Locking”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”Œid3”ah ]”h"]”h$]”h&]”Œrefid”Œbuffer-locking”uh1hñhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhäubhè)�”}”(hhh]”hí)�”}”(hhh]”hò)�”}”(hhh]”hŒInternal Functions”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”Œid4”ah ]”h"]”h$]”h&]”Œrefid”Œinternal-functions”uh1hñhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1hìhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhäubeh}”(h]”h ]”h"]”h$]”h&]”uh1hâhhßh²hh³Nh´Nubah}”(h]”Œcontents”ah ]”(Œcontents”Œlocal”eh"]”Œcontents”ah$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhí)�”}”(hX Here, we document functions for taking care of tty buffer and their flipping. Drivers are supposed to fill the buffer by one of those functions below and then flip the buffer, so that the data are passed to :doc:`line discipline ` for further processing.”h]”(hŒÏHere, we document functions for taking care of tty buffer and their flipping. Drivers are supposed to fill the buffer by one of those functions below and then flip the buffer, so that the data are passed to ”…”�”}”(hj…h²hh³Nh´Nubh)�”}”(hŒ":doc:`line discipline `”h]”hŒinline”“”)�”}”(hj�h]”hŒline discipline”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-doc”eh"]”h$]”h&]”uh1j‘hj�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œdriver-api/tty/tty_buffer”Œ refdomain”jžŒreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œ tty_ldisc”uh1hh³hÇh´K hj…ubhŒ for further processing.”…”�”}”(hj…h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÇh´K hhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒFlip Buffer Management”h]”hŒFlip Buffer Management”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefid”hüuh1hÍhj¼h²hh³hÇh´KubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ$tty_prepare_flip_string (C function)”Œc.tty_prepare_flip_string”hNt”auh1jÎhj¼h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒOsize_t tty_prepare_flip_string (struct tty_port *port, u8 **chars, size_t size)”h]”hŒdesc_signature_line”“”)�”}”(hŒNsize_t tty_prepare_flip_string(struct tty_port *port, u8 **chars, size_t size)”h]”(h)�”}”(hhh]”hŒ desc_sig_name”“”)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jóhjðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”j÷Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jŒ ASTIdentifier”“”)�”}”j Œtty_prepare_flip_string”sbŒc.tty_prepare_flip_string”†”asbuh1hhjìh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M\ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j!hjìh²hh³j h´M\ubhŒ desc_name”“”)�”}”(hŒtty_prepare_flip_string”h]”jô)�”}”(hjh]”hŒtty_prepare_flip_string”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj4ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j2hjìh²hh³j h´M\ubhŒdesc_parameterlist”“”)�”}”(hŒ0(struct tty_port *port, u8 **chars, size_t size)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct tty_port *port”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jYhjUubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjUubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j}Œmodname”NŒ classname”Njj)�”}”j]”jŒc.tty_prepare_flip_string”†”asbuh1hhjUubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjUubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j§hjUubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjUubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjOubjT)�”}”(hŒ u8 **chars”h]”(h)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÑubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jÖŒmodname”NŒ classname”Njj)�”}”j]”jŒc.tty_prepare_flip_string”†”asbuh1hhjÍubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÍubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjÍubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjÍubjô)�”}”(hŒchars”h]”hŒchars”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjOubjT)�”}”(hŒ size_t size”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j8Œmodname”NŒ classname”Njj)�”}”j]”jŒc.tty_prepare_flip_string”†”asbuh1hhj/ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj/ubjô)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjOubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjìh²hh³j h´M\ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jêŒsphinx_line_type”Œ declarator”hjæh²hh³j h´M\ubah}”(h]”jÝah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jäh³j h´M\hjáh²hubhŒ desc_content”“”)�”}”(hhh]”hí)�”}”(hŒmake room for characters”h]”hŒmake room for characters”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.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&]”Œdomain”j Œobjtype”j®Œdesctype”j®Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jßh²hhj¼h³Nh´NubhŒ container”“”)�”}”(hXí**Parameters** ``struct tty_port *port`` tty port ``u8 **chars`` return pointer for character write area ``size_t size`` desired size **Description** Prepare a block of space in the buffer for data. This is used for drivers that need their own block copy routines into the buffer. There is no guarantee the buffer is a DMA target! **Return** the length available and buffer pointer (**chars**) to the space which is now allocated and accounted for as ready for normal characters.”h]”(hí)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hjÀh]”hŒ Parameters”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M`hjºubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ#``struct tty_port *port`` tty port ”h]”(hŒterm”“”)�”}”(hŒ``struct tty_port *port``”h]”hŒliteral”“”)�”}”(hjçh]”hŒstruct tty_port *port”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M]hjßubhŒ definition”“”)�”}”(hhh]”hí)�”}”(hŒtty port”h]”hŒtty port”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jþh´M]hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jþh´M]hjÚubjÞ)�”}”(hŒ7``u8 **chars`` return pointer for character write area ”h]”(jä)�”}”(hŒ``u8 **chars``”h]”jê)�”}”(hj$h]”hŒ u8 **chars”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M^hjubj)�”}”(hhh]”hí)�”}”(hŒ'return pointer for character write area”h]”hŒ'return pointer for character write area”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j9h´M^hj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j9h´M^hjÚubjÞ)�”}”(hŒ``size_t size`` desired size ”h]”(jä)�”}”(hŒ``size_t size``”h]”jê)�”}”(hj]h]”hŒ size_t size”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M_hjWubj)�”}”(hhh]”hí)�”}”(hŒ desired size”h]”hŒ desired size”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jrh´M_hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jrh´M_hjÚubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhjºubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj˜h]”hŒ Description”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mahjºubhí)�”}”(hŒ0Prepare a block of space in the buffer for data.”h]”hŒ0Prepare a block of space in the buffer for data.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M`hjºubhí)�”}”(hŒƒThis is used for drivers that need their own block copy routines into the buffer. There is no guarantee the buffer is a DMA target!”h]”hŒƒThis is used for drivers that need their own block copy routines into the buffer. There is no guarantee the buffer is a DMA target!”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mbhjºubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hjÎh]”hŒReturn”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mehjºubhí)�”}”(hŒ‰the length available and buffer pointer (**chars**) to the space which is now allocated and accounted for as ready for normal characters.”h]”(hŒ)the length available and buffer pointer (”…”�”}”(hjäh²hh³Nh´NubjÃ)�”}”(hŒ **chars**”h]”hŒchars”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjäubhŒW) to the space which is now allocated and accounted for as ready for normal characters.”…”�”}”(hjäh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mfhjºubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hj¼h²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ"tty_ldisc_receive_buf (C function)”Œc.tty_ldisc_receive_buf”hNt”auh1jÎhj¼h²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ[size_t tty_ldisc_receive_buf (struct tty_ldisc *ld, const u8 *p, const u8 *f, size_t count)”h]”jë)�”}”(hŒZsize_t tty_ldisc_receive_buf(struct tty_ldisc *ld, const u8 *p, const u8 *f, size_t count)”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j*Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j Œtty_ldisc_receive_buf”sbŒc.tty_ldisc_receive_buf”†”asbuh1hhj!h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M{ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj!h²hh³jIh´M{ubj3)�”}”(hŒtty_ldisc_receive_buf”h]”jô)�”}”(hjFh]”hŒtty_ldisc_receive_buf”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjXubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hj!h²hh³jIh´M{ubjN)�”}”(hŒ>(struct tty_ldisc *ld, const u8 *p, const u8 *f, size_t count)”h]”(jT)�”}”(hŒstruct tty_ldisc *ld”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjsubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjsubh)�”}”(hhh]”jô)�”}”(hŒ tty_ldisc”h]”hŒ tty_ldisc”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj’ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j—Œmodname”NŒ classname”Njj)�”}”j]”jDŒc.tty_ldisc_receive_buf”†”asbuh1hhjsubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjsubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjsubjô)�”}”(hŒld”h]”hŒld”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjsubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjoubjT)�”}”(hŒ const u8 *p”h]”(jZ)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjãubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjãubh)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”jDŒc.tty_ldisc_receive_buf”†”asbuh1hhjãubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjãubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjãubjô)�”}”(hj´h]”hŒp”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjoubjT)�”}”(hŒ const u8 *f”h]”(jZ)�”}”(hjéh]”hŒconst”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjSubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjSubh)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjrubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jwŒmodname”NŒ classname”Njj)�”}”j]”jDŒc.tty_ldisc_receive_buf”†”asbuh1hhjSubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjSubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjSubjô)�”}”(hŒf”h]”hŒf”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjSubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjoubjT)�”}”(hŒ size_t count”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÇubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jÌŒmodname”NŒ classname”Njj)�”}”j]”jDŒc.tty_ldisc_receive_buf”†”asbuh1hhjÃubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÃubjô)�”}”(hŒcount”h]”hŒcount”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÃubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjoubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhj!h²hh³jIh´M{ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjh²hh³jIh´M{ubah}”(h]”jah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jIh´M{hjh²hubj’)�”}”(hhh]”hí)�”}”(hŒforward data to line discipline”h]”hŒforward data to line discipline”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M{hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjh²hh³jIh´M{ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³j8j´j8jµ‰j¶‰j·‰uh1jßh²hhj¼h³Nh´Nubj¹)�”}”(hXž**Parameters** ``struct tty_ldisc *ld`` line discipline to process input ``const u8 *p`` char buffer ``const u8 *f`` ``TTY_NORMAL``, ``TTY_BREAK``, etc. flags buffer ``size_t count`` number of bytes to process **Description** Callers other than flush_to_ldisc() need to exclude the kworker from concurrent use of the line discipline, see paste_selection(). **Return** the number of bytes processed.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjBh]”hŒ Parameters”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mhj<ubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ:``struct tty_ldisc *ld`` line discipline to process input ”h]”(jä)�”}”(hŒ``struct tty_ldisc *ld``”h]”jê)�”}”(hjah]”hŒstruct tty_ldisc *ld”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M|hj[ubj)�”}”(hhh]”hí)�”}”(hŒ line discipline to process input”h]”hŒ line discipline to process input”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jvh´M|hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jvh´M|hjXubjÞ)�”}”(hŒ``const u8 *p`` char buffer ”h]”(jä)�”}”(hŒ``const u8 *p``”h]”jê)�”}”(hjšh]”hŒ const u8 *p”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M}hj”ubj)�”}”(hhh]”hí)�”}”(hŒ char buffer”h]”hŒ char buffer”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j¯h´M}hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j¯h´M}hjXubjÞ)�”}”(hŒA``const u8 *f`` ``TTY_NORMAL``, ``TTY_BREAK``, etc. flags buffer ”h]”(jä)�”}”(hŒ``const u8 *f``”h]”jê)�”}”(hjÓh]”hŒ const u8 *f”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M~hjÍubj)�”}”(hhh]”hí)�”}”(hŒ0``TTY_NORMAL``, ``TTY_BREAK``, etc. flags buffer”h]”(jê)�”}”(hŒ``TTY_NORMAL``”h]”hŒ TTY_NORMAL”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjìubhŒ, ”…”�”}”(hjìh²hh³Nh´Nubjê)�”}”(hŒ ``TTY_BREAK``”h]”hŒ TTY_BREAK”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjìubhŒ, etc. flags buffer”…”�”}”(hjìh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jèh´M~hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jèh´M~hjXubjÞ)�”}”(hŒ,``size_t count`` number of bytes to process ”h]”(jä)�”}”(hŒ``size_t count``”h]”jê)�”}”(hj,h]”hŒ size_t count”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mhj&ubj)�”}”(hhh]”hí)�”}”(hŒnumber of bytes to process”h]”hŒnumber of bytes to process”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jAh´MhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jAh´MhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhj<ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hjgh]”hŒ Description”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M�hj<ubhí)�”}”(hŒ‚Callers other than flush_to_ldisc() need to exclude the kworker from concurrent use of the line discipline, see paste_selection().”h]”hŒ‚Callers other than flush_to_ldisc() need to exclude the kworker from concurrent use of the line discipline, see paste_selection().”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M€hj<ubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hjŽh]”hŒReturn”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mƒhj<ubhí)�”}”(hŒthe number of bytes processed.”h]”hŒthe number of bytes processed.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´M„hj<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hj¼h²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ!tty_flip_buffer_push (C function)”Œc.tty_flip_buffer_push”hNt”auh1jÎhj¼h²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ1void tty_flip_buffer_push (struct tty_port *port)”h]”jë)�”}”(hŒ0void tty_flip_buffer_push(struct tty_port *port)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jÓhjÏh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÏh²hh³jäh´Mubj3)�”}”(hŒtty_flip_buffer_push”h]”jô)�”}”(hŒtty_flip_buffer_push”h]”hŒtty_flip_buffer_push”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjóubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjÏh²hh³jäh´MubjN)�”}”(hŒ(struct tty_port *port)”h]”jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj. ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j3 Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j jùsbŒc.tty_flip_buffer_push”†”asbuh1hhj ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj_ h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjl h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjÏh²hh³jäh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjËh²hh³jäh´Mubah}”(h]”jÆah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jäh´MhjÈh²hubj’)�”}”(hhh]”hí)�”}”(hŒpush terminal buffers”h]”hŒpush terminal buffers”…”�”}”(hj– h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.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·‰uh1jßh²hhj¼h³Nh´Nubj¹)�”}”(hX**Parameters** ``struct tty_port *port`` tty port to push **Description** Queue a push of the terminal flip buffers to the line discipline. Can be called from IRQ/atomic context. In the event of the queue being busy for flipping the work will be held off and retried later.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hj¸ h]”hŒ Parameters”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj¶ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mhj² ubjÙ)�”}”(hhh]”jÞ)�”}”(hŒ+``struct tty_port *port`` tty port to push ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hj× h]”hŒstruct tty_port *port”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjÕ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´MhjÑ ubj)�”}”(hhh]”hí)�”}”(hŒtty port to push”h]”hŒtty port to push”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jì h´Mhjí ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjÑ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jì h´MhjÎ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhj² ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mhj² ubhí)�”}”(hŒhQueue a push of the terminal flip buffers to the line discipline. Can be called from IRQ/atomic context.”h]”hŒhQueue a push of the terminal flip buffers to the line discipline. Can be called from IRQ/atomic context.”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mhj² ubhí)�”}”(hŒ^In the event of the queue being busy for flipping the work will be held off and retried later.”h]”hŒ^In the event of the queue being busy for flipping the work will be held off and retried later.”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:17: ./drivers/tty/tty_buffer.c”h´Mhj² ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hj¼h²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ.tty_insert_flip_string_fixed_flag (C function)”Œ#c.tty_insert_flip_string_fixed_flag”hNt”auh1jÎhj¼h²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒgsize_t tty_insert_flip_string_fixed_flag (struct tty_port *port, const u8 *chars, u8 flag, size_t size)”h]”jë)�”}”(hŒfsize_t tty_insert_flip_string_fixed_flag(struct tty_port *port, const u8 *chars, u8 flag, size_t size)”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjf ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jk Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j Œ!tty_insert_flip_string_fixed_flag”sbŒ#c.tty_insert_flip_string_fixed_flag”†”asbuh1hhjb h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´Kubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjb h²hh³jŠ h´Kubj3)�”}”(hŒ!tty_insert_flip_string_fixed_flag”h]”jô)�”}”(hj‡ h]”hŒ!tty_insert_flip_string_fixed_flag”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj™ ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjb h²hh³jŠ h´KubjN)�”}”(hŒ>(struct tty_port *port, const u8 *chars, u8 flag, size_t size)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj´ ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj´ ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÓ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jØ Œmodname”NŒ classname”Njj)�”}”j]”j… Œ#c.tty_insert_flip_string_fixed_flag”†”asbuh1hhj´ ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj´ ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj´ ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj´ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj° ubjT)�”}”(hŒconst u8 *chars”h]”(jZ)�”}”(hjéh]”hŒconst”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj$ ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5 h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj$ ubh)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjC ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jH Œmodname”NŒ classname”Njj)�”}”j]”j… Œ#c.tty_insert_flip_string_fixed_flag”†”asbuh1hhj$ ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj$ ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj$ ubjô)�”}”(hŒchars”h]”hŒchars”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj$ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj° ubjT)�”}”(hŒu8 flag”h]”(h)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj› h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj˜ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j� Œmodname”NŒ classname”Njj)�”}”j]”j… Œ#c.tty_insert_flip_string_fixed_flag”†”asbuh1hhj” ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj” ubjô)�”}”(hŒflag”h]”hŒflag”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj” ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj° ubjT)�”}”(hŒ size_t size”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjà ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jå Œmodname”NŒ classname”Njj)�”}”j]”j… Œ#c.tty_insert_flip_string_fixed_flag”†”asbuh1hhjÜ ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÜ ubjô)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÜ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj° ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjb h²hh³jŠ h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hj^ h²hh³jŠ h´Kubah}”(h]”jY ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jŠ h´Khj[ h²hubj’)�”}”(hhh]”hí)�”}”(hŒ add characters to the tty buffer”h]”hŒ add characters to the tty buffer”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´Khj6 h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj[ h²hh³jŠ h´Kubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³jQ j´jQ jµ‰j¶‰j·‰uh1jßh²hhj¼h³Nh´Nubj¹)�”}”(hX7**Parameters** ``struct tty_port *port`` tty port ``const u8 *chars`` characters ``u8 flag`` flag value for each character ``size_t size`` size **Description** Queue a series of bytes to the tty buffering. All the characters passed are marked with the supplied flag. **Return** the number added.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hj[ h]”hŒ Parameters”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjY ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´KhjU ubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ#``struct tty_port *port`` tty port ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjz h]”hŒstruct tty_port *port”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjx ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´Khjt ubj)�”}”(hhh]”hí)�”}”(hŒtty port”h]”hŒtty port”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j� h´Khj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjt ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j� h´Khjq ubjÞ)�”}”(hŒ``const u8 *chars`` characters ”h]”(jä)�”}”(hŒ``const u8 *chars``”h]”jê)�”}”(hj³ h]”hŒconst u8 *chars”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj± ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´Khj­ ubj)�”}”(hhh]”hí)�”}”(hŒ characters”h]”hŒ characters”…”�”}”(hjÌ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jÈ h´KhjÉ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj­ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jÈ h´Khjq ubjÞ)�”}”(hŒ*``u8 flag`` flag value for each character ”h]”(jä)�”}”(hŒ ``u8 flag``”h]”jê)�”}”(hjì h]”hŒu8 flag”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjê ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´Khjæ ubj)�”}”(hhh]”hí)�”}”(hŒflag value for each character”h]”hŒflag value for each character”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j h´Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjæ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j h´Khjq ubjÞ)�”}”(hŒ``size_t size`` size ”h]”(jä)�”}”(hŒ``size_t size``”h]”jê)�”}”(hj% h]”hŒ size_t size”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj# ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´Khj ubj)�”}”(hhh]”hí)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j: h´Khj; ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j: h´Khjq ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhjU ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj` h]”hŒ Description”…”�”}”(hjb h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj^ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´KhjU ubhí)�”}”(hŒjQueue a series of bytes to the tty buffering. All the characters passed are marked with the supplied flag.”h]”hŒjQueue a series of bytes to the tty buffering. All the characters passed are marked with the supplied flag.”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´KhjU ubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hj‡ h]”hŒReturn”…”�”}”(hj‰ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj… ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´KhjU ubhí)�”}”(hŒthe number added.”h]”hŒthe number added.”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´KhjU ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hj¼h²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ)tty_insert_flip_string_flags (C function)”Œc.tty_insert_flip_string_flags”hNt”auh1jÎhj¼h²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒjsize_t tty_insert_flip_string_flags (struct tty_port *port, const u8 *chars, const u8 *flags, size_t size)”h]”jë)�”}”(hŒisize_t tty_insert_flip_string_flags(struct tty_port *port, const u8 *chars, const u8 *flags, size_t size)”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÌ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jÑ Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j Œtty_insert_flip_string_flags”sbŒc.tty_insert_flip_string_flags”†”asbuh1hhjÈ h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.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'ubj3)�”}”(hŒtty_insert_flip_string_flags”h]”jô)�”}”(hjí h]”hŒtty_insert_flip_string_flags”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÿ ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjÈ h²hh³jð h´K'ubjN)�”}”(hŒF(struct tty_port *port, const u8 *chars, const u8 *flags, size_t size)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j>Œmodname”NŒ classname”Njj)�”}”j]”jë Œc.tty_insert_flip_string_flags”†”asbuh1hhjubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjubjT)�”}”(hŒconst u8 *chars”h]”(jZ)�”}”(hjéh]”hŒconst”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjŠubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjŠubh)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj©ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j®Œmodname”NŒ classname”Njj)�”}”j]”jë Œc.tty_insert_flip_string_flags”†”asbuh1hhjŠubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjŠubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjŠubjô)�”}”(hŒchars”h]”hŒchars”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjŠubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjubjT)�”}”(hŒconst u8 *flags”h]”(jZ)�”}”(hjéh]”hŒconst”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjúubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjúubh)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”jë Œc.tty_insert_flip_string_flags”†”asbuh1hhjúubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjúubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjúubjô)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjúubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjubjT)�”}”(hŒ size_t size”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjnubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jsŒmodname”NŒ classname”Njj)�”}”j]”jë Œc.tty_insert_flip_string_flags”†”asbuh1hhjjubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjjubjô)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjÈ h²hh³jð h´K'ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjÄ h²hh³jð h´K'ubah}”(h]”j¿ ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jð h´K'hjÁ h²hubj’)�”}”(hhh]”hí)�”}”(hŒ add characters to the tty buffer”h]”hŒ add characters to the tty buffer”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”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·‰uh1jßh²hhj¼h³Nh´Nubj¹)�”}”(hX9**Parameters** ``struct tty_port *port`` tty port ``const u8 *chars`` characters ``const u8 *flags`` flag bytes ``size_t size`` size **Description** Queue a series of bytes to the tty buffering. For each character the flags array indicates the status of the character. **Return** the number added.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjéh]”hŒ Parameters”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjçubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K+hjãubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ#``struct tty_port *port`` tty port ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjh]”hŒstruct tty_port *port”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K(hjubj)�”}”(hhh]”hí)�”}”(hŒtty port”h]”hŒtty port”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jh´K(hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jh´K(hjÿubjÞ)�”}”(hŒ``const u8 *chars`` characters ”h]”(jä)�”}”(hŒ``const u8 *chars``”h]”jê)�”}”(hjAh]”hŒconst u8 *chars”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K)hj;ubj)�”}”(hhh]”hí)�”}”(hŒ characters”h]”hŒ characters”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jVh´K)hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jVh´K)hjÿubjÞ)�”}”(hŒ``const u8 *flags`` flag bytes ”h]”(jä)�”}”(hŒ``const u8 *flags``”h]”jê)�”}”(hjzh]”hŒconst u8 *flags”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K*hjtubj)�”}”(hhh]”hí)�”}”(hŒ flag bytes”h]”hŒ flag bytes”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j�h´K*hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j�h´K*hjÿubjÞ)�”}”(hŒ``size_t size`` size ”h]”(jä)�”}”(hŒ``size_t size``”h]”jê)�”}”(hj³h]”hŒ size_t size”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K+hj­ubj)�”}”(hhh]”hí)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jÈh´K+hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jÈh´K+hjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhjãubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hjîh]”hŒ Description”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K-hjãubhí)�”}”(hŒwQueue a series of bytes to the tty buffering. For each character the flags array indicates the status of the character.”h]”hŒwQueue a series of bytes to the tty buffering. For each character the flags array indicates the status of the character.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K,hjãubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hjh]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K/hjãubhí)�”}”(hŒthe number added.”h]”hŒthe number added.”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K0hjãubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hj¼h²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ!tty_insert_flip_char (C function)”Œc.tty_insert_flip_char”hNt”auh1jÎhj¼h²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒCsize_t tty_insert_flip_char (struct tty_port *port, u8 ch, u8 flag)”h]”jë)�”}”(hŒBsize_t tty_insert_flip_char(struct tty_port *port, u8 ch, u8 flag)”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j_Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j Œtty_insert_flip_char”sbŒc.tty_insert_flip_char”†”asbuh1hhjVh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K:ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjVh²hh³j~h´K:ubj3)�”}”(hŒtty_insert_flip_char”h]”jô)�”}”(hj{h]”hŒtty_insert_flip_char”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj�ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjVh²hh³j~h´K:ubjN)�”}”(hŒ'(struct tty_port *port, u8 ch, u8 flag)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj¨ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¨ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÇubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jÌŒmodname”NŒ classname”Njj)�”}”j]”jyŒc.tty_insert_flip_char”†”asbuh1hhj¨ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¨ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj¨ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj¤ubjT)�”}”(hŒu8 ch”h]”(h)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j!Œmodname”NŒ classname”Njj)�”}”j]”jyŒc.tty_insert_flip_char”†”asbuh1hhjubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjubjô)�”}”(hŒch”h]”hŒch”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj¤ubjT)�”}”(hŒu8 flag”h]”(h)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjdubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jiŒmodname”NŒ classname”Njj)�”}”j]”jyŒc.tty_insert_flip_char”†”asbuh1hhj`ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj`ubjô)�”}”(hŒflag”h]”hŒflag”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj¤ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjVh²hh³j~h´K:ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjRh²hh³j~h´K:ubah}”(h]”jMah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³j~h´K:hjOh²hubj’)�”}”(hhh]”hí)�”}”(hŒ#add one character to the tty buffer”h]”hŒ#add one character to the tty buffer”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K:hjºh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjOh²hh³j~h´K:ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³jÕj´jÕjµ‰j¶‰j·‰uh1jßh²hhj¼h³Nh´Nubj¹)�”}”(hŒ¾**Parameters** ``struct tty_port *port`` tty port ``u8 ch`` character ``u8 flag`` flag byte **Description** Queue a single byte **ch** to the tty buffering, with an optional flag.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjßh]”hŒ Parameters”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K>hjÙubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ#``struct tty_port *port`` tty port ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjþh]”hŒstruct tty_port *port”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´K;hjøubj)�”}”(hhh]”hí)�”}”(hŒtty port”h]”hŒtty port”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jh´K;hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jh´K;hjõubjÞ)�”}”(hŒ``u8 ch`` character ”h]”(jä)�”}”(hŒ ``u8 ch``”h]”jê)�”}”(hj7h]”hŒu8 ch”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:21: ./include/linux/tty_flip.h”h´KhjÙubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hj¼h²hh³Nh´Nubeh}”(h]”jah ]”h"]”Œflip buffer management”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhŒ transition”“”)�”}”(hŒ----”h]”h}”(h]”h ]”h"]”h$]”h&]”uh1jðh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒOther Functions”h]”hŒOther Functions”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÍjuh1hÍhjüh²hh³hÇh´KubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ#tty_buffer_space_avail (C function)”Œc.tty_buffer_space_avail”hNt”auh1jÎhjüh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ;unsigned int tty_buffer_space_avail (struct tty_port *port)”h]”jë)�”}”(hŒ:unsigned int tty_buffer_space_avail(struct tty_port *port)”h]”(jÔ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhj"h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´K[ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj"h²hh³j4h´K[ubjÔ)�”}”(hŒint”h]”hŒint”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhj"h²hh³j4h´K[ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj"h²hh³j4h´K[ubj3)�”}”(hŒtty_buffer_space_avail”h]”jô)�”}”(hŒtty_buffer_space_avail”h]”hŒtty_buffer_space_avail”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj_ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hj"h²hh³j4h´K[ubjN)�”}”(hŒ(struct tty_port *port)”h]”jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj{ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj{ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjšubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jŸŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”j jesbŒc.tty_buffer_space_avail”†”asbuh1hhj{ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj{ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj{ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjwubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhj"h²hh³j4h´K[ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjh²hh³j4h´K[ubah}”(h]”jah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³j4h´K[hjh²hubj’)�”}”(hhh]”hí)�”}”(hŒreturn unused buffer space”h]”hŒreturn unused buffer space”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´K[hjÿh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjh²hh³j4h´K[ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³jj´jjµ‰j¶‰j·‰uh1jßh²hhjüh³Nh´Nubj¹)�”}”(hX[**Parameters** ``struct tty_port *port`` tty port owning the flip buffer **Return** the # of bytes which can be written by the driver without reaching the buffer limit. **Note** this does not guarantee that memory is available to write the returned # of bytes (use tty_prepare_flip_string() to pre-allocate if memory guarantee is required).”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hj$h]”hŒ Parameters”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´K_hjubjÙ)�”}”(hhh]”jÞ)�”}”(hŒ:``struct tty_port *port`` tty port owning the flip buffer ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjCh]”hŒstruct tty_port *port”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´K\hj=ubj)�”}”(hhh]”hí)�”}”(hŒtty port owning the flip buffer”h]”hŒtty port owning the flip buffer”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jXh´K\hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jXh´K\hj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhjubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hj~h]”hŒReturn”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´K^hjubhí)�”}”(hŒTthe # of bytes which can be written by the driver without reaching the buffer limit.”h]”hŒTthe # of bytes which can be written by the driver without reaching the buffer limit.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´K^hjubhí)�”}”(hŒ**Note**”h]”jÃ)�”}”(hj¥h]”hŒNote”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´Kahjubhí)�”}”(hŒ¢this does not guarantee that memory is available to write the returned # of bytes (use tty_prepare_flip_string() to pre-allocate if memory guarantee is required).”h]”hŒ¢this does not guarantee that memory is available to write the returned # of bytes (use tty_prepare_flip_string() to pre-allocate if memory guarantee is required).”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´Kahjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjüh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ!tty_buffer_set_limit (C function)”Œc.tty_buffer_set_limit”hNt”auh1jÎhjüh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ;int tty_buffer_set_limit (struct tty_port *port, int limit)”h]”jë)�”}”(hŒ:int tty_buffer_set_limit(struct tty_port *port, int limit)”h]”(jÔ)�”}”(hŒint”h]”hŒint”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjæh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´MVubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjæh²hh³jøh´MVubj3)�”}”(hŒtty_buffer_set_limit”h]”jô)�”}”(hŒtty_buffer_set_limit”h]”hŒtty_buffer_set_limit”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjæh²hh³jøh´MVubjN)�”}”(hŒ"(struct tty_port *port, int limit)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj#ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj#ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jGŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”j j sbŒc.tty_buffer_set_limit”†”asbuh1hhj#ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj#ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj#ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjubjT)�”}”(hŒ int limit”h]”(jÔ)�”}”(hŒint”h]”hŒint”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhj•ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj•ubjô)�”}”(hŒlimit”h]”hŒlimit”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj•ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjæh²hh³jøh´MVubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjâh²hh³jøh´MVubah}”(h]”jÝah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jøh´MVhjßh²hubj’)�”}”(hhh]”hí)�”}”(hŒ"change the tty buffer memory limit”h]”hŒ"change the tty buffer memory limit”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´MVhjÜh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjßh²hh³jøh´MVubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³j÷j´j÷jµ‰j¶‰j·‰uh1jßh²hhjüh³Nh´Nubj¹)�”}”(hŒÙ**Parameters** ``struct tty_port *port`` tty port to change ``int limit`` memory limit to set **Description** Change the tty buffer memory limit. Must be called before the other tty buffer functions are used.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´MZhjûubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ-``struct tty_port *port`` tty port to change ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hj h]”hŒstruct tty_port *port”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´MWhjubj• )�”}”(hhh]”hí)�”}”(hŒtty port to change”h]”hŒtty port to change”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j5h´MWhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j5h´MWhjubjÞ)�”}”(hŒ"``int limit`` memory limit to set ”h]”(jä)�”}”(hŒ ``int limit``”h]”jê)�”}”(hjYh]”hŒ int limit”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´MXhjSubj)�”}”(hhh]”hí)�”}”(hŒmemory limit to set”h]”hŒmemory limit to set”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jnh´MXhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jnh´MXhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhjûubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj”h]”hŒ Description”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´MZhjûubhí)�”}”(hŒ#Change the tty buffer memory limit.”h]”hŒ#Change the tty buffer memory limit.”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´MYhjûubhí)�”}”(hŒ>Must be called before the other tty buffer functions are used.”h]”hŒ>Must be called before the other tty buffer functions are used.”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:30: ./drivers/tty/tty_buffer.c”h´M[hjûubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjüh²hh³Nh´Nubeh}”(h]”j$ah ]”h"]”Œother functions”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kubjñ)�”}”(hŒ----”h]”h}”(h]”h ]”h"]”h$]”h&]”uh1jðh³hÇh´K!hhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒBuffer Locking”h]”hŒBuffer Locking”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÍj@uh1hÍhjàh²hh³hÇh´K$ubhí)�”}”(hŒ9These are used only in special circumstances. Avoid them.”h]”hŒ9These are used only in special circumstances. Avoid them.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³hÇh´K&hjàh²hubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ&tty_buffer_lock_exclusive (C function)”Œc.tty_buffer_lock_exclusive”hNt”auh1jÎhjàh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ6void tty_buffer_lock_exclusive (struct tty_port *port)”h]”jë)�”}”(hŒ5void tty_buffer_lock_exclusive(struct tty_port *port)”h]”(jÔ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´K,ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjh²hh³j&h´K,ubj3)�”}”(hŒtty_buffer_lock_exclusive”h]”jô)�”}”(hŒtty_buffer_lock_exclusive”h]”hŒtty_buffer_lock_exclusive”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj5ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjh²hh³j&h´K,ubjN)�”}”(hŒ(struct tty_port *port)”h]”jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjQubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjQubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”juŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”j j;sbŒc.tty_buffer_lock_exclusive”†”asbuh1hhjQubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjQubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjQubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjQubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjMubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjh²hh³j&h´K,ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjh²hh³j&h´K,ubah}”(h]”j ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³j&h´K,hj h²hubj’)�”}”(hhh]”hí)�”}”(hŒgain exclusive access to buffer”h]”hŒgain exclusive access to buffer”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.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·‰uh1jßh²hhjàh³Nh´Nubj¹)�”}”(hXƒ**Parameters** ``struct tty_port *port`` tty port owning the flip buffer **Description** Guarantees safe use of the :c:type:`tty_ldisc_ops.receive_buf\(\) ` method by excluding the buffer work and any pending flush from using the flip buffer. Data can continue to be added concurrently to the flip buffer from the driver side. See also tty_buffer_unlock_exclusive().”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjúh]”hŒ Parameters”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´K0hjôubjÙ)�”}”(hhh]”jÞ)�”}”(hŒ:``struct tty_port *port`` tty port owning the flip buffer ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjh]”hŒstruct tty_port *port”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´K-hjubj)�”}”(hhh]”hí)�”}”(hŒtty port owning the flip buffer”h]”hŒtty port owning the flip buffer”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j.h´K-hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j.h´K-hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhjôubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hjTh]”hŒ Description”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjRubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´K/hjôubhí)�”}”(hŒüGuarantees safe use of the :c:type:`tty_ldisc_ops.receive_buf\(\) ` method by excluding the buffer work and any pending flush from using the flip buffer. Data can continue to be added concurrently to the flip buffer from the driver side.”h]”(hŒGuarantees safe use of the ”…”�”}”(hjjh²hh³Nh´Nubh)�”}”(hŒ7:c:type:`tty_ldisc_ops.receive_buf\(\) `”h]”jê)�”}”(hjth]”hŒtty_ldisc_ops.receive_buf()”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”(j�j Œc-type”eh"]”h$]”h&]”uh1jéhjrubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jªŒ refdomain”j Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jj)�”}”j]”sbj°Œ tty_ldisc_ops”uh1hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´K.hjjubhŒª method by excluding the buffer work and any pending flush from using the flip buffer. Data can continue to be added concurrently to the flip buffer from the driver side.”…”�”}”(hjjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j”h´K.hjôubhí)�”}”(hŒ'See also tty_buffer_unlock_exclusive().”h]”hŒ'See also tty_buffer_unlock_exclusive().”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´K2hjôubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjàh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ(tty_buffer_unlock_exclusive (C function)”Œc.tty_buffer_unlock_exclusive”hNt”auh1jÎhjàh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ8void tty_buffer_unlock_exclusive (struct tty_port *port)”h]”jë)�”}”(hŒ7void tty_buffer_unlock_exclusive(struct tty_port *port)”h]”(jÔ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjÊh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´KFubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÊh²hh³jÜh´KFubj3)�”}”(hŒtty_buffer_unlock_exclusive”h]”jô)�”}”(hŒtty_buffer_unlock_exclusive”h]”hŒtty_buffer_unlock_exclusive”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjëubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjÊh²hh³jÜh´KFubjN)�”}”(hŒ(struct tty_port *port)”h]”jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j+Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j jñsbŒc.tty_buffer_unlock_exclusive”†”asbuh1hhjubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjÊh²hh³jÜh´KFubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjÆh²hh³jÜh´KFubah}”(h]”jÁah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jÜh´KFhjÃh²hubj’)�”}”(hhh]”hí)�”}”(hŒrelease exclusive access”h]”hŒrelease exclusive access”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´KFhj‹h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÃh²hh³jÜh´KFubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³j¦j´j¦jµ‰j¶‰j·‰uh1jßh²hhjàh³Nh´Nubj¹)�”}”(hŒÆ**Parameters** ``struct tty_port *port`` tty port owning the flip buffer **Description** The buffer work is restarted if there is data in the flip buffer. See also tty_buffer_lock_exclusive().”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hj°h]”hŒ Parameters”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´KJhjªubjÙ)�”}”(hhh]”jÞ)�”}”(hŒ:``struct tty_port *port`` tty port owning the flip buffer ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjÏh]”hŒstruct tty_port *port”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´KGhjÉubj)�”}”(hhh]”hí)�”}”(hŒtty port owning the flip buffer”h]”hŒtty port owning the flip buffer”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jäh´KGhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jäh´KGhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhjªubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´KIhjªubhí)�”}”(hŒAThe buffer work is restarted if there is data in the flip buffer.”h]”hŒAThe buffer work is restarted if there is data in the flip buffer.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´KHhjªubhí)�”}”(hŒ%See also tty_buffer_lock_exclusive().”h]”hŒ%See also tty_buffer_lock_exclusive().”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:40: ./drivers/tty/tty_buffer.c”h´KJhjªubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjàh²hh³Nh´Nubeh}”(h]”jFah ]”h"]”Œbuffer locking”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K$ubjñ)�”}”(hŒ----”h]”h}”(h]”h ]”h"]”h$]”h&]”uh1jðh³hÇh´K+hhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒInternal Functions”h]”hŒInternal Functions”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”jÍjbuh1hÍhjVh²hh³hÇh´K.ubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ tty_buffer_free_all (C function)”Œc.tty_buffer_free_all”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ0void tty_buffer_free_all (struct tty_port *port)”h]”jë)�”}”(hŒ/void tty_buffer_free_all(struct tty_port *port)”h]”(jÔ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhj|h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kyubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj|h²hh³jŽh´Kyubj3)�”}”(hŒtty_buffer_free_all”h]”jô)�”}”(hŒtty_buffer_free_all”h]”hŒtty_buffer_free_all”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj�ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hj|h²hh³jŽh´KyubjN)�”}”(hŒ(struct tty_port *port)”h]”jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj¹ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¹ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjØubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jÝŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”j j£sbŒc.tty_buffer_free_all”†”asbuh1hhj¹ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¹ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj¹ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj¹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjµubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhj|h²hh³jŽh´Kyubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjxh²hh³jŽh´Kyubah}”(h]”jsah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jŽh´Kyhjuh²hubj’)�”}”(hhh]”hí)�”}”(hŒfree buffers used by a tty”h]”hŒfree buffers used by a tty”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kyhj=h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjuh²hh³jŽh´Kyubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³jXj´jXjµ‰j¶‰j·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hŒÚ**Parameters** ``struct tty_port *port`` tty port to free from **Description** Remove all the buffers pending on a tty whether queued with data or in the free ring. Must be called when the tty is no longer in use.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjbh]”hŒ Parameters”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K}hj\ubjÙ)�”}”(hhh]”jÞ)�”}”(hŒ0``struct tty_port *port`` tty port to free from ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hj�h]”hŒstruct tty_port *port”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kzhj{ubj)�”}”(hhh]”hí)�”}”(hŒtty port to free from”h]”hŒtty port to free from”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j–h´Kzhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j–h´Kzhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhj\ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj¼h]”hŒ Description”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjºubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K|hj\ubhí)�”}”(hŒ†Remove all the buffers pending on a tty whether queued with data or in the free ring. Must be called when the tty is no longer in use.”h]”hŒ†Remove all the buffers pending on a tty whether queued with data or in the free ring. Must be called when the tty is no longer in use.”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K{hj\ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒtty_buffer_alloc (C function)”Œc.tty_buffer_alloc”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒIstruct tty_buffer * tty_buffer_alloc (struct tty_port *port, size_t size)”h]”jë)�”}”(hŒGstruct tty_buffer *tty_buffer_alloc(struct tty_port *port, size_t size)”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjýh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K›ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjýh²hh³jh´K›ubh)�”}”(hhh]”jô)�”}”(hŒ tty_buffer”h]”hŒ tty_buffer”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j"Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j Œtty_buffer_alloc”sbŒc.tty_buffer_alloc”†”asbuh1hhjýh²hh³jh´K›ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjýh²hh³jh´K›ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjýh²hh³jh´K›ubj3)�”}”(hŒtty_buffer_alloc”h]”jô)�”}”(hj>h]”hŒtty_buffer_alloc”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj\ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjýh²hh³jh´K›ubjN)�”}”(hŒ$(struct tty_port *port, size_t size)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjwubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjwubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj–ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j›Œmodname”NŒ classname”Njj)�”}”j]”j<Œc.tty_buffer_alloc”†”asbuh1hhjwubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjwubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjwubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjsubjT)�”}”(hŒ size_t size”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjëubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jðŒmodname”NŒ classname”Njj)�”}”j]”j<Œc.tty_buffer_alloc”†”asbuh1hhjçubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjçubjô)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjçubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjsubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjýh²hh³jh´K›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjùh²hh³jh´K›ubah}”(h]”jôah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jh´K›hjöh²hubj’)�”}”(hhh]”hí)�”}”(hŒallocate a tty buffer”h]”hŒallocate a tty buffer”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K›hjAh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjöh²hh³jh´K›ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³j\j´j\jµ‰j¶‰j·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hXh**Parameters** ``struct tty_port *port`` tty port ``size_t size`` desired size (characters) **Description** Allocate a new tty buffer to hold the desired number of characters. We round our buffers off in 256 character chunks to get better allocation behaviour. **Return** ``NULL`` if out of memory or the allocation would exceed the per device queue.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjfh]”hŒ Parameters”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KŸhj`ubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ#``struct tty_port *port`` tty port ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hj…h]”hŒstruct tty_port *port”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kœhjubj)�”}”(hhh]”hí)�”}”(hŒtty port”h]”hŒtty port”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jšh´Kœhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jšh´Kœhj|ubjÞ)�”}”(hŒ*``size_t size`` desired size (characters) ”h]”(jä)�”}”(hŒ``size_t size``”h]”jê)�”}”(hj¾h]”hŒ size_t size”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K�hj¸ubj)�”}”(hhh]”hí)�”}”(hŒdesired size (characters)”h]”hŒdesired size (characters)”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jÓh´K�hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jÓh´K�hj|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhj`ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hjùh]”hŒ Description”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KŸhj`ubhí)�”}”(hŒ˜Allocate a new tty buffer to hold the desired number of characters. We round our buffers off in 256 character chunks to get better allocation behaviour.”h]”hŒ˜Allocate a new tty buffer to hold the desired number of characters. We round our buffers off in 256 character chunks to get better allocation behaviour.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kžhj`ubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hj h]”hŒReturn”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K¢hj`ubhí)�”}”(hŒN``NULL`` if out of memory or the allocation would exceed the per device queue.”h]”(jê)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj6ubhŒF if out of memory or the allocation would exceed the per device queue.”…”�”}”(hj6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´K£hj`ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒtty_buffer_free (C function)”Œc.tty_buffer_free”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒBvoid tty_buffer_free (struct tty_port *port, struct tty_buffer *b)”h]”jë)�”}”(hŒAvoid tty_buffer_free(struct tty_port *port, struct tty_buffer *b)”h]”(jÔ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjoh²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÆubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjoh²hh³j�h´KÆubj3)�”}”(hŒtty_buffer_free”h]”jô)�”}”(hŒtty_buffer_free”h]”hŒtty_buffer_free”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj�ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjoh²hh³j�h´KÆubjN)�”}”(hŒ-(struct tty_port *port, struct tty_buffer *b)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj¬ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¬ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjËubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jÐŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”j j–sbŒc.tty_buffer_free”†”asbuh1hhj¬ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¬ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj¬ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj¨ubjT)�”}”(hŒstruct tty_buffer *b”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj ubh)�”}”(hhh]”jô)�”}”(hŒ tty_buffer”h]”hŒ tty_buffer”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj= ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jB Œmodname”NŒ classname”Njj)�”}”j]”jêŒc.tty_buffer_free”†”asbuh1hhj ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjl h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj ubjô)�”}”(hŒb”h]”hŒb”…”�”}”(hjy h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj¨ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjoh²hh³j�h´KÆubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjkh²hh³j�h´KÆubah}”(h]”jfah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³j�h´KÆhjhh²hubj’)�”}”(hhh]”hí)�”}”(hŒfree a tty buffer”h]”hŒfree a tty buffer”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÆhj  h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjhh²hh³j�h´KÆubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³j» j´j» jµ‰j¶‰j·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hŒÙ**Parameters** ``struct tty_port *port`` tty port owning the buffer ``struct tty_buffer *b`` the buffer to free **Description** Free a tty buffer, or add it to the free list according to our internal strategy.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjÅ h]”hŒ Parameters”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÊhj¿ ubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ5``struct tty_port *port`` tty port owning the buffer ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjä h]”hŒstruct tty_port *port”…”�”}”(hjæ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjâ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÇhjÞ ubj)�”}”(hhh]”hí)�”}”(hŒtty port owning the buffer”h]”hŒtty port owning the buffer”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jù h´KÇhjú ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjÞ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jù h´KÇhjÛ ubjÞ)�”}”(hŒ,``struct tty_buffer *b`` the buffer to free ”h]”(jä)�”}”(hŒ``struct tty_buffer *b``”h]”jê)�”}”(hj!h]”hŒstruct tty_buffer *b”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÈhj!ubj)�”}”(hhh]”hí)�”}”(hŒthe buffer to free”h]”hŒthe buffer to free”…”�”}”(hj6!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j2!h´KÈhj3!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j2!h´KÈhjÛ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhj¿ ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hjX!h]”hŒ Description”…”�”}”(hjZ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjV!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÊhj¿ ubhí)�”}”(hŒQFree a tty buffer, or add it to the free list according to our internal strategy.”h]”hŒQFree a tty buffer, or add it to the free list according to our internal strategy.”…”�”}”(hjn!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÉhj¿ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒtty_buffer_flush (C function)”Œc.tty_buffer_flush”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒDvoid tty_buffer_flush (struct tty_struct *tty, struct tty_ldisc *ld)”h]”jë)�”}”(hŒCvoid tty_buffer_flush(struct tty_struct *tty, struct tty_ldisc *ld)”h]”(jÔ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�!h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhj™!h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.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Ûubj3)�”}”(hŒtty_buffer_flush”h]”jô)�”}”(hŒtty_buffer_flush”h]”hŒtty_buffer_flush”…”�”}”(hj¾!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjº!ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hj™!h²hh³j«!h´KÛubjN)�”}”(hŒ.(struct tty_struct *tty, struct tty_ldisc *ld)”h]”(jT)�”}”(hŒstruct tty_struct *tty”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hjÚ!h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjÖ!ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç!h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÖ!ubh)�”}”(hhh]”jô)�”}”(hŒ tty_struct”h]”hŒ tty_struct”…”�”}”(hjø!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjõ!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jú!Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j jÀ!sbŒc.tty_buffer_flush”†”asbuh1hhjÖ!ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjÖ!ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj&"h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjÖ!ubjô)�”}”(hŒtty”h]”hŒtty”…”�”}”(hj3"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjÖ!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjÒ!ubjT)�”}”(hŒstruct tty_ldisc *ld”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hjL"h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjH"ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjY"h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjH"ubh)�”}”(hhh]”jô)�”}”(hŒ tty_ldisc”h]”hŒ tty_ldisc”…”�”}”(hjj"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjg"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jl"Œmodname”NŒ classname”Njj)�”}”j]”j"Œc.tty_buffer_flush”†”asbuh1hhjH"ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆ"h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjH"ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj–"h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjH"ubjô)�”}”(hŒld”h]”hŒld”…”�”}”(hj£"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjH"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjÒ!ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhj™!h²hh³j«!h´KÛubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hj•!h²hh³j«!h´KÛubah}”(h]”j�!ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³j«!h´KÛhj’!h²hubj’)�”}”(hhh]”hí)�”}”(hŒflush full tty buffers”h]”hŒflush full tty buffers”…”�”}”(hjÍ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.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·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hXA**Parameters** ``struct tty_struct *tty`` tty to flush ``struct tty_ldisc *ld`` optional ldisc ptr (must be referenced) **Description** Flush all the buffers containing receive data. If **ld** != ``NULL``, flush the ldisc input buffer. Locking: takes buffer lock to ensure single-threaded flip buffer 'consumer'.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjï"h]”hŒ Parameters”…”�”}”(hjñ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjí"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kßhjé"ubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ(``struct tty_struct *tty`` tty to flush ”h]”(jä)�”}”(hŒ``struct tty_struct *tty``”h]”jê)�”}”(hj#h]”hŒstruct tty_struct *tty”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj #ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÜhj#ubj)�”}”(hhh]”hí)�”}”(hŒ tty to flush”h]”hŒ tty to flush”…”�”}”(hj'#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j##h´KÜhj$#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j##h´KÜhj#ubjÞ)�”}”(hŒA``struct tty_ldisc *ld`` optional ldisc ptr (must be referenced) ”h]”(jä)�”}”(hŒ``struct tty_ldisc *ld``”h]”jê)�”}”(hjG#h]”hŒstruct tty_ldisc *ld”…”�”}”(hjI#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjE#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÝhjA#ubj)�”}”(hhh]”hí)�”}”(hŒ'optional ldisc ptr (must be referenced)”h]”hŒ'optional ldisc ptr (must be referenced)”…”�”}”(hj`#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j\#h´KÝhj]#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjA#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j\#h´KÝhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhjé"ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj‚#h]”hŒ Description”…”�”}”(hj„#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj€#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kßhjé"ubhí)�”}”(hŒcFlush all the buffers containing receive data. If **ld** != ``NULL``, flush the ldisc input buffer.”h]”(hŒ2Flush all the buffers containing receive data. If ”…”�”}”(hj˜#h²hh³Nh´NubjÃ)�”}”(hŒ**ld**”h]”hŒld”…”�”}”(hj #h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj˜#ubhŒ != ”…”�”}”(hj˜#h²hh³Nh´Nubjê)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj²#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj˜#ubhŒ, flush the ldisc input buffer.”…”�”}”(hj˜#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´KÞhjé"ubhí)�”}”(hŒLLocking: takes buffer lock to ensure single-threaded flip buffer 'consumer'.”h]”hŒPLocking: takes buffer lock to ensure single-threaded flip buffer ‘consumer’.”…”�”}”(hjË#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Káhjé"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ&__tty_buffer_request_room (C function)”Œc.__tty_buffer_request_room”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒNint __tty_buffer_request_room (struct tty_port *port, size_t size, bool flags)”h]”jë)�”}”(hŒMint __tty_buffer_request_room(struct tty_port *port, size_t size, bool flags)”h]”(jÔ)�”}”(hŒint”h]”hŒint”…”�”}”(hjú#h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjö#h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.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ÿubj3)�”}”(hŒ__tty_buffer_request_room”h]”jô)�”}”(hŒ__tty_buffer_request_room”h]”hŒ__tty_buffer_request_room”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj$ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjö#h²hh³j$h´KÿubjN)�”}”(hŒ0(struct tty_port *port, size_t size, bool flags)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj7$h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj3$ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjD$h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj3$ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hjU$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjR$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jW$Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j j$sbŒc.__tty_buffer_request_room”†”asbuh1hhj3$ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hju$h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj3$ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjƒ$h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj3$ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hj�$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj3$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj/$ubjT)�”}”(hŒ size_t size”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj¬$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj©$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j®$Œmodname”NŒ classname”Njj)�”}”j]”jq$Œc.__tty_buffer_request_room”†”asbuh1hhj¥$ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ$h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj¥$ubjô)�”}”(hŒsize”h]”hŒsize”…”�”}”(hjØ$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj¥$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj/$ubjT)�”}”(hŒ bool flags”h]”(jÔ)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjñ$h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjí$ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿ$h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjí$ubjô)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjí$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj/$ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjö#h²hh³j$h´Kÿubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjò#h²hh³j$h´Kÿubah}”(h]”jí#ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³j$h´Kÿhjï#h²hubj’)�”}”(hhh]”hí)�”}”(hŒgrow tty buffer if needed”h]”hŒgrow tty buffer if needed”…”�”}”(hj7%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Kÿhj4%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³jO%j´jO%jµ‰j¶‰j·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hX¶**Parameters** ``struct tty_port *port`` tty port ``size_t size`` size desired ``bool flags`` buffer has to store flags along character data **Description** Make at least **size** bytes of linear space available for the tty buffer. Will change over to a new buffer if the current buffer is encoded as ``TTY_NORMAL`` (so has no flags buffer) and the new buffer requires a flags buffer. **Return** the size we managed to find.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjY%h]”hŒ Parameters”…”�”}”(hj[%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjW%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MhjS%ubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ#``struct tty_port *port`` tty port ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjx%h]”hŒstruct tty_port *port”…”�”}”(hjz%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjv%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Mhjr%ubj)�”}”(hhh]”hí)�”}”(hŒtty port”h]”hŒtty port”…”�”}”(hj‘%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j�%h´MhjŽ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjr%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j�%h´Mhjo%ubjÞ)�”}”(hŒ``size_t size`` size desired ”h]”(jä)�”}”(hŒ``size_t size``”h]”jê)�”}”(hj±%h]”hŒ size_t size”…”�”}”(hj³%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj¯%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Mhj«%ubj)�”}”(hhh]”hí)�”}”(hŒ size desired”h]”hŒ size desired”…”�”}”(hjÊ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jÆ%h´MhjÇ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj«%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jÆ%h´Mhjo%ubjÞ)�”}”(hŒ>``bool flags`` buffer has to store flags along character data ”h]”(jä)�”}”(hŒ``bool flags``”h]”jê)�”}”(hjê%h]”hŒ bool flags”…”�”}”(hjì%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjè%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´Mhjä%ubj)�”}”(hhh]”hí)�”}”(hŒ.buffer has to store flags along character data”h]”hŒ.buffer has to store flags along character data”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jÿ%h´Mhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjä%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jÿ%h´Mhjo%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhjS%ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj%&h]”hŒ Description”…”�”}”(hj'&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj#&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MhjS%ubhí)�”}”(hŒJMake at least **size** bytes of linear space available for the tty buffer.”h]”(hŒMake at least ”…”�”}”(hj;&h²hh³Nh´NubjÃ)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjC&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj;&ubhŒ4 bytes of linear space available for the tty buffer.”…”�”}”(hj;&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MhjS%ubhí)�”}”(hŒ˜Will change over to a new buffer if the current buffer is encoded as ``TTY_NORMAL`` (so has no flags buffer) and the new buffer requires a flags buffer.”h]”(hŒEWill change over to a new buffer if the current buffer is encoded as ”…”�”}”(hj\&h²hh³Nh´Nubjê)�”}”(hŒ``TTY_NORMAL``”h]”hŒ TTY_NORMAL”…”�”}”(hjd&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj\&ubhŒE (so has no flags buffer) and the new buffer requires a flags buffer.”…”�”}”(hj\&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MhjS%ubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hj&h]”hŒReturn”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj}&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M hjS%ubhí)�”}”(hŒthe size we managed to find.”h]”hŒthe size we managed to find.”…”�”}”(hj•&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M hjS%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒflush_to_ldisc (C function)”Œc.flush_to_ldisc”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ.void flush_to_ldisc (struct work_struct *work)”h]”jë)�”}”(hŒ-void flush_to_ldisc(struct work_struct *work)”h]”(jÔ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÄ&h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjÀ&h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.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Ëubj3)�”}”(hŒflush_to_ldisc”h]”jô)�”}”(hŒflush_to_ldisc”h]”hŒflush_to_ldisc”…”�”}”(hjå&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjá&ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjÀ&h²hh³jÒ&h´MËubjN)�”}”(hŒ(struct work_struct *work)”h]”jT)�”}”(hŒstruct work_struct *work”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjý&ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjý&ubh)�”}”(hhh]”jô)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j!'Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j jç&sbŒc.flush_to_ldisc”†”asbuh1hhjý&ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?'h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjý&ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjM'h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjý&ubjô)�”}”(hŒwork”h]”hŒwork”…”�”}”(hjZ'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjý&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShjù&ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjÀ&h²hh³jÒ&h´MËubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hj¼&h²hh³jÒ&h´MËubah}”(h]”j·&ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jÒ&h´MËhj¹&h²hubj’)�”}”(hhh]”hí)�”}”(hŒflush data from buffer to ldisc”h]”hŒflush data from buffer to ldisc”…”�”}”(hj„'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.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·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hXi**Parameters** ``struct work_struct *work`` tty structure passed from work queue. **Description** This routine is called out of the software interrupt to flush data from the buffer chain to the line discipline. The receive_buf() method is single threaded for each tty instance. Locking: takes buffer lock to ensure single-threaded flip buffer 'consumer'.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hj¦'h]”hŒ Parameters”…”�”}”(hj¨'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj¤'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MÏhj 'ubjÙ)�”}”(hhh]”jÞ)�”}”(hŒC``struct work_struct *work`` tty structure passed from work queue. ”h]”(jä)�”}”(hŒ``struct work_struct *work``”h]”jê)�”}”(hjÅ'h]”hŒstruct work_struct *work”…”�”}”(hjÇ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjÃ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MÌhj¿'ubj)�”}”(hhh]”hí)�”}”(hŒ%tty structure passed from work queue.”h]”hŒ%tty structure passed from work queue.”…”�”}”(hjÞ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jÚ'h´MÌhjÛ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj¿'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jÚ'h´MÌhj¼'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhj 'ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj(h]”hŒ Description”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjþ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MÎhj 'ubhí)�”}”(hŒpThis routine is called out of the software interrupt to flush data from the buffer chain to the line discipline.”h]”hŒpThis routine is called out of the software interrupt to flush data from the buffer chain to the line discipline.”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MÍhj 'ubhí)�”}”(hŒBThe receive_buf() method is single threaded for each tty instance.”h]”hŒBThe receive_buf() method is single threaded for each tty instance.”…”�”}”(hj%(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MÐhj 'ubhí)�”}”(hŒLLocking: takes buffer lock to ensure single-threaded flip buffer 'consumer'.”h]”hŒPLocking: takes buffer lock to ensure single-threaded flip buffer ‘consumer’.”…”�”}”(hj4(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MÒhj 'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒ3tty_insert_flip_string_and_push_buffer (C function)”Œ(c.tty_insert_flip_string_and_push_buffer”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ`int tty_insert_flip_string_and_push_buffer (struct tty_port *port, const u8 *chars, size_t size)”h]”jë)�”}”(hŒ_int tty_insert_flip_string_and_push_buffer(struct tty_port *port, const u8 *chars, size_t size)”h]”(jÔ)�”}”(hŒint”h]”hŒint”…”�”}”(hjc(h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhj_(h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M!ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr(h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj_(h²hh³jq(h´M!ubj3)�”}”(hŒ&tty_insert_flip_string_and_push_buffer”h]”jô)�”}”(hŒ&tty_insert_flip_string_and_push_buffer”h]”hŒ&tty_insert_flip_string_and_push_buffer”…”�”}”(hj„(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj€(ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hj_(h²hh³jq(h´M!ubjN)�”}”(hŒ5(struct tty_port *port, const u8 *chars, size_t size)”h]”(jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhjœ(ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­(h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjœ(ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj¾(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj»(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”jÀ(Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j j†(sbŒ(c.tty_insert_flip_string_and_push_buffer”†”asbuh1hhjœ(ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞ(h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjœ(ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjì(h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjœ(ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjù(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjœ(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj˜(ubjT)�”}”(hŒconst u8 *chars”h]”(jZ)�”}”(hjéh]”hŒconst”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj)ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj)ubh)�”}”(hhh]”jô)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj0)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj-)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j2)Œmodname”NŒ classname”Njj)�”}”j]”jÚ(Œ(c.tty_insert_flip_string_and_push_buffer”†”asbuh1hhj)ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN)h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj)ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj\)h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj)ubjô)�”}”(hŒchars”h]”hŒchars”…”�”}”(hji)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj˜(ubjT)�”}”(hŒ size_t size”h]”(h)�”}”(hhh]”jô)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj…)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj‚)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j‡)Œmodname”NŒ classname”Njj)�”}”j]”jÚ(Œ(c.tty_insert_flip_string_and_push_buffer”†”asbuh1hhj~)ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£)h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj~)ubjô)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj±)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj~)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj˜(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhj_(h²hh³jq(h´M!ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hj[(h²hh³jq(h´M!ubah}”(h]”jV(ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jq(h´M!hjX(h²hubj’)�”}”(hhh]”hí)�”}”(hŒ)add characters to the tty buffer and push”h]”hŒ)add characters to the tty buffer and push”…”�”}”(hjÛ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M!hjØ)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjX(h²hh³jq(h´M!ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³jó)j´jó)jµ‰j¶‰j·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hXT**Parameters** ``struct tty_port *port`` tty port ``const u8 *chars`` characters ``size_t size`` size **Description** The function combines tty_insert_flip_string() and tty_flip_buffer_push() with the exception of properly holding the **port->lock**. To be used only internally (by pty currently). **Return** the number added.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hjý)h]”hŒ Parameters”…”�”}”(hjÿ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjû)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M%hj÷)ubjÙ)�”}”(hhh]”(jÞ)�”}”(hŒ#``struct tty_port *port`` tty port ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hj*h]”hŒstruct tty_port *port”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M#hj*ubj)�”}”(hhh]”hí)�”}”(hŒtty port”h]”hŒtty port”…”�”}”(hj5*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j1*h´M#hj2*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j1*h´M#hj*ubjÞ)�”}”(hŒ``const u8 *chars`` characters ”h]”(jä)�”}”(hŒ``const u8 *chars``”h]”jê)�”}”(hjU*h]”hŒconst u8 *chars”…”�”}”(hjW*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjS*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M$hjO*ubj)�”}”(hhh]”hí)�”}”(hŒ characters”h]”hŒ characters”…”�”}”(hjn*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jj*h´M$hjk*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjO*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jj*h´M$hj*ubjÞ)�”}”(hŒ``size_t size`` size ”h]”(jä)�”}”(hŒ``size_t size``”h]”jê)�”}”(hjŽ*h]”hŒ size_t size”…”�”}”(hj�*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjŒ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M%hjˆ*ubj)�”}”(hhh]”hí)�”}”(hŒsize”h]”hŒsize”…”�”}”(hj§*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³j£*h´M%hj¤*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjˆ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³j£*h´M%hj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhj÷)ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hjÉ*h]”hŒ Description”…”�”}”(hjË*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjÇ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M'hj÷)ubhí)�”}”(hŒ„The function combines tty_insert_flip_string() and tty_flip_buffer_push() with the exception of properly holding the **port->lock**.”h]”(hŒuThe function combines tty_insert_flip_string() and tty_flip_buffer_push() with the exception of properly holding the ”…”�”}”(hjß*h²hh³Nh´NubjÃ)�”}”(hŒ**port->lock**”h]”hŒ port->lock”…”�”}”(hjç*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhjß*ubhŒ.”…”�”}”(hjß*h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M&hj÷)ubhí)�”}”(hŒ.To be used only internally (by pty currently).”h]”hŒ.To be used only internally (by pty currently).”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M)hj÷)ubhí)�”}”(hŒ **Return**”h]”jÃ)�”}”(hj+h]”hŒReturn”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M+hj÷)ubhí)�”}”(hŒthe number added.”h]”hŒthe number added.”…”�”}”(hj'+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M,hj÷)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´NubjÏ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÛŒtty_buffer_init (C function)”Œc.tty_buffer_init”hNt”auh1jÎhjVh²hh³Nh´Nubjà)�”}”(hhh]”(jå)�”}”(hŒ,void tty_buffer_init (struct tty_port *port)”h]”jë)�”}”(hŒ+void tty_buffer_init(struct tty_port *port)”h]”(jÔ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjV+h²hh³Nh´Nubah}”(h]”h ]”jàah"]”h$]”h&]”uh1jÓhjR+h²hh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M@ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hje+h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hjR+h²hh³jd+h´M@ubj3)�”}”(hŒtty_buffer_init”h]”jô)�”}”(hŒtty_buffer_init”h]”hŒtty_buffer_init”…”�”}”(hjw+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhjs+ubah}”(h]”h ]”(jHjIeh"]”h$]”h&]”hÅhÆuh1j2hjR+h²hh³jd+h´M@ubjN)�”}”(hŒ(struct tty_port *port)”h]”jT)�”}”(hŒstruct tty_port *port”h]”(jZ)�”}”(hj]h]”hŒstruct”…”�”}”(hj“+h²hh³Nh´Nubah}”(h]”h ]”jfah"]”h$]”h&]”uh1jYhj�+ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hj +h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj�+ubh)�”}”(hhh]”jô)�”}”(hŒtty_port”h]”hŒtty_port”…”�”}”(hj±+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj®+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j Œ reftarget”j³+Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”j jy+sbŒc.tty_buffer_init”†”asbuh1hhj�+ubj")�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑ+h²hh³Nh´Nubah}”(h]”h ]”j.ah"]”h$]”h&]”uh1j!hj�+ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjß+h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj�+ubjô)�”}”(hŒport”h]”hŒport”…”�”}”(hjì+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jóhj�+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jShj‹+ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jMhjR+h²hh³jd+h´M@ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjƒˆuh1jêj„j…hjN+h²hh³jd+h´M@ubah}”(h]”jI+ah ]”(j‰jŠeh"]”h$]”h&]”jŽˆj�)j�huh1jäh³jd+h´M@hjK+h²hubj’)�”}”(hhh]”hí)�”}”(hŒprepare a tty buffer structure”h]”hŒprepare a tty buffer structure”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´M@hj,h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjK+h²hh³jd+h´M@ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j²j j³j.,j´j.,jµ‰j¶‰j·‰uh1jßh²hhjVh³Nh´Nubj¹)�”}”(hŒ×**Parameters** ``struct tty_port *port`` tty port to initialise **Description** Set up the initial state of the buffer management for a tty device. Must be called before the other tty buffer functions are used.”h]”(hí)�”}”(hŒ**Parameters**”h]”jÃ)�”}”(hj8,h]”hŒ Parameters”…”�”}”(hj:,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj6,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MDhj2,ubjÙ)�”}”(hhh]”jÞ)�”}”(hŒ1``struct tty_port *port`` tty port to initialise ”h]”(jä)�”}”(hŒ``struct tty_port *port``”h]”jê)�”}”(hjW,h]”hŒstruct tty_port *port”…”�”}”(hjY,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéhjU,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MAhjQ,ubj)�”}”(hhh]”hí)�”}”(hŒtty port to initialise”h]”hŒtty port to initialise”…”�”}”(hjp,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³jl,h´MAhjm,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjQ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝh³jl,h´MAhjN,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhj2,ubhí)�”}”(hŒ**Description**”h]”jÃ)�”}”(hj’,h]”hŒ Description”…”�”}”(hj”,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj�,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MChj2,ubhí)�”}”(hŒ‚Set up the initial state of the buffer management for a tty device. Must be called before the other tty buffer functions are used.”h]”hŒ‚Set up the initial state of the buffer management for a tty device. Must be called before the other tty buffer functions are used.”…”�”}”(hj¨,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hìh³Œb/var/lib/git/docbuild/linux/Documentation/driver-api/tty/tty_buffer:48: ./drivers/tty/tty_buffer.c”h´MBhj2,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j¸hjVh²hh³Nh´Nubeh}”(h]”jhah ]”h"]”Œinternal functions”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K.ubeh}”(h]”Œ tty-buffer”ah ]”h"]”Œ tty buffer”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Ç,j‚j}jíjjÓj$jIjFjÂ,jhuŒ nametypes”}”(jÊ,‰j‚‰jí‰jÓ‰jI‰jÂ,‰uh}”(jÇ,hÊj}hßjj¼jÝjæjjjÆjËjY j^ j¿ jÄ jMjRj$jüjjjÝjâjFjàj jjÁjÆjhjVjsjxjôjùjfjkj�!j•!jí#jò#j·&j¼&jV(j[(jI+jN+hühójjj@j7jbjYuŒ 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”“”}”jþ,Ks…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.