sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget1/translations/zh_CN/driver-api/mei/mei-client-busmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/zh_TW/driver-api/mei/mei-client-busmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/it_IT/driver-api/mei/mei-client-busmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ja_JP/driver-api/mei/mei-client-busmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ko_KR/driver-api/mei/mei-client-busmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/pt_BR/driver-api/mei/mei-client-busmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/sp_SP/driver-api/mei/mei-client-busmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhK/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus.rsthKubhsection)}(hhh](htitle)}(h.Intel(R) Management Engine (ME) Client bus APIh]h.Intel(R) Management Engine (ME) Client bus API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Rationaleh]h Rationale}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh paragraph)}(hX+The MEI character device is useful for dedicated applications to send and receive data to the many FW appliance found in Intel's ME from the user space. However, for some of the ME functionalities it makes sense to leverage existing software stack and expose them through existing kernel subsystems.h]hX-The MEI character device is useful for dedicated applications to send and receive data to the many FW appliance found in Intel’s ME from the user space. However, for some of the ME functionalities it makes sense to leverage existing software stack and expose them through existing kernel subsystems.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hXuIn order to plug seamlessly into the kernel device driver model we add kernel virtual bus abstraction on top of the MEI driver. This allows implementing Linux kernel drivers for the various MEI features as a stand alone entities found in their respective subsystem. Existing device drivers can even potentially be re-used by adding an MEI CL bus layer to the existing code.h]hXuIn order to plug seamlessly into the kernel device driver model we add kernel virtual bus abstraction on top of the MEI driver. This allows implementing Linux kernel drivers for the various MEI features as a stand alone entities found in their respective subsystem. Existing device drivers can even potentially be re-used by adding an MEI CL bus layer to the existing code.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h] rationaleah ]h"] rationaleah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hMEI CL bus APIh]hMEI CL bus API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hA driver implementation for an MEI Client is very similar to any other existing bus based device drivers. The driver registers itself as an MEI CL bus driver through the ``struct mei_cl_driver`` structure defined in :file:`include/linux/mei_cl_bus.c`h](hA driver implementation for an MEI Client is very similar to any other existing bus based device drivers. The driver registers itself as an MEI CL bus driver through the }(hj%hhhNhNubhliteral)}(h``struct mei_cl_driver``h]hstruct mei_cl_driver}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj%ubh structure defined in }(hj%hhhNhNubj.)}(h":file:`include/linux/mei_cl_bus.c`h]hinclude/linux/mei_cl_bus.c}(hjAhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1j-hj%ubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh literal_block)}(hX struct mei_cl_driver { struct device_driver driver; const char *name; const struct mei_cl_device_id *id_table; int (*probe)(struct mei_cl_device *dev, const struct mei_cl_id *id); int (*remove)(struct mei_cl_device *dev); };h]hX struct mei_cl_driver { struct device_driver driver; const char *name; const struct mei_cl_device_id *id_table; int (*probe)(struct mei_cl_device *dev, const struct mei_cl_id *id); int (*remove)(struct mei_cl_device *dev); };}hjZsbah}(h]h ]h"]h$]h&]hhƌforcelanguageChighlight_args}uh1jXhhhKhjhhubh)}(hThe mei_cl_device_id structure defined in :file:`include/linux/mod_devicetable.h` allows a driver to bind itself against a device name.h](h*The mei_cl_device_id structure defined in }(hjmhhhNhNubj.)}(h':file:`include/linux/mod_devicetable.h`h]hinclude/linux/mod_devicetable.h}(hjuhhhNhNubah}(h]h ]fileah"]h$]h&]rolefileuh1j-hjmubh6 allows a driver to bind itself against a device name.}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK,hjhhubjY)}(hstruct mei_cl_device_id { char name[MEI_CL_NAME_SIZE]; uuid_le uuid; __u8 version; kernel_ulong_t driver_info; };h]hstruct mei_cl_device_id { char name[MEI_CL_NAME_SIZE]; uuid_le uuid; __u8 version; kernel_ulong_t driver_info; };}hjsbah}(h]h ]h"]h$]h&]hhjhjijjjk}uh1jXhhhK/hjhhubh)}(hTo actually register a driver on the ME Client bus one must call the :c:func:`mei_cl_add_driver` API. This is typically called at module initialization time.h](hETo actually register a driver on the ME Client bus one must call the }(hjhhhNhNubh)}(h:c:func:`mei_cl_add_driver`h]j.)}(hjh]hmei_cl_add_driver()}(hjhhhNhNubah}(h]h ](xrefcc-funceh"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]refdocdriver-api/mei/mei-client-bus refdomainjreftypefunc refexplicitrefwarn reftargetmei_cl_add_driveruh1hhhhK8hjubh= API. This is typically called at module initialization time.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK8hjhhubh)}(hXOnce the driver is registered and bound to the device, a driver will typically try to do some I/O on this bus and this should be done through the :c:func:`mei_cl_send` and :c:func:`mei_cl_recv` functions. More detailed information is in :ref:`api` section.h](hOnce the driver is registered and bound to the device, a driver will typically try to do some I/O on this bus and this should be done through the }(hjhhhNhNubh)}(h:c:func:`mei_cl_send`h]j.)}(hjh]h mei_cl_send()}(hjhhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnj mei_cl_senduh1hhhhK;hjubh and }(hjhhhNhNubh)}(h:c:func:`mei_cl_recv`h]j.)}(hjh]h mei_cl_recv()}(hjhhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnj mei_cl_recvuh1hhhhK;hjubh, functions. More detailed information is in }(hjhhhNhNubh)}(h :ref:`api`h]hinline)}(hj$h]hapi}(hj(hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1j&hj"ubah}(h]h ]h"]h$]h&]refdocj refdomainj2reftyperef refexplicitrefwarnjapiuh1hhhhK;hjubh section.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK;hjhhubh)}(hIn order for a driver to be notified about pending traffic or event, the driver should register a callback via :c:func:`mei_cl_devev_register_rx_cb` and :c:func:`mei_cldev_register_notify_cb` function respectively.h](hoIn order for a driver to be notified about pending traffic or event, the driver should register a callback via }(hjNhhhNhNubh)}(h%:c:func:`mei_cl_devev_register_rx_cb`h]j.)}(hjXh]hmei_cl_devev_register_rx_cb()}(hjZhhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1j-hjVubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjmei_cl_devev_register_rx_cbuh1hhhhK?hjNubh and }(hjNhhhNhNubh)}(h&:c:func:`mei_cldev_register_notify_cb`h]j.)}(hj{h]hmei_cldev_register_notify_cb()}(hj}hhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1j-hjyubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjmei_cldev_register_notify_cbuh1hhhhK?hjNubh function respectively.}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK?hjhhubhtarget)}(h.. _api:h]h}(h]h ]h"]h$]h&]refidapiuh1jhKChjhhhhubh)}(hhh](h)}(hAPI:h]hAPI:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKFubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single mei_cldev_send_vtag (C function)c.mei_cldev_send_vtaghNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h`ssize_t mei_cldev_send_vtag (struct mei_cl_device *cldev, const u8 *buf, size_t length, u8 vtag)h]hdesc_signature_line)}(h_ssize_t mei_cldev_send_vtag(struct mei_cl_device *cldev, const u8 *buf, size_t length, u8 vtag)h](h)}(hhh]h desc_sig_name)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jmei_cldev_send_vtagsbc.mei_cldev_send_vtagasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhMubh desc_name)}(hmei_cldev_send_vtagh]j)}(hjh]hmei_cldev_send_vtag}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j$hjhhhjhMubhdesc_parameterlist)}(hD(struct mei_cl_device *cldev, const u8 *buf, size_t length, u8 vtag)h](hdesc_parameter)}(hstruct mei_cl_device *cldevh](hdesc_sig_keyword)}(hstructh]hstruct}(hjMhhhNhNubah}(h]h ]kah"]h$]h&]uh1jKhjGubj)}(h h]h }(hj\hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjGubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j ]j c.mei_cldev_send_vtagasbuh1hhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjGubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjGubj)}(hcldevh]hcldev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjAubjF)}(h const u8 *bufh](jL)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubh)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j c.mei_cldev_send_vtagasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjAubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j ]j c.mei_cldev_send_vtagasbuh1hhj0ubj)}(h h]h }(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubj)}(hlengthh]hlength}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjAubjF)}(hu8 vtagh](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j c.mei_cldev_send_vtagasbuh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjxubj)}(hvtagh]hvtag}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjAubeh}(h]h ]h"]h$]h&]hhuh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jsphinx_line_type declaratorhjhhhjhMubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhMhjhhubh desc_content)}(hhh]h)}(h me device send with vtag (write)h]h me device send with vtag (write)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhjhNhNubh container)}(h**Parameters** ``struct mei_cl_device *cldev`` me client device ``const u8 *buf`` buffer to send ``size_t length`` buffer length ``u8 vtag`` virtual tag **Return** * written size in bytes * < 0 on errorh](h)}(h**Parameters**h]hstrong)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubhdefinition_list)}(hhh](hdefinition_list_item)}(h1``struct mei_cl_device *cldev`` me client device h](hterm)}(h``struct mei_cl_device *cldev``h]j.)}(hj0h]hstruct mei_cl_device *cldev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj.ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj(ubh definition)}(hhh]h)}(hme client deviceh]hme client device}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhMhjHubah}(h]h ]h"]h$]h&]uh1jFhj(ubeh}(h]h ]h"]h$]h&]uh1j&hjEhMhj#ubj')}(h!``const u8 *buf`` buffer to send h](j-)}(h``const u8 *buf``h]j.)}(hjkh]h const u8 *buf}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjiubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjeubjG)}(hhh]h)}(hbuffer to sendh]hbuffer to send}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jFhjeubeh}(h]h ]h"]h$]h&]uh1j&hjhMhj#ubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hjh]h size_t length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMhj#ubj')}(h``u8 vtag`` virtual tag h](j-)}(h ``u8 vtag``h]j.)}(hjh]hu8 vtag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM hjubjG)}(hhh]h)}(h virtual tagh]h virtual tag}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhM hj#ubeh}(h]h ]h"]h$]h&]uh1j!hjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM hjubh bullet_list)}(hhh](h list_item)}(hwritten size in bytesh]h)}(hj7h]hwritten size in bytes}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM hj5ubah}(h]h ]h"]h$]h&]uh1j3hj0ubj4)}(h < 0 on errorh]h)}(hjOh]h < 0 on error}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM hjMubah}(h]h ]h"]h$]h&]uh1j3hj0ubeh}(h]h ]h"]h$]h&]bulletjuh1j.hjFhM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(mei_cldev_send_vtag_timeout (C function)c.mei_cldev_send_vtag_timeouthNtauh1jhjhhhNhNubj)}(hhh](j)}(hssize_t mei_cldev_send_vtag_timeout (struct mei_cl_device *cldev, const u8 *buf, size_t length, u8 vtag, unsigned long timeout)h]j)}(h~ssize_t mei_cldev_send_vtag_timeout(struct mei_cl_device *cldev, const u8 *buf, size_t length, u8 vtag, unsigned long timeout)h](h)}(hhh]j)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j )}jmei_cldev_send_vtag_timeoutsbc.mei_cldev_send_vtag_timeoutasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjhhhjhMubj%)}(hmei_cldev_send_vtag_timeouth]j)}(hjh]hmei_cldev_send_vtag_timeout}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjhhhjhMubj@)}(h[(struct mei_cl_device *cldev, const u8 *buf, size_t length, u8 vtag, unsigned long timeout)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jc.mei_cldev_send_vtag_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcldevh]hcldev}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubjF)}(h const u8 *bufh](jL)}(hjh]hconst}(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJubj)}(h h]h }(hj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjJubh)}(hhh]j)}(hu8h]hu8}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j ]jc.mei_cldev_send_vtag_timeoutasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jc.mei_cldev_send_vtag_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hlengthh]hlength}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubjF)}(hu8 vtagh](h)}(hhh]j)}(hu8h]hu8}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j ]jc.mei_cldev_send_vtag_timeoutasbuh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hvtagh]hvtag}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubjF)}(hunsigned long timeouth](hdesc_sig_keyword_type)}(hunsignedh]hunsigned}(hjPhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jNhjJubj)}(h h]h }(hj_hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjJubjO)}(hlongh]hlong}(hjmhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjJubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjJubj)}(htimeouth]htimeout}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubeh}(h]h ]h"]h$]h&]hhuh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]h)}(h,me device send with vtag and timeout (write)h]h,me device send with vtag and timeout (write)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX***Parameters** ``struct mei_cl_device *cldev`` me client device ``const u8 *buf`` buffer to send ``size_t length`` buffer length ``u8 vtag`` virtual tag ``unsigned long timeout`` send timeout in milliseconds, 0 for infinite timeout **Return** * written size in bytes * < 0 on errorh](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hjh]hstruct mei_cl_device *cldev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(hme client deviceh]hme client device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hj hMhjubj')}(h!``const u8 *buf`` buffer to send h](j-)}(h``const u8 *buf``h]j.)}(hj- h]h const u8 *buf}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj+ ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj' ubjG)}(hhh]h)}(hbuffer to sendh]hbuffer to send}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB hMhjC ubah}(h]h ]h"]h$]h&]uh1jFhj' ubeh}(h]h ]h"]h$]h&]uh1j&hjB hMhjubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hjf h]h size_t length}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjd ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj` ubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{ hMhj| ubah}(h]h ]h"]h$]h&]uh1jFhj` ubeh}(h]h ]h"]h$]h&]uh1j&hj{ hMhjubj')}(h``u8 vtag`` virtual tag h](j-)}(h ``u8 vtag``h]j.)}(hj h]hu8 vtag}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj ubjG)}(hhh]h)}(h virtual tagh]h virtual tag}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jFhj ubeh}(h]h ]h"]h$]h&]uh1j&hj hMhjubj')}(hO``unsigned long timeout`` send timeout in milliseconds, 0 for infinite timeout h](j-)}(h``unsigned long timeout``h]j.)}(hj h]hunsigned long timeout}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM hj ubjG)}(hhh]h)}(h4send timeout in milliseconds, 0 for infinite timeouth]h4send timeout in milliseconds, 0 for infinite timeout}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM hj ubah}(h]h ]h"]h$]h&]uh1jFhj ubeh}(h]h ]h"]h$]h&]uh1j&hj hM hjubeh}(h]h ]h"]h$]h&]uh1j!hjubh)}(h **Return**h]j )}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM"hjubj/)}(hhh](j4)}(hwritten size in bytesh]h)}(hj. h]hwritten size in bytes}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM"hj, ubah}(h]h ]h"]h$]h&]uh1j3hj) ubj4)}(h < 0 on errorh]h)}(hjF h]h < 0 on error}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM#hjD ubah}(h]h ]h"]h$]h&]uh1j3hj) ubeh}(h]h ]h"]h$]h&]jkjuh1j.hj= hM"hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j mei_cldev_recv_vtag (C function)c.mei_cldev_recv_vtaghNtauh1jhjhhhNhNubj)}(hhh](j)}(h[ssize_t mei_cldev_recv_vtag (struct mei_cl_device *cldev, u8 *buf, size_t length, u8 *vtag)h]j)}(hZssize_t mei_cldev_recv_vtag(struct mei_cl_device *cldev, u8 *buf, size_t length, u8 *vtag)h](h)}(hhh]j)}(hssize_th]hssize_t}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j ]j )}jmei_cldev_recv_vtagsbc.mei_cldev_recv_vtagasbuh1hhj~ hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM1ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj~ hhhj hM1ubj%)}(hmei_cldev_recv_vtagh]j)}(hj h]hmei_cldev_recv_vtag}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj~ hhhj hM1ubj@)}(h?(struct mei_cl_device *cldev, u8 *buf, size_t length, u8 *vtag)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j ]j c.mei_cldev_recv_vtagasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hcldevh]hcldev}(hj+ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj ubjF)}(hu8 *bufh](h)}(hhh]j)}(hu8h]hu8}(hjG hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjI modnameN classnameNjj)}j ]j c.mei_cldev_recv_vtagasbuh1hhj@ ubj)}(h h]h }(hje hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj@ ubj)}(hjh]h*}(hjs hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ ubj)}(hbufh]hbuf}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj ubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j ]j c.mei_cldev_recv_vtagasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubj)}(hlengthh]hlength}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj ubjF)}(hu8 *vtagh](h)}(hhh]j)}(hu8h]hu8}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j ]j c.mei_cldev_recv_vtagasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hvtagh]hvtag}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj ubeh}(h]h ]h"]h$]h&]hhuh1j?hj~ hhhj hM1ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjz hhhj hM1ubah}(h]ju ah ](jjeh"]h$]h&]jj)jhuh1jhj hM1hjw hhubj)}(hhh]h)}(hclient receive with vtag (read)h]hclient receive with vtag (read)}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM1hjD hhubah}(h]h ]h"]h$]h&]uh1jhjw hhhj hM1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_ jj_ jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct mei_cl_device *cldev`` me client device ``u8 *buf`` buffer to receive ``size_t length`` buffer length ``u8 *vtag`` virtual tag **Return** * read size in bytes * < 0 on errorh](h)}(h**Parameters**h]j )}(hji h]h Parameters}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjg ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM5hjc ubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hj h]hstruct mei_cl_device *cldev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM3hj ubjG)}(hhh]h)}(hme client deviceh]hme client device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM3hj ubah}(h]h ]h"]h$]h&]uh1jFhj ubeh}(h]h ]h"]h$]h&]uh1j&hj hM3hj ubj')}(h``u8 *buf`` buffer to receive h](j-)}(h ``u8 *buf``h]j.)}(hj h]hu8 *buf}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM4hj ubjG)}(hhh]h)}(hbuffer to receiveh]hbuffer to receive}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM4hj ubah}(h]h ]h"]h$]h&]uh1jFhj ubeh}(h]h ]h"]h$]h&]uh1j&hj hM4hj ubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hj h]h size_t length}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM5hj ubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM5hj ubah}(h]h ]h"]h$]h&]uh1jFhj ubeh}(h]h ]h"]h$]h&]uh1j&hj hM5hj ubj')}(h``u8 *vtag`` virtual tag h](j-)}(h ``u8 *vtag``h]j.)}(hj3 h]hu8 *vtag}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj1 ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM6hj- ubjG)}(hhh]h)}(h virtual tagh]h virtual tag}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH hM6hjI ubah}(h]h ]h"]h$]h&]uh1jFhj- ubeh}(h]h ]h"]h$]h&]uh1j&hjH hM6hj ubeh}(h]h ]h"]h$]h&]uh1j!hjc ubh)}(h **Return**h]j )}(hjn h]hReturn}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjl ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM8hjc ubj/)}(hhh](j4)}(hread size in bytesh]h)}(hj h]hread size in bytes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM8hj ubah}(h]h ]h"]h$]h&]uh1j3hj ubj4)}(h < 0 on errorh]h)}(hj h]h < 0 on error}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM9hj ubah}(h]h ]h"]h$]h&]uh1j3hj ubeh}(h]h ]h"]h$]h&]jkjuh1j.hj hM8hjc ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#mei_cldev_recv_timeout (C function)c.mei_cldev_recv_timeouthNtauh1jhjhhhNhNubj)}(hhh](j)}(hkssize_t mei_cldev_recv_timeout (struct mei_cl_device *cldev, u8 *buf, size_t length, unsigned long timeout)h]j)}(hjssize_t mei_cldev_recv_timeout(struct mei_cl_device *cldev, u8 *buf, size_t length, unsigned long timeout)h](h)}(hhh]j)}(hssize_th]hssize_t}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j ]j )}jmei_cldev_recv_timeoutsbc.mei_cldev_recv_timeoutasbuh1hhj hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMGubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj hhhjhMGubj%)}(hmei_cldev_recv_timeouth]j)}(hj h]hmei_cldev_recv_timeout}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj hhhjhMGubj@)}(hL(struct mei_cl_device *cldev, u8 *buf, size_t length, unsigned long timeout)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j ]j c.mei_cldev_recv_timeoutasbuh1hhj+ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(hcldevh]hcldev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj'ubjF)}(hu8 *bufh](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j c.mei_cldev_recv_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj'ubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j c.mei_cldev_recv_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hlengthh]hlength}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj'ubjF)}(hunsigned long timeouth](jO)}(hunsignedh]hunsigned}(hj<hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj8ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubjO)}(hlongh]hlong}(hjXhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj8ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubj)}(htimeouth]htimeout}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj'ubeh}(h]h ]h"]h$]h&]hhuh1j?hj hhhjhMGubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhjhMGubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhjhMGhj hhubj)}(hhh]h)}(h"client receive with timeout (read)h]h"client receive with timeout (read)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMGhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhjhMGubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX **Parameters** ``struct mei_cl_device *cldev`` me client device ``u8 *buf`` buffer to receive ``size_t length`` buffer length ``unsigned long timeout`` send timeout in milliseconds, 0 for infinite timeout **Return** * read size in bytes * < 0 on errorh](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMKhjubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hjh]hstruct mei_cl_device *cldev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMIhjubjG)}(hhh]h)}(hme client deviceh]hme client device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMIhjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMIhjubj')}(h``u8 *buf`` buffer to receive h](j-)}(h ``u8 *buf``h]j.)}(hjh]hu8 *buf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMJhjubjG)}(hhh]h)}(hbuffer to receiveh]hbuffer to receive}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMJhj.ubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hj-hMJhjubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hjQh]h size_t length}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjOubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMKhjKubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMKhjgubah}(h]h ]h"]h$]h&]uh1jFhjKubeh}(h]h ]h"]h$]h&]uh1j&hjfhMKhjubj')}(hO``unsigned long timeout`` send timeout in milliseconds, 0 for infinite timeout h](j-)}(h``unsigned long timeout``h]j.)}(hjh]hunsigned long timeout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMLhjubjG)}(hhh]h)}(h4send timeout in milliseconds, 0 for infinite timeouth]h4send timeout in milliseconds, 0 for infinite timeout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMLhjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMLhjubeh}(h]h ]h"]h$]h&]uh1j!hjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMNhjubj/)}(hhh](j4)}(hread size in bytesh]h)}(hjh]hread size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMNhjubah}(h]h ]h"]h$]h&]uh1j3hjubj4)}(h < 0 on errorh]h)}(hjh]h < 0 on error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMOhjubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]jkjuh1j.hjhMNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(mei_cldev_recv_vtag_timeout (C function)c.mei_cldev_recv_vtag_timeouthNtauh1jhjhhhNhNubj)}(hhh](j)}(hzssize_t mei_cldev_recv_vtag_timeout (struct mei_cl_device *cldev, u8 *buf, size_t length, u8 *vtag, unsigned long timeout)h]j)}(hyssize_t mei_cldev_recv_vtag_timeout(struct mei_cl_device *cldev, u8 *buf, size_t length, u8 *vtag, unsigned long timeout)h](h)}(hhh]j)}(hssize_th]hssize_t}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j ]j )}jmei_cldev_recv_vtag_timeoutsbc.mei_cldev_recv_vtag_timeoutasbuh1hhj0hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMZubj)}(h h]h }(hjYhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0hhhjXhMZubj%)}(hmei_cldev_recv_vtag_timeouth]j)}(hjUh]hmei_cldev_recv_vtag_timeout}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj0hhhjXhMZubj@)}(hV(struct mei_cl_device *cldev, u8 *buf, size_t length, u8 *vtag, unsigned long timeout)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jSc.mei_cldev_recv_vtag_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcldevh]hcldev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj~ubjF)}(hu8 *bufh](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jSc.mei_cldev_recv_vtag_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbufh]hbuf}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj~ubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j ]jSc.mei_cldev_recv_vtag_timeoutasbuh1hhjGubj)}(h h]h }(hjlhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjGubj)}(hlengthh]hlength}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj~ubjF)}(hu8 *vtagh](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jSc.mei_cldev_recv_vtag_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hvtagh]hvtag}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj~ubjF)}(hunsigned long timeouth](jO)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubjO)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(htimeouth]htimeout}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj~ubeh}(h]h ]h"]h$]h&]hhuh1j?hj0hhhjXhMZubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj,hhhjXhMZubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jhjXhMZhj)hhubj)}(hhh]h)}(hclient receive with vtag (read)h]hclient receive with vtag (read)}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMZhjGhhubah}(h]h ]h"]h$]h&]uh1jhj)hhhjXhMZubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1jhhhjhNhNubj)}(hX&**Parameters** ``struct mei_cl_device *cldev`` me client device ``u8 *buf`` buffer to receive ``size_t length`` buffer length ``u8 *vtag`` virtual tag ``unsigned long timeout`` recv timeout in milliseconds, 0 for infinite timeout **Return** * read size in bytes * < 0 on errorh](h)}(h**Parameters**h]j )}(hjlh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM^hjfubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hjh]hstruct mei_cl_device *cldev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM\hjubjG)}(hhh]h)}(hme client deviceh]hme client device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM\hjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhM\hjubj')}(h``u8 *buf`` buffer to receive h](j-)}(h ``u8 *buf``h]j.)}(hjh]hu8 *buf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM]hjubjG)}(hhh]h)}(hbuffer to receiveh]hbuffer to receive}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM]hjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhM]hjubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hjh]h size_t length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM^hjubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM^hjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhM^hjubj')}(h``u8 *vtag`` virtual tag h](j-)}(h ``u8 *vtag``h]j.)}(hj6h]hu8 *vtag}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj4ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM_hj0ubjG)}(hhh]h)}(h virtual tagh]h virtual tag}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhM_hjLubah}(h]h ]h"]h$]h&]uh1jFhj0ubeh}(h]h ]h"]h$]h&]uh1j&hjKhM_hjubj')}(hO``unsigned long timeout`` recv timeout in milliseconds, 0 for infinite timeout h](j-)}(h``unsigned long timeout``h]j.)}(hjoh]hunsigned long timeout}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjmubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM`hjiubjG)}(hhh]h)}(h4recv timeout in milliseconds, 0 for infinite timeouth]h4recv timeout in milliseconds, 0 for infinite timeout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM`hjubah}(h]h ]h"]h$]h&]uh1jFhjiubeh}(h]h ]h"]h$]h&]uh1j&hjhM`hjubeh}(h]h ]h"]h$]h&]uh1j!hjfubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMbhjfubj/)}(hhh](j4)}(hread size in bytesh]h)}(hjh]hread size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMbhjubah}(h]h ]h"]h$]h&]uh1j3hjubj4)}(h < 0 on errorh]h)}(hjh]h < 0 on error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMchjubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]jkjuh1j.hjhMbhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_send (C function)c.mei_cldev_sendhNtauh1jhjhhhNhNubj)}(hhh](j)}(hRssize_t mei_cldev_send (struct mei_cl_device *cldev, const u8 *buf, size_t length)h]j)}(hQssize_t mei_cldev_send(struct mei_cl_device *cldev, const u8 *buf, size_t length)h](h)}(hhh]j)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j )}jmei_cldev_sendsbc.mei_cldev_sendasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMqubj)}(h h]h }(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjhhhj=hMqubj%)}(hmei_cldev_sendh]j)}(hj:h]hmei_cldev_send}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjhhhj=hMqubj@)}(h;(struct mei_cl_device *cldev, const u8 *buf, size_t length)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjgubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j8c.mei_cldev_sendasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(hcldevh]hcldev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjcubjF)}(h const u8 *bufh](jL)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubh)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j8c.mei_cldev_sendasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbufh]hbuf}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjcubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j ]j8c.mei_cldev_sendasbuh1hhjGubj)}(h h]h }(hjlhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjGubj)}(hlengthh]hlength}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjcubeh}(h]h ]h"]h$]h&]hhuh1j?hjhhhj=hMqubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj=hMqubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj=hMqhjhhubj)}(hhh]h)}(hme device send (write)h]hme device send (write)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMqhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj=hMqubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct mei_cl_device *cldev`` me client device ``const u8 *buf`` buffer to send ``size_t length`` buffer length **Return** * written size in bytes * < 0 on errorh](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMuhjubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hjh]hstruct mei_cl_device *cldev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMshjubjG)}(hhh]h)}(hme client deviceh]hme client device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMshjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMshjubj')}(h!``const u8 *buf`` buffer to send h](j-)}(h``const u8 *buf``h]j.)}(hjh]h const u8 *buf}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMthjubjG)}(hhh]h)}(hbuffer to sendh]hbuffer to send}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMthj4ubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hj3hMthjubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hjWh]h size_t length}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjUubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMuhjQubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMuhjmubah}(h]h ]h"]h$]h&]uh1jFhjQubeh}(h]h ]h"]h$]h&]uh1j&hjlhMuhjubeh}(h]h ]h"]h$]h&]uh1j!hjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMwhjubj/)}(hhh](j4)}(hwritten size in bytesh]h)}(hjh]hwritten size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMwhjubah}(h]h ]h"]h$]h&]uh1j3hjubj4)}(h < 0 on errorh]h)}(hjh]h < 0 on error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMxhjubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]jkjuh1j.hjhMwhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#mei_cldev_send_timeout (C function)c.mei_cldev_send_timeouthNtauh1jhjhhhNhNubj)}(hhh](j)}(hqssize_t mei_cldev_send_timeout (struct mei_cl_device *cldev, const u8 *buf, size_t length, unsigned long timeout)h]j)}(hpssize_t mei_cldev_send_timeout(struct mei_cl_device *cldev, const u8 *buf, size_t length, unsigned long timeout)h](h)}(hhh]j)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j )}jmei_cldev_send_timeoutsbc.mei_cldev_send_timeoutasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubj)}(h h]h }(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjhhhj%hMubj%)}(hmei_cldev_send_timeouth]j)}(hj"h]hmei_cldev_send_timeout}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjhhhj%hMubj@)}(hR(struct mei_cl_device *cldev, const u8 *buf, size_t length, unsigned long timeout)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjOubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j ]j c.mei_cldev_send_timeoutasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(hcldevh]hcldev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjKubjF)}(h const u8 *bufh](jL)}(hjh]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubh)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]j c.mei_cldev_send_timeoutasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjKubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j ]j c.mei_cldev_send_timeoutasbuh1hhj/ubj)}(h h]h }(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj/ubj)}(hlengthh]hlength}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjKubjF)}(hunsigned long timeouth](jO)}(hunsignedh]hunsigned}(hj{hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjwubjO)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjwubj)}(htimeouth]htimeout}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjKubeh}(h]h ]h"]h$]h&]hhuh1j?hjhhhj%hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj%hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj%hMhjhhubj)}(hhh]h)}(h#me device send with timeout (write)h]h#me device send with timeout (write)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj%hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(hX**Parameters** ``struct mei_cl_device *cldev`` me client device ``const u8 *buf`` buffer to send ``size_t length`` buffer length ``unsigned long timeout`` send timeout in milliseconds, 0 for infinite timeout **Return** * written size in bytes * < 0 on errorh](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hjh]hstruct mei_cl_device *cldev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(hme client deviceh]hme client device}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMhj4ubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hj3hMhjubj')}(h!``const u8 *buf`` buffer to send h](j-)}(h``const u8 *buf``h]j.)}(hjWh]h const u8 *buf}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjUubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjQubjG)}(hhh]h)}(hbuffer to sendh]hbuffer to send}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhMhjmubah}(h]h ]h"]h$]h&]uh1jFhjQubeh}(h]h ]h"]h$]h&]uh1j&hjlhMhjubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hjh]h size_t length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMhjubj')}(hO``unsigned long timeout`` send timeout in milliseconds, 0 for infinite timeout h](j-)}(h``unsigned long timeout``h]j.)}(hjh]hunsigned long timeout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(h4send timeout in milliseconds, 0 for infinite timeouth]h4send timeout in milliseconds, 0 for infinite timeout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMhjubeh}(h]h ]h"]h$]h&]uh1j!hjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubj/)}(hhh](j4)}(hwritten size in bytesh]h)}(hjh]hwritten size in bytes}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubah}(h]h ]h"]h$]h&]uh1j3hjubj4)}(h < 0 on errorh]h)}(hj7h]h < 0 on error}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj5ubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]jkjuh1j.hj.hMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_recv (C function)c.mei_cldev_recvhNtauh1jhjhhhNhNubj)}(hhh](j)}(hLssize_t mei_cldev_recv (struct mei_cl_device *cldev, u8 *buf, size_t length)h]j)}(hKssize_t mei_cldev_recv(struct mei_cl_device *cldev, u8 *buf, size_t length)h](h)}(hhh]j)}(hssize_th]hssize_t}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j ]j )}jmei_cldev_recvsbc.mei_cldev_recvasbuh1hhjohhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjohhhjhMubj%)}(hmei_cldev_recvh]j)}(hjh]hmei_cldev_recv}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjohhhjhMubj@)}(h5(struct mei_cl_device *cldev, u8 *buf, size_t length)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jc.mei_cldev_recvasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hcldevh]hcldev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubjF)}(hu8 *bufh](h)}(hhh]j)}(hu8h]hu8}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j ]jc.mei_cldev_recvasbuh1hhj1ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj1ubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hbufh]hbuf}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubjF)}(h size_t lengthh](h)}(hhh]j)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jc.mei_cldev_recvasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hlengthh]hlength}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjubeh}(h]h ]h"]h$]h&]hhuh1j?hjohhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjkhhhjhMubah}(h]jfah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhhubj)}(hhh]h)}(hclient receive (read)h]hclient receive (read)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct mei_cl_device *cldev`` me client device ``u8 *buf`` buffer to receive ``size_t length`` buffer length **Return** read size in bytes of < 0 on errorh](h)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hj$h]hstruct mei_cl_device *cldev}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj"ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(hme client deviceh]hme client device}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj:ubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hj9hMhjubj')}(h``u8 *buf`` buffer to receive h](j-)}(h ``u8 *buf``h]j.)}(hj]h]hu8 *buf}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj[ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjWubjG)}(hhh]h)}(hbuffer to receiveh]hbuffer to receive}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhMhjsubah}(h]h ]h"]h$]h&]uh1jFhjWubeh}(h]h ]h"]h$]h&]uh1j&hjrhMhjubj')}(h ``size_t length`` buffer length h](j-)}(h``size_t length``h]j.)}(hjh]h size_t length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(h buffer lengthh]h buffer length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMhjubeh}(h]h ]h"]h$]h&]uh1j!hjubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubh)}(h"read size in bytes of < 0 on errorh]h"read size in bytes of < 0 on error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%mei_cldev_register_rx_cb (C function)c.mei_cldev_register_rx_cbhNtauh1jhjhhhNhNubj)}(hhh](j)}(hPint mei_cldev_register_rx_cb (struct mei_cl_device *cldev, mei_cldev_cb_t rx_cb)h]j)}(hOint mei_cldev_register_rx_cb(struct mei_cl_device *cldev, mei_cldev_cb_t rx_cb)h](jO)}(hinth]hint}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjhhhj$hMubj%)}(hmei_cldev_register_rx_cbh]j)}(hmei_cldev_register_rx_cbh]hmei_cldev_register_rx_cb}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjhhhj$hMubj@)}(h3(struct mei_cl_device *cldev, mei_cldev_cb_t rx_cb)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjOubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j ]j )}jj9sbc.mei_cldev_register_rx_cbasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(hcldevh]hcldev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjKubjF)}(hmei_cldev_cb_t rx_cbh](h)}(hhh]j)}(hmei_cldev_cb_th]hmei_cldev_cb_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j ]jc.mei_cldev_register_rx_cbasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(hrx_cbh]hrx_cb}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjKubeh}(h]h ]h"]h$]h&]hhuh1j?hjhhhj$hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj$hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj$hMhj hhubj)}(hhh]h)}(hregister Rx event callbackh]hregister Rx event callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct mei_cl_device *cldev`` me client devices ``mei_cldev_cb_t rx_cb`` callback function **Return** 0 on success -EALREADY if an callback is already registered <0 on other errorsh](h)}(h**Parameters**h]j )}(hj@h]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj>ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj:ubj")}(hhh](j')}(h2``struct mei_cl_device *cldev`` me client devices h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hj_h]hstruct mei_cl_device *cldev}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj]ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjYubjG)}(hhh]h)}(hme client devicesh]hme client devices}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthMhjuubah}(h]h ]h"]h$]h&]uh1jFhjYubeh}(h]h ]h"]h$]h&]uh1j&hjthMhjVubj')}(h+``mei_cldev_cb_t rx_cb`` callback function h](j-)}(h``mei_cldev_cb_t rx_cb``h]j.)}(hjh]hmei_cldev_cb_t rx_cb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjubjG)}(hhh]h)}(hcallback functionh]hcallback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]uh1j&hjhMhjVubeh}(h]h ]h"]h$]h&]uh1j!hj:ubh)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj:ubh)}(hN0 on success -EALREADY if an callback is already registered <0 on other errorsh]hN0 on success -EALREADY if an callback is already registered <0 on other errors}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j(mei_cldev_register_notif_cb (C function)c.mei_cldev_register_notif_cbhNtauh1jhjhhhNhNubj)}(hhh](j)}(hVint mei_cldev_register_notif_cb (struct mei_cl_device *cldev, mei_cldev_cb_t notif_cb)h]j)}(hUint mei_cldev_register_notif_cb(struct mei_cl_device *cldev, mei_cldev_cb_t notif_cb)h](jO)}(hinth]hint}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubj)}(h h]h }(hj' hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj hhhj& hMubj%)}(hmei_cldev_register_notif_cbh]j)}(hmei_cldev_register_notif_cbh]hmei_cldev_register_notif_cb}(hj9 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5 ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj hhhj& hMubj@)}(h6(struct mei_cl_device *cldev, mei_cldev_cb_t notif_cb)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hjU hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjQ ubj)}(h h]h }(hjb hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjQ ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjs hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetju modnameN classnameNjj)}j ]j )}jj; sbc.mei_cldev_register_notif_cbasbuh1hhjQ ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjQ ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ ubj)}(hcldevh]hcldev}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjM ubjF)}(hmei_cldev_cb_t notif_cbh](h)}(hhh]j)}(hmei_cldev_cb_th]hmei_cldev_cb_t}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j ]j c.mei_cldev_register_notif_cbasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubj)}(hnotif_cbh]hnotif_cb}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhjM ubeh}(h]h ]h"]h$]h&]hhuh1j?hj hhhj& hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj hhhj& hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj& hMhj hhubj)}(hhh]h)}(h'register FW notification event callbackh]h'register FW notification event callback}(hj !hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj!hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj& hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8!jj8!jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct mei_cl_device *cldev`` me client devices ``mei_cldev_cb_t notif_cb`` callback function **Return** 0 on success -EALREADY if an callback is already registered <0 on other errorsh](h)}(h**Parameters**h]j )}(hjB!h]h Parameters}(hjD!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj@!ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM"hjvoid *mei_cldev_get_drvdata(const struct mei_cl_device *cldev)h](jO)}(hvoidh]hvoid}(hj"hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj"hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMDubj)}(h h]h }(hj)"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj"hhhj("hMDubj)}(hjh]h*}(hj7"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhj("hMDubj%)}(hmei_cldev_get_drvdatah]j)}(hmei_cldev_get_drvdatah]hmei_cldev_get_drvdata}(hjH"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD"ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj"hhhj("hMDubj@)}(h#(const struct mei_cl_device *cldev)h]jF)}(h!const struct mei_cl_device *cldevh](jL)}(hjh]hconst}(hjd"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`"ubj)}(h h]h }(hjq"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj`"ubjL)}(hjOh]hstruct}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj`"ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j ]j )}jjJ"sbc.mei_cldev_get_drvdataasbuh1hhj`"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj`"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`"ubj)}(hcldevh]hcldev}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj\"ubah}(h]h ]h"]h$]h&]hhuh1j?hj"hhhj("hMDubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj"hhhj("hMDubah}(h]j "ah ](jjeh"]h$]h&]jj)jhuh1jhj("hMDhj"hhubj)}(hhh]h)}(hdriver data getterh]hdriver data getter}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMDhj"hhubah}(h]h ]h"]h$]h&]uh1jhj"hhhj("hMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1jhhhjhNhNubj)}(hj**Parameters** ``const struct mei_cl_device *cldev`` mei client device **Return** driver private datah](h)}(h**Parameters**h]j )}(hj$#h]h Parameters}(hj&#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj"#ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMHhj#ubj")}(hhh]j')}(h8``const struct mei_cl_device *cldev`` mei client device h](j-)}(h%``const struct mei_cl_device *cldev``h]j.)}(hjC#h]h!const struct mei_cl_device *cldev}(hjE#hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjA#ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMFhj=#ubjG)}(hhh]h)}(hmei client deviceh]hmei client device}(hj\#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX#hMFhjY#ubah}(h]h ]h"]h$]h&]uh1jFhj=#ubeh}(h]h ]h"]h$]h&]uh1j&hjX#hMFhj:#ubah}(h]h ]h"]h$]h&]uh1j!hj#ubh)}(h **Return**h]j )}(hj~#h]hReturn}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj|#ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMHhj#ubh)}(hdriver private datah]hdriver private data}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMHhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"mei_cldev_set_drvdata (C function)c.mei_cldev_set_drvdatahNtauh1jhjhhhNhNubj)}(hhh](j)}(hDvoid mei_cldev_set_drvdata (struct mei_cl_device *cldev, void *data)h]j)}(hCvoid mei_cldev_set_drvdata(struct mei_cl_device *cldev, void *data)h](jO)}(hvoidh]hvoid}(hj#hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj#hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMQubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj#hhhj#hMQubj%)}(hmei_cldev_set_drvdatah]j)}(hmei_cldev_set_drvdatah]hmei_cldev_set_drvdata}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj#hhhj#hMQubj@)}(h)(struct mei_cl_device *cldev, void *data)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj $hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj#ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj $modnameN classnameNjj)}j ]j )}jj#sbc.mei_cldev_set_drvdataasbuh1hhj#ubj)}(h h]h }(hj>$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj#ubj)}(hjh]h*}(hjL$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(hcldevh]hcldev}(hjY$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj#ubjF)}(h void *datah](jO)}(hvoidh]hvoid}(hjr$hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjn$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjn$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn$ubj)}(hdatah]hdata}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj#ubeh}(h]h ]h"]h$]h&]hhuh1j?hj#hhhj#hMQubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj#hhhj#hMQubah}(h]j#ah ](jjeh"]h$]h&]jj)jhuh1jhj#hMQhj#hhubj)}(hhh]h)}(hdriver data setterh]hdriver data setter}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMQhj$hhubah}(h]h ]h"]h$]h&]uh1jhj#hhhj#hMQubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1jhhhjhNhNubj)}(hc**Parameters** ``struct mei_cl_device *cldev`` mei client device ``void *data`` data to storeh](h)}(h**Parameters**h]j )}(hj$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj$ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMUhj$ubj")}(hhh](j')}(h2``struct mei_cl_device *cldev`` mei client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hj%h]hstruct mei_cl_device *cldev}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj%ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMShj%ubjG)}(hhh]h)}(hmei client deviceh]hmei client device}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMShj%ubah}(h]h ]h"]h$]h&]uh1jFhj%ubeh}(h]h ]h"]h$]h&]uh1j&hj%hMShj$ubj')}(h``void *data`` data to storeh](j-)}(h``void *data``h]j.)}(hj?%h]h void *data}(hjA%hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj=%ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMUhj9%ubjG)}(hhh]h)}(h data to storeh]h data to store}(hjX%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMThjU%ubah}(h]h ]h"]h$]h&]uh1jFhj9%ubeh}(h]h ]h"]h$]h&]uh1j&hjT%hMUhj$ubeh}(h]h ]h"]h$]h&]uh1j!hj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_uuid (C function)c.mei_cldev_uuidhNtauh1jhjhhhNhNubj)}(hhh](j)}(hBconst uuid_le * mei_cldev_uuid (const struct mei_cl_device *cldev)h]j)}(h@const uuid_le *mei_cldev_uuid(const struct mei_cl_device *cldev)h](jL)}(hjh]hconst}(hj%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj%hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM]ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj%hhhj%hM]ubh)}(hhh]j)}(huuid_leh]huuid_le}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j ]j )}jmei_cldev_uuidsbc.mei_cldev_uuidasbuh1hhj%hhhj%hM]ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj%hhhj%hM]ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hM]ubj%)}(hmei_cldev_uuidh]j)}(hj%h]hmei_cldev_uuid}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj%hhhj%hM]ubj@)}(h#(const struct mei_cl_device *cldev)h]jF)}(h!const struct mei_cl_device *cldevh](jL)}(hjh]hconst}(hj&hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&ubj)}(h h]h }(hj &hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj&ubjL)}(hjOh]hstruct}(hj.&hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&ubj)}(h h]h }(hj;&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj&ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjL&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjN&modnameN classnameNjj)}j ]j%c.mei_cldev_uuidasbuh1hhj&ubj)}(h h]h }(hjj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj&ubj)}(hjh]h*}(hjx&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(hcldevh]hcldev}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj &ubah}(h]h ]h"]h$]h&]hhuh1j?hj%hhhj%hM]ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj%hhhj%hM]ubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1jhj%hM]hj%hhubj)}(hhh]h)}(h'return uuid of the underlying me clienth]h'return uuid of the underlying me client}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM]hj&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hM]ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1jhhhjhNhNubj)}(he**Parameters** ``const struct mei_cl_device *cldev`` mei client device **Return** me client uuidh](h)}(h**Parameters**h]j )}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMahj&ubj")}(hhh]j')}(h8``const struct mei_cl_device *cldev`` mei client device h](j-)}(h%``const struct mei_cl_device *cldev``h]j.)}(hj&h]h!const struct mei_cl_device *cldev}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj&ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM_hj&ubjG)}(hhh]h)}(hmei client deviceh]hmei client device}(hj 'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hM_hj'ubah}(h]h ]h"]h$]h&]uh1jFhj&ubeh}(h]h ]h"]h$]h&]uh1j&hj'hM_hj&ubah}(h]h ]h"]h$]h&]uh1j!hj&ubh)}(h **Return**h]j )}(hj+'h]hReturn}(hj-'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj)'ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMahj&ubh)}(hme client uuidh]hme client uuid}(hjA'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMahj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_ver (C function)c.mei_cldev_verhNtauh1jhjhhhNhNubj)}(hhh](j)}(h4u8 mei_cldev_ver (const struct mei_cl_device *cldev)h]j)}(h3u8 mei_cldev_ver(const struct mei_cl_device *cldev)h](h)}(hhh]j)}(hu8h]hu8}(hjs'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetju'modnameN classnameNjj)}j ]j )}j mei_cldev_versbc.mei_cldev_verasbuh1hhjl'hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjl'hhhj'hMjubj%)}(h mei_cldev_verh]j)}(hj'h]h mei_cldev_ver}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjl'hhhj'hMjubj@)}(h#(const struct mei_cl_device *cldev)h]jF)}(h!const struct mei_cl_device *cldevh](jL)}(hjh]hconst}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'ubjL)}(hjOh]hstruct}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j ]j'c.mei_cldev_verasbuh1hhj'ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'ubj)}(hjh]h*}(hj'(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hcldevh]hcldev}(hj4(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj'ubah}(h]h ]h"]h$]h&]hhuh1j?hjl'hhhj'hMjubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjh'hhhj'hMjubah}(h]jc'ah ](jjeh"]h$]h&]jj)jhuh1jhj'hMjhje'hhubj)}(hhh]h)}(h3return protocol version of the underlying me clienth]h3return protocol version of the underlying me client}(hj^(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMjhj[(hhubah}(h]h ]h"]h$]h&]uh1jhje'hhhj'hMjubeh}(h]h ](jfunctioneh"]h$]h&]jjjjv(jjv(jjjuh1jhhhjhNhNubj)}(hq**Parameters** ``const struct mei_cl_device *cldev`` mei client device **Return** me client protocol versionh](h)}(h**Parameters**h]j )}(hj(h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj~(ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMnhjz(ubj")}(hhh]j')}(h8``const struct mei_cl_device *cldev`` mei client device h](j-)}(h%``const struct mei_cl_device *cldev``h]j.)}(hj(h]h!const struct mei_cl_device *cldev}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj(ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMlhj(ubjG)}(hhh]h)}(hmei client deviceh]hmei client device}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMlhj(ubah}(h]h ]h"]h$]h&]uh1jFhj(ubeh}(h]h ]h"]h$]h&]uh1j&hj(hMlhj(ubah}(h]h ]h"]h$]h&]uh1j!hjz(ubh)}(h **Return**h]j )}(hj(h]hReturn}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMnhjz(ubh)}(hme client protocol versionh]hme client protocol version}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMnhjz(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_mtu (C function)c.mei_cldev_mtuhNtauh1jhjhhhNhNubj)}(hhh](j)}(h8size_t mei_cldev_mtu (const struct mei_cl_device *cldev)h]j)}(h7size_t mei_cldev_mtu(const struct mei_cl_device *cldev)h](h)}(hhh]j)}(hsize_th]hsize_t}(hj")hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$)modnameN classnameNjj)}j ]j )}j mei_cldev_mtusbc.mei_cldev_mtuasbuh1hhj)hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMwubj)}(h h]h }(hjD)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)hhhjC)hMwubj%)}(h mei_cldev_mtuh]j)}(hj@)h]h mei_cldev_mtu}(hjV)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR)ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj)hhhjC)hMwubj@)}(h#(const struct mei_cl_device *cldev)h]jF)}(h!const struct mei_cl_device *cldevh](jL)}(hjh]hconst}(hjq)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjm)ubj)}(h h]h }(hj~)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjm)ubjL)}(hjOh]hstruct}(hj)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjm)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjm)ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j ]j>)c.mei_cldev_mtuasbuh1hhjm)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjm)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm)ubj)}(hcldevh]hcldev}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhji)ubah}(h]h ]h"]h$]h&]hhuh1j?hj)hhhjC)hMwubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj)hhhjC)hMwubah}(h]j)ah ](jjeh"]h$]h&]jj)jhuh1jhjC)hMwhj)hhubj)}(hhh]h)}(h,max message that client can send and receiveh]h,max message that client can send and receive}(hj *hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMwhj *hhubah}(h]h ]h"]h$]h&]uh1jhj)hhhjC)hMwubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%*jj%*jjjuh1jhhhjhNhNubj)}(hz**Parameters** ``const struct mei_cl_device *cldev`` mei client device **Return** mtu or 0 if client is not connectedh](h)}(h**Parameters**h]j )}(hj/*h]h Parameters}(hj1*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-*ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM{hj)*ubj")}(hhh]j')}(h8``const struct mei_cl_device *cldev`` mei client device h](j-)}(h%``const struct mei_cl_device *cldev``h]j.)}(hjN*h]h!const struct mei_cl_device *cldev}(hjP*hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjL*ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMyhjH*ubjG)}(hhh]h)}(hmei client deviceh]hmei client device}(hjg*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjc*hMyhjd*ubah}(h]h ]h"]h$]h&]uh1jFhjH*ubeh}(h]h ]h"]h$]h&]uh1j&hjc*hMyhjE*ubah}(h]h ]h"]h$]h&]uh1j!hj)*ubh)}(h **Return**h]j )}(hj*h]hReturn}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM{hj)*ubh)}(h#mtu or 0 if client is not connectedh]h#mtu or 0 if client is not connected}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM{hj)*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_enabled (C function)c.mei_cldev_enabledhNtauh1jhjhhhNhNubj)}(hhh](j)}(h:bool mei_cldev_enabled (const struct mei_cl_device *cldev)h]j)}(h9bool mei_cldev_enabled(const struct mei_cl_device *cldev)h](jO)}(hboolh]hbool}(hj*hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj*hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj*hhhj*hMubj%)}(hmei_cldev_enabledh]j)}(hmei_cldev_enabledh]hmei_cldev_enabled}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj*hhhj*hMubj@)}(h#(const struct mei_cl_device *cldev)h]jF)}(h!const struct mei_cl_device *cldevh](jL)}(hjh]hconst}(hj +hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubjL)}(hjOh]hstruct}(hj&+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj3+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjD+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjF+modnameN classnameNjj)}j ]j )}jj*sbc.mei_cldev_enabledasbuh1hhj+ubj)}(h h]h }(hjd+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubj)}(hjh]h*}(hjr+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(hcldevh]hcldev}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj+ubah}(h]h ]h"]h$]h&]hhuh1j?hj*hhhj*hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj*hhhj*hMubah}(h]j*ah ](jjeh"]h$]h&]jj)jhuh1jhj*hMhj*hhubj)}(hhh]h)}(h#check whether the device is enabledh]h#check whether the device is enabled}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj+hhubah}(h]h ]h"]h$]h&]uh1jhj*hhhj*hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1jhhhjhNhNubj)}(h**Parameters** ``const struct mei_cl_device *cldev`` mei client device **Return** true if me client is initialized and connectedh](h)}(h**Parameters**h]j )}(hj+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj+ubj")}(hhh]j')}(h8``const struct mei_cl_device *cldev`` mei client device h](j-)}(h%``const struct mei_cl_device *cldev``h]j.)}(hj+h]h!const struct mei_cl_device *cldev}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj+ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj+ubjG)}(hhh]h)}(hmei client deviceh]hmei client device}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hMhj,ubah}(h]h ]h"]h$]h&]uh1jFhj+ubeh}(h]h ]h"]h$]h&]uh1j&hj+hMhj+ubah}(h]h ]h"]h$]h&]uh1j!hj+ubh)}(h **Return**h]j )}(hj%,h]hReturn}(hj',hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#,ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj+ubh)}(h.true if me client is initialized and connectedh]h.true if me client is initialized and connected}(hj;,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_enable (C function)c.mei_cldev_enablehNtauh1jhjhhhNhNubj)}(hhh](j)}(h2int mei_cldev_enable (struct mei_cl_device *cldev)h]j)}(h1int mei_cldev_enable(struct mei_cl_device *cldev)h](jO)}(hinth]hint}(hjj,hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjf,hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM"ubj)}(h h]h }(hjy,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjf,hhhjx,hM"ubj%)}(hmei_cldev_enableh]j)}(hmei_cldev_enableh]hmei_cldev_enable}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjf,hhhjx,hM"ubj@)}(h(struct mei_cl_device *cldev)h]jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj,ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j ]j )}jj,sbc.mei_cldev_enableasbuh1hhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hcldevh]hcldev}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj,ubah}(h]h ]h"]h$]h&]hhuh1j?hjf,hhhjx,hM"ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjb,hhhjx,hM"ubah}(h]j],ah ](jjeh"]h$]h&]jj)jhuh1jhjx,hM"hj_,hhubj)}(hhh]h)}(h8enable me client device create connection with me clienth]h8enable me client device create connection with me client}(hj*-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM"hj'-hhubah}(h]h ]h"]h$]h&]uh1jhj_,hhhjx,hM"ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjB-jjB-jjjuh1jhhhjhNhNubj)}(hm**Parameters** ``struct mei_cl_device *cldev`` me client device **Return** 0 on success and < 0 on errorh](h)}(h**Parameters**h]j )}(hjL-h]h Parameters}(hjN-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJ-ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM&hjF-ubj")}(hhh]j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hjk-h]hstruct mei_cl_device *cldev}(hjm-hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hji-ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM%hje-ubjG)}(hhh]h)}(hme client deviceh]hme client device}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hM%hj-ubah}(h]h ]h"]h$]h&]uh1jFhje-ubeh}(h]h ]h"]h$]h&]uh1j&hj-hM%hjb-ubah}(h]h ]h"]h$]h&]uh1j!hjF-ubh)}(h **Return**h]j )}(hj-h]hReturn}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM'hjF-ubh)}(h0 on success and < 0 on errorh]h0 on success and < 0 on error}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chM'hjF-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jmei_cldev_disable (C function)c.mei_cldev_disablehNtauh1jhjhhhNhNubj)}(hhh](j)}(h3int mei_cldev_disable (struct mei_cl_device *cldev)h]j)}(h2int mei_cldev_disable(struct mei_cl_device *cldev)h](jO)}(hinth]hint}(hj-hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj-hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMmubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj-hhhj-hMmubj%)}(hmei_cldev_disableh]j)}(hmei_cldev_disableh]hmei_cldev_disable}(hj .hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hj-hhhj-hMmubj@)}(h(struct mei_cl_device *cldev)h]jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hj(.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$.ubj)}(h h]h }(hj5.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj$.ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hjF.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjH.modnameN classnameNjj)}j ]j )}jj.sbc.mei_cldev_disableasbuh1hhj$.ubj)}(h h]h }(hjf.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj$.ubj)}(hjh]h*}(hjt.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$.ubj)}(hcldevh]hcldev}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj .ubah}(h]h ]h"]h$]h&]hhuh1j?hj-hhhj-hMmubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj-hhhj-hMmubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1jhj-hMmhj-h8^hubj)}(hhh]h)}(h6disable me client device disconnect form the me clienth]h6disable me client device disconnect form the me client}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMmhj.hhubah}(h]h ]h"]h$]h&]uh1jhj-hhhj-hMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.jj.jjjuh1jhhhjhNhNubj)}(hm**Parameters** ``struct mei_cl_device *cldev`` me client device **Return** 0 on success and < 0 on errorh](h)}(h**Parameters**h]j )}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj.ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMqhj.ubj")}(hhh]j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hj.h]hstruct mei_cl_device *cldev}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj.ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMphj.ubjG)}(hhh]h)}(hme client deviceh]hme client device}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMphj/ubah}(h]h ]h"]h$]h&]uh1jFhj.ubeh}(h]h ]h"]h$]h&]uh1j&hj/hMphj.ubah}(h]h ]h"]h$]h&]uh1j!hj.ubh)}(h **Return**h]j )}(hj'/h]hReturn}(hj)/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj%/ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMrhj.ubh)}(h0 on success and < 0 on errorh]h0 on success and < 0 on error}(hj=/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMrhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'mei_cldev_send_gsc_command (C function)c.mei_cldev_send_gsc_commandhNtauh1jhjhhhNhNubj)}(hhh](j)}(hssize_t mei_cldev_send_gsc_command (struct mei_cl_device *cldev, u8 client_id, u32 fence_id, struct scatterlist *sg_in, size_t total_in_len, struct scatterlist *sg_out)h]j)}(hssize_t mei_cldev_send_gsc_command(struct mei_cl_device *cldev, u8 client_id, u32 fence_id, struct scatterlist *sg_in, size_t total_in_len, struct scatterlist *sg_out)h](h)}(hhh]j)}(hssize_th]hssize_t}(hjo/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjl/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq/modnameN classnameNjj)}j ]j )}jmei_cldev_send_gsc_commandsbc.mei_cldev_send_gsc_commandasbuh1hhjh/hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjh/hhhj/hMubj%)}(hmei_cldev_send_gsc_commandh]j)}(hj/h]hmei_cldev_send_gsc_command}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ](j:j;eh"]h$]h&]hhuh1j$hjh/hhhj/hMubj@)}(h(struct mei_cl_device *cldev, u8 client_id, u32 fence_id, struct scatterlist *sg_in, size_t total_in_len, struct scatterlist *sg_out)h](jF)}(hstruct mei_cl_device *cldevh](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj/ubh)}(hhh]j)}(h mei_cl_deviceh]h mei_cl_device}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j ]j/c.mei_cldev_send_gsc_commandasbuh1hhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj/ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hcldevh]hcldev}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj/ubjF)}(h u8 client_idh](h)}(hhh]j)}(hu8h]hu8}(hj10hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj30modnameN classnameNjj)}j ]j/c.mei_cldev_send_gsc_commandasbuh1hhj*0ubj)}(h h]h }(hjO0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj*0ubj)}(h client_idh]h client_id}(hj]0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj/ubjF)}(h u32 fence_idh](h)}(hhh]j)}(hu32h]hu32}(hjy0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{0modnameN classnameNjj)}j ]j/c.mei_cldev_send_gsc_commandasbuh1hhjr0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjr0ubj)}(hfence_idh]hfence_id}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj/ubjF)}(hstruct scatterlist *sg_inh](jL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubh)}(hhh]j)}(h scatterlisth]h scatterlist}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j ]j/c.mei_cldev_send_gsc_commandasbuh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hsg_inh]hsg_in}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj/ubjF)}(hsize_t total_in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj11hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj31modnameN classnameNjj)}j ]j/c.mei_cldev_send_gsc_commandasbuh1hhj*1ubj)}(h h]h }(hjO1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj*1ubj)}(h total_in_lenh]h total_in_len}(hj]1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj/ubjF)}(hstruct scatterlist *sg_outh](jL)}(hjOh]hstruct}(hjv1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjr1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjr1ubh)}(hhh]j)}(h scatterlisth]h scatterlist}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j ]j/c.mei_cldev_send_gsc_commandasbuh1hhjr1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjr1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr1ubj)}(hsg_outh]hsg_out}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jEhj/ubeh}(h]h ]h"]h$]h&]hhuh1j?hjh/hhhj/hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjd/hhhj/hMubah}(h]j_/ah ](jjeh"]h$]h&]jj)jhuh1jhj/hMhja/hhubj)}(hhh]h)}(hUsends a gsc command, by sending a gsl mei message to gsc and receiving reply from gsch]hUsends a gsc command, by sending a gsl mei message to gsc and receiving reply from gsc}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj1hhubah}(h]h ]h"]h$]h&]uh1jhja/hhhj/hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1jhhhjhNhNubj)}(hX**Parameters** ``struct mei_cl_device *cldev`` me client device ``u8 client_id`` client id to send the command to ``u32 fence_id`` fence id to send the command to ``struct scatterlist *sg_in`` scatter gather list containing addresses for rx message buffer ``size_t total_in_len`` total length of data in 'in' sg, can be less than the sum of buffers sizes ``struct scatterlist *sg_out`` scatter gather list containing addresses for tx message buffer **Return** * written size in bytes * < 0 on errorh](h)}(h**Parameters**h]j )}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj2ubj")}(hhh](j')}(h1``struct mei_cl_device *cldev`` me client device h](j-)}(h``struct mei_cl_device *cldev``h]j.)}(hj82h]hstruct mei_cl_device *cldev}(hj:2hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj62ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj22ubjG)}(hhh]h)}(hme client deviceh]hme client device}(hjQ2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM2hMhjN2ubah}(h]h ]h"]h$]h&]uh1jFhj22ubeh}(h]h ]h"]h$]h&]uh1j&hjM2hMhj/2ubj')}(h2``u8 client_id`` client id to send the command to h](j-)}(h``u8 client_id``h]j.)}(hjq2h]h u8 client_id}(hjs2hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjo2ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjk2ubjG)}(hhh]h)}(h client id to send the command toh]h client id to send the command to}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jFhjk2ubeh}(h]h ]h"]h$]h&]uh1j&hj2hMhj/2ubj')}(h1``u32 fence_id`` fence id to send the command to h](j-)}(h``u32 fence_id``h]j.)}(hj2h]h u32 fence_id}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj2ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj2ubjG)}(hhh]h)}(hfence id to send the command toh]hfence id to send the command to}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jFhj2ubeh}(h]h ]h"]h$]h&]uh1j&hj2hMhj/2ubj')}(h]``struct scatterlist *sg_in`` scatter gather list containing addresses for rx message buffer h](j-)}(h``struct scatterlist *sg_in``h]j.)}(hj2h]hstruct scatterlist *sg_in}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj2ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj2ubjG)}(hhh]h)}(h>scatter gather list containing addresses for rx message bufferh]h>scatter gather list containing addresses for rx message buffer}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jFhj2ubeh}(h]h ]h"]h$]h&]uh1j&hj2hMhj/2ubj')}(hc``size_t total_in_len`` total length of data in 'in' sg, can be less than the sum of buffers sizes h](j-)}(h``size_t total_in_len``h]j.)}(hj3h]hsize_t total_in_len}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hj3ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj3ubjG)}(hhh]h)}(hJtotal length of data in 'in' sg, can be less than the sum of buffers sizesh]hNtotal length of data in ‘in’ sg, can be less than the sum of buffers sizes}(hj53hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj13hMhj23ubah}(h]h ]h"]h$]h&]uh1jFhj3ubeh}(h]h ]h"]h$]h&]uh1j&hj13hMhj/2ubj')}(h^``struct scatterlist *sg_out`` scatter gather list containing addresses for tx message buffer h](j-)}(h``struct scatterlist *sg_out``h]j.)}(hjU3h]hstruct scatterlist *sg_out}(hjW3hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hjS3ubah}(h]h ]h"]h$]h&]uh1j,hd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhjO3ubjG)}(hhh]h)}(h>scatter gather list containing addresses for tx message bufferh]h>scatter gather list containing addresses for tx message buffer}(hjn3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj3hMhjk3ubah}(h]h ]h"]h$]h&]uh1jFhjO3ubeh}(h]h ]h"]h$]h&]uh1j&hjj3hMhj/2ubeh}(h]h ]h"]h$]h&]uh1j!hj2ubh)}(h **Return**h]j )}(hj3h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj3ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj2ubj/)}(hhh](j4)}(hwritten size in bytesh]h)}(hj3h]hwritten size in bytes}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj3ubah}(h]h ]h"]h$]h&]uh1j3hj3ubj4)}(h < 0 on errorh]h)}(hj3h]h < 0 on error}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/mei-client-bus:71: ./drivers/misc/mei/bus.chMhj3ubah}(h]h ]h"]h$]h&]uh1j3hj3ubeh}(h]h ]h"]h$]h&]jkjuh1j.hj3hMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h](jid1eh ]h"](api:apieh$]h&]uh1hhjhhhhhKFexpect_referenced_by_name}j3jsexpect_referenced_by_id}jjsubeh}(h]mei-cl-bus-apiah ]h"]mei cl bus apiah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hExampleh]hExample}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hhhhhKMubh)}(hAs a theoretical example let's pretend the ME comes with a "contact" NFC IP. The driver init and exit routines for this device would look like:h]hAs a theoretical example let’s pretend the ME comes with a “contact” NFC IP. The driver init and exit routines for this device would look like:}(hj 4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhj3hhubjY)}(hX6#define CONTACT_DRIVER_NAME "contact" static struct mei_cl_device_id contact_mei_cl_tbl[] = { { CONTACT_DRIVER_NAME, }, /* required last entry */ { } }; MODULE_DEVICE_TABLE(mei_cl, contact_mei_cl_tbl); static struct mei_cl_driver contact_driver = { .id_table = contact_mei_tbl, .name = CONTACT_DRIVER_NAME, .probe = contact_probe, .remove = contact_remove, }; static int contact_init(void) { int r; r = mei_cl_driver_register(&contact_driver); if (r) { pr_err(CONTACT_DRIVER_NAME ": driver registration failed\n"); return r; } return 0; } static void __exit contact_exit(void) { mei_cl_driver_unregister(&contact_driver); } module_init(contact_init); module_exit(contact_exit);h]hX6#define CONTACT_DRIVER_NAME "contact" static struct mei_cl_device_id contact_mei_cl_tbl[] = { { CONTACT_DRIVER_NAME, }, /* required last entry */ { } }; MODULE_DEVICE_TABLE(mei_cl, contact_mei_cl_tbl); static struct mei_cl_driver contact_driver = { .id_table = contact_mei_tbl, .name = CONTACT_DRIVER_NAME, .probe = contact_probe, .remove = contact_remove, }; static int contact_init(void) { int r; r = mei_cl_driver_register(&contact_driver); if (r) { pr_err(CONTACT_DRIVER_NAME ": driver registration failed\n"); return r; } return 0; } static void __exit contact_exit(void) { mei_cl_driver_unregister(&contact_driver); } module_init(contact_init); module_exit(contact_exit);}hj4sbah}(h]h ]h"]h$]h&]hhjhjijjjk}uh1jXhhhKRhj3hhubh)}(h?And the driver's simplified probe routine would look like that:h]hAAnd the driver’s simplified probe routine would look like that:}(hj)4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hj3hhubjY)}(hint contact_probe(struct mei_cl_device *dev, struct mei_cl_device_id *id) { [...] mei_cldev_enable(dev); mei_cldev_register_rx_cb(dev, contact_rx_cb); return 0; }h]hint contact_probe(struct mei_cl_device *dev, struct mei_cl_device_id *id) { [...] mei_cldev_enable(dev); mei_cldev_register_rx_cb(dev, contact_rx_cb); return 0; }}hj74sbah}(h]h ]h"]h$]h&]hhjhjijjjk}uh1jXhhhK}hj3hhubh)}(hX In the probe routine the driver first enable the MEI device and then registers an rx handler which is as close as it can get to registering a threaded IRQ handler. The handler implementation will typically call :c:func:`mei_cldev_recv` and then process received data.h](hIn the probe routine the driver first enable the MEI device and then registers an rx handler which is as close as it can get to registering a threaded IRQ handler. The handler implementation will typically call }(hjF4hhhNhNubh)}(h:c:func:`mei_cldev_recv`h]j.)}(hjP4h]hmei_cldev_recv()}(hjR4hhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1j-hjN4ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypefunc refexplicitrefwarnjj)}j ]sbjmei_cldev_recvuh1hhhhKhjF4ubh and then process received data.}(hjF4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj3hhubjY)}(hX#define MAX_PAYLOAD 128 #define HDR_SIZE 4 static void conntact_rx_cb(struct mei_cl_device *cldev) { struct contact *c = mei_cldev_get_drvdata(cldev); unsigned char payload[MAX_PAYLOAD]; ssize_t payload_sz; payload_sz = mei_cldev_recv(cldev, payload, MAX_PAYLOAD) if (reply_size < HDR_SIZE) { return; } c->process_rx(payload); }h]hX#define MAX_PAYLOAD 128 #define HDR_SIZE 4 static void conntact_rx_cb(struct mei_cl_device *cldev) { struct contact *c = mei_cldev_get_drvdata(cldev); unsigned char payload[MAX_PAYLOAD]; ssize_t payload_sz; payload_sz = mei_cldev_recv(cldev, payload, MAX_PAYLOAD) if (reply_size < HDR_SIZE) { return; } c->process_rx(payload); }}hjz4sbah}(h]h ]h"]h$]h&]hhjhjijjjk}uh1jXhhhKhj3hhubeh}(h]exampleah ]h"]exampleah$]h&]uh1hhhhhhhhKMubh)}(hhh](h)}(hMEI Client Bus Driversh]hMEI Client Bus Drivers}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hhhhhKubhcompound)}(hhh]htoctree)}(hhh]h}(h]h ]h"]h$]h&]hjentries](Ndriver-api/mei/hdcpNdriver-api/mei/nfce includefiles](j4j4emaxdepthKcaptionNglobhidden includehiddennumberedK titlesonly rawentries]uh1j4hhhKhj4ubah}(h]h ]toctree-wrapperah"]h$]h&]uh1j4hj4hhhhhNubeh}(h]mei-client-bus-driversah ]h"]mei client bus driversah$]h&]uh1hhhhhhhhKubeh}(h]+intel-r-management-engine-me-client-bus-apiah ]h"].intel(r) management engine (me) client bus apiah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj4error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}j]jasnameids}(j4j4jjj3j3j3jj3j3j4j4j4j4u nametypes}(j4jj3j3j3j4j4uh}(j4hjhj3jjjj3jjjjjju jz j j j'j,j jjjjfjkj jj j j "j"j#j#j%j%jc'jh'j)j)j*j*j],jb,j-j-j_/jd/j4j3j4j4u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j 5KsRparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h)Hyperlink target "api" is not referenced.}hjg5sbah}(h]h ]h"]h$]h&]uh1hhjd5ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehnjlineKCuh1jb5uba transformerN include_log] decorationNhhub.