[Xenomai-git] Jorge Ramirez-Ortiz : lib/analogy: check for errors in the calibration file

2015-08-14 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 522dc5d6cf8f58fee5f489f5c2736ff1ddb84703
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=522dc5d6cf8f58fee5f489f5c2736ff1ddb84703

Author: Jorge Ramirez-Ortiz j...@xenomai.org
Date:   Fri Aug  7 09:34:41 2015 -0400

lib/analogy: check for errors in the calibration file

Signed-off-by: Jorge Ramirez-Ortiz jorge.ramirez-or...@linaro.org

---

 lib/analogy/calibration.c |   29 +
 utils/analogy/insn_read.c |2 +-
 2 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/lib/analogy/calibration.c b/lib/analogy/calibration.c
index 14ca454..b50cb2f 100644
--- a/lib/analogy/calibration.c
+++ b/lib/analogy/calibration.c
@@ -30,6 +30,12 @@
 #include boilerplate/list.h
 #include calibration.h
 
+#define CHK(func, ...) 
\
+do {   
\
+   int rc = func(__VA_ARGS__); 
\
+   if (rc  0) 
\
+   return -1;  
\
+} while (0)
 
 #define ARRAY_LEN(a)  (sizeof(a) / sizeof((a)[0]))
 
@@ -212,12 +218,19 @@ int a4l_read_calibration_file(char *name, struct 
a4l_calibration_data *data)
if (d == NULL)
return -1;
 
-   read_str(data-driver_name, d, PLATFORM_STR, DRIVER_STR);
-   read_str(data-board_name, d, PLATFORM_STR, BOARD_STR);
+   CHK(read_str, data-driver_name, d, PLATFORM_STR, DRIVER_STR);
+   CHK(read_str, data-board_name, d, PLATFORM_STR, BOARD_STR);
 
for (k = 0; k  ARRAY_LEN(subdevice); k++) {
read_int(nb_elements, d, subdevice[k], -1, ELEMENTS_STR);
-   read_int(index, d, subdevice[k], -1, INDEX_STR);
+   if (nb_elements  0 ) {
+   /* AO is optional */
+   if (!strncmp(subdevice[k], AO_SUBD_STR, 
sizeof(AO_SUBD_STR)))
+break;
+   return -1;
+   }
+
+   CHK(read_int, index, d, subdevice[k], -1, INDEX_STR);
 
if (strncmp(subdevice[k], AI_SUBD_STR,
strlen(AI_SUBD_STR)) == 0) {
@@ -236,19 +249,19 @@ int a4l_read_calibration_file(char *name, struct 
a4l_calibration_data *data)
}
 
for (i = 0; i  nb_elements; i++) {
-   read_int(p-expansion, d, subdevice[k], i,
+   CHK(read_int, p-expansion, d, subdevice[k], i,
 EXPANSION_STR);
-   read_int(p-nb_coeff, d, subdevice[k], i,
+   CHK(read_int, p-nb_coeff, d, subdevice[k], i,
 NBCOEFF_STR);
-   read_int(p-channel, d, subdevice[k], i,
+   CHK(read_int, p-channel, d, subdevice[k], i,
 CHANNEL_STR);
-   read_int(p-range, d, subdevice[k], i,
+   CHK(read_int, p-range, d, subdevice[k], i,
 RANGE_STR);
 
p-coeff = malloc(p-nb_coeff * sizeof(double));
 
for (j = 0; j  p-nb_coeff; j++) {
-   read_dbl(p-coeff[j], d, subdevice[k], i,
+   CHK(read_dbl,p-coeff[j], d, subdevice[k], i,
 COEFF_STR, j);
}
 
diff --git a/utils/analogy/insn_read.c b/utils/analogy/insn_read.c
index 8d457ed..8aa0740 100644
--- a/utils/analogy/insn_read.c
+++ b/utils/analogy/insn_read.c
@@ -223,7 +223,7 @@ static int dump_calibrated(a4l_desc_t *dsc, unsigned char 
*buf, int size)
err = a4l_read_calibration_file(calibration_file, cal_info);
if (err  0) {
fprintf(stderr,
-   insn_read: failed to read /tmp/calibration.txt \n);
+   insn_read: error reading the calibration file \n);
goto out;
}
 


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git


[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: fix debug message

2015-08-14 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 69ab2204c1f03bb657158e346c2d979edc896fb4
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=69ab2204c1f03bb657158e346c2d979edc896fb4

Author: Jorge Ramirez-Ortiz j...@xenomai.org
Date:   Thu Aug  6 15:57:08 2015 -0400

utils/analogy: fix debug message

Signed-off-by: Jorge Ramirez-Ortiz jorge.ramirez-or...@linaro.org

---

 utils/analogy/calibration_ni_m.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utils/analogy/calibration_ni_m.c b/utils/analogy/calibration_ni_m.c
index c72a44d..6f9be6f 100644
--- a/utils/analogy/calibration_ni_m.c
+++ b/utils/analogy/calibration_ni_m.c
@@ -973,7 +973,7 @@ static int ni_m_calibrate_ai(void)
 * calibrate low, medium and high gain ranges
 */
for (i = 0; i  ARRAY_LEN(cal_info); i++) {
-   __debug(Calibrating AI: %s \n, cal_info[i]);
+   __debug(Calibrating AI: %s \n, cal_info[i].message);
 
if (cal_info[i].range = 0)
goto calibrate;


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git


[Xenomai-git] Jorge Ramirez-Ortiz : drivers/analogy: release pci region if mapping failed

2015-08-14 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 328b0447cfa282fbe926ebbd9113224e4a1c18b9
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=328b0447cfa282fbe926ebbd9113224e4a1c18b9

Author: Jorge Ramirez-Ortiz jorge.ramirez-or...@linaro.org
Date:   Thu Aug 13 10:23:16 2015 -0400

drivers/analogy: release pci region if mapping failed

---

 kernel/drivers/analogy/national_instruments/mite.c |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/drivers/analogy/national_instruments/mite.c 
b/kernel/drivers/analogy/national_instruments/mite.c
index 84dbdda..be4b268 100644
--- a/kernel/drivers/analogy/national_instruments/mite.c
+++ b/kernel/drivers/analogy/national_instruments/mite.c
@@ -127,7 +127,7 @@ int a4l_mite_setup(struct mite_struct *mite, int 
use_iodwbsr_1)
 
pci_set_master(mite-pcidev);
 
-   if (pci_request_regions( mite-pcidev, mite)) {
+   if (pci_request_regions(mite-pcidev, mite)) {
__a4l_err(failed to request mite io regions\n);
return -EIO;
};
@@ -139,6 +139,7 @@ int a4l_mite_setup(struct mite_struct *mite, int 
use_iodwbsr_1)
mite-mite_io_addr = ioremap(addr, length);
if (!mite-mite_io_addr) {
__a4l_err(failed to remap mite io memory address\n);
+   pci_release_regions(mite-pcidev);
return -ENOMEM;
}
 
@@ -154,6 +155,7 @@ int a4l_mite_setup(struct mite_struct *mite, int 
use_iodwbsr_1)
mite-daq_io_addr = ioremap(mite-daq_phys_addr, length);
if (!mite-daq_io_addr) {
__a4l_err(failed to remap daq io memory address\n);
+   pci_release_regions(mite-pcidev);
return -ENOMEM;
}
 


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git


[Xenomai-git] Jorge Ramirez-Ortiz : lib/analogy: validate size of calibration file

2015-08-14 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 4120d9751c9124d35782b525b7c677a4f20f042c
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=4120d9751c9124d35782b525b7c677a4f20f042c

Author: Jorge Ramirez-Ortiz j...@xenomai.org
Date:   Thu Aug  6 16:38:15 2015 -0400

lib/analogy: validate size of calibration file

Signed-off-by: Jorge Ramirez-Ortiz jorge.ramirez-or...@linaro.org

---

 lib/analogy/calibration.c |4 
 1 file changed, 4 insertions(+)

diff --git a/lib/analogy/calibration.c b/lib/analogy/calibration.c
index c54cd7d..14ca454 100644
--- a/lib/analogy/calibration.c
+++ b/lib/analogy/calibration.c
@@ -200,10 +200,14 @@ int a4l_read_calibration_file(char *name, struct 
a4l_calibration_data *data)
int i, j, k, index = -1, nb_elements = -1;
struct a4l_calibration_subdev_data *p = NULL;
struct _dictionary_ *d;
+   struct stat st;
 
if (access(name, R_OK))
return -1;
 
+   if (stat(name, st) || !st.st_size)
+   return -1;
+
d = iniparser_load(name);
if (d == NULL)
return -1;


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git


[Xenomai-git] Philippe Gerum : copperplate/heapobj-pshared: change rounding of page mapping array size

2015-08-14 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: f522e9bd42c6f790c67716ee795d9db984640254
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=f522e9bd42c6f790c67716ee795d9db984640254

Author: Philippe Gerum r...@xenomai.org
Date:   Fri Aug 14 09:36:27 2015 +0200

copperplate/heapobj-pshared: change rounding of page mapping array size

---

 lib/copperplate/heapobj-pshared.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/copperplate/heapobj-pshared.c 
b/lib/copperplate/heapobj-pshared.c
index 0df08c3..c1631e5 100644
--- a/lib/copperplate/heapobj-pshared.c
+++ b/lib/copperplate/heapobj-pshared.c
@@ -128,7 +128,7 @@ static inline size_t get_pagemap_size(size_t h)
 */
assert((h  ~HOBJ_PAGE_MASK) == 0);
return __align_to((h  HOBJ_PAGE_SHIFT) * sizeof(struct page_entry)
- + sizeof(struct shared_extent), HOBJ_PAGE_SIZE);
+ + sizeof(struct shared_extent), HOBJ_MINALIGNSZ);
 }
 
 static void init_extent(void *base, struct shared_extent *extent)


___
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git