syscall overhaul part two - unify public and internal syscall interface