€•ÞUŒ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”Œ2/translations/zh_CN/PCI/endpoint/pci-vntb-function”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/zh_TW/PCI/endpoint/pci-vntb-function”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/it_IT/PCI/endpoint/pci-vntb-function”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ja_JP/PCI/endpoint/pci-vntb-function”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ko_KR/PCI/endpoint/pci-vntb-function”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/pt_BR/PCI/endpoint/pci-vntb-function”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/sp_SP/PCI/endpoint/pci-vntb-function”Œ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³ŒL/var/lib/git/docbuild/linux/Documentation/PCI/endpoint/pci-vntb-function.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒPCI vNTB Function”h]”hŒPCI vNTB Function”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ field_list”“”)�”}”(hhh]”hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhäh³hÇh´KubhŒ field_body”“”)�”}”(hŒFrank Li ”h]”hŒ paragraph”“”)�”}”(hŒFrank Li ”h]”(hŒ Frank Li <”…”�”}”(hhÿh²hh³Nh´NubhŒ reference”“”)�”}”(hŒFrank.Li@nxp.com”h]”hŒFrank.Li@nxp.com”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:Frank.Li@nxp.com”uh1jhhÿubhŒ>”…”�”}”(hhÿh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Khhùubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhäubeh}”(h]”h ]”h"]”h$]”h&]”uh1hâh³hÇh´Khhßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝhhÊh²hh³hÇh´Kubhþ)�”}”(hŒ@The difference between PCI NTB function and PCI vNTB function is”h]”hŒ@The difference between PCI NTB function and PCI vNTB function is”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K hhÊh²hubhþ)�”}”(hŒLPCI NTB function need at two endpoint instances and connect HOST1 and HOST2.”h]”hŒLPCI NTB function need at two endpoint instances and connect HOST1 and HOST2.”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K hhÊh²hubhþ)�”}”(hŒYPCI vNTB function only use one host and one endpoint(EP), use NTB connect EP and PCI host”h]”hŒYPCI vNTB function only use one host and one endpoint(EP), use NTB connect EP and PCI host”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KhhÊh²hubhŒ literal_block”“”)�”}”(hX}+------------+ +---------------------------------------+ | | | | +------------+ | +--------------+ | NTB | | | NTB | | NetDev | | | NetDev | +------------+ | +--------------+ | NTB | | | NTB | | Transfer | | | Transfer | +------------+ | +--------------+ | | | | | | PCI NTB | | | | | EPF | | | | | Driver | | | PCI Virtual | | | +---------------+ | NTB Driver | | | | PCI EP NTB |<------>| | | | | FN Driver | | | +------------+ +---------------+ +--------------+ | | | | | | | PCI BUS | <-----> | PCI EP BUS | | Virtual PCI | | | PCI | | | BUS | +------------+ +---------------+--------+--------------+ PCI RC PCI EP”h]”hX}+------------+ +---------------------------------------+ | | | | +------------+ | +--------------+ | NTB | | | NTB | | NetDev | | | NetDev | +------------+ | +--------------+ | NTB | | | NTB | | Transfer | | | Transfer | +------------+ | +--------------+ | | | | | | PCI NTB | | | | | EPF | | | | | Driver | | | PCI Virtual | | | +---------------+ | NTB Driver | | | | PCI EP NTB |<------>| | | | | FN Driver | | | +------------+ +---------------+ +--------------+ | | | | | | | PCI BUS | <-----> | PCI EP BUS | | Virtual PCI | | | PCI | | | BUS | +------------+ +---------------+--------+--------------+ PCI RC PCI EP”…”�”}”hjasbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”Œtext”Œhighlight_args”}”uh1j_h³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ%Constructs used for Implementing vNTB”h]”hŒ%Constructs used for Implementing vNTB”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjth²hh³hÇh´K,ubhŒ block_quote”“”)�”}”(hŒ}1) Config Region 2) Self Scratchpad Registers 3) Peer Scratchpad Registers 4) Doorbell (DB) Registers 5) Memory Window (MW) ”h]”hŒenumerated_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ Config Region”h]”hþ)�”}”(hj”h]”hŒ Config Region”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K.hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubj‘)�”}”(hŒSelf Scratchpad Registers”h]”hþ)�”}”(hj«h]”hŒSelf Scratchpad Registers”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K/hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubj‘)�”}”(hŒPeer Scratchpad Registers”h]”hþ)�”}”(hjÂh]”hŒPeer Scratchpad Registers”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K0hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubj‘)�”}”(hŒDoorbell (DB) Registers”h]”hþ)�”}”(hjÙh]”hŒDoorbell (DB) Registers”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K1hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubj‘)�”}”(hŒMemory Window (MW) ”h]”hþ)�”}”(hŒMemory Window (MW)”h]”hŒMemory Window (MW)”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K2hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1j‹hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÇh´K.hjth²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒConfig Region:”h]”hŒConfig Region:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´K6ubhþ)�”}”(hŒ%It is same as PCI NTB Function driver”h]”hŒ%It is same as PCI NTB Function driver”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K8hjh²hubeh}”(h]”Œ config-region”ah ]”h"]”Œconfig region:”ah$]”h&]”uh1hÈhjth²hh³hÇh´K6ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒScratchpad Registers:”h]”hŒScratchpad Registers:”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj>h²hh³hÇh´K;ubhþ)�”}”(hŒ#It is appended after Config region.”h]”hŒ#It is appended after Config region.”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K=hj>h²hubj`)�”}”(hX…+--------------------------------------------------+ Base | | | | | | | Common Config Register | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | | Peer Span Space | Span Space | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | + span_count * 4 | | | | Span Space | Peer Span Space | | | | +-----------------------+--------------------------+ Virtual PCI Pcie Endpoint NTB Driver NTB Driver”h]”hX…+--------------------------------------------------+ Base | | | | | | | Common Config Register | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | | Peer Span Space | Span Space | | | | | | | +-----------------------+--------------------------+ Base + span_offset | | | + span_count * 4 | | | | Span Space | Peer Span Space | | | | +-----------------------+--------------------------+ Virtual PCI Pcie Endpoint NTB Driver NTB Driver”…”�”}”hj]sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjo‰jpŒtext”jr}”uh1j_h³hÇh´K?hj>h²hubeh}”(h]”Œscratchpad-registers”ah ]”h"]”Œscratchpad registers:”ah$]”h&]”uh1hÈhjth²hh³hÇh´K;ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDoorbell Registers:”h]”hŒDoorbell Registers:”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjuh²hh³hÇh´KZubj†)�”}”(hŒBDoorbell Registers are used by the hosts to interrupt each other. ”h]”hþ)�”}”(hŒADoorbell Registers are used by the hosts to interrupt each other.”h]”hŒADoorbell Registers are used by the hosts to interrupt each other.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K\hj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÇh´K\hjuh²hubeh}”(h]”Œdoorbell-registers”ah ]”h"]”Œdoorbell registers:”ah$]”h&]”uh1hÈhjth²hh³hÇh´KZubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒMemory Window:”h]”hŒMemory Window:”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¦h²hh³hÇh´K_ubj†)�”}”(hŒSActual transfer of data between the two hosts will happen using the memory window. ”h]”hþ)�”}”(hŒRActual transfer of data between the two hosts will happen using the memory window.”h]”hŒRActual transfer of data between the two hosts will happen using the memory window.”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kahj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÇh´Kahj¦h²hubeh}”(h]”Œ memory-window”ah ]”h"]”Œmemory window:”ah$]”h&]”uh1hÈhjth²hh³hÇh´K_ubeh}”(h]”Œ%constructs-used-for-implementing-vntb”ah ]”h"]”Œ%constructs used for implementing vntb”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K,ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒModeling Constructs:”h]”hŒModeling Constructs:”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjßh²hh³hÇh´Keubhþ)�”}”(hŒ 32-bit BARs.”h]”hŒ 32-bit BARs.”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kghjßh²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jhjubj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jhjubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hþ)�”}”(hŒBAR NO”h]”hŒBAR NO”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kjhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj%ubj))�”}”(hhh]”hþ)�”}”(hŒCONSTRUCTS USED”h]”hŒCONSTRUCTS USED”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KjhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubhŒtbody”“”)�”}”(hhh]”(j$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR0”h]”hŒBAR0”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Klhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjiubj))�”}”(hhh]”hþ)�”}”(hŒ Config Region”h]”hŒ Config Region”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Klhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hjfubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR1”h]”hŒBAR1”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kmhj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj ubj))�”}”(hhh]”hþ)�”}”(hŒDoorbell”h]”hŒDoorbell”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kmhjºubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hjfubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR2”h]”hŒBAR2”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KnhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj×ubj))�”}”(hhh]”hþ)�”}”(hŒMemory Window 1”h]”hŒMemory Window 1”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Knhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hjfubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR3”h]”hŒBAR3”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kohjubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjubj))�”}”(hhh]”hþ)�”}”(hŒMemory Window 2”h]”hŒMemory Window 2”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kohj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hjfubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR4”h]”hŒBAR4”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KphjHubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjEubj))�”}”(hhh]”hþ)�”}”(hŒMemory Window 3”h]”hŒMemory Window 3”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kphj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjEubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hjfubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR5”h]”hŒBAR5”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kqhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj|ubj))�”}”(hhh]”hþ)�”}”(hŒMemory Window 4”h]”hŒMemory Window 4”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kqhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hjfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdhjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jþhjßh²hh³hÇh´Nubhþ)�”}”(hŒ 64-bit BARs.”h]”hŒ 64-bit BARs.”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kthjßh²hubjÿ)�”}”(hhh]”j)�”}”(hhh]”(j )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jhj×ubj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jhj×ubj)�”}”(hhh]”j$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR NO”h]”hŒBAR NO”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kwhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjñubj))�”}”(hhh]”hþ)�”}”(hŒCONSTRUCTS USED”h]”hŒCONSTRUCTS USED”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kwhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj×ubje)�”}”(hhh]”(j$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR0”h]”hŒBAR0”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kyhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj1ubj))�”}”(hhh]”hþ)�”}”(hŒConfig Region + Scratchpad”h]”hŒConfig Region + Scratchpad”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´KyhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.ubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR1”h]”hŒBAR1”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´Kzhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjhubj))�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j(hjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.ubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR2”h]”hŒBAR2”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K{hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj‘ubj))�”}”(hhh]”hþ)�”}”(hŒDoorbell”h]”hŒDoorbell”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K{hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.ubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR3”h]”hŒBAR3”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K|hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjÈubj))�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j(hjÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.ubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR4”h]”hŒBAR4”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K}hjôubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjñubj))�”}”(hhh]”hþ)�”}”(hŒMemory Window 1”h]”hŒMemory Window 1”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K}hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.ubj$)�”}”(hhh]”(j))�”}”(hhh]”hþ)�”}”(hŒBAR5”h]”hŒBAR5”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hýh³hÇh´K~hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j(hj(ubj))�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j(hj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j#hj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdhj×ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jþhjßh²hh³hÇh´Nubeh}”(h]”Œmodeling-constructs”ah ]”h"]”Œmodeling constructs:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Keubeh}”(h]”Œpci-vntb-function”ah ]”h"]”Œpci vntb function”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”j(Œ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”}”(jqjnjÜjÙj;j8jrjoj£j jÔjÑjijfuŒ nametypes”}”(jq‰j܉j;‰jr‰j£‰jÔ‰ji‰uh}”(jnhÊjÙjtj8jjoj>j jujÑj¦jfjßuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.