idpf_send_mb_msg(9)
β¨ idpf_send_mb_msg β¨
okay so this is a page from the Kernel API Manual bestie, and it's literally the lore drop for idpf_send_mb_msg β the little function that slides a mailbox message over to the device control plane. the vibes are immaculate, the flags are detailed, let's get into it π
πΈ NAME πΈ
idpf_send_mb_msg β send mailbox message to the device control plane π«Ά
π SYNOPSIS π
int idpf_send_mb_msg (struct idpf_adapter *adapter , struct
libie_ctlq_xn_send_params *xn_params , void *send_buf , size_t
send_buf_size );
π¦ ARGUMENTS π¦
adapterβ the driver specific private structure, aka the main character of this whole operation πxn_paramsβ the Xn send parameters that need filling in, she's an empty cup waiting for her momentsend_bufβ the buffer you actually want to send, no capsend_buf_sizeβ how big that send buffer is, keep it honest π
π DESCRIPTION π
So what she does is: fill the Xn parameters with all the required info you need to send a virtchnl message. That's the whole assignment. β¨
And here's the slay part β the send buffer is DMA mapped in the libie, specifically so we don't have to memcpy it. efficiency icon behaviour honestly π
She also handles cleanup duty: the mailbox queue entries of the previously sent message get cleaned up, unmapping and releasing the buffer. past-you's mess, tidied up. we love a responsible queen π§Ήπ
π₯ RETURN π₯
0β the request was successful, we ate and left no crumbs π-EBUSYβ a reset got detected, or the Tx control queue is full π (she's booked and busy, try again later)- other negative error code β something went wrong, it's giving failure, check your vibes
π SEE ALSO π
the kernel file in question, for the curious: ./drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
and the whole friend group, fr fr β go read these too:
idpf_vid_to_vport(9)idpf_handle_event_link(9)idpf_recv_event_msg(9)idpf_mb_clean(9)idpf_ptp_is_mb_msg(9)idpf_prepare_ptp_mb_msg(9)idpf_send_mb_msg_kfree(9)idpf_send_vf_reset_msg(9)idpf_send_chunked_msg(9)idpf_wait_for_marker_event_set(9)idpf_wait_for_marker_event(9)idpf_send_ver_msg(9)idpf_send_get_caps_msg(9)idpf_mmio_region_non_static(9)idpf_decfg_lan_memory_regions(9)idpf_cfg_lan_memory_regions(9)idpf_map_remaining_mmio_regs(9)idpf_add_del_fsteer_filters(9)idpf_vport_alloc_max_qs(9)idpf_vport_dealloc_max_qs(9)idpf_init_avail_queues(9)idpf_vport_init_queue_reg_chunks(9)idpf_get_reg_intr_vecs(9)idpf_vport_get_q_reg(9)__idpf_queue_reg_init(9)idpf_queue_reg_init(9)idpf_send_create_vport_msg(9)idpf_check_supported_desc_ids(9)idpf_send_destroy_vport_msg(9)idpf_send_enable_vport_msg(9)idpf_send_disable_vport_msg(9)idpf_fill_txq_config_chunk(9)idpf_fill_complq_config_chunk(9)idpf_prepare_cfg_txqs_msg(9)idpf_send_config_tx_queue_set_msg(9)idpf_send_config_tx_queues_msg(9)idpf_fill_rxq_config_chunk(9)idpf_fill_bufq_config_chunk(9)idpf_prepare_cfg_rxqs_msg(9)idpf_send_config_rx_queue_set_msg(9)idpf_send_config_rx_queues_msg(9)idpf_prepare_ena_dis_qs_msg(9)idpf_send_ena_dis_queue_set_msg(9)idpf_send_ena_dis_queues_msg(9)idpf_prep_map_unmap_queue_set_vector_msg(9)idpf_send_map_unmap_queue_set_vector_msg(9)idpf_send_map_unmap_queue_vector_msg(9)idpf_send_enable_queue_set_msg(9)idpf_send_disable_queue_set_msg(9)idpf_send_config_queue_set_msg(9)idpf_send_enable_queues_msg(9)idpf_send_disable_queues_msg(9)idpf_convert_reg_to_queue_chunks(9)idpf_send_delete_queues_msg(9)idpf_send_config_queues_msg(9)idpf_send_add_queues_msg(9)idpf_send_alloc_vectors_msg(9)idpf_send_dealloc_vectors_msg(9)idpf_get_max_vfs(9)idpf_send_set_sriov_vfs_msg(9)idpf_send_get_stats_msg(9)idpf_send_set_rss_lut_msg(9)idpf_send_set_rss_key_msg(9)idpf_fill_ptype_lookup(9)idpf_parse_protocol_ids(9)idpf_send_get_rx_ptype_msg(9)idpf_rel_rx_pt_lkup(9)idpf_send_ena_dis_loopback_msg(9)idpf_init_dflt_mbx(9)idpf_deinit_dflt_mbx(9)idpf_vport_params_buf_rel(9)idpf_vport_params_buf_alloc(9)idpf_vc_core_init(9)idpf_vc_core_deinit(9)idpf_vport_alloc_vec_indexes(9)idpf_vport_init(9)idpf_get_vec_ids(9)idpf_vport_get_queue_ids(9)__idpf_vport_queue_ids_init(9)idpf_vport_queue_ids_init(9)idpf_vport_adjust_qs(9)idpf_is_capability_ena(9)idpf_vport_is_cap_ena(9)idpf_sideband_flow_type_ena(9)idpf_sideband_action_ena(9)idpf_get_vport_id(9)idpf_mac_filter_async_handler(9)idpf_add_del_mac_filters(9)idpf_promiscuous_async_handler(9)idpf_set_promiscuous(9)idpf_idc_rdma_vc_send_sync(9)
and that's the page!! π she lives in ./drivers/net/ethernet/intel/idpf, dated October 2026 β go forth and send those mailbox messages, bestie, you're gonna do amazing πβ¨π¦
π¦ 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