[Armadeus-commitlog] armadeus branch, master, updated. armadeus-5.2-213-g2d500d4
Brought to you by:
sszy
|
From: SebR <se...@us...> - 2013-03-28 18:15:15
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 2d500d401ef64a8f713ab561e6bee3800e9c4c0d (commit)
from 1bf49e9a0ee2a8c5fc2be75ec028db21814c827a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2d500d401ef64a8f713ab561e6bee3800e9c4c0d
Author: Sebastien Royen <seb...@ar...>
Date: Thu Mar 28 18:48:43 2013 +0100
[as_devices] add fake_root via AS_DEVICES_ROOT env variable (use to
simulate sysfs during test)
-----------------------------------------------------------------------
Summary of changes:
target/packages/as_devices/c/as_backlight.c | 33 +++++++++++++++-----------
target/packages/as_devices/c/as_helpers.c | 9 +++++++
target/packages/as_devices/c/as_helpers.h | 9 +++++++
target/packages/as_devices/c/as_led.c | 17 +++++++++-----
4 files changed, 48 insertions(+), 20 deletions(-)
diff --git a/target/packages/as_devices/c/as_backlight.c b/target/packages/as_devices/c/as_backlight.c
index 70808fb..3eaf036 100644
--- a/target/packages/as_devices/c/as_backlight.c
+++ b/target/packages/as_devices/c/as_backlight.c
@@ -24,8 +24,9 @@
#include <stdlib.h>
#include <fcntl.h> /* for open() */
#include <unistd.h> /* for write() */
+#include <limits.h>
-/* #define DEBUG */
+#define DEBUG
#include "as_helpers.h"
#include "as_backlight.h"
@@ -36,14 +37,15 @@
#define MAX_BRIGHTNESS_PATH "max_brightness"
#define BRIGHTNESS_PATH "brightness"
-#define SIZE_OF_BUFF 128
-
/*------------------------------------------------------------------------------*/
struct as_backlight_device *as_backlight_open2(char *aBacklightName)
{
- char buffer[SIZE_OF_BUFF];
+ char buffer[PATH_MAX];
struct as_backlight_device *dev;
+ char *fake_root;
+
+ fake_root = as_helpers_get_root();
if (aBacklightName == NULL) {
aBacklightName = BACKLIGHT_DEFAULT;
@@ -56,19 +58,22 @@ struct as_backlight_device *as_backlight_open2(char *aBacklightName)
}
/* open backlight management files */
- snprintf(buffer, SIZE_OF_BUFF, "%s/%s/%s", BACKLIGHT_SYS_PATH, aBacklightName, ACTUAL_BRIGHTNESS_PATH);
+ snprintf(buffer, sizeof(buffer), "%s%s/%s/%s", fake_root, BACKLIGHT_SYS_PATH,
+ aBacklightName, ACTUAL_BRIGHTNESS_PATH);
if ((dev->fileActualBrightness = open(buffer, O_RDONLY)) < 0) {
- ERROR("Can't open actual brightness file");
+ ERROR("Can't open %s file\n", buffer);
return NULL;
}
- snprintf(buffer, SIZE_OF_BUFF, "%s/%s/%s", BACKLIGHT_SYS_PATH, aBacklightName, MAX_BRIGHTNESS_PATH);
+ snprintf(buffer, sizeof(buffer), "%s%s/%s/%s", fake_root, BACKLIGHT_SYS_PATH,
+ aBacklightName, MAX_BRIGHTNESS_PATH);
if ((dev->fileMaxBrightness = open(buffer, O_RDONLY)) < 0) {
- ERROR("Can't open max brightness file");
+ ERROR("Can't open %s file\n", buffer);
return NULL;
}
- snprintf(buffer, SIZE_OF_BUFF, "%s/%s/%s", BACKLIGHT_SYS_PATH, aBacklightName, BRIGHTNESS_PATH);
+ snprintf(buffer, sizeof(buffer), "%s%s/%s/%s", fake_root, BACKLIGHT_SYS_PATH,
+ aBacklightName, BRIGHTNESS_PATH);
if((dev->fileBrightness = open(buffer, O_RDWR)) < 0) {
- ERROR("Can't open brightness file");
+ ERROR("Can't open %s file\n", buffer);
return NULL;
}
@@ -84,7 +89,7 @@ struct as_backlight_device *as_backlight_open()
int32_t as_backlight_get_actual_brightness(struct as_backlight_device *aDev)
{
- char buffer[SIZE_OF_BUFF];
+ char buffer[32];
int ret;
if (aDev == NULL) {
@@ -92,7 +97,7 @@ int32_t as_backlight_get_actual_brightness(struct as_backlight_device *aDev)
return -1;
}
- ret = as_read_buffer(aDev->fileActualBrightness, buffer, SIZE_OF_BUFF);
+ ret = as_read_buffer(aDev->fileActualBrightness, buffer, sizeof(buffer));
if (ret < 0) {
ERROR("Can't read actual brightness");
return ret;
@@ -105,7 +110,7 @@ int32_t as_backlight_get_actual_brightness(struct as_backlight_device *aDev)
int32_t as_backlight_get_max_brightness(struct as_backlight_device *aDev)
{
- char buffer[SIZE_OF_BUFF];
+ char buffer[32];
int ret;
if (aDev == NULL) {
@@ -113,7 +118,7 @@ int32_t as_backlight_get_max_brightness(struct as_backlight_device *aDev)
return -1;
}
- ret = as_read_buffer(aDev->fileMaxBrightness, buffer, SIZE_OF_BUFF);
+ ret = as_read_buffer(aDev->fileMaxBrightness, buffer, sizeof(buffer));
if (ret < 0) {
ERROR("Can't read max brightness");
return ret;
diff --git a/target/packages/as_devices/c/as_helpers.c b/target/packages/as_devices/c/as_helpers.c
index 7fe7d6d..9ae0b9e 100644
--- a/target/packages/as_devices/c/as_helpers.c
+++ b/target/packages/as_devices/c/as_helpers.c
@@ -135,3 +135,12 @@ int as_helpers_get_platform(void)
return APF_UNKNOWN;
}
+
+char *as_helpers_get_root()
+{
+ char * root;
+ root = getenv("AS_DEVICES_ROOT");
+ if (root)
+ return root;
+ return "";
+}
diff --git a/target/packages/as_devices/c/as_helpers.h b/target/packages/as_devices/c/as_helpers.h
index 535dba2..c558db3 100644
--- a/target/packages/as_devices/c/as_helpers.h
+++ b/target/packages/as_devices/c/as_helpers.h
@@ -74,6 +74,15 @@ int as_read_int(int fd, int *value_res);
*/
int as_helpers_get_platform(void);
+/** @brief return a prefix to use for /sys files
+ *
+ * Read the content of environment variable AS_DEVICES_ROOT
+ * Can be use to fake as_devices on PC (for tests)
+ *
+ * @return getenv("AS_DEVICES_ROOT") or ""
+ */
+char *as_helpers_get_root();
+
enum {
APF_UNKNOWN,
APF9328,
diff --git a/target/packages/as_devices/c/as_led.c b/target/packages/as_devices/c/as_led.c
index 85721b9..e854fda 100644
--- a/target/packages/as_devices/c/as_led.c
+++ b/target/packages/as_devices/c/as_led.c
@@ -24,6 +24,7 @@
#include <fcntl.h>
#include <unistd.h> /* for close() */
#include <errno.h>
+#include <limits.h>
#include "as_helpers.h"
#include "as_led.h"
@@ -38,12 +39,13 @@
static int32_t led_echo(struct as_led_device *a_led_dev, char *a_filename,
char *a_content, int32_t a_length)
{
- char buf[64];
+ char buf[PATH_MAX];
int32_t result = -1;
int fd;
+ char *fake_root = as_helpers_get_root();
- snprintf(buf, sizeof(buf), SYS_CLASS_LEDS_PATH"/%s/%s",
- a_led_dev->led_name, a_filename);
+ snprintf(buf, sizeof(buf), "%s"SYS_CLASS_LEDS_PATH"/%s/%s",
+ fake_root, a_led_dev->led_name, a_filename);
fd = open(buf, O_WRONLY);
if (fd < 0) {
ERROR("Can't open %s\n", buf);
@@ -63,19 +65,22 @@ static int32_t led_echo(struct as_led_device *a_led_dev, char *a_filename,
struct as_led_device *as_led_open(char *a_led_name)
{
struct as_led_device *dev;
- char buf[64];
+ char buf[PATH_MAX];
+ char *fake_root = as_helpers_get_root();
dev = malloc(sizeof(struct as_led_device));
if (dev == NULL) {
ERROR("Can't allocate as_led_device structure\n");
} else {
snprintf(dev->led_name, sizeof(dev->led_name), "%s", a_led_name);
- snprintf(buf, sizeof(buf), SYS_CLASS_LEDS_PATH"/%s/brightness", dev->led_name);
+ snprintf(buf, sizeof(buf), "%s"SYS_CLASS_LEDS_PATH"/%s/brightness",
+ fake_root, dev->led_name);
dev->file_brightness = open(buf, O_RDWR);
if (dev->file_brightness < 0) {
ERROR("Can't open %s\n", buf);
} else {
- snprintf(buf, sizeof(buf), SYS_CLASS_LEDS_PATH"/%s/max_brightness", dev->led_name);
+ snprintf(buf, sizeof(buf), "%s"SYS_CLASS_LEDS_PATH"/%s/max_brightness",
+ fake_root, dev->led_name);
dev->file_max_brightness = open(buf, O_RDONLY);
if (dev->file_max_brightness < 0) {
ERROR("Can't open %s\n", buf);
hooks/post-receive
--
armadeus
|