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 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