Refactor so that the outer function opens and closes the mei fd and
passes it around, just as with the main fd.
That also allows us to use the IOCTL macro in get_vector_status() and
clean up accordingly.
Switch to AUTORELEASE while at it.
Signed-off-by: Andre Heider <a.heider@gmail.com>
PKG_NAME:=ltq-vdsl-app
PKG_VERSION:=4.17.18.6
PKG_NAME:=ltq-vdsl-app
PKG_VERSION:=4.17.18.6
+PKG_RELEASE:=$(AUTORELEASE)
PKG_BASE_NAME:=dsl_cpe_control
PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@OPENWRT
PKG_BASE_NAME:=dsl_cpe_control
PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@OPENWRT
m_str("standard", str);
}
m_str("standard", str);
}
-static vector_t get_vector_status() {
+static void get_vector_status(int fd, vector_t *status) {
+ *status = VECTOR_UNKNOWN;
+
#ifdef INCLUDE_DSL_CPE_API_VRX
#ifdef INCLUDE_DSL_CPE_API_VRX
- int fd = open(DSL_CPE_DSL_LOW_DEV "/0", O_RDWR, 0644);
- return VECTOR_UNKNOWN;
-
- IOCTL_MEI_dsmStatus_t out;
- memset(&out, 0, sizeof(IOCTL_MEI_dsmStatus_t));
- int ret = ioctl(fd, FIO_MEI_DSM_STATUS_GET, &out);
- close(fd);
- if (ret)
- return VECTOR_UNKNOWN;
+ IOCTL(IOCTL_MEI_dsmStatus_t, FIO_MEI_DSM_STATUS_GET);
switch (out.eVectorStatus) {
case e_MEI_VECTOR_STAT_OFF:
switch (out.eVectorStatus) {
case e_MEI_VECTOR_STAT_OFF:
+ *status = VECTOR_OFF;
+ break;
case e_MEI_VECTOR_STAT_ON_DS:
case e_MEI_VECTOR_STAT_ON_DS:
+ *status = VECTOR_ON_DS;
+ break;
case e_MEI_VECTOR_STAT_ON_DS_US:
case e_MEI_VECTOR_STAT_ON_DS_US:
- return VECTOR_ON_DS_US;
+ *status = VECTOR_ON_DS_US;
+ break;
-#else
- return VECTOR_UNKNOWN;
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
{
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
{
void *c, *c2;
standard_t standard = STD_UNKNOWN;
profile_t profile = PROFILE_UNKNOWN;
void *c, *c2;
standard_t standard = STD_UNKNOWN;
profile_t profile = PROFILE_UNKNOWN;
if (fd < 0)
return UBUS_STATUS_UNKNOWN_ERROR;
if (fd < 0)
return UBUS_STATUS_UNKNOWN_ERROR;
+#ifdef INCLUDE_DSL_CPE_API_VRX
+ fd_mei = open(DSL_CPE_DSL_LOW_DEV "/0", O_RDWR, 0644);
+#else
+ fd_mei = -1;
+#endif
+
blob_buf_init(&b, 0);
version_information(fd);
blob_buf_init(&b, 0);
version_information(fd);
if (standard == STD_G_993_2) {
band_plan_status(fd, &profile);
if (standard == STD_G_993_2) {
band_plan_status(fd, &profile);
- vector = get_vector_status();
+ get_vector_status(fd_mei, &vector);
}
describe_mode(standard, profile, vector);
}
describe_mode(standard, profile, vector);
ubus_send_reply(ctx, req, b.head);
ubus_send_reply(ctx, req, b.head);
+ if (fd_mei >= 0)
+ close(fd_mei);