mei_me_cl_by_uuid(9)
πΈ mei_me_cl_by_uuid β Kernel API Manual, bestie edition πΈ
okay so we're in the mei_me_cl_by_uuid(9) page, live from the Kernel API Manual, and it's genuinely a tiny little function that does one extremely specific thing. Let's get into it π
β¨ NAME β¨
mei_me_cl_by_uuid β locate me client by uuid increases ref count
(no cap, that's the whole name line: find an me client by its uuid, and bump the ref count while you're at it π«Ά)
π SYNOPSIS π
struct mei_me_client * mei_me_cl_by_uuid (struct mei_device *dev , const
uuid_le *uuid );
look at her go. returns a struct mei_me_client *, takes two args, that's it, that's the whole vibe β¨
π¦ ARGUMENTS π¦
devβ mei deviceuuidβ me client uuid
two lil inputs, both literally required, the device and the uuid you're hunting for π
π RETURN π
me client or NULL if not found
so like. you either get your client back or you get NULL and you have to deal with that emotionally π always check, bestie, fr fr.
π₯ DESCRIPTION π₯
Locking: dev->me_clients_rwsem
that's the entire description, and honestly? iconic. the one fact you actually need: this thing takes dev->me_clients_rwsem. know your lock, respect your lock, periodt π
π SEE ALSO π
the kernel file is ./drivers/misc/mei/client.c β that's where the whole family lives, and the family is huge, so buckle up, we're listing every single one π
πΈ the me-cl ones
mei_me_cl_init(9)mei_me_cl_get(9)mei_me_cl_release(9)mei_me_cl_put(9)__mei_me_cl_del(9)mei_me_cl_del(9)mei_me_cl_add(9)__mei_me_cl_by_uuid(9)mei_me_cl_by_id(9)__mei_me_cl_by_uuid_id(9)mei_me_cl_by_uuid_id(9)mei_me_cl_rm_by_uuid(9)mei_me_cl_rm_all(9)
π§ the io/cb ones
mei_io_cb_free(9)mei_tx_cb_enqueue(9)mei_tx_cb_dequeue(9)mei_cl_set_read_by_fp(9)mei_io_cb_init(9)mei_io_list_flush_cl(9)mei_io_tx_list_free_cl(9)mei_io_rd_list_free_fp(9)mei_cl_free_pending(9)mei_cl_alloc_cb(9)mei_cl_enqueue_ctrl_wr_cb(9)mei_cl_read_cb(9)mei_cl_flush_queues(9)
π the cl lifecycle ones
mei_cl_init(9)mei_cl_allocate(9)mei_cl_link(9)mei_cl_unlink(9)mei_hbuf_acquire(9)mei_cl_wake_all(9)mei_cl_set_disconnected(9)mei_cl_irq_disconnect(9)__mei_cl_disconnect(9)mei_cl_disconnect(9)mei_cl_is_other_connecting(9)mei_cl_send_connect(9)mei_cl_irq_connect(9)mei_cl_connect(9)mei_cl_alloc_linked(9)
π the flow-control + vtag ones
mei_cl_tx_flow_ctrl_creds(9)mei_cl_tx_flow_ctrl_creds_reduce(9)mei_cl_vtag_alloc(9)mei_cl_fp_by_vtag(9)mei_cl_reset_read_by_vtag(9)mei_cl_read_vtag_add_fc(9)mei_cl_vt_support_check(9)
π the rd-completed + notify ones
mei_cl_add_rd_completed(9)mei_cl_del_rd_completed(9)mei_cl_notify_fop2req(9)mei_cl_notify_req2fop(9)mei_cl_irq_notify(9)mei_cl_notify_request(9)mei_cl_notify(9)mei_cl_notify_get(9)
π the read/write/complete ones
mei_cl_read_start(9)mei_msg_hdr_init(9)mei_cl_irq_write(9)mei_cl_write(9)mei_cl_complete(9)mei_cl_all_disconnect(9)
π the dma ones
genuinely that's all of them β don't skip a single one of these cross-refs, some of them are literally the sibling functions of this exact lookup (looking at you__mei_me_cl_by_uuid(9)andmei_me_cl_by_uuid_id(9)π), so they're worth a read.
that's the page!! short, sweet, one lock, one return value π mwah.
β with love, from ./drivers/misc/mei, dated October 2026, and forever filed under mei_me_cl_by_uuid(9) π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms