Changeset 429 for EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c
- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c
r321 r429 6 6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory 7 7 * Toyohashi Univ. of Technology, JAPAN 8 * Copyright (C) 2005-201 7by Embedded and Real-Time Systems Laboratory8 * Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * … … 216 216 flgatr = pk_cflg->flgatr; 217 217 218 CHECK_ RSATR(flgatr, TA_TPRI|TA_WMUL|TA_CLR);218 CHECK_VALIDATR(flgatr, TA_TPRI|TA_WMUL|TA_CLR); 219 219 220 220 lock_cpu(); … … 292 292 set_flg(ID flgid, FLGPTN setptn) 293 293 { 294 FLGCB *p_flgcb; 295 QUEUE *p_queue; 296 TCB *p_tcb; 297 WINFO_FLG *p_winfo_flg; 298 ER ercd; 294 FLGCB *p_flgcb; 295 QUEUE *p_queue; 296 TCB *p_tcb; 297 WINFO_FLG *p_winfo_flg; 298 bool_t lock; 299 ER ercd; 299 300 300 301 LOG_SET_FLG_ENTER(flgid, setptn); 301 CHECK_UNL();302 lock = sense_lock(); 302 303 CHECK_ID(VALID_FLGID(flgid)); 303 304 p_flgcb = get_flgcb(flgid); 304 305 305 lock_cpu(); 306 if (!lock) 307 lock_cpu(); 306 308 if (p_flgcb->p_flginib->flgatr == TA_NOEXS) { 307 309 ercd = E_NOEXS; … … 328 330 } 329 331 else { 330 request_dispatch ();332 request_dispatch_retint(); 331 333 } 332 334 } 333 335 ercd = E_OK; 334 336 } 335 unlock_cpu(); 337 if (!lock) 338 unlock_cpu(); 336 339 337 340 error_exit: … … 351 354 { 352 355 FLGCB *p_flgcb; 356 bool_t lock; 353 357 ER ercd; 354 358 355 359 LOG_CLR_FLG_ENTER(flgid, clrptn); 356 CHECK_TSKCTX_UNL();360 lock = sense_lock(); 357 361 CHECK_ID(VALID_FLGID(flgid)); 358 362 p_flgcb = get_flgcb(flgid); 359 363 360 lock_cpu(); 364 if (!lock) 365 lock_cpu(); 361 366 if (p_flgcb->p_flginib->flgatr == TA_NOEXS) { 362 367 ercd = E_NOEXS; … … 366 371 ercd = E_OK; 367 372 } 368 unlock_cpu(); 373 if (!lock) 374 unlock_cpu(); 369 375 370 376 error_exit: … … 383 389 wai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn) 384 390 { 385 FLGCB *p_flgcb;386 WINFO_FLG 387 ER ercd;391 FLGCB *p_flgcb; 392 WINFO_FLG winfo_flg; 393 ER ercd; 388 394 389 395 LOG_WAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn); … … 411 417 winfo_flg.waiptn = waiptn; 412 418 winfo_flg.wfmode = wfmode; 413 p_runtsk->tstat = TS_WAITING_FLG;414 wobj_make_wait((WOBJCB *) p_flgcb,(WINFO_WOBJ *) &winfo_flg);419 wobj_make_wait((WOBJCB *) p_flgcb, TS_WAITING_FLG, 420 (WINFO_WOBJ *) &winfo_flg); 415 421 dispatch(); 416 422 ercd = winfo_flg.winfo.wercd; … … 477 483 twai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn, TMO tmout) 478 484 { 479 FLGCB *p_flgcb;480 WINFO_FLG 481 TMEVTB tmevtb;482 ER ercd;485 FLGCB *p_flgcb; 486 WINFO_FLG winfo_flg; 487 TMEVTB tmevtb; 488 ER ercd; 483 489 484 490 LOG_TWAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn, tmout); … … 510 516 winfo_flg.waiptn = waiptn; 511 517 winfo_flg.wfmode = wfmode; 512 p_runtsk->tstat = TS_WAITING_FLG; 513 wobj_make_wait_tmout((WOBJCB *) p_flgcb, (WINFO_WOBJ *) &winfo_flg, 514 &tmevtb, tmout); 518 wobj_make_wait_tmout((WOBJCB *) p_flgcb, TS_WAITING_FLG, 519 (WINFO_WOBJ *) &winfo_flg, &tmevtb, tmout); 515 520 dispatch(); 516 521 ercd = winfo_flg.winfo.wercd; … … 575 580 FLGCB *p_flgcb; 576 581 ER ercd; 577 582 bool_t lock; 583 578 584 LOG_REF_FLG_ENTER(flgid, pk_rflg); 579 CHECK_TSKCTX_UNL();585 lock = sense_lock(); 580 586 CHECK_ID(VALID_FLGID(flgid)); 581 587 p_flgcb = get_flgcb(flgid); 582 588 583 lock_cpu(); 589 if (!lock) 590 lock_cpu(); 584 591 if (p_flgcb->p_flginib->flgatr == TA_NOEXS) { 585 592 ercd = E_NOEXS; … … 590 597 ercd = E_OK; 591 598 } 592 unlock_cpu(); 599 if (!lock) 600 unlock_cpu(); 593 601 594 602 error_exit:
Note:
See TracChangeset
for help on using the changeset viewer.