Private
Public Access
2
0
Commit Graph

107 Commits

Author SHA1 Message Date
Ian Johnson
ab14b9de43 mraa: Prefer calloc over malloc
Switch to using calloc on all calls to malloc where the memory isn't
initialized. For things like the mraa_board_t, not allocating all to zero
causes issues such as with the sub_platform member, where if that's not zero
mraa_get_platform_type will try to dereference a random memory location for the
sub_platform->platform_name, which can result in segmentation faults and other
issues.

Note that in some places where immediately after the malloc call is a copy
operation, there is no need for calloc, as all the memory gets overwritten
anyways, but in cases where there may or may not be memory written to (such as
in mraa_file_contains, with reading from a file), even though in most cases the
memory is overwritten, it could be the case that the read operation does
nothing, but the memory still has non-zero values, by virtue of the fact it
wasn't overwritten.

Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-20 08:20:28 +00:00
Brendan Le Foll
8862ebd9f2 mraa: Remove trailing whitespace/tabs from various parts
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-21 15:27:15 +00:00
Brendan Le Foll
f4385a8b82 iio: Check fd against != -1 and not > 0 and avoid leaks during error handling
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-21 15:15:15 +00:00
Henry Bruce
7703634bc5 mraa.c: Do not return with error if iio devices are not detected
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Henry Bruce
7ea11f0dd3 mraa.c: iio detect tidy up.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
2015-12-15 10:42:06 +00:00
Henry Bruce
131021a629 mraa.c: Moved iio detection code into a function
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
2015-12-15 10:42:06 +00:00
Alex Tereschenko
e5f28ab04c mraa.c: we now remove trailing CR/LF from IIO dev names
E.g. on Edison they have LFs and that may cause problems
with downstream consumers of this data.

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Alex Tereschenko
7fa4990d81 iio: fixed IIO device counting
We now take into account only "iio:device*" files to filter out
fake devices like triggers.

Closes #299.

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Alex Tereschenko
3b55cc70bf iio: fixed comment typo
Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
65614f5f58 iio: Remove iio structures from mraa_platform_t
This means that a valid platform is no longer required for iio operations and
therefore this is now only a req for using USBPLAT

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
529cf8a26e mraa_func.h: Remove unused code
Code crept in from ft4222 branch merge and is superflous becuase of the new
advance function structure

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
acfb74f04e iio: Improve iio channel parsing to add enabled channels
scale and other attributes have to be read individually as they vary quite alot
depending on the channel. We only care/take data from scan_elements

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
2c97fd5953 iio: initial pass at getting channel information from scan_elements
This commit creates a new structure inside each _iio device when used and can
then be used to understand the data being read after a trigger is run/executed

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
2b9e832ff9 iio: Simplify API
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
ba9ab4b384 mraa.c: Fix path of iio device in sysfs
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
d920d136ea iio: initial API and enumeration of devices
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-15 10:42:06 +00:00
Brendan Le Foll
effc813e42 mraa.c: fix possible overrun in strncpy
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-18 11:57:41 +01:00
Brendan Le Foll
32aa4310c8 mraa.c: simplify mraa_get_platform_name with subplatforms
This removes the chance of buffer overflow with a subplatform

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-18 11:52:52 +01:00
Brendan Le Foll
07343e2ee7 mraa: Remove global advance_func struct and place it in platform configuration
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Henry Bruce
3e76bee085 api: Added API calls that support both main and sub platforms
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Brendan Le Foll
570fba9463 mraa.c: usb MRAA_UNKNOWN_PLATFORM is not considered initialisation
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Brendan Le Foll
4757d039ab mraa.c: Fix current_plat being invalid but not NULL
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Henry Bruce
4031124081 api: Renamed some sub-platform API calls.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Brendan Le Foll
7c5972ad15 mraa.c: use #if defined() for platforms
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
c9cfb42326 mraa.c: Fixed bug in detected main/sub platform name and type logging
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
33645791af api: Added mraa_has_sub_platform() function
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
7058fea8bd mraa.c: Added mainn and sub-platform select API calls.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
99593ec640 usb: USB sub-platform bug fixes.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
13118e949b api: Added mraa_get_sub_platform_type()
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
5740e46ae0 x86: advance_func now stored in mraa_board_t instance
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
7ada55982d platform_type: platform_type now in mraa_board_t
Now platform_type is no longer global it tracks with board instance
so that platform and sub-platform can report different types.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
4a6bf832bc usb: Converted sub-platform bus/pin helper macros to functions.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Brendan Le Foll
e353508e30 cmake: add -DFTDID2xx and use FindFtd2xx.cmake
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Brendan Le Foll
e170e21031 mraa.c: subplatforms need to be defined after platforms
This also means arm subplatforms can work and removes a plat == NULL check
which will never be true if -DUSBPLAT=ON

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
8f48df0533 usb: Skeleton platform code for FTDI FT4222 USB to i2c bridge
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Yong Li
02399b61f9 mraa.c: Add new API to support I2C bus number query
Add two new API to get the usable I2C bus count and related I2C adapter number

Signed-off-by: Yong Li <yong.b.li@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-08-25 11:36:14 +01:00
Brendan Le Foll
5d24868582 mraa.c: Fix close/free fail introduced earlier
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-08-20 19:09:42 +01:00
Brendan Le Foll
0ad753689e mraa.c: Fix error handing resource leaks in mraa_file_contains_*
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-08-14 15:36:50 +01:00
Brendan Le Foll
8269340c25 mraa.c: log level syslog messages
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-08-14 11:15:57 +01:00
Brendan Le Foll
45133922aa mraa.c: Fix ressource leaks during error handling
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-08-13 15:25:59 +01:00
Brendan Le Foll
5717bba0d4 mraa.c: fix ARMPLAT elif not being done on define like if statement
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-07-24 14:04:47 +01:00
Brendan Le Foll
a5d13670f4 mraa.c: Fix buffer overfow in mraa_find_i2c_bus
All files in sysfs are 4K minimum so allocate a 4k buffer to hold the result -
even if it'll never be that big

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-07-15 13:50:29 +01:00
Brendan Le Foll
df0dbb0c73 mraa: add internal mraa_find_i2c_bus function
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-07-10 11:11:41 +01:00
Brendan Le Foll
76a34afe84 mraa.c: Fix readlink call not terminating its buffer
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-07-01 10:59:03 +01:00
Michael Ring
095ff894a7 mraa.c: Remove mraa_init() from mraa_pin_mode_test
If platform is not initalised at this stage then there is no need to attempt
again

Signed-off-by: Michael Ring <mail@michael-ring.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-04-08 22:19:14 +01:00
Michael Ring
bff7b558eb mraa.c: Add _contains helper functions
Signed-off-by: Michael Ring <mail@michael-ring.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-04-08 22:19:14 +01:00
Michael Ring
d2fcadc8d5 mraa.c: change helper functions to use const char*
Signed-off-by: Michael Ring <mail@michael-ring.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-04-08 22:19:14 +01:00
Brendan Le Foll
ffcf3d7d07 clang-format: run clang-format on C/C++ code
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-03-23 15:15:48 +00:00
Michael Ring
827e1974bf api/mraa: add mraa_get_pin_name
Add mraa_get_pin_name to get the real world name of the pin.

Signed-off-by: Michael Ring <mail@michael-ring.org>
Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
2015-03-19 00:16:32 +00:00
Brendan Le Foll
76ffa35cec mraa.c: stop C constructor calling mraa_init() in SWIG builds
Closes #65

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-03-01 10:22:14 +00:00