v4l2_ctrl_ne...d_menu_items(9)
π v4l2_ctrl_new_std_menu_items(9) π
okay bestie, welcome to the kernel API manual, section 9 β yes, the kernel one, we're literally in the ./include/media directory of the Linux kernel docs, and today's main character is v4l2_ctrl_new_std_menu_items. she's giving "make a new standard V4L2 menu control but with a driver-specific menu" and honestly? iconic. π
β¨ NAME β¨
v4l2_ctrl_new_std_menu_items β Create a new standard V4L2 menu control with driver specific menu.
πΈ SYNOPSIS πΈ
struct v4l2_ctrl * v4l2_ctrl_new_std_menu_items (struct
v4l2_ctrl_handler *hdl , const struct v4l2_ctrl_ops *ops , u32 id , u8
max , u64 mask , u8 def , const char * const *qmenu );
π¦ ARGUMENTS π¦
hdlβ The control handler. the whole vibe container, fr.opsβ The control ops. her support system.idβ The control ID. her name tag at the party.maxβ The control's maximum value. the ceiling, the limit, the "no you cannot go past this" energy.maskβ The control's skip mask for menu controls. lowkey the coolest part: it makes it easy to skip menu items that are not valid. If bit X is set, then menu item X is skipped. π«Ά Of course, this only works for menus with <= 64 menu items. There are no menus that come close to that number, so this is OK. Should we ever need more, then this will have to be extended to a bit array. so yeah β 64 bits of "not today bestie" and that's genuinely all we ever need, periodt.defβ The control's default value. the starting point, the "before you touch anything" era.qmenuβ The new menu. the moment, the slay, the whole point.
π DESCRIPTION π
Same as v4l2_ctrl_new_std_menu, but qmenu will be the driver specific menu of this control. like, same function energy, but the menu is yours. custom. bespoke. main character menu. π
ngl this one is short and sweet β the real lore lives in those arguments above, so don't skip them π
π SEE ALSO π
Kernel file ./include/media/v4l2-ctrls.h, plus the entire friend group β every single one of them, no cap, no skips:
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_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_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)
and that's a wrap on the kernel API manual entry for v4l2_ctrl_new_std_menu_items(9) π§ from ./include/media, dated October 2026, and every single one of you reading this is a lil kernel dev now. go be iconic with your menus. βπ₯π
π¦ 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