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

Dependents:   MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers NyLPC_cMutex.cpp Source File

NyLPC_cMutex.cpp

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 #include "../NyLPC_cMutex.h"
00027 
00028 #if NyLPC_ARCH==NyLPC_ARCH_MBEDRTOS
00029 #include "mbed.h"
00030 #include "rtos.h"
00031 
00032 NyLPC_TBool NyLPC_cMutex_initialize(NyLPC_TcMutex_t* i_inst)
00033 {
00034     i_inst->_lock_count=0;
00035     i_inst->_mutex=new Mutex();
00036     return NyLPC_TBool_TRUE;
00037 }
00038 NyLPC_TBool NyLPC_cMutex_lock(NyLPC_TcMutex_t* i_inst)
00039 {
00040     i_inst->_lock_count++;
00041     ((Mutex*)(i_inst->_mutex))->lock();
00042     return NyLPC_TBool_TRUE;
00043 }
00044 NyLPC_TBool NyLPC_cMutex_unlock(NyLPC_TcMutex_t* i_inst)
00045 {
00046     NyLPC_Assert(i_inst->_lock_count>0);
00047     i_inst->_lock_count--;
00048     ((Mutex*)(i_inst->_mutex))->unlock();
00049     return NyLPC_TBool_TRUE;
00050 }
00051 #endif