1 /* 2 * Copyright 2006, Marcus Overhagen, <marcus@overhagen.de> 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7 #include <OS.h> 8 #include <stdio.h> 9 #include <string.h> 10 11 12 /* 13 * 14 */ 15 16 port_id id; 17 char data[100]; 18 19 int32 20 test_thread(void *) 21 { 22 status_t s; 23 24 printf("write port...\n"); 25 s = write_port(id, 0x5678, data, 20); 26 printf("write port result 0x%08lx (%s)\n", s, strerror(s)); 27 28 return 0; 29 } 30 31 32 int 33 main() 34 { 35 status_t s; 36 37 id = create_port(1, "test port"); 38 printf("created port %ld\n", id); 39 40 s = write_port(id, 0x1234, data, 10); 41 printf("write port result 0x%08lx (%s)\n", s, strerror(s)); 42 43 printf("write should block for 5 seconds now, as port is full, until port is closed\n"); 44 45 thread_id thread = spawn_thread(test_thread, "test thread", B_NORMAL_PRIORITY, NULL); 46 resume_thread(thread); 47 snooze(5000000); 48 49 printf("close port...\n"); 50 s = close_port(id); 51 printf("close port result 0x%08lx (%s)\n", s, strerror(s)); 52 53 printf("waiting for thread to terminate\n"); 54 wait_for_thread(thread, &s); 55 56 return 0; 57 } 58