4.1.1.1.1. Soft IRQ Example
// Registers softirq handler
extern void open_softirq (
  int nr,
  void (*action)(struct softirq_action*),
  void *data);

void open_softirq (...)
{
  softirq_vec [nr].data = data;
  softirq_vec [nr].action = action;
}

// Schedules softirq handler
inline fastcall void raise_softirq_irqoff (unsigned int nr)
{
  or_softirq_pending (1UL << (nr));
  if (!in_interrupt ()) wakeup_softirqd ();
}