v4l2_ctrl_s_ctrl_int64(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… v4l2_ctrl_s_ctrl_int64 β€” the Kernel API Manual page, bestie edition

okay so you found the v4l2_ctrl_s_ctrl_int64(9) page in the Kernel API Manual and you're like "what does this do" β€” don't worry, I got you 🫢


✨ NAME ✨

v4l2_ctrl_s_ctrl_int64 β€” the helper function that sets a 64-bit control's value from inside a driver. literally its whole job. periodt πŸ’–


🌸 SYNOPSIS 🌸

int v4l2_ctrl_s_ctrl_int64 (struct v4l2_ctrl *ctrl , s64 val );

πŸŽ€ ARGUMENTS πŸŽ€

  • ctrl β€” the control. the main character, the one we're touching ✨
  • val β€” the new value. the new vibe you're giving this control πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea: this sets the control's new value safely by going through the control framework β€” no sneaky back-door assignment, no cap. 🧚

The way it works is it locks the control's handler, which is great for safety and also meansβ€”

⚠️ it cannot be used from within the v4l2_ctrl_ops functions. like, at all. don't even try it, that's how you get a deadlock situation and we do not want that energy 😭

And just so we're crystal clear: this function is for 64-bit integer type controls only. not 32-bit, not strings, not compound. 64-bit integers. iykyk πŸ’€


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/media/v4l2-ctrls.h β€” and honestly the whole friend group showed up:

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_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. πŸ’œ


and that's the page!! source: ./include/media, dated October 2026, filed under v4l2_ctrl_s_ctrl_int64(9) β€” mwah, slay, go set those 64-bit values responsibly bestie πŸŒˆπŸ‘‘πŸ’–

πŸ“¦ where this page comes from