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

Fork of libMiMic by Ryo Iizuka

Committer:
furutani
Date:
Fri Feb 24 04:43:41 2017 +0000
Revision:
115:fa79286d8ea4
Parent:
2:b96c1e90d120
Delete missing include line.; Add parameter "timeout" to TCPSocket::connect(), precv().; Fix to send ARP request to default gateway when connecting to IP address of different segment.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 2:b96c1e90d120 1 /*********************************************************************************
nyatla 2:b96c1e90d120 2 * PROJECT: MiMic
nyatla 2:b96c1e90d120 3 * --------------------------------------------------------------------------------
nyatla 2:b96c1e90d120 4 *
nyatla 2:b96c1e90d120 5 * This file is part of MiMic
nyatla 2:b96c1e90d120 6 * Copyright (C)2011 Ryo Iizuka
nyatla 2:b96c1e90d120 7 *
nyatla 2:b96c1e90d120 8 * MiMic is free software: you can redistribute it and/or modify
nyatla 2:b96c1e90d120 9 * it under the terms of the GNU Lesser General Public License as published
nyatla 2:b96c1e90d120 10 * by the Free Software Foundation, either version 3 of the License, or
nyatla 2:b96c1e90d120 11 * (at your option) any later version.
nyatla 2:b96c1e90d120 12 *
nyatla 2:b96c1e90d120 13 * This program is distributed in the hope that it will be useful,
nyatla 2:b96c1e90d120 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nyatla 2:b96c1e90d120 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nyatla 2:b96c1e90d120 16 * GNU General Public License for more details.
nyatla 2:b96c1e90d120 17 *
nyatla 2:b96c1e90d120 18 * You should have received a copy of the GNU Lesser General Public License
nyatla 2:b96c1e90d120 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
nyatla 2:b96c1e90d120 20 *
nyatla 2:b96c1e90d120 21 * For further information please contact.
nyatla 2:b96c1e90d120 22 * http://nyatla.jp/
nyatla 2:b96c1e90d120 23 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp>
nyatla 2:b96c1e90d120 24 *
nyatla 2:b96c1e90d120 25 *********************************************************************************/
nyatla 2:b96c1e90d120 26 #ifndef NYLPC_CMIMICVM_H_
nyatla 2:b96c1e90d120 27 #define NYLPC_CMIMICVM_H_
nyatla 2:b96c1e90d120 28
nyatla 2:b96c1e90d120 29 #include "NyLPC_stdlib.h"
nyatla 2:b96c1e90d120 30
nyatla 2:b96c1e90d120 31 #ifdef __cplusplus
nyatla 2:b96c1e90d120 32 extern "C" {
nyatla 2:b96c1e90d120 33 #endif /* __cplusplus */
nyatla 2:b96c1e90d120 34
nyatla 2:b96c1e90d120 35 typedef struct NyLPC_TcMiMicVM NyLPC_TcMiMicVM_t;
nyatla 2:b96c1e90d120 36 struct NyLPC_TcMiMicVM_TEvent;
nyatla 2:b96c1e90d120 37
nyatla 2:b96c1e90d120 38 #define NyLPC_cMiMicVM_RESULT_OK 0x00000000
nyatla 2:b96c1e90d120 39 #define NyLPC_cMiMicVM_RESULT_NG 0x80000000
nyatla 2:b96c1e90d120 40 #define NyLPC_cMiMicVM_RESULT_RUNTIME_NG (NyLPC_cMiMicVM_RESULT_NG|0x00010000)
nyatla 2:b96c1e90d120 41 #define NyLPC_cMiMicVM_RESULT_RUNTIME_NG_UNKNOWN_CALL (NyLPC_cMiMicVM_RESULT_RUNTIME_NG|0x00000021)
nyatla 2:b96c1e90d120 42 #define NyLPC_cMiMicVM_RESULT_RUNTIME_NG_CALL (NyLPC_cMiMicVM_RESULT_RUNTIME_NG|0x00000022)
nyatla 2:b96c1e90d120 43 #define NyLPC_cMiMicVM_RESULT_isOK(v) ((v&0x80000000)==0x00000000)
nyatla 2:b96c1e90d120 44
nyatla 2:b96c1e90d120 45 /**
nyatla 2:b96c1e90d120 46 * MiMicVMのワークメモリの個数
nyatla 2:b96c1e90d120 47 */
nyatla 2:b96c1e90d120 48 #define NyLPC_TcMiMicVM_NUMBER_OF_WM 8
nyatla 2:b96c1e90d120 49
nyatla 2:b96c1e90d120 50 typedef NyLPC_TUInt8 NyLPC_TcMiMicVM_OP_TYPE;
nyatla 2:b96c1e90d120 51 typedef NyLPC_TUInt8 NyLPC_TcMiMicVM_OPR_TYPE;
nyatla 2:b96c1e90d120 52
nyatla 2:b96c1e90d120 53 typedef NyLPC_TBool (*NyLPC_TcMiMicVM_putStream)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32 i_val);
nyatla 2:b96c1e90d120 54 typedef NyLPC_TBool (*NyLPC_TcMiMicVM_getStream)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32* o_val);
nyatla 2:b96c1e90d120 55 /**
nyatla 2:b96c1e90d120 56 * MiMicVMのCALL命令ハンドラ。
nyatla 2:b96c1e90d120 57 * i_idに関数IDを指定する。
nyatla 2:b96c1e90d120 58 * @param i_id
nyatla 2:b96c1e90d120 59 * CALL命令のパラメタ
nyatla 2:b96c1e90d120 60 * @param i_vm
nyatla 2:b96c1e90d120 61 * VMのインスタンス。
nyatla 2:b96c1e90d120 62 * @return
nyatla 2:b96c1e90d120 63 * MiMicVMのエラーコード。
nyatla 2:b96c1e90d120 64 * 関数コールが成功したら、NyLPC_cMiMicVM_RESULT_OKを返すこと。エラーの場合はNyLPC_cMiMicVM_RESULT_NG又はカスタムエラーコードを返すこと。
nyatla 2:b96c1e90d120 65 */
nyatla 2:b96c1e90d120 66 typedef NyLPC_TUInt32 (*NyLPC_TcMiMicVM_nativeCall)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32 i_id,NyLPC_TcMiMicVM_t* i_vm);
nyatla 2:b96c1e90d120 67 typedef void (*NyLPC_TcMiMicVM_sleep)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32 i_sleep_in_msec);
nyatla 2:b96c1e90d120 68 struct NyLPC_TcMiMicVM_TEvent
nyatla 2:b96c1e90d120 69 {
nyatla 2:b96c1e90d120 70 NyLPC_TcMiMicVM_putStream put_stream;
nyatla 2:b96c1e90d120 71 NyLPC_TcMiMicVM_getStream get_stream;
nyatla 2:b96c1e90d120 72 NyLPC_TcMiMicVM_sleep sleep;
nyatla 2:b96c1e90d120 73 NyLPC_TcMiMicVM_nativeCall native_call;
nyatla 2:b96c1e90d120 74 };
nyatla 2:b96c1e90d120 75
nyatla 2:b96c1e90d120 76
nyatla 2:b96c1e90d120 77 struct NyLPC_TcMiMicVM
nyatla 2:b96c1e90d120 78 {
nyatla 2:b96c1e90d120 79 struct NyLPC_TcMiMicVM_TEvent* _event_handler;
nyatla 2:b96c1e90d120 80 NyLPC_TUInt32 wm[NyLPC_TcMiMicVM_NUMBER_OF_WM];
nyatla 2:b96c1e90d120 81 };
nyatla 2:b96c1e90d120 82 void NyLPC_cMiMicVM_initialize(NyLPC_TcMiMicVM_t* i_inst,struct NyLPC_TcMiMicVM_TEvent* i_handler);
nyatla 2:b96c1e90d120 83 #define NyLPC_cMiMicVM_finalize(i);
nyatla 2:b96c1e90d120 84 NyLPC_TUInt32 NyLPC_cMiMicVM_run(NyLPC_TcMiMicVM_t* i_inst,const NyLPC_TUInt32* i_instruction,const NyLPC_TUInt16 i_size_of_instruction);
nyatla 2:b96c1e90d120 85 NyLPC_TBool NyLPC_cMiMicVM_sput(NyLPC_TcMiMicVM_t* i_inst,NyLPC_TUInt32 i_val);
nyatla 2:b96c1e90d120 86 NyLPC_TBool NyLPC_cMiMicVM_sget(NyLPC_TcMiMicVM_t* i_inst,NyLPC_TUInt32* o_val);
nyatla 2:b96c1e90d120 87
nyatla 2:b96c1e90d120 88 #ifdef __cplusplus
nyatla 2:b96c1e90d120 89 }
nyatla 2:b96c1e90d120 90 #endif /* __cplusplus */
nyatla 2:b96c1e90d120 91
nyatla 2:b96c1e90d120 92 #endif /* NYLPC_CMIMICVM_H_ */