Skip to content

Commit

Permalink
staging:iio: update example to handle case with no ring events
Browse files Browse the repository at this point in the history
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Tested-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Jonathan Cameron authored and Greg Kroah-Hartman committed Feb 18, 2011
1 parent b949793 commit 30268a3
Showing 1 changed file with 29 additions and 16 deletions.
45 changes: 29 additions & 16 deletions drivers/staging/iio/Documentation/generic_buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <sys/stat.h>
#include <sys/dir.h>
#include <linux/types.h>
#include <string.h>
#include "iio_utils.h"

const int buf_len = 128;
Expand Down Expand Up @@ -134,10 +135,11 @@ int main(int argc, char **argv)
int dev_num, trig_num;
char *buffer_access, *buffer_event;
int scan_size;
int noevents = 0;

struct iio_channel_info *infoarray;

while ((c = getopt(argc, argv, "t:n:")) != -1) {
while ((c = getopt(argc, argv, "et:n:")) != -1) {
switch (c) {
case 'n':
device_name = optarg;
Expand All @@ -146,6 +148,9 @@ int main(int argc, char **argv)
trigger_name = optarg;
datardytrigger = 0;
break;
case 'e':
noevents = 1;
break;
case '?':
return -1;
}
Expand Down Expand Up @@ -260,22 +265,30 @@ int main(int argc, char **argv)

/* Wait for events 10 times */
for (j = 0; j < num_loops; j++) {
read_size = fread(&dat, 1, sizeof(struct iio_event_data),
fp_ev);
switch (dat.id) {
case IIO_EVENT_CODE_RING_100_FULL:
toread = buf_len;
break;
case IIO_EVENT_CODE_RING_75_FULL:
toread = buf_len*3/4;
break;
case IIO_EVENT_CODE_RING_50_FULL:
toread = buf_len/2;
break;
default:
printf("Unexpecteded event code\n");
continue;
if (!noevents) {
read_size = fread(&dat,
1,
sizeof(struct iio_event_data),
fp_ev);
switch (dat.id) {
case IIO_EVENT_CODE_RING_100_FULL:
toread = buf_len;
break;
case IIO_EVENT_CODE_RING_75_FULL:
toread = buf_len*3/4;
break;
case IIO_EVENT_CODE_RING_50_FULL:
toread = buf_len/2;
break;
default:
printf("Unexpecteded event code\n");
continue;
}
} else {
usleep(1000);
toread = 64;
}

read_size = read(fp,
data,
toread*scan_size);
Expand Down

0 comments on commit 30268a3

Please sign in to comment.