summaryrefslogtreecommitdiff
path: root/drivers/staging/iio/Documentation
diff options
context:
space:
mode:
authorJonathan Cameron <jic23@cam.ac.uk>2011-02-11 13:09:12 +0000
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-18 13:22:51 -0800
commit30268a3da9325a2267cfc99efae7c192fa88199f (patch)
tree60a4e75a8838854eca1e3a538c11c4e89c360b7b /drivers/staging/iio/Documentation
parentb949793b2c319b9ea3c2594aab203664caf2923e (diff)
staging:iio: update example to handle case with no ring events
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>
Diffstat (limited to 'drivers/staging/iio/Documentation')
-rw-r--r--drivers/staging/iio/Documentation/generic_buffer.c45
1 files changed, 29 insertions, 16 deletions
diff --git a/drivers/staging/iio/Documentation/generic_buffer.c b/drivers/staging/iio/Documentation/generic_buffer.c
index df23aeb9d529..0befcb89ea3a 100644
--- a/drivers/staging/iio/Documentation/generic_buffer.c
+++ b/drivers/staging/iio/Documentation/generic_buffer.c
@@ -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;
@@ -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;
@@ -146,6 +148,9 @@ int main(int argc, char **argv)
trigger_name = optarg;
datardytrigger = 0;
break;
+ case 'e':
+ noevents = 1;
+ break;
case '?':
return -1;
}
@@ -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);