This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
nyatla
Date:
Wed Aug 07 16:43:32 2013 +0000
Revision:
49:d4334acc3ec3
Parent:
48:00d211aac2ec
Child:
57:bc4330dfa62f
backup; fix uuid writer overflow; ?????; Notify??????Net?????????????modUPnP??????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 0:142ee8b12fef 1 /*********************************************************************************
nyatla 0:142ee8b12fef 2 * PROJECT: MiMic
nyatla 0:142ee8b12fef 3 * --------------------------------------------------------------------------------
nyatla 0:142ee8b12fef 4 *
nyatla 0:142ee8b12fef 5 * This file is part of MiMic
nyatla 0:142ee8b12fef 6 * Copyright (C)2011 Ryo Iizuka
nyatla 0:142ee8b12fef 7 *
nyatla 0:142ee8b12fef 8 * MiMic is free software: you can redistribute it and/or modify
nyatla 0:142ee8b12fef 9 * it under the terms of the GNU Lesser General Public License as published
nyatla 0:142ee8b12fef 10 * by the Free Software Foundation, either version 3 of the License, or
nyatla 0:142ee8b12fef 11 * (at your option) any later version.
nyatla 0:142ee8b12fef 12 *
nyatla 0:142ee8b12fef 13 * This program is distributed in the hope that it will be useful,
nyatla 0:142ee8b12fef 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nyatla 0:142ee8b12fef 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nyatla 0:142ee8b12fef 16 * GNU General Public License for more details.
nyatla 0:142ee8b12fef 17 *
nyatla 0:142ee8b12fef 18 * You should have received a copy of the GNU Lesser General Public License
nyatla 0:142ee8b12fef 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
nyatla 0:142ee8b12fef 20 *
nyatla 0:142ee8b12fef 21 * For further information please contact.
nyatla 0:142ee8b12fef 22 * http://nyatla.jp/
nyatla 0:142ee8b12fef 23 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>
nyatla 0:142ee8b12fef 24 *
nyatla 0:142ee8b12fef 25 *********************************************************************************/
nyatla 0:142ee8b12fef 26 #include "NyLPC_stdlib.h"
nyatla 11:c82a7b2899b0 27
nyatla 0:142ee8b12fef 28 NyLPC_TUInt32 NyLPC_TUInt32_bswap(NyLPC_TUInt32 n)
nyatla 0:142ee8b12fef 29 {
nyatla 0:142ee8b12fef 30 return(
nyatla 0:142ee8b12fef 31 ((((NyLPC_TUInt32)(n))<<24)&0xff000000)|
nyatla 0:142ee8b12fef 32 ((((NyLPC_TUInt32)(n))<< 8)&0x00ff0000)|
nyatla 0:142ee8b12fef 33 ((((NyLPC_TUInt32)(n))>> 8)&0x0000ff00)|
nyatla 0:142ee8b12fef 34 ((((NyLPC_TUInt32)(n))>>24)&0x000000ff));
nyatla 0:142ee8b12fef 35 }
nyatla 0:142ee8b12fef 36 NyLPC_TUInt16 NyLPC_TUInt16_bswap(NyLPC_TUInt16 n)
nyatla 0:142ee8b12fef 37 {
nyatla 0:142ee8b12fef 38 return NyLPC_TUInt16_BSWAP(n);
nyatla 0:142ee8b12fef 39 }
nyatla 0:142ee8b12fef 40
nyatla 0:142ee8b12fef 41 static int _line_log_l;
nyatla 0:142ee8b12fef 42 static const char* _line_log_m;
nyatla 0:142ee8b12fef 43 unsigned int NyLPC_assert_counter=0;
nyatla 0:142ee8b12fef 44 unsigned int NyLPC_abort_counter=0;
nyatla 0:142ee8b12fef 45 unsigned int NyLPC_debug_counter=0;
nyatla 0:142ee8b12fef 46
nyatla 0:142ee8b12fef 47 void NyLPC_assertHook(const char* m,int l)
nyatla 0:142ee8b12fef 48 {
nyatla 0:142ee8b12fef 49 _line_log_l=l;
nyatla 0:142ee8b12fef 50 _line_log_m=m;
nyatla 0:142ee8b12fef 51 NyLPC_assert_counter++;
nyatla 0:142ee8b12fef 52 return;
nyatla 0:142ee8b12fef 53 }
nyatla 0:142ee8b12fef 54 void NyLPC_abortHook(const char* m,int l)
nyatla 0:142ee8b12fef 55 {
nyatla 0:142ee8b12fef 56 _line_log_l=l;
nyatla 0:142ee8b12fef 57 _line_log_m=m;
nyatla 0:142ee8b12fef 58 NyLPC_abort_counter++;
nyatla 0:142ee8b12fef 59 }
nyatla 0:142ee8b12fef 60 void NyLPC_debugHook(const char* m,int l)
nyatla 0:142ee8b12fef 61 {
nyatla 0:142ee8b12fef 62 _line_log_l=l;
nyatla 0:142ee8b12fef 63 _line_log_m=m;
nyatla 0:142ee8b12fef 64 NyLPC_debug_counter++;
nyatla 0:142ee8b12fef 65 return;
nyatla 0:142ee8b12fef 66 }
nyatla 0:142ee8b12fef 67
nyatla 0:142ee8b12fef 68 NyLPC_TBool NyLPC_TCharArrayPtr_seek(struct NyLPC_TCharArrayPtr* i_struct,NyLPC_TUInt16 i_seek)
nyatla 0:142ee8b12fef 69 {
nyatla 0:142ee8b12fef 70 if(i_struct->len<i_seek){
nyatla 0:142ee8b12fef 71 return NyLPC_TBool_FALSE;
nyatla 0:142ee8b12fef 72 }
nyatla 0:142ee8b12fef 73 i_struct->ptr+=i_seek;
nyatla 0:142ee8b12fef 74 i_struct->len-=i_seek;
nyatla 0:142ee8b12fef 75 return NyLPC_TBool_TRUE;
nyatla 0:142ee8b12fef 76 }
nyatla 0:142ee8b12fef 77
nyatla 0:142ee8b12fef 78 NyLPC_TBool NyLPC_TUInt32ArrayPtr_seek(struct NyLPC_TUInt32ArrayPtr* i_struct,NyLPC_TUInt16 i_seek)
nyatla 0:142ee8b12fef 79 {
nyatla 0:142ee8b12fef 80 if(i_struct->len<i_seek){
nyatla 0:142ee8b12fef 81 return NyLPC_TBool_FALSE;
nyatla 0:142ee8b12fef 82 }
nyatla 0:142ee8b12fef 83 i_struct->ptr+=i_seek;
nyatla 0:142ee8b12fef 84 i_struct->len-=i_seek;
nyatla 0:142ee8b12fef 85 return NyLPC_TBool_TRUE;
nyatla 0:142ee8b12fef 86 }
nyatla 0:142ee8b12fef 87 void NyLPC_TUInt32ArrayPtr_setBuf(struct NyLPC_TUInt32ArrayPtr* i_struct,NyLPC_TUInt32* i_ptr,NyLPC_TUInt16 i_len)
nyatla 0:142ee8b12fef 88 {
nyatla 0:142ee8b12fef 89 i_struct->ptr=i_ptr;
nyatla 0:142ee8b12fef 90 i_struct->len=i_len;
nyatla 0:142ee8b12fef 91 }
nyatla 0:142ee8b12fef 92
nyatla 2:b96c1e90d120 93
nyatla 2:b96c1e90d120 94 /** ----------
nyatla 2:b96c1e90d120 95 * NyLPC_TTextIdTbl
nyatla 2:b96c1e90d120 96 ---------- */
nyatla 2:b96c1e90d120 97
nyatla 2:b96c1e90d120 98 /**
nyatla 2:b96c1e90d120 99 * IDテーブル
nyatla 2:b96c1e90d120 100 */
nyatla 2:b96c1e90d120 101
nyatla 2:b96c1e90d120 102 NyLPC_TUInt8 NyLPC_TTextIdTbl_getMatchId(const NyLPC_TChar* i_str,const struct NyLPC_TTextIdTbl i_tbl[])
nyatla 2:b96c1e90d120 103 {
nyatla 2:b96c1e90d120 104 int i;
nyatla 2:b96c1e90d120 105 for(i=0;i_tbl[i].n!=NULL;i++){
nyatla 2:b96c1e90d120 106 if(strcmp(i_str,i_tbl[i].n)==0){
nyatla 2:b96c1e90d120 107 break;
nyatla 2:b96c1e90d120 108 }
nyatla 2:b96c1e90d120 109 }
nyatla 2:b96c1e90d120 110 return i_tbl[i].id;
nyatla 2:b96c1e90d120 111 }
nyatla 48:00d211aac2ec 112 NyLPC_TUInt8 NyLPC_TTextIdTbl_getMatchIdIgnoreCase(const NyLPC_TChar* i_str,const struct NyLPC_TTextIdTbl i_tbl[])
nyatla 48:00d211aac2ec 113 {
nyatla 48:00d211aac2ec 114 int i;
nyatla 48:00d211aac2ec 115 for(i=0;i_tbl[i].n!=NULL;i++){
nyatla 48:00d211aac2ec 116 if(NyLPC_stricmp(i_str,i_tbl[i].n)==0){
nyatla 48:00d211aac2ec 117 break;
nyatla 48:00d211aac2ec 118 }
nyatla 48:00d211aac2ec 119 }
nyatla 48:00d211aac2ec 120 return i_tbl[i].id;
nyatla 48:00d211aac2ec 121 }
nyatla 48:00d211aac2ec 122 const NyLPC_TChar* NyLPC_TTextIdTbl_getTextById(NyLPC_TUInt8 i_id,const struct NyLPC_TTextIdTbl i_tbl[])
nyatla 48:00d211aac2ec 123 {
nyatla 48:00d211aac2ec 124 int i;
nyatla 48:00d211aac2ec 125 for(i=0;i_tbl[i].n!=NULL;i++){
nyatla 48:00d211aac2ec 126 if(i_id==i_tbl[i].id){
nyatla 48:00d211aac2ec 127 return i_tbl[i].n;
nyatla 48:00d211aac2ec 128 }
nyatla 48:00d211aac2ec 129 }
nyatla 48:00d211aac2ec 130 return NULL;
nyatla 48:00d211aac2ec 131 }
nyatla 2:b96c1e90d120 132
nyatla 2:b96c1e90d120 133
nyatla 2:b96c1e90d120 134
nyatla 2:b96c1e90d120 135
nyatla 2:b96c1e90d120 136 /** ----------
nyatla 11:c82a7b2899b0 137 * Standard functions
nyatla 2:b96c1e90d120 138 ---------- */
nyatla 2:b96c1e90d120 139
nyatla 2:b96c1e90d120 140
nyatla 2:b96c1e90d120 141
nyatla 49:d4334acc3ec3 142 NyLPC_TInt8 NyLPC_itoa(int i_n,char* o_out,NyLPC_TInt8 i_base)
nyatla 0:142ee8b12fef 143 {
nyatla 49:d4334acc3ec3 144 NyLPC_TInt8 i,v;
nyatla 49:d4334acc3ec3 145 int sign;
nyatla 0:142ee8b12fef 146 if ((sign = i_n) < 0){
nyatla 0:142ee8b12fef 147 i_n = -i_n;
nyatla 0:142ee8b12fef 148 }
nyatla 0:142ee8b12fef 149 i = 0;
nyatla 0:142ee8b12fef 150 do{
nyatla 49:d4334acc3ec3 151 v=(NyLPC_TInt8)(i_n % i_base);
nyatla 13:a71705c5e6fd 152 o_out[i++] = v<10?(v+'0'):(v+'a'-10);
nyatla 48:00d211aac2ec 153 }while ((i_n /= i_base) > 0);
nyatla 0:142ee8b12fef 154 if (sign < 0){
nyatla 0:142ee8b12fef 155 o_out[i++] = '-';
nyatla 0:142ee8b12fef 156 }
nyatla 0:142ee8b12fef 157 o_out[i] = '\0';
nyatla 0:142ee8b12fef 158 NyLPC_reverse(o_out);
nyatla 48:00d211aac2ec 159 return i;
nyatla 0:142ee8b12fef 160 }
nyatla 49:d4334acc3ec3 161 NyLPC_TInt8 NyLPC_uitoa(unsigned int i_n,char* o_out,NyLPC_TInt8 i_base)
nyatla 13:a71705c5e6fd 162 {
nyatla 49:d4334acc3ec3 163 NyLPC_TInt8 i = 0;
nyatla 49:d4334acc3ec3 164 NyLPC_TInt8 v;
nyatla 13:a71705c5e6fd 165 do{
nyatla 49:d4334acc3ec3 166 v=(NyLPC_TInt8)(i_n % i_base);
nyatla 13:a71705c5e6fd 167 o_out[i++] = v<10?(v+'0'):(v+'a'-10);
nyatla 48:00d211aac2ec 168 }while ((i_n /= i_base) > 0);
nyatla 13:a71705c5e6fd 169 o_out[i] = '\0';
nyatla 13:a71705c5e6fd 170 NyLPC_reverse(o_out);
nyatla 48:00d211aac2ec 171 return i;
nyatla 48:00d211aac2ec 172 }
nyatla 48:00d211aac2ec 173
nyatla 48:00d211aac2ec 174 /**
nyatla 48:00d211aac2ec 175 * 桁数の指定できるuitoaです。
nyatla 48:00d211aac2ec 176 */
nyatla 49:d4334acc3ec3 177 NyLPC_TInt8 NyLPC_uitoa2(unsigned int i_n,char* o_out,NyLPC_TInt8 i_base,NyLPC_TInt8 i_digit)
nyatla 48:00d211aac2ec 178 {
nyatla 49:d4334acc3ec3 179 NyLPC_TInt8 i = 0;
nyatla 49:d4334acc3ec3 180 NyLPC_TInt8 v;
nyatla 48:00d211aac2ec 181 do{
nyatla 49:d4334acc3ec3 182 v=(NyLPC_TInt8)(i_n % i_base);
nyatla 48:00d211aac2ec 183 o_out[i++] = v<10?(v+'0'):(v+'a'-10);
nyatla 48:00d211aac2ec 184 }while ((i_n /= i_base) > 0);
nyatla 48:00d211aac2ec 185 while(i<i_digit){
nyatla 48:00d211aac2ec 186 o_out[i++] = '0';
nyatla 48:00d211aac2ec 187 }
nyatla 48:00d211aac2ec 188 o_out[i] = '\0';
nyatla 48:00d211aac2ec 189 NyLPC_reverse(o_out);
nyatla 48:00d211aac2ec 190 return i;
nyatla 13:a71705c5e6fd 191 }
nyatla 0:142ee8b12fef 192
nyatla 0:142ee8b12fef 193 void NyLPC_reverse(char* s)
nyatla 0:142ee8b12fef 194 {
nyatla 0:142ee8b12fef 195 char *j;
nyatla 0:142ee8b12fef 196 char c;
nyatla 0:142ee8b12fef 197 j = s + strlen(s) - 1;
nyatla 0:142ee8b12fef 198 while(s < j){
nyatla 0:142ee8b12fef 199 c = *s;
nyatla 0:142ee8b12fef 200 *s++ = *j;
nyatla 0:142ee8b12fef 201 *j-- = c;
nyatla 0:142ee8b12fef 202 }
nyatla 11:c82a7b2899b0 203 }
nyatla 11:c82a7b2899b0 204
nyatla 11:c82a7b2899b0 205
nyatla 11:c82a7b2899b0 206 int NyLPC_stricmp(const char *i_s1, const char *i_s2)
nyatla 11:c82a7b2899b0 207 {
nyatla 48:00d211aac2ec 208 const char* s1 =i_s1;
nyatla 48:00d211aac2ec 209 const char* s2 =i_s2;
nyatla 48:00d211aac2ec 210 for (;*s1 != '\0';s1++, s2++)
nyatla 48:00d211aac2ec 211 {
nyatla 48:00d211aac2ec 212 if(*s1!=*s2){
nyatla 48:00d211aac2ec 213 if(NyLPC_tolower(*s1) != NyLPC_tolower(*s2)){
nyatla 48:00d211aac2ec 214 break;
nyatla 48:00d211aac2ec 215 }
nyatla 48:00d211aac2ec 216 }
nyatla 48:00d211aac2ec 217 }
nyatla 48:00d211aac2ec 218 return (int)((unsigned char)*s1) - (int)((unsigned char)(*s2));
nyatla 11:c82a7b2899b0 219 }
nyatla 11:c82a7b2899b0 220
nyatla 11:c82a7b2899b0 221 int NyLPC_strnicmp(const char *i_s1, const char *i_s2,int n)
nyatla 11:c82a7b2899b0 222 {
nyatla 11:c82a7b2899b0 223 char c;
nyatla 11:c82a7b2899b0 224 int n2=n;
nyatla 48:00d211aac2ec 225 for(;n2>0;n2--,i_s1++,i_s2++)
nyatla 11:c82a7b2899b0 226 {
nyatla 48:00d211aac2ec 227 if(*i_s1!=*i_s2){
nyatla 48:00d211aac2ec 228 c=(int)((unsigned char)NyLPC_tolower(*i_s1)) - (int)((unsigned char)NyLPC_tolower(*i_s2));
nyatla 48:00d211aac2ec 229 if(c!=0){
nyatla 48:00d211aac2ec 230 return c;
nyatla 48:00d211aac2ec 231 }
nyatla 11:c82a7b2899b0 232 }
nyatla 11:c82a7b2899b0 233 }
nyatla 11:c82a7b2899b0 234 return 0;
nyatla 11:c82a7b2899b0 235 }
nyatla 11:c82a7b2899b0 236
nyatla 11:c82a7b2899b0 237
nyatla 11:c82a7b2899b0 238 int NyLPC_ctoi(char i)
nyatla 11:c82a7b2899b0 239 {
nyatla 11:c82a7b2899b0 240 if('0'<=i && i<='9') return (i-'0');
nyatla 11:c82a7b2899b0 241 return 0;
nyatla 11:c82a7b2899b0 242 }
nyatla 11:c82a7b2899b0 243 int NyLPC_ctox(char i)
nyatla 11:c82a7b2899b0 244 {
nyatla 11:c82a7b2899b0 245 if('0'<=i && i<='9') return (i-'0');
nyatla 11:c82a7b2899b0 246 if('a'<=i && i<='f') return (i-'a'+10);
nyatla 11:c82a7b2899b0 247 if('A'<=i && i<='F') return (i-'A'+10);
nyatla 11:c82a7b2899b0 248 return 0;
nyatla 11:c82a7b2899b0 249 }
nyatla 11:c82a7b2899b0 250
nyatla 11:c82a7b2899b0 251
nyatla 11:c82a7b2899b0 252
nyatla 11:c82a7b2899b0 253
nyatla 11:c82a7b2899b0 254