m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("accel handle open fail for accel processor, error:%s", strerror(errno));
+ _ERRNO(errno, _E, "accel handle open fail for accel processor");
throw ENXIO;
}
int ret = poll(&pfd, 1, -1);
if (ret == -1) {
- _E("poll error:%s m_node_handle:d", strerror(errno), m_node_handle);
+ _ERRNO(errno, _E, "Failed to poll from m_node_handle:%d", m_node_handle);
return false;
} else if (!ret) {
_E("poll timeout m_node_handle:%d", m_node_handle);
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("geomag handle open fail for geomag device, error:%s\n", strerror(errno));
+ _ERRNO(errno, _E, "geomag handle open fail for geomag device");
throw ENXIO;
}
int ret = poll(&pfd, 1, -1);
if (ret == -1) {
- _E("poll error:%s m_node_handle:d", strerror(errno), m_node_handle);
+ _ERRNO(errno, _E, "Failed to poll from m_node_handle:%d", m_node_handle);
return false;
} else if (!ret) {
_E("poll timeout m_node_handle:%d", m_node_handle);
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("gyro handle open fail for gyro device, error:%s", strerror(errno));
+ _ERRNO(errno, _E, "gyro handle open fail for gyro device");
throw ENXIO;
}
int ret = poll(&pfd, 1, -1);
if (ret == -1) {
- _E("poll error:%s m_node_handle:d", strerror(errno), m_node_handle);
+ _ERRNO(errno, _E, "Failed to poll from m_node_handle:%d", m_node_handle);
return false;
} else if (!ret) {
_E("poll timeout m_node_handle:%d", m_node_handle);
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("gyro_uncal handle open fail for gyro_uncal device, error:%s", strerror(errno));
+ _ERRNO(errno, _E, "gyro_uncal handle open fail for gyro_uncal device");
throw ENXIO;
}
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("hrm handle open fail for hrm device, error:%s", strerror(errno));
+ _ERRNO(errno, _E, "Failed to open HRM handle");
throw ENXIO;
}
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("hrm raw handle open fail for hrm raw sensor, error:%s", strerror(errno));
+ _ERRNO(errno, _E, "hrm raw handle open fail for hrm raw sensor");
throw ENXIO;
}
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("light handle open fail for light device, error:%s", strerror(errno));
+ _ERRNO(errno, _E, "light handle open fail for light device");
throw ENXIO;
}
int len = read(m_node_handle, &light_event, sizeof(light_event));
if (len == -1) {
- _D("read(m_node_handle) is error:%s.", strerror(errno));
+ _ERRNO(errno, _E, "Failed to read from m_node_handle");
return false;
}
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("pressure handle open fail for pressure sensor, error:%s\n", strerror(errno));
+ _ERRNO(errno, _E, "pressure handle open fail for pressure sensor");
throw ENXIO;
}
m_node_handle = open(m_data_node.c_str(), O_RDWR);
if (m_node_handle < 0) {
- _E("proxi handle open fail for proxi device, error:%s", strerror(errno));
+ _ERRNO(errno, _E, "proxi handle open fail for proxi device");
throw ENXIO;
}
int len = read(m_node_handle, &proxi_event, sizeof(proxi_event));
if (len == -1) {
- _D("read(m_node_handle) is error:%s.", strerror(errno));
+ _ERRNO(errno, _E, "Failed to read from m_node_handle");
return false;
}
#define _I INFO
#define _D DBG
+#define _ERRNO(errno, tag, fmt, arg...) do { \
+ char buf[1024]; \
+ char *error = strerror_r(errno, buf, 1024); \
+ if (!error) { \
+ _E("Failed to strerror_r()"); \
+ break; \
+ } \
+ tag(fmt" (%s[%d])", ##arg, error, errno); \
+ } while (0)
+
#ifdef _DEBUG
#define warn_if(expr, fmt, arg...) do { \
if(expr) { \