From 6e37f46848127492bf280c9f282644f137de2cd6 Mon Sep 17 00:00:00 2001 From: Jiwan Kim Date: Thu, 2 Jul 2015 14:20:22 +0900 Subject: [PATCH] Code sync from tizen_2.4 Change-Id: I66a5814ba38162d26bffd54e8f86f0acc3db6842 --- LICENSE | 408 +++++++++++++++++++-------------------- include/vdpram.h | 66 +++---- include/vdpram_dump.h | 60 +++--- packaging/tel-plugin-vmodem.spec | 6 +- src/desc-vmodem.c | 70 ++++--- src/vdpram.c | 276 +++++++++++++------------- src/vdpram_dump.c | 15 +- 7 files changed, 456 insertions(+), 445 deletions(-) mode change 100755 => 100644 src/desc-vmodem.c diff --git a/LICENSE b/LICENSE index bae7f54..3d69259 100644 --- a/LICENSE +++ b/LICENSE @@ -1,204 +1,204 @@ -Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - +Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/include/vdpram.h b/include/vdpram.h index d50266f..ecb91d8 100644 --- a/include/vdpram.h +++ b/include/vdpram.h @@ -1,33 +1,33 @@ -/* - * tel-plugin-vmodem - * - * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Junhwan An - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __VDPRAM_H__ -#define __VDPRAM_H__ - -int vdpram_close(int fd); -int vdpram_open (void); -int vdpramerr_open(void); -int vdpram_poweron(int fd); -int vdpram_poweroff(int fd); - -int vdpram_tty_read(int nFd, void* buf, size_t nbytes); -int vdpram_tty_write(int nFd, void* buf, size_t nbytes); - -#endif +/* + * tel-plugin-vmodem + * + * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Junhwan An + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VDPRAM_H__ +#define __VDPRAM_H__ + +int vdpram_close(int fd); +int vdpram_open (void); +int vdpramerr_open(void); +int vdpram_poweron(int fd); +int vdpram_poweroff(int fd); + +int vdpram_tty_read(int nFd, void* buf, size_t nbytes); +int vdpram_tty_write(int nFd, void* buf, size_t nbytes); + +#endif diff --git a/include/vdpram_dump.h b/include/vdpram_dump.h index e98a275..8a27c2f 100644 --- a/include/vdpram_dump.h +++ b/include/vdpram_dump.h @@ -1,30 +1,30 @@ -/* - * tel-plugin-vmodem - * - * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Junhwan An - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __VDPRAM_DUMP_H__ -#define __VDPRAM_DUMP_H__ - -#define IPC_TX 0 -#define IPC_RX 1 - -void vdpram_hex_dump(int dir, unsigned short data_len, void *data); - -#endif - +/* + * tel-plugin-vmodem + * + * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Junhwan An + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VDPRAM_DUMP_H__ +#define __VDPRAM_DUMP_H__ + +#define IPC_TX 0 +#define IPC_RX 1 + +void vdpram_hex_dump(int dir, unsigned short data_len, void *data); + +#endif + diff --git a/packaging/tel-plugin-vmodem.spec b/packaging/tel-plugin-vmodem.spec index 42f5732..7d4b20c 100755 --- a/packaging/tel-plugin-vmodem.spec +++ b/packaging/tel-plugin-vmodem.spec @@ -1,11 +1,11 @@ %define major 0 %define minor 1 -%define patchlevel 18 +%define patchlevel 22 Name: tel-plugin-vmodem Version: %{major}.%{minor}.%{patchlevel} Release: 1 -License: Apache +License: Apache-2.0 Summary: Telephony AT Virtual Modem library Group: System/Libraries Source0: tel-plugin-vmodem-%{version}.tar.gz @@ -40,7 +40,7 @@ mkdir -p %{buildroot}/usr/share/license %files %manifest tel-plugin-vmodem.manifest -%defattr(-,root,root,-) +%defattr(644,system,system,-) #%doc COPYING %{_libdir}/telephony/plugins/vmodem-plugin* /usr/share/license/tel-plugin-vmodem diff --git a/src/desc-vmodem.c b/src/desc-vmodem.c old mode 100755 new mode 100644 index 76fc9b6..e42a908 --- a/src/desc-vmodem.c +++ b/src/desc-vmodem.c @@ -94,7 +94,7 @@ static char __util_unpackb(const char *src, int pos, int len) src++; len -= 8 - pos; - if (len > 0) result = (result << len) | (*src >> (8 - len)); // if any bits left + if (len > 0) result = (result << len) | (*src >> (8 - len)); /* if any bits left */ } return result; @@ -104,13 +104,12 @@ static char __util_convert_byte_hexchar(char val) { char hex_char; - if (val <= 9) { + if (val <= 9) hex_char = (char) (val + '0'); - } else if (val >= 10 && val <= 15) { + else if (val >= 10 && val <= 15) hex_char = (char) (val - 10 + 'A'); - } else { + else hex_char = '0'; - } return (hex_char); } @@ -157,8 +156,8 @@ static guint __vmodem_reencode_mt_sms(gchar *mt_sms, guint mt_sms_len) gchar tpdu_len_str[8] = {0}; guint i, local_index = 0; - if (mt_sms_len > BUF_LEN_MAX) - mt_sms_len = BUF_LEN_MAX-2; + if (mt_sms_len > (BUF_LEN_MAX - 2)) + mt_sms_len = BUF_LEN_MAX - 2; for (i = 0; i < mt_sms_len; i++) { if ((mt_sms[i] == VMODEM_CR) @@ -168,9 +167,9 @@ static guint __vmodem_reencode_mt_sms(gchar *mt_sms, guint mt_sms_len) sms_buf[i] = mt_sms[i]; i++; break; + } else if (mt_sms[i] == VMODEM_COLON) { + tpdu_len_ptr = i + 1; } - else if (mt_sms[i] == VMODEM_COLON) - tpdu_len_ptr = i+1; /* Byte copy */ sms_buf[i] = mt_sms[i]; @@ -191,7 +190,7 @@ static guint __vmodem_reencode_mt_sms(gchar *mt_sms, guint mt_sms_len) sms_buf[i-3] = VMODEM_CR; sms_buf[i-2] = VMODEM_LF; - __util_byte_to_hex(&mt_sms[i], &sms_buf[i-1], pdu_len); + __util_byte_to_hex(&mt_sms[i], &sms_buf[i - 1], pdu_len); i += (2*pdu_len - 1); } } else { @@ -234,10 +233,16 @@ static guint __vmodem_reencode_mt_sms(gchar *mt_sms, guint mt_sms_len) break; } - /* Append & */ - if (i > BUF_LEN_MAX) - i = BUF_LEN_MAX-2; + /* + * Greater than (BUF_LEN_MAX - 2), + * restrict the length to ( BUF_LEN_MAX - 2). + * + * This is to accomadate & . + */ + if (i > (BUF_LEN_MAX - 2)) + i = BUF_LEN_MAX - 2; + /* Append & */ sms_buf[i++] = VMODEM_CR; sms_buf[i++] = VMODEM_LF; dbg("MT SMS: [%s]", sms_buf); @@ -401,8 +406,7 @@ static gboolean on_recv_vdpram_message(GIOChannel *channel, && buf[3] == 0x54 && buf[4] == 0x3A) { dbg("Received - [MT SMS]"); n = __vmodem_reencode_mt_sms((gchar *)buf, n); - } - else if (buf[0] == 0x25) { + } else if (buf[0] == 0x25) { dbg("Replaced % --> +"); buf[0] = 0x2B; } @@ -437,11 +441,10 @@ static TReturn hal_send(TcoreHal *hal, unsigned int data_len, void *data) } ret = vdpram_tty_write(user_data->vdpram_fd, data, data_len); - if(ret < 0) { + if (ret < 0) { err(" Write failed"); return TCORE_RETURN_FAILURE; - } - else { + } else { dbg("vdpram_tty_write success ret=%d (fd=%d, len=%d)", ret, user_data->vdpram_fd, data_len); return TCORE_RETURN_SUCCESS; @@ -537,7 +540,7 @@ static gboolean on_init(TcorePlugin *plugin) /* Register to Server */ user_data->modem = tcore_server_register_modem(tcore_plugin_ref_server(plugin), plugin); - if (user_data->modem == NULL){ + if (user_data->modem == NULL) { err(" Registration Failed"); g_free(user_data); return FALSE; @@ -548,9 +551,13 @@ static gboolean on_init(TcorePlugin *plugin) data = g_try_new0(struct custom_data, 1); if (data == NULL) { err(" Failed to allocate memory for Custom data"); - g_free(user_data); + /* Unregister from Server */ tcore_server_unregister_modem(tcore_plugin_ref_server(plugin), user_data->modem); + + /* Free Plugin data */ + g_free(user_data); + return FALSE; } @@ -558,7 +565,18 @@ static gboolean on_init(TcorePlugin *plugin) * Open DPRAM device */ data->vdpram_fd = vdpram_open(); + if (data->vdpram_fd < 0) { + /* Fre custom data */ + g_free(data); + + /* Unregister from Server */ + tcore_server_unregister_modem(tcore_plugin_ref_server(plugin), user_data->modem); + /* Free Plugin data */ + g_free(user_data); + + return FALSE; + } /* * Create and initialize HAL */ @@ -570,12 +588,12 @@ static gboolean on_init(TcorePlugin *plugin) /* Fre custom data */ g_free(data); - /* Fre Plugin data */ - g_free(user_data); - /* Unregister from Server */ tcore_server_unregister_modem(tcore_plugin_ref_server(plugin), user_data->modem); + /* Fre Plugin data */ + g_free(user_data); + return FALSE; } user_data->hal = hal; @@ -619,12 +637,12 @@ EXIT: /* Free custom data */ g_free(data); - /*Free Plugin Data*/ - g_free(user_data); - /* Unregister from Server */ tcore_server_unregister_modem(tcore_plugin_ref_server(plugin), user_data->modem); + /*Free Plugin Data*/ + g_free(user_data); + return FALSE; } diff --git a/src/vdpram.c b/src/vdpram.c index f585850..ec81ee8 100644 --- a/src/vdpram.c +++ b/src/vdpram.c @@ -54,19 +54,19 @@ # endif #endif -typedef struct _tty_old_setting_t{ - int fd; - struct termios termiosVal; - struct _tty_old_setting_t *next; - struct _tty_old_setting_t *prev; +typedef struct _tty_old_setting_t { + int fd; + struct termios termiosVal; + struct _tty_old_setting_t *next; + struct _tty_old_setting_t *prev; } tty_old_setting_t; #define VDPRAM_OPEN_PATH "/dev/vdpram0" /* DPRAM ioctls for DPRAM tty devices */ -#define IOC_MZ_MAGIC ('h') -#define HN_DPRAM_PHONE_ON _IO (IOC_MZ_MAGIC, 0xd0) -#define HN_DPRAM_PHONE_OFF _IO (IOC_MZ_MAGIC, 0xd1) +#define IOC_MZ_MAGIC ('h') +#define HN_DPRAM_PHONE_ON _IO(IOC_MZ_MAGIC, 0xd0) +#define HN_DPRAM_PHONE_OFF _IO(IOC_MZ_MAGIC, 0xd1) #define HN_DPRAM_PHONE_GETSTATUS _IOR(IOC_MZ_MAGIC, 0xd2, unsigned int) static tty_old_setting_t *ttyold_head = NULL; @@ -80,7 +80,7 @@ static void __insert_tty_oldsetting(tty_old_setting_t *me) return; if (ttyold_head) - ttyold_head->prev = me; + ttyold_head->prev = me; me->next = ttyold_head; me->prev = 0; @@ -98,12 +98,11 @@ static tty_old_setting_t *__search_tty_oldsetting(int fd) tty = ttyold_head; - do{ + do { if (tty->fd == fd) { dbg("oldsetting for inputted fd is found"); break; - } - else { + } else { if (tty->next == NULL) { dbg("No oldsetting is found"); tty = NULL; @@ -111,29 +110,30 @@ static tty_old_setting_t *__search_tty_oldsetting(int fd) } tty = tty->next; } - }while(1); + } while (1); return tty; } static void __remove_tty_oldsetting(tty_old_setting_t *me) { - dbg( "Function Enterence."); + dbg("Function Enterence."); if (me == NULL) return; if (me->prev) - me->prev->next = me->next; + me->prev->next = me->next; else - ttyold_head = me->next; + ttyold_head = me->next; if (me->next) - me->next->prev = me->prev; + me->next->prev = me->prev; } -/* Set hardware flow control. -*/ +/* + * Set hardware flow control. + */ static void __tty_sethwf(int fd, int on) { struct termios tty; @@ -144,17 +144,17 @@ static void __tty_sethwf(int fd, int on) err("__tty_sethwf: tcgetattr:"); if (on) - tty.c_cflag |= CRTSCTS; + tty.c_cflag |= CRTSCTS; else - tty.c_cflag &= ~CRTSCTS; + tty.c_cflag &= ~CRTSCTS; if (tcsetattr(fd, TCSANOW, &tty)) err("__tty_sethwf: tcsetattr:"); } /* -* Set RTS line. Sometimes dropped. Linux specific? -*/ + * Set RTS line. Sometimes dropped. Linux specific? + */ static int __tty_setrts(int fd) { int mcs; @@ -176,8 +176,8 @@ static int __tty_setrts(int fd) * Set baudrate, parity and number of bits. */ static int __tty_setparms(int fd, - const char* baudr, const char* par, - const char* bits, const char* stop, + const char *baudr, const char *par, + const char *bits, const char *stop, int hwf, int swf) { int spd = -1; @@ -191,7 +191,6 @@ static int __tty_setparms(int fd, dbg("Function Enterence."); old_setting = calloc(sizeof(tty_old_setting_t), 1); - if (old_setting == NULL) return TAPI_API_SYSTEM_OUT_OF_MEM; @@ -219,92 +218,89 @@ static int __tty_setparms(int fd, if ((newbaud = (atol(baudr) / 100)) == 0 && baudr[0] != '0') newbaud = -1; - switch(newbaud) - { - case 0: - spd = 0; - break; + switch (newbaud) { + case 0: + spd = 0; + break; - case 3: - spd = B300; - break; + case 3: + spd = B300; + break; - case 6: - spd = B600; - break; + case 6: + spd = B600; + break; - case 12: - spd = B1200; - break; + case 12: + spd = B1200; + break; - case 24: - spd = B2400; - break; + case 24: + spd = B2400; + break; - case 48: - spd = B4800; - break; + case 48: + spd = B4800; + break; - case 96: - spd = B9600; - break; + case 96: + spd = B9600; + break; - case 192: - spd = B19200; - break; + case 192: + spd = B19200; + break; - case 384: - spd = B38400; - break; + case 384: + spd = B38400; + break; - case 576: - spd = B57600; - break; + case 576: + spd = B57600; + break; - case 1152: - spd = B115200; - break; + case 1152: + spd = B115200; + break; - default: - err("invaid baud rate"); - break; + default: + err("invaid baud rate"); + break; } if (spd != -1) { - cfsetospeed(&tty, (speed_t) spd); - cfsetispeed(&tty, (speed_t) spd); + cfsetospeed(&tty, (speed_t) spd); + cfsetispeed(&tty, (speed_t) spd); } - switch(bit) - { - case '5': - tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS5; - break; + switch (bit) { + case '5': + tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS5; + break; - case '6': - tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS6; - break; + case '6': + tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS6; + break; - case '7': - tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS7; - break; + case '7': + tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS7; + break; - case '8': - default: - tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; - break; + case '8': + default: + tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; + break; } - switch(stop_bit) - { - case '1': - tty.c_cflag &= ~CSTOPB; - break; + switch (stop_bit) { + case '1': + tty.c_cflag &= ~CSTOPB; + break; - case '2': - default: - tty.c_cflag |= CSTOPB; - break; + case '2': + default: + tty.c_cflag |= CSTOPB; + break; } /* Set into raw, no echo mode */ @@ -316,27 +312,26 @@ static int __tty_setparms(int fd, tty.c_cc[VTIME] = 1; if (swf) - tty.c_iflag |= IXON | IXOFF; + tty.c_iflag |= IXON | IXOFF; else - tty.c_iflag &= ~(IXON | IXOFF | IXANY); + tty.c_iflag &= ~(IXON | IXOFF | IXANY); tty.c_cflag &= ~(PARENB | PARODD); if (par[0] == 'E') - tty.c_cflag |= PARENB; + tty.c_cflag |= PARENB; else if (par[0] == 'O') - tty.c_cflag |= (PARENB | PARODD); + tty.c_cflag |= (PARENB | PARODD); if (tcsetattr(fd, TCSANOW, &tty) < 0) { free(old_setting); - return TAPI_API_TRANSPORT_LAYER_FAILURE; + return TAPI_API_TRANSPORT_LAYER_FAILURE; } __tty_setrts(fd); __tty_sethwf(fd, hwf); return TAPI_API_SUCCESS; - } static int __tty_close(int fd) @@ -349,7 +344,7 @@ static int __tty_close(int fd) if (old_setting == NULL) return TAPI_API_SUCCESS; - if (tcsetattr(fd, TCSAFLUSH, &old_setting->termiosVal) < 0) { + if (tcsetattr(fd, TCSAFLUSH, &old_setting->termiosVal) < 0) { err("close failed"); return TAPI_API_TRANSPORT_LAYER_FAILURE; } @@ -364,8 +359,8 @@ static int __tty_close(int fd) } /* -* restore the old settings before close. -*/ + * Restore the old settings before close. + */ int vdpram_close(int fd) { int ret = TAPI_API_SUCCESS; @@ -378,50 +373,50 @@ int vdpram_close(int fd) } /* -* Open the vdpram fd. -*/ -int vdpram_open (void) + * Open the vdpram fd. + */ +int vdpram_open(void) { int rv = -1; int fd = -1; int val = 0; - unsigned int cmd =0; + unsigned int cmd = 0; fd = open(VDPRAM_OPEN_PATH, O_RDWR); if (fd < 0) { err("#### Failed to open vdpram file: error no hex %x", errno); return rv; - } - else + } else { dbg("#### Success to open vdpram file. fd:%d, path:%s", fd, VDPRAM_OPEN_PATH); + } if (__tty_setparms(fd, "115200", "N", "8", "1", 0, 0) != TAPI_API_SUCCESS) { vdpram_close(fd); return rv; - } - else + } else { dbg("#### Success set tty vdpram params. fd:%d", fd); + } /*TODO: No need to check Status. Delete*/ cmd = HN_DPRAM_PHONE_GETSTATUS; if (ioctl(fd, cmd, &val) < 0) { - err("#### ioctl failed fd:%d, cmd:%lu, val:%d", fd,cmd,val); + err("#### ioctl failed fd:%d, cmd:%lu, val:%d", fd, cmd, val); vdpram_close(fd); return rv; + } else { + dbg("#### ioctl Success fd:%d, cmd:%lu, val:%d", fd, cmd, val); } - else - dbg("#### ioctl Success fd:%d, cmd:%lu, val:%d", fd,cmd,val); return fd; } /* -* power on the phone. -*/ + * power on the phone. + */ int vdpram_poweron(int fd) { int rv = -1; @@ -429,8 +424,7 @@ int vdpram_poweron(int fd) if (ioctl(fd, HN_DPRAM_PHONE_ON, NULL) < 0) { err("Phone Power On failed (fd:%d)", fd); rv = 0; - } - else { + } else { dbg("Phone Power On success (fd:%d)", fd); rv = 1; } @@ -438,8 +432,8 @@ int vdpram_poweron(int fd) } /* - * Power Off the Phone. - */ + * Power Off the Phone. + */ int vdpram_poweroff(int fd) { int rv; @@ -447,8 +441,7 @@ int vdpram_poweroff(int fd) if (ioctl(fd, HN_DPRAM_PHONE_OFF, NULL) < 0) { err("Phone Power Off failed."); rv = -1; - } - else { + } else { dbg("Phone Power Off success."); rv = 1; } @@ -457,34 +450,33 @@ int vdpram_poweroff(int fd) } /* -* Read data from vdpram. -*/ - -int vdpram_tty_read(int nFd, void* buf, size_t nbytes) + * Read data from vdpram. + */ +int vdpram_tty_read(int nFd, void *buf, size_t nbytes) { int actual = 0; - if ((actual = read(nFd, buf, nbytes)) < 0) { + if ((actual = read(nFd, buf, nbytes)) < 0) dbg("[TRANSPORT DPRAM]read failed."); - } + vdpram_hex_dump(IPC_RX, actual, buf); return actual; } -static void __selectsleep(int sec,int msec) +static void __selectsleep(int sec, int msec) { - struct timeval tv; - tv.tv_sec=sec; - tv.tv_usec=msec; - select(0,NULL,NULL,NULL,&tv); - return; + struct timeval tv; + + tv.tv_sec = sec; + tv.tv_usec = msec; + select(0, NULL, NULL, NULL, &tv); } /* -* Write data to vdpram. -*/ -int vdpram_tty_write(int nFd, void* buf, size_t nbytes) + * Write data to vdpram. + */ +int vdpram_tty_write(int nFd, void *buf, size_t nbytes) { int ret; size_t actual = 0; @@ -492,31 +484,31 @@ int vdpram_tty_write(int nFd, void* buf, size_t nbytes) do { vdpram_hex_dump(IPC_TX, nbytes, buf); - ret = write(nFd, (unsigned char* )buf, nbytes - actual); + ret = write(nFd, (unsigned char *)buf, nbytes - actual); if ((ret < 0 && errno == EAGAIN) || (ret < 0 && errno == EBUSY)) { - err("write failed. retry.. ret[%d] with errno[%d] ",ret, errno); - __selectsleep(0,50); + err("write failed. retry.. ret[%d] with errno[%d] ", ret, errno); + __selectsleep(0, 50); if (retry == 10) return 0; retry = retry + 1; - continue; + continue; } if (ret < 0) { if (actual != nbytes) - err("write failed.ret[%d]",ret); + err("write failed.ret[%d]", ret); - err("errno [%d]",errno); + err("errno [%d]", errno); return actual; } - actual += ret; - buf += ret; + actual += ret; + buf += ret; - } while(actual < nbytes); + } while (actual < nbytes); return actual; } diff --git a/src/vdpram_dump.c b/src/vdpram_dump.c index adc8d6f..51b9461 100644 --- a/src/vdpram_dump.c +++ b/src/vdpram_dump.c @@ -25,6 +25,8 @@ #include "vdpram_dump.h" +#define TAB_SPACE " " + static void hex_dump(const char *pad, int size, const void *data) { char buf[255] = {0, }; @@ -40,18 +42,17 @@ static void hex_dump(const char *pad, int size, const void *data) p = (unsigned const char *)data; snprintf(buf, 255, "%s%04X: ", pad, 0); - for (i = 0; i