v4l2_ctrl_s_ctrl_compound(9)
π v4l2_ctrl_s_ctrl_compound(9) β Kernel API Manual bestie check-in π«Ά
β¨ NAME β¨
v4l2_ctrl_s_ctrl_compound is the helper function to set a compound control from within a driver. That's the whole assignment, bestie. π
π SYNOPSIS π
Here's the signature, exactly as it is because we do not mess with C syntax:
int v4l2_ctrl_s_ctrl_compound (struct v4l2_ctrl *ctrl , enum
v4l2_ctrl_type type , const void *p );
π¦ ARGUMENTS π¦
ctrlβ the control. The one you're working with.typeβ the type of the data. The data type, periodt.pβ the new compound payload. The fresh payload you're passing in.
πΈ DESCRIPTION πΈ
Okay so here's the tea: this sets the control's new compound payload safely by going through the control framework. It will lock the control's handler, so it cannot be used from within the v4l2_ctrl_ops functions. Like, do not do it there. π
This function is for compound type controls only. No basic-control energy, no exceptions. π
β οΈ Vibe check bestie: the handler lock is real, and using this from inside v4l2_ctrl_ops functions is a hard no. We do not do that here. π
π SEE ALSO π
Kernel file to peek at: ./include/media/v4l2-ctrls.h β iconic. Then the linked friend group, in waves so your eyes don't fall out:
union v4l2_ctrl_ptr(9),v4l2_ctrl_ptr_create(9),struct v4l2_ctrl_ops(9),struct v4l2_ctrl_type_ops(9),v4l2_ctrl_notify_fnc(9),struct v4l2_ctrl(9),struct v4l2_ctrl_ref(9),struct v4l2_ctrl_handler(9),struct v4l2_ctrl_config(9),v4l2_ctrl_fill(9),v4l2_ctrl_handler_init_class(9),v4l2_ctrl_handler_init(9),v4l2_ctrl_handler_free(9),v4l2_ctrl_lock(9),v4l2_ctrl_unlock(9),__v4l2_ctrl_handler_setup(9),v4l2_ctrl_handler_setup(9),v4l2_ctrl_handler_log_status(9),v4l2_ctrl_new_custom(9)v4l2_ctrl_new_std(9),v4l2_ctrl_new_std_menu(9),v4l2_ctrl_new_std_menu_items(9),v4l2_ctrl_new_std_compound(9),v4l2_ctrl_new_int_menu(9),v4l2_ctrl_filter(9),v4l2_ctrl_add_handler(9),v4l2_ctrl_radio_filter(9),v4l2_ctrl_cluster(9),v4l2_ctrl_auto_cluster(9),v4l2_ctrl_find(9),v4l2_ctrl_activate(9),__v4l2_ctrl_grab(9),v4l2_ctrl_grab(9),__v4l2_ctrl_modify_range(9),v4l2_ctrl_modify_range(9),__v4l2_ctrl_modify_dimensions(9),v4l2_ctrl_modify_dimensions(9),v4l2_ctrl_notify(9)v4l2_ctrl_get_name(9),v4l2_ctrl_get_menu(9),v4l2_ctrl_get_int_menu(9),v4l2_ctrl_g_ctrl(9),__v4l2_ctrl_s_ctrl(9),v4l2_ctrl_s_ctrl(9),v4l2_ctrl_g_ctrl_int64(9),__v4l2_ctrl_s_ctrl_int64(9),v4l2_ctrl_s_ctrl_int64(9),__v4l2_ctrl_s_ctrl_string(9),v4l2_ctrl_s_ctrl_string(9),__v4l2_ctrl_s_ctrl_compound(9),v4l2_ctrl_replace(9),v4l2_ctrl_merge(9),v4l2_ctrl_log_status(9),v4l2_ctrl_subscribe_event(9),v4l2_ctrl_poll(9),v4l2_ctrl_request_setup(9),v4l2_ctrl_request_complete(9)v4l2_ctrl_request_hdl_find(9),v4l2_ctrl_request_hdl_put(9),v4l2_ctrl_request_hdl_ctrl_find(9),v4l2_queryctrl(9),v4l2_query_ext_ctrl_to_v4l2_queryctrl(9),v4l2_query_ext_ctrl(9),v4l2_querymenu(9),v4l2_g_ctrl(9),v4l2_s_ctrl(9),v4l2_g_ext_ctrls(9),v4l2_try_ext_ctrls(9),v4l2_s_ext_ctrls(9),v4l2_ctrl_subdev_subscribe_event(9),v4l2_ctrl_subdev_log_status(9),v4l2_ctrl_new_fwnode_properties(9),v4l2_ctrl_type_op_equal(9),v4l2_ctrl_type_op_init(9),v4l2_ctrl_type_op_log(9),v4l2_ctrl_type_op_validate(9)
mwah π this page is from the Kernel API Manual, source ./include/media, dated October 2026, and the footer version/name is v4l2_ctrl_s_ctrl_compound(9). bye bestie β go set those compound controls safely! π«Άβ¨
π¦ 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