e417645329727147bb130d1a9a130d8d84c41da6
[akaros.git] / tests / eth_audio.c
1 #include <stdio.h> 
2 #include <sys/types.h>
3 #include <sys/stat.h>
4 #include <fcntl.h>
5 #include <arch/arch.h>
6 #include <unistd.h>
7 #include <errno.h>
8 #include <stdlib.h>
9 #include <string.h>
10 #include <sys/mman.h>
11 #include <timing.h>
12 #include <assert.h>
13
14 /* Simple test program for the audio device.  Just mmaps the stuff and reads. */
15 int main() 
16
17         int in_fd, out_fd;
18         void *in_buf, *out_buf;
19         in_fd = open("/dev/eth_audio_in", O_RDONLY);
20         out_fd = open("/dev/eth_audio_out", O_RDWR);
21         assert(in_fd != -1);
22         assert(out_fd != -1);
23         in_buf = mmap(0, PGSIZE, PROT_READ, 0, in_fd, 0);
24         if (in_buf == MAP_FAILED) {
25                 int err = errno;
26                 perror("Can't mmap the input buf:");
27         }
28         out_buf = mmap(0, PGSIZE, PROT_READ | PROT_WRITE, MAP_POPULATE, out_fd, 0);
29         if (out_buf == MAP_FAILED) {
30                 int err = errno;
31                 perror("Can't mmap the output buf:");
32         }
33         strncpy(out_buf, "Nanwan loves you!\n", 19);
34
35         for (int i = 0; i < 20; i++) {
36                 udelay(5000000);
37                 printf("Contents: %s", in_buf);
38         }
39
40         close(in_fd);
41         close(out_fd);
42 }