block macro splicing and ffi helper