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 16port_id id; 17char data[100]; 18 19int32 20test_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 32int 33main() 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 deleted\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("delete port...\n"); 50 s = delete_port(id); 51 printf("delete 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