1*da9b743bSMarcus Overhagen /* 2*da9b743bSMarcus Overhagen * Copyright 2006, Marcus Overhagen, <marcus@overhagen.de> 3*da9b743bSMarcus Overhagen * Distributed under the terms of the MIT License. 4*da9b743bSMarcus Overhagen */ 5*da9b743bSMarcus Overhagen 6*da9b743bSMarcus Overhagen 7*da9b743bSMarcus Overhagen #include <OS.h> 8*da9b743bSMarcus Overhagen #include <stdio.h> 9*da9b743bSMarcus Overhagen #include <string.h> 10*da9b743bSMarcus Overhagen 11*da9b743bSMarcus Overhagen int 12*da9b743bSMarcus Overhagen main() 13*da9b743bSMarcus Overhagen { 14*da9b743bSMarcus Overhagen port_id id; 15*da9b743bSMarcus Overhagen status_t s; 16*da9b743bSMarcus Overhagen size_t size; 17*da9b743bSMarcus Overhagen int32 code; 18*da9b743bSMarcus Overhagen 19*da9b743bSMarcus Overhagen char data[100]; 20*da9b743bSMarcus Overhagen 21*da9b743bSMarcus Overhagen 22*da9b743bSMarcus Overhagen id = create_port(10, "test port"); 23*da9b743bSMarcus Overhagen printf("created port %ld\n", id); 24*da9b743bSMarcus Overhagen 25*da9b743bSMarcus Overhagen s = write_port(id, 0x1234, data, 10); 26*da9b743bSMarcus Overhagen printf("write port result 0x%08lx (%s)\n", s, strerror(s)); 27*da9b743bSMarcus Overhagen 28*da9b743bSMarcus Overhagen s = write_port(id, 0x5678, data, 20); 29*da9b743bSMarcus Overhagen printf("write port result 0x%08lx (%s)\n", s, strerror(s)); 30*da9b743bSMarcus Overhagen 31*da9b743bSMarcus Overhagen s = delete_port(id); 32*da9b743bSMarcus Overhagen printf("delete port result 0x%08lx (%s)\n", s, strerror(s)); 33*da9b743bSMarcus Overhagen 34*da9b743bSMarcus Overhagen printf("everything should fail now\n"); 35*da9b743bSMarcus Overhagen 36*da9b743bSMarcus Overhagen // BeBook: does return B_BAD_PORT_ID if port was closed 37*da9b743bSMarcus Overhagen s = write_port(id, 0x5678, data, 20); 38*da9b743bSMarcus Overhagen printf("write port result 0x%08lx (%s)\n", s, strerror(s)); 39*da9b743bSMarcus Overhagen 40*da9b743bSMarcus Overhagen // BeBook: does block when port is empty, and unblocks when port is written to or deleted 41*da9b743bSMarcus Overhagen size = port_buffer_size(id); 42*da9b743bSMarcus Overhagen printf("port_buffer_size %ld (0x%08lx) (%s)\n", size, size, strerror(size)); 43*da9b743bSMarcus Overhagen 44*da9b743bSMarcus Overhagen // BeBook: does block when port is empty, and unblocks when port is written to or deleted 45*da9b743bSMarcus Overhagen size = read_port(id, &code, data, sizeof(data)); 46*da9b743bSMarcus Overhagen printf("read port code %lx, size %ld (0x%08lx) (%s)\n", code, size, size, strerror(size)); 47*da9b743bSMarcus Overhagen 48*da9b743bSMarcus Overhagen return 0; 49*da9b743bSMarcus Overhagen } 50