hlist_splice_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ hlist_splice_init β€” the Kernel API Manual, section 9, bestie πŸ’…

Okay so real talk, this one's a lil cutie with a big job, and it lives in the Kernel API Manual, section 9, so you already know it's ✨official✨.

✨ NAME ✨

hlist_splice_init β€” literally just moving every single entry from one list over to another. That's it, that's the whole vibe. πŸŽ€

πŸ¦‹ SYNOPSIS πŸ¦‹

void hlist_splice_init (struct hlist_head *from , struct hlist_node
     *last , struct hlist_head *to );

🌸 ARGUMENTS 🌸

  • from β€” the hlist_head that the entries are getting yeeted out of πŸ’¨
  • last β€” the last entry sitting on the from list. Yes, you gotta point at it. She needs to know where to stop, okurrr 🫢
  • to β€” the hlist_head that the entries are landing in πŸ›¬

πŸ’œ DESCRIPTION πŸ’œ

So here's the tea πŸ“: to is allowed to be empty β€” like, fully vacant, no entries, napping, untouched, zero notes. That's completely fine, no cap.

But from? from must contain at least last. Not optional. Not "eh, close enough". If last isn't actually on that list, you're in the danger zone, bestie 😭 β€” so don't do that.

🚨 vibe check: to empty = iconic and valid. from without last in it = not valid, do not pass go, do not collect your entries.

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/linux/list.h β€” go read the source, iykyk 🌈

And now the whole extended fam, in order, because I would never do you like that and skip anyone πŸ‘‘

LIST_HEAD_INIT(9), LIST_HEAD(9), LIST_HEAD_GUARDED(9), INIT_LIST_HEAD(9), list_add(9), list_add_tail(9), list_add_tail_release(9), list_del(9), list_replace(9), list_replace_init(9), list_swap(9), list_del_init(9), list_move(9), list_move_tail(9), list_bulk_move_tail(9), list_is_first(9), list_is_last(9), list_is_head(9), list_empty(9), list_del_init_careful(9), list_empty_careful(9), list_rotate_left(9), list_rotate_to_front(9), list_is_singular(9), list_cut_position(9), list_cut_before(9), list_splice(9), list_splice_tail(9), list_splice_init(9), list_splice_tail_init(9), list_entry(9), list_first_entry(9), list_last_entry(9), list_first_entry_or_null(9), list_first_entry_or_null_acquire(9), list_last_entry_or_null(9), list_next_entry(9), list_next_entry_circular(9), list_prev_entry(9), list_prev_entry_circular(9), list_for_each(9), list_for_each_continue(9), list_for_each_prev(9), list_for_each_safe(9), list_for_each_prev_safe(9), list_count_nodes(9), list_entry_is_head(9), list_for_each_entry(9), list_for_each_entry_reverse(9), list_prepare_entry(9), list_for_each_entry_continue(9), list_for_each_entry_continue_reverse(9), list_for_each_entry_from(9), list_for_each_entry_from_reverse(9), list_for_each_entry_safe(9), list_for_each_entry_safe_continue(9), list_for_each_entry_safe_from(9), list_for_each_entry_safe_reverse(9), list_safe_reset_next(9), hlist_unhashed(9), hlist_unhashed_lockless(9), hlist_empty(9), hlist_del(9), hlist_del_init(9), hlist_add_head(9), hlist_add_before(9), hlist_add_behind(9), hlist_add_fake(9), hlist_fake(9), hlist_is_singular_node(9), hlist_move_list(9), hlist_for_each_entry(9), hlist_for_each_entry_continue(9), hlist_for_each_entry_from(9), hlist_for_each_entry_safe(9), hlist_count_nodes(9)


That's the whole squad, nobody left behind πŸ§šπŸ’–

And a lil sign-off, mwah πŸ’‹ β€” this one comes from ./include/linux, dated October 2026, and she's filed as hlist_splice_init(9). Slay, go splice responsibly πŸŽ€βœ¨

πŸ“¦ where this page comes from