This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Dependents: MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more
NyLPC_cMiMicVM.h
00001 /********************************************************************************* 00002 * PROJECT: MiMic 00003 * -------------------------------------------------------------------------------- 00004 * 00005 * This file is part of MiMic 00006 * Copyright (C)2011 Ryo Iizuka 00007 * 00008 * MiMic is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU Lesser General Public License as published 00010 * by the Free Software Foundation, either version 3 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * This program is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public License 00019 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00020 * 00021 * For further information please contact. 00022 * http://nyatla.jp/ 00023 * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp> 00024 * 00025 *********************************************************************************/ 00026 #ifndef NYLPC_CMIMICVM_H_ 00027 #define NYLPC_CMIMICVM_H_ 00028 00029 #include "NyLPC_stdlib.h" 00030 00031 #ifdef __cplusplus 00032 extern "C" { 00033 #endif /* __cplusplus */ 00034 00035 typedef struct NyLPC_TcMiMicVM NyLPC_TcMiMicVM_t; 00036 struct NyLPC_TcMiMicVM_TEvent; 00037 00038 #define NyLPC_cMiMicVM_RESULT_OK 0x00000000 00039 #define NyLPC_cMiMicVM_RESULT_NG 0x80000000 00040 #define NyLPC_cMiMicVM_RESULT_RUNTIME_NG (NyLPC_cMiMicVM_RESULT_NG|0x00010000) 00041 #define NyLPC_cMiMicVM_RESULT_RUNTIME_NG_UNKNOWN_CALL (NyLPC_cMiMicVM_RESULT_RUNTIME_NG|0x00000021) 00042 #define NyLPC_cMiMicVM_RESULT_RUNTIME_NG_CALL (NyLPC_cMiMicVM_RESULT_RUNTIME_NG|0x00000022) 00043 #define NyLPC_cMiMicVM_RESULT_isOK(v) ((v&0x80000000)==0x00000000) 00044 00045 /** 00046 * MiMicVMのワークメモリの個数 00047 */ 00048 #define NyLPC_TcMiMicVM_NUMBER_OF_WM 8 00049 00050 typedef NyLPC_TUInt8 NyLPC_TcMiMicVM_OP_TYPE; 00051 typedef NyLPC_TUInt8 NyLPC_TcMiMicVM_OPR_TYPE; 00052 00053 typedef NyLPC_TBool (*NyLPC_TcMiMicVM_putStream)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32 i_val); 00054 typedef NyLPC_TBool (*NyLPC_TcMiMicVM_getStream)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32* o_val); 00055 /** 00056 * MiMicVMのCALL命令ハンドラ。 00057 * i_idに関数IDを指定する。 00058 * @param i_id 00059 * CALL命令のパラメタ 00060 * @param i_vm 00061 * VMのインスタンス。 00062 * @return 00063 * MiMicVMのエラーコード。 00064 * 関数コールが成功したら、NyLPC_cMiMicVM_RESULT_OKを返すこと。エラーの場合はNyLPC_cMiMicVM_RESULT_NG又はカスタムエラーコードを返すこと。 00065 */ 00066 typedef NyLPC_TUInt32 (*NyLPC_TcMiMicVM_nativeCall)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32 i_id,NyLPC_TcMiMicVM_t* i_vm); 00067 typedef void (*NyLPC_TcMiMicVM_sleep)(struct NyLPC_TcMiMicVM_TEvent* i_evh,NyLPC_TUInt32 i_sleep_in_msec); 00068 struct NyLPC_TcMiMicVM_TEvent 00069 { 00070 NyLPC_TcMiMicVM_putStream put_stream; 00071 NyLPC_TcMiMicVM_getStream get_stream; 00072 NyLPC_TcMiMicVM_sleep sleep; 00073 NyLPC_TcMiMicVM_nativeCall native_call; 00074 }; 00075 00076 00077 struct NyLPC_TcMiMicVM 00078 { 00079 struct NyLPC_TcMiMicVM_TEvent* _event_handler; 00080 NyLPC_TUInt32 wm[NyLPC_TcMiMicVM_NUMBER_OF_WM]; 00081 }; 00082 void NyLPC_cMiMicVM_initialize(NyLPC_TcMiMicVM_t* i_inst,struct NyLPC_TcMiMicVM_TEvent* i_handler); 00083 #define NyLPC_cMiMicVM_finalize(i); 00084 NyLPC_TUInt32 NyLPC_cMiMicVM_run(NyLPC_TcMiMicVM_t* i_inst,const NyLPC_TUInt32* i_instruction,const NyLPC_TUInt16 i_size_of_instruction); 00085 NyLPC_TBool NyLPC_cMiMicVM_sput(NyLPC_TcMiMicVM_t* i_inst,NyLPC_TUInt32 i_val); 00086 NyLPC_TBool NyLPC_cMiMicVM_sget(NyLPC_TcMiMicVM_t* i_inst,NyLPC_TUInt32* o_val); 00087 00088 #ifdef __cplusplus 00089 } 00090 #endif /* __cplusplus */ 00091 00092 #endif /* NYLPC_CMIMICVM_H_ */
Generated on Tue Jul 12 2022 15:46:16 by 1.7.2