use ccall