STRUCT ACPM_CHAN_SHMEM(9)
π NAME π
struct acpm_chan_shmem β okay so this is literally the descriptor of a shared memory channel, bestie. That's the whole vibe. π¦
(also hi, this is the acpm_chan_shmem(9) page from the Kernel API Manual, mwah π
)
β¨ SYNOPSIS β¨
Here's the struct in all its glory β copy it exactly, do not touch, she is perfect as she is:
struct acpm_chan_shmem {
u32 id;
u32 reserved[3];
u32 rx_rear;
u32 rx_front;
u32 rx_base;
u32 reserved1[3];
u32 tx_rear;
u32 tx_front;
u32 tx_base;
u32 qlen;
u32 mlen;
u32 reserved2[2];
u32 poll_completion;
};
π MEMBERS π
Every field, no skips, we're doing a full tour π
idβ the channel ID. her government name, basically.reservedβ unused fields. they're just vibing, don't bother them.rx_rearβ rear pointer of the APM RX queue (that's the TX queue for AP, iykyk).rx_frontβ front pointer of the APM RX queue (TX for AP).rx_baseβ base address of the APM RX queue (TX for AP).reserved1β more unused fields. slay, they're decorative πtx_rearβ rear pointer of the APM TX queue (which is the RX queue for AP).tx_frontβ front pointer of the APM TX queue (RX for AP).tx_baseβ base address of the APM TX queue (RX for AP).qlenβ queue length, and it applies to both the TX and RX queues. equal opportunity queen πmlenβ message length, also applies to both TX and RX queues.reserved2β unused fields, yes again, it's a whole thing.poll_completionβtruewhen the channel works on polling. that's it, that's the field πΈ
heads up bestie: the direction flips between APM and AP for the rx/tx pointers βrx_*is the APM RX queue but the AP TX queue, andtx_*is the APM TX queue but the AP RX queue. don't mix them up or it's giving chaos π
π SEE ALSO π
the whole friend group, fr fr β go read these next:
- Kernel file
./drivers/firmware/samsung/exynos-acpm.c struct acpm_shmem(9)struct acpm_queue(9)struct acpm_rx_data(9)struct acpm_chan(9)struct acpm_info(9)struct acpm_match_data(9)acpm_get_saved_rx(9)acpm_get_rx(9)acpm_dequeue_by_polling(9)acpm_wait_for_queue_slots(9)acpm_prepare_xfer(9)acpm_wait_for_message_response(9)acpm_do_xfer(9)acpm_set_xfer(9)acpm_chan_shmem_get_params(9)acpm_achan_alloc_cmds(9)acpm_free_mbox_chans(9)acpm_channels_init(9)acpm_handle_put(9)devm_acpm_release(9)acpm_get_by_node(9)devm_acpm_get_by_node(9)devm_acpm_get_by_phandle(9)
and that's the page!! π«Ά brought to you by the source in ./drivers/firmware/samsung, stamped October 2026, and yes the footer still says struct acpm_chan_shmem(9) because she's the main character of her own manpage π
β¨
π¦ 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