uclogic_par...ith_opt_desc(9)
π uclogic_par...ith_opt_desc(9) β like, the Kernel API Manual, but make it make sense β¨
okay bestie, so this one lives in the Kernel API Manual and its whole vibe is: initialize tablet interface parameters with an optional replacement report descriptor. and the tiny little plot twist? It only touches the report descriptor if the original one matches the expected size π like, it does a vibe check on the size first, no cap.
πΈ NAME πΈ
uclogic_params_init_with_opt_desc β initialize tablet interface parameters with an optional replacement report descriptor. It only modifies the report descriptor if the original report descriptor matches the expected size. periodt π
β¨ SYNOPSIS β¨
int uclogic_params_init_with_opt_desc (struct uclogic_params *params ,
struct hid_device *hdev , unsigned int orig_desc_size , const __u8
*desc_ptr , unsigned int desc_size );
π¦ ARGUMENTS π¦
paramsβ the parameters you're initializing, bestie. (heads up: these get cleaned withuclogic_params_cleanup.) If something goes wrong it's not modified, so no half-done mess π and it cannot beNULL, fr fr.hdevβ the HID device of the tablet interface you're creating the parameters for. also cannot beNULLπorig_desc_sizeβ the expected size of the original report descriptor that's getting replaced. like the bouncer checking IDs at the door πdesc_ptrβ pointer to the replacement report descriptor. it can beNULL, but only ifdesc_sizeis zero. them's the rules π€desc_sizeβ size of the replacement report descriptor. literally that's it π
π₯ RETURN π₯
- Zero β slay, it worked, successful β¨
-EINVALβ an invalid argument was passed π-ENOMEMβ failed to allocate memory, tragic, the malloc said no π
π SEE ALSO π
Kernel file ./drivers/hid/hid-uclogic-params.c β go read it, it's giving main character energy π«Ά
and the whole friend group:
uclogic_params_pen_inrange_to_str(9), uclogic_params_pen_hid_dbg(9), uclogic_params_frame_hid_dbg(9), uclogic_params_hid_dbg(9), uclogic_params_get_str_desc(9), uclogic_params_pen_cleanup(9), uclogic_params_pen_init_v1(9), uclogic_params_get_le24(9), uclogic_params_pen_init_v2(9), uclogic_params_frame_cleanup(9), uclogic_params_frame_init_with_desc(9), uclogic_params_frame_init_v1(9), uclogic_params_cleanup_event_hooks(9), uclogic_params_cleanup(9), uclogic_params_get_desc(9), uclogic_params_init_invalid(9), uclogic_params_huion_init(9), uclogic_probe_interface(9), uclogic_params_parse_ugee_v2_desc(9), uclogic_params_ugee_v2_init_frame_buttons(9), uclogic_params_ugee_v2_init_frame_dial(9), uclogic_params_ugee_v2_init_frame_mouse(9), uclogic_params_ugee_v2_has_battery(9), uclogic_params_ugee_v2_init_battery(9), uclogic_params_ugee_v2_reconnect_work(9), uclogic_params_ugee_v2_init_event_hooks(9), uclogic_params_ugee_v2_init(9), uclogic_params_init(9)
okay that's the whole page, mwah π this icon of a manpage comes to you from ./drivers/hid, dated October 2026 β drink some water, go touch grass, and remember: if the size doesn't match, the descriptor does NOT get replaced ππ
π¦ 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