static DebugHelper_t *DebugHelper_init( s32 mode, u16 port) { s32 sock; DebugHelper_t *helper; sock = helper_setup_socket( port); if ( sock < 0 ) { return NULL; } helper = (DebugHelper_t*)malloc( sizeof( DebugHelper_t)); if (helper==NULL){ return helper; } memset(helper, 0, sizeof( DebugHelper_t)); LWP_SemInit( &helper->requestReadySema, 0, 5); LWP_SemInit( &helper->answerReadySema, 0, 5); helper->code = HELPER_CODE_NONE; helper->listensock = sock; helper->clientsock = -1; helper->thread_handle = (lwp_t)NULL; DEBUG_PRINT((NULL,0, "helper object created, listensock=%d.\n", helper->listensock)); return helper; }
EXPORT void CALL RomOpen() { #ifdef THREADED_AUDIO // Create our semaphores and start/resume the audio thread; reset the buffer index LWP_SemInit(&buffer_full, 0, NUM_BUFFERS); LWP_SemInit(&buffer_empty, NUM_BUFFERS, NUM_BUFFERS); LWP_SemInit(&audio_free, 0, 1); LWP_SemInit(&first_audio, 0, 1); thread_running = 0; LWP_CreateThread(&audio_thread, (void*)play_buffer, NULL, audio_stack, AUDIO_STACK_SIZE, AUDIO_PRIORITY); AUDIO_RegisterDMACallback(done_playing); thread_buffer = which_buffer = 0; audio_paused = 1; #endif }
void mem_init(void) { struct mem *mem; memset(ram, 0, MEM_SIZE); mem = (struct mem *)ram; mem->next = MEM_SIZE; mem->prev = 0; mem->used = 0; ram_end = (struct mem *)&ram[MEM_SIZE]; ram_end->used = 1; ram_end->next = MEM_SIZE; ram_end->prev = MEM_SIZE; LWP_SemInit(&mem_sem,1,1); lfree = (struct mem *)ram; #if MEM_STATS lwip_stats.mem.avail = MEM_SIZE; #endif /* MEM_STATS */ }