int main(int argc, const char **argv) { // The simulator needs this call to enable dlopen to work... char libgcc[] = "libgcc.so"; char libc[] = "libc.so"; char libstdcpp[] = "libstdc++.so"; char *builtin[] = {libgcc, libc, libstdcpp}; dlinit(3, builtin); while(true) { switch (rpc_call) { case Message::None: break; case Message::Alloc: set_rpc_return(reinterpret_cast<int>(memalign(hvx_alignment, RPC_ARG(0)))); break; case Message::Free: free(reinterpret_cast<void*>(RPC_ARG(0))); set_rpc_return(0); break; case Message::InitKernels: set_rpc_return(initialize_kernels( reinterpret_cast<unsigned char*>(RPC_ARG(0)), RPC_ARG(1), reinterpret_cast<handle_t*>(RPC_ARG(2)))); break; case Message::GetSymbol: set_rpc_return(get_symbol( static_cast<handle_t>(RPC_ARG(0)), reinterpret_cast<const char *>(RPC_ARG(1)), RPC_ARG(2))); break; case Message::Run: set_rpc_return(run( static_cast<handle_t>(RPC_ARG(0)), static_cast<handle_t>(RPC_ARG(1)), reinterpret_cast<const buffer*>(RPC_ARG(2)), RPC_ARG(3), reinterpret_cast<buffer*>(RPC_ARG(4)), RPC_ARG(5), reinterpret_cast<const buffer*>(RPC_ARG(6)), RPC_ARG(7))); break; case Message::ReleaseKernels: set_rpc_return(release_kernels( static_cast<handle_t>(RPC_ARG(0)), RPC_ARG(1))); break; case Message::Break: return 0; default: log_printf("Unknown message: %d\n", rpc_call); return -1; } } log_printf("Unreachable!\n"); return 0; }
int main(int argc, const char **argv) { while(true) { switch (rpc_call) { case Message::None: break; case Message::Alloc: set_rpc_return(reinterpret_cast<int>(aligned_malloc(hvx_alignment, RPC_ARG(0)))); break; case Message::Free: aligned_free(reinterpret_cast<void*>(RPC_ARG(0))); set_rpc_return(0); break; case Message::InitKernels: set_rpc_return(initialize_kernels( reinterpret_cast<unsigned char*>(RPC_ARG(0)), RPC_ARG(1), RPC_ARG(2), reinterpret_cast<handle_t*>(RPC_ARG(3)))); break; case Message::GetSymbol: set_rpc_return(get_symbol( static_cast<handle_t>(RPC_ARG(0)), reinterpret_cast<const char *>(RPC_ARG(1)), RPC_ARG(2), RPC_ARG(3))); break; case Message::Run: set_rpc_return(run( static_cast<handle_t>(RPC_ARG(0)), static_cast<handle_t>(RPC_ARG(1)), reinterpret_cast<const buffer*>(RPC_ARG(2)), RPC_ARG(3), reinterpret_cast<buffer*>(RPC_ARG(4)), RPC_ARG(5), reinterpret_cast<const buffer*>(RPC_ARG(6)), RPC_ARG(7))); break; case Message::ReleaseKernels: set_rpc_return(release_kernels( static_cast<handle_t>(RPC_ARG(0)), RPC_ARG(1))); break; case Message::Break: return 0; default: log_printf("Unknown message: %d\n", rpc_call); return -1; } } log_printf("Unreachable!\n"); return 0; }