int uterm_video_register_cb(struct uterm_video *video, uterm_video_cb cb, void *data) { if (!video || !cb) return -EINVAL; return shl_hook_add_cast(video->hook, cb, data); }
SHL_EXPORT int uterm_display_register_cb(struct uterm_display *disp, uterm_display_cb cb, void *data) { if (!disp) return -EINVAL; return shl_hook_add_cast(disp->hook, cb, data, false); }