#include #include #include #include #include #include #include #define MUTEX 2000 __thread volatile char letter = 'c'; void app_proc (void) { char arg_letter = (char)(uintptr_t)process_argument (); letter = arg_letter; for (;;) { mutex_lock (MUTEX); for (int i = 0; i < 3; i++) test (letter); /* terminal_print (&letter, 1); */ for (volatile int i = 0; i < 1000 * 1000; i++) ; mutex_unlock (MUTEX); } process_quit (); } void app_main (void) { mutex_create (MUTEX); letter = 'a'; /* process_exec ("ramdisk:/ce"); */ /* process_spawn (&app_proc, (void*)'b'); */ /* process_spawn (&app_proc, (void*)'c'); */ /* process_spawn (&app_proc, (void*)'d'); */ const char* path = "ramdisk:/init.cmd"; char buffer[1024]; memset (buffer, 0, sizeof (buffer)); open (path); read (path, 0, (uint8_t*)buffer, sizeof (buffer)); close (path); terminal_print (buffer, strlen (buffer)); for (;;) { int ch = kb_read_key (); if (ch < 0) continue; terminal_print ((char*)&ch, 1); } }