diff --git a/sample/cmux_sample_gsm.c b/sample/cmux_sample_gsm.c index f24a398..db9cfa9 100644 --- a/sample/cmux_sample_gsm.c +++ b/sample/cmux_sample_gsm.c @@ -67,7 +67,7 @@ int cmux_sample(void) } LOG_I("cmux object channel (%s) attach successful.", CMUX_PPP_NAME); end: - return RT_EOK; + return result; } #ifdef CMUX_ATUO_INITIZATION INIT_APP_EXPORT(cmux_sample); diff --git a/src/cmux.c b/src/cmux.c index 5a35f10..d7645d5 100644 --- a/src/cmux.c +++ b/src/cmux.c @@ -77,7 +77,7 @@ #endif #include -static rt_size_t cmux_send_data(struct rt_device *dev, int port, rt_uint8_t type, const char *data, int length); +static rt_ssize_t cmux_send_data(struct rt_device *dev, int port, rt_uint8_t type, const char *data, int length); static rt_slist_t cmux_list = RT_SLIST_OBJECT_INIT(cmux_list); /* only one cmux object can be created */ static struct cmux *_g_cmux = RT_NULL; @@ -527,7 +527,7 @@ static void cmux_recv_processdata(struct cmux *cmux, rt_uint8_t *buf, rt_size_t * * @return length */ -static rt_size_t cmux_send_data(struct rt_device *dev, int port, rt_uint8_t type, const char *data, int length) +static rt_ssize_t cmux_send_data(struct rt_device *dev, int port, rt_uint8_t type, const char *data, int length) { /* flag, EA=1 C port, frame type, data_length 1-2 */ rt_uint8_t prefix[5] = {CMUX_HEAD_FLAG, CMUX_ADDRESS_EA | CMUX_ADDRESS_CR, 0, 0, 0}; @@ -649,12 +649,13 @@ rt_err_t cmux_init(struct cmux *object, const char *name, rt_uint8_t vcom_num, v object->vcom_num = vcom_num; object->vcoms = rt_malloc(vcom_num * sizeof(struct cmux_vcoms)); - rt_memset(object->vcoms, 0, vcom_num * sizeof(struct cmux_vcoms)); + if (object->vcoms == RT_NULL) { LOG_E("cmux vcoms malloc failed."); return -RT_ENOMEM; } + rt_memset(object->vcoms, 0, vcom_num * sizeof(struct cmux_vcoms)); object->buffer = cmux_buffer_init(); if (object->buffer == RT_NULL) @@ -830,14 +831,14 @@ static rt_err_t cmux_vcom_close(rt_device_t dev) * * @return the result */ -static rt_size_t cmux_vcom_write(struct rt_device *dev, +static rt_ssize_t cmux_vcom_write(struct rt_device *dev, rt_off_t pos, const void *buffer, rt_size_t size) { struct cmux *cmux = RT_NULL; struct cmux_vcoms *vcom = (struct cmux_vcoms *)dev; - rt_size_t len; + rt_ssize_t len; cmux = _g_cmux; /* use virtual serial, we can write data into actual serial directly. */ @@ -855,7 +856,7 @@ static rt_size_t cmux_vcom_write(struct rt_device *dev, * * @return the result */ -static rt_size_t cmux_vcom_read(struct rt_device *dev, +static rt_ssize_t cmux_vcom_read(struct rt_device *dev, rt_off_t pos, void *buffer, rt_size_t size)