📄 bfastlock.c
字号:
/* *---------------------------------------------------------------------- * T-Kernel / Standard Extension * * Copyright (C) 2006 by Ken Sakamura. All rights reserved. * T-Kernel / Standard Extension is distributed * under the T-License for T-Kernel / Standard Extension. *---------------------------------------------------------------------- * * Version: 1.00.00 * Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/11. * *---------------------------------------------------------------------- *//* * bfastlock.c (libtkse) * * Fast-lock for application */#include <basic.h>#include <extension/extension.h>#include <extension/util.h>#define TSD_BML_PTN_0X00000001 0x00000001U#define TSD_CBK_PTN_0XFFFF 0xffffU/* * Generate fast-lock */EXPORT ER CreateBLock( BFastLock *lock ){ ER err; T_CFLG cflg; lock->wai = 0; lock->flg = 0; cflg.iflgptn = TSD_CBK_PTN_0XFFFF; cflg.flgatr = TA_TFIFO | TA_WMUL | TA_DELEXIT; lock->flgid = err = tkse_cre_flg(&cflg); if ( err < E_OK ) { return err; } return E_OK;}/* * Delete of fast-lock */EXPORT ER DeleteBLock( BFastLock *lock ){ ER err; if ( lock->flgid <= 0 ) { return E_PAR; } err = tkse_del_flg(lock->flgid); if ( err < E_OK ) { return err; } lock->flgid = 0; return E_OK;}/* * Lock with specified wait time * no Lock Nos. 0 - 15 */EXPORT ER BMLockTmo( BFastLock *lock, W no, TMOUT tmo ){ UW ptn = TSD_BML_PTN_0X00000001 << no; UW rptn = 0; ER err; err = tkse_wai_flg(lock->flgid, ptn, TWF_ORW | TWF_BITCLR, &rptn, tmo); return err;}/* * Lock * no Lock Nos. 0 - 15 */EXPORT ER BMLock( BFastLock *lock, W no ){ return BMLockTmo(lock, no, T_FOREVER);}/* * Unlock * no Lock Nos. 0 - 15 */EXPORT ER BMUnlock( BFastLock *lock, W no ){ UW ptn = TSD_BML_PTN_0X00000001 << no; ER err; err = tkse_set_flg(lock->flgid, ptn); return err;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -