Changeset 429 for EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c
- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.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 * … … 356 356 p_dtqmb = pk_cdtq->dtqmb; 357 357 358 CHECK_RSATR(dtqatr, TA_TPRI); 358 CHECK_VALIDATR(dtqatr, TA_TPRI); 359 if (p_dtqmb != NULL) { 360 CHECK_PAR(MB_ALIGN(p_dtqmb)); 361 } 359 362 360 363 lock_cpu(); … … 364 367 else { 365 368 if (dtqcnt != 0 && p_dtqmb == NULL) { 366 p_dtqmb = kernel_malloc(sizeof(DTQMB) * dtqcnt);369 p_dtqmb = malloc_mpk(sizeof(DTQMB) * dtqcnt); 367 370 dtqatr |= TA_MBALLOC; 368 371 } … … 423 426 p_dtqinib = (DTQINIB *)(p_dtqcb->p_dtqinib); 424 427 if ((p_dtqinib->dtqatr & TA_MBALLOC) != 0U) { 425 kernel_free(p_dtqinib->p_dtqmb);428 free_mpk(p_dtqinib->p_dtqmb); 426 429 } 427 430 p_dtqinib->dtqatr = TA_NOEXS; … … 449 452 snd_dtq(ID dtqid, intptr_t data) 450 453 { 451 DTQCB *p_dtqcb;452 WINFO_SDTQ 453 ER ercd;454 DTQCB *p_dtqcb; 455 WINFO_SDTQ winfo_sdtq; 456 ER ercd; 454 457 455 458 LOG_SND_DTQ_ENTER(dtqid, data); … … 473 476 else { 474 477 winfo_sdtq.data = data; 475 p_runtsk->tstat = TS_WAITING_SDTQ;476 wobj_make_wait((WOBJCB *) p_dtqcb,(WINFO_WOBJ *) &winfo_sdtq);478 wobj_make_wait((WOBJCB *) p_dtqcb, TS_WAITING_SDTQ, 479 (WINFO_WOBJ *) &winfo_sdtq); 477 480 dispatch(); 478 481 ercd = winfo_sdtq.winfo.wercd; … … 513 516 } 514 517 else { 515 request_dispatch ();518 request_dispatch_retint(); 516 519 } 517 520 } … … 538 541 tsnd_dtq(ID dtqid, intptr_t data, TMO tmout) 539 542 { 540 DTQCB *p_dtqcb;541 WINFO_SDTQ 542 TMEVTB tmevtb;543 ER ercd;543 DTQCB *p_dtqcb; 544 WINFO_SDTQ winfo_sdtq; 545 TMEVTB tmevtb; 546 ER ercd; 544 547 545 548 LOG_TSND_DTQ_ENTER(dtqid, data, tmout); … … 567 570 else { 568 571 winfo_sdtq.data = data; 569 p_runtsk->tstat = TS_WAITING_SDTQ; 570 wobj_make_wait_tmout((WOBJCB *) p_dtqcb, (WINFO_WOBJ *) &winfo_sdtq, 571 &tmevtb, tmout); 572 wobj_make_wait_tmout((WOBJCB *) p_dtqcb, TS_WAITING_SDTQ, 573 (WINFO_WOBJ *) &winfo_sdtq, &tmevtb, tmout); 572 574 dispatch(); 573 575 ercd = winfo_sdtq.winfo.wercd; … … 612 614 } 613 615 else { 614 request_dispatch ();616 request_dispatch_retint(); 615 617 } 616 618 } 617 ercd = E_OK;619 ercd = E_OK; 618 620 } 619 621 unlock_cpu(); … … 634 636 rcv_dtq(ID dtqid, intptr_t *p_data) 635 637 { 636 DTQCB *p_dtqcb;637 WINFO_RDTQ 638 ER ercd;638 DTQCB *p_dtqcb; 639 WINFO_RDTQ winfo_rdtq; 640 ER ercd; 639 641 640 642 LOG_RCV_DTQ_ENTER(dtqid, p_data); … … 657 659 } 658 660 else { 659 p_runtsk->tstat = TS_WAITING_RDTQ; 660 make_wait(&(winfo_rdtq.winfo)); 661 make_wait(TS_WAITING_RDTQ, &(winfo_rdtq.winfo)); 661 662 queue_insert_prev(&(p_dtqcb->rwait_queue), &(p_runtsk->task_queue)); 662 663 winfo_rdtq.p_dtqcb = p_dtqcb; … … 723 724 trcv_dtq(ID dtqid, intptr_t *p_data, TMO tmout) 724 725 { 725 DTQCB *p_dtqcb;726 WINFO_RDTQ 727 TMEVTB tmevtb;728 ER ercd;726 DTQCB *p_dtqcb; 727 WINFO_RDTQ winfo_rdtq; 728 TMEVTB tmevtb; 729 ER ercd; 729 730 730 731 LOG_TRCV_DTQ_ENTER(dtqid, p_data, tmout); … … 751 752 } 752 753 else { 753 p_runtsk->tstat = TS_WAITING_RDTQ; 754 make_wait_tmout(&(winfo_rdtq.winfo), &tmevtb, tmout); 754 make_wait_tmout(TS_WAITING_RDTQ, &(winfo_rdtq.winfo), &tmevtb, tmout); 755 755 queue_insert_prev(&(p_dtqcb->rwait_queue), &(p_runtsk->task_queue)); 756 756 winfo_rdtq.p_dtqcb = p_dtqcb;
Note:
See TracChangeset
for help on using the changeset viewer.