Configure Lunatik object behavior with lunatik_opt_t flags
masterBehavioral flags for Lunatik objects are set via lunatik_opt_t. These flags can be defined at the class level (inherited by all instances) or at the instance level. They are categorized into constraints (which cannot be overridden) and capabilities.
Constraints (Always Inherited)
LUNATIK_OPT_SOFTIRQ: Instances usespin_lock_bhandGFP_ATOMIC. Use for handlers in softirq context (e.g., netfilter, XDP).LUNATIK_OPT_HARDIRQ: Instances usespin_lock_irqsave. Required for hardirq context (e.g., kprobes).LUNATIK_OPT_SINGLE: Instances are private and non-shareable. This cancelsLUNATIK_OPT_MONITORinheritance.LUNATIK_OPT_EXTERNAL: Theobject->privatepointer is external; Lunatik will not free it on release.
Capabilities
LUNATIK_OPT_MONITOR: Enables a monitored metatable that wraps Lua method calls with the object lock, allowing safe concurrent access from multiple runtimes.