introduce kernel macro functionality