From: Lay, Kuan Loon Date: Thu, 5 Nov 2015 01:49:54 +0000 (+0800) Subject: iio: iio add create trigger X-Git-Tag: v0.9.0~35 X-Git-Url: http://review.tizen.org/git/?p=contrib%2Fmraa.git;a=commitdiff_plain;h=e7e58509f0edc3451845a3d18f4eaebd8aa4f69e iio: iio add create trigger Signed-off-by: Lay, Kuan Loon Signed-off-by: Brendan Le Foll --- diff --git a/api/mraa/iio.h b/api/mraa/iio.h index 12c739e..2b84fc2 100644 --- a/api/mraa/iio.h +++ b/api/mraa/iio.h @@ -123,6 +123,7 @@ mraa_result_t mraa_iio_event_extract_event(struct iio_event_data* event, mraa_result_t mraa_iio_get_mounting_matrix(mraa_iio_context dev, float mm[9]); +mraa_result_t mraa_iio_create_trigger(mraa_iio_context dev, const char* trigger); /** * De-inits an mraa_iio_context device * diff --git a/src/iio/iio.c b/src/iio/iio.c index 299d2f6..16e4915 100644 --- a/src/iio/iio.c +++ b/src/iio/iio.c @@ -36,6 +36,7 @@ #define IIO_SLASH_DEV "/dev/" IIO_DEVICE #define IIO_SYSFS_DEVICE "/sys/bus/iio/devices/" IIO_DEVICE #define IIO_EVENTS "events" +#define IIO_CONFIGFS_TRIGGER "/sys/kernel/config/iio/triggers/" mraa_iio_context mraa_iio_init(int device) @@ -536,6 +537,28 @@ mraa_iio_get_mounting_matrix(mraa_iio_context dev, float mm[9]) return MRAA_ERROR_UNSPECIFIED; } +mraa_result_t +mraa_iio_create_trigger(mraa_iio_context dev, const char* trigger) +{ + struct stat configfs_status; + struct stat trigger_status; + char buf[MAX_SIZE]; + + if (stat(IIO_CONFIGFS_TRIGGER, &configfs_status) == 0) { + memset(buf, 0, MAX_SIZE); + snprintf(buf, MAX_SIZE, IIO_CONFIGFS_TRIGGER "%s", trigger); + if (stat(buf, &trigger_status) != 0) { + if (mkdir(buf, configfs_status.st_mode) == 0) + return MRAA_SUCCESS; + } else { + // trigger folder already created + return MRAA_SUCCESS; + } + } + + return MRAA_ERROR_UNSPECIFIED; +} + #if 0 // does stop make any sense on iio devices? mraa_result_t