void init_contexts_sys_dep(void) { SPIN_LOCK_ISR_INIT(&events_lock, 0); if ((events_signal = semCInitialize(events_signal_mem, SEM_Q_FIFO, 0)) == NULL) { check_error(errno); } vxdbg_clnt_id = vxdbgClntRegister(EVT_BP); if (vxdbg_clnt_id == NULL) { check_error(errno); } context_extension_offset = context_extension(sizeof(ContextExtensionVxWorks)); taskCreateHookAdd((FUNCPTR)task_create_hook); vxdbgHookAdd(vxdbg_clnt_id, EVT_BP, vxdbg_event_hook); vxdbgHookAdd(vxdbg_clnt_id, EVT_TRACE, vxdbg_event_hook); check_error(pthread_create(&events_thread, &pthread_create_attr, event_thread_func, NULL)); add_waitpid_listener(waitpid_listener, NULL); ini_context_pid_hash(); }
void ini_processes_service(Protocol * proto) { #if defined(_WRS_KERNEL) prs_list_lock = semMCreate(SEM_Q_PRIORITY); if (prs_list_lock == NULL) check_error(errno); if (taskCreateHookAdd((FUNCPTR)task_create_hook) != OK) check_error(errno); if (taskDeleteHookAdd((FUNCPTR)task_delete_hook) != OK) check_error(errno); #endif list_init(&prs_list); add_waitpid_listener(waitpid_listener, NULL); add_command_handler(proto, PROCESSES, "getContext", command_get_context); add_command_handler(proto, PROCESSES, "getChildren", command_get_children); add_command_handler(proto, PROCESSES, "attach", command_attach); add_command_handler(proto, PROCESSES, "detach", command_detach); add_command_handler(proto, PROCESSES, "terminate", command_terminate); add_command_handler(proto, PROCESSES, "signal", command_signal); add_command_handler(proto, PROCESSES, "getSignalList", command_get_signal_list); add_command_handler(proto, PROCESSES, "getSignalMask", command_get_signal_mask); add_command_handler(proto, PROCESSES, "setSignalMask", command_set_signal_mask); add_command_handler(proto, PROCESSES, "getEnvironment", command_get_environment); add_command_handler(proto, PROCESSES, "start", command_start); }
void init_contexts_sys_dep(void) { context_extension_offset = context_extension(sizeof(ContextExtensionDarwin)); add_waitpid_listener(waitpid_listener, NULL); ini_context_pid_hash(); }