v4l2_ctrl_notify_fnc(9)
π v4l2_ctrl_notify_fnc β like, the Kernel API Manual page, bestie β¨
Okay so real talk: this is the v4l2_ctrl_notify_fnc(9) page from the Kernel API Manual, and it's short but lowkey important, so let's get into it π«Ά
πΈ NAME πΈ
v4l2_ctrl_notify_fnc β it's a typedef for the notify argument that comes with a function that should get called when a control value has changed. That's the whole vibe. You pass this, and whenever the control's value changes, the function goes off π₯
β¨ SYNOPSIS β¨
void v4l2_ctrl_notify_fnc (struct v4l2_ctrl *ctrl , void *priv );
I know, I know β spaces before the commas. Not me judging, that's literally just how it's written π copy it exactly, no cap.
π ARGUMENTS π
ctrlβ a pointer tostruct v4l2_ctrl. Like, the control itself, the main character πprivβ the control's private data. Your little stash of personal stuff that rides along π
π¦ DESCRIPTION π¦
So this typedef definition is used as an argument to v4l2_ctrl_notify, and it's also used as an argument at struct v4l2_ctrl_handler. That's it, that's the tea β¨ Two places, icon behavior, periodt.
π SEE ALSO π
This is the part where I need you to hydrate, because it's a list β like a whole friend group of kernel symbols, and every single one of them is invited to the party π
From the kernel file ./include/media/v4l2-ctrls.h:
- union
v4l2_ctrl_ptr(9),v4l2_ctrl_ptr_create(9), structv4l2_ctrl_ops(9), structv4l2_ctrl_type_ops(9), structv4l2_ctrl(9), structv4l2_ctrl_ref(9), structv4l2_ctrl_handler(9), structv4l2_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_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)
Like I said β the whole group chat π
Bestie heads-up: this page is only the typedef definition. It's not a callable function with a body you run, so don't go looking for behavior that isn't here. The actual "call this when the value changes" mechanics live with the things listed above, fr fr π§
Okay that's the whole page, go touch some grass and then go read v4l2_ctrl_notify(9) π
β xoxo, from the ./include/media directory, dated October 2026, and this has been v4l2_ctrl_notify_fnc(9). slay π
π¦ 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