printk refactorization and abstraction of "message sinks"