v4l2_querymenu(9)
π v4l2_querymenu π
okay so bestie, welcome to the Kernel API Manual β¨ β this little cutie is v4l2_querymenu(9), and we're gonna get you fully caught up, no cap π«Ά
πΈ NAME πΈ
v4l2_querymenu β a lil helper function bestie, here to help you implement the VIDIOC_QUERYMENU ioctl (the docs call it :ref:VIDIOC_QUERYMENU <vidioc_queryctrl>`` β that's the literal ref string, don't come for me π)
β¨ SYNOPSIS β¨
int v4l2_querymenu (struct v4l2_ctrl_handler *hdl , struct
v4l2_querymenu *qm );
π ARGUMENTS π
hdlβ a pointer tostruct v4l2_ctrl_handler. literally just a pointer, she's not complicated πqmβ a pointer tostruct v4l2_querymenu. also just a pointer. iconic of her ngl β
π¦ DESCRIPTION π¦
So here's the whole vibe check: if hdl == NULL then they will all return -EINVAL. that's it. that's the tea β β pass a NULL handler and everything just bounces back with -EINVAL, no notes π
π₯ SEE ALSO π₯
okay this list is long long, but every single one of these deserves her moment, so let's go π
Kernel file ./include/media/v4l2-ctrls.h β and 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_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_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)
like I said. a LOT π«Ά go read them, they're all serving π
ngl this page is short but she's still mother π handle yourhdl, don't passNULL, and you're golden β¨
mwah π this has been v4l2_querymenu(9) β straight out of ./include/media, dated October 2026, sitting pretty under the Kernel API Manual umbrella π bye bestie, go slay some ioctls π¦π
π¦ 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