Changeset 429 for EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.c
- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.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 6by 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 * … … 335 335 p_pdqmb = pk_cpdq->pdqmb; 336 336 337 CHECK_ RSATR(pdqatr, TA_TPRI);337 CHECK_VALIDATR(pdqatr, TA_TPRI); 338 338 CHECK_PAR(VALID_DPRI(maxdpri)); 339 if (p_pdqmb != NULL) { 340 CHECK_PAR(MB_ALIGN(p_pdqmb)); 341 } 339 342 340 343 lock_cpu(); … … 344 347 else { 345 348 if (pdqcnt != 0 && p_pdqmb == NULL) { 346 p_pdqmb = kernel_malloc(sizeof(PDQMB) * pdqcnt);349 p_pdqmb = malloc_mpk(sizeof(PDQMB) * pdqcnt); 347 350 pdqatr |= TA_MBALLOC; 348 351 } … … 405 408 p_pdqinib = (PDQINIB *)(p_pdqcb->p_pdqinib); 406 409 if ((p_pdqinib->pdqatr & TA_MBALLOC) != 0U) { 407 kernel_free(p_pdqinib->p_pdqmb);410 free_mpk(p_pdqinib->p_pdqmb); 408 411 } 409 412 p_pdqinib->pdqatr = TA_NOEXS; … … 431 434 snd_pdq(ID pdqid, intptr_t data, PRI datapri) 432 435 { 433 PDQCB *p_pdqcb;434 WINFO_SPDQ 435 ER ercd;436 PDQCB *p_pdqcb; 437 WINFO_SPDQ winfo_spdq; 438 ER ercd; 436 439 437 440 LOG_SND_PDQ_ENTER(pdqid, data, datapri); … … 460 463 winfo_spdq.data = data; 461 464 winfo_spdq.datapri = datapri; 462 p_runtsk->tstat = TS_WAITING_SPDQ;463 wobj_make_wait((WOBJCB *) p_pdqcb,(WINFO_WOBJ *) &winfo_spdq);465 wobj_make_wait((WOBJCB *) p_pdqcb, TS_WAITING_SPDQ, 466 (WINFO_WOBJ *) &winfo_spdq); 464 467 dispatch(); 465 468 ercd = winfo_spdq.winfo.wercd; … … 504 507 } 505 508 else { 506 request_dispatch ();509 request_dispatch_retint(); 507 510 } 508 511 } … … 529 532 tsnd_pdq(ID pdqid, intptr_t data, PRI datapri, TMO tmout) 530 533 { 531 PDQCB *p_pdqcb;532 WINFO_SPDQ 533 TMEVTB tmevtb;534 ER ercd;534 PDQCB *p_pdqcb; 535 WINFO_SPDQ winfo_spdq; 536 TMEVTB tmevtb; 537 ER ercd; 535 538 536 539 LOG_TSND_PDQ_ENTER(pdqid, data, datapri, tmout); … … 563 566 winfo_spdq.data = data; 564 567 winfo_spdq.datapri = datapri; 565 p_runtsk->tstat = TS_WAITING_SPDQ; 566 wobj_make_wait_tmout((WOBJCB *) p_pdqcb, (WINFO_WOBJ *) &winfo_spdq, 567 &tmevtb, tmout); 568 wobj_make_wait_tmout((WOBJCB *) p_pdqcb, TS_WAITING_SPDQ, 569 (WINFO_WOBJ *) &winfo_spdq, &tmevtb, tmout); 568 570 dispatch(); 569 571 ercd = winfo_spdq.winfo.wercd; … … 586 588 rcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri) 587 589 { 588 PDQCB *p_pdqcb;589 WINFO_RPDQ 590 ER ercd;590 PDQCB *p_pdqcb; 591 WINFO_RPDQ winfo_rpdq; 592 ER ercd; 591 593 592 594 LOG_RCV_PDQ_ENTER(pdqid, p_data, p_datapri); … … 609 611 } 610 612 else { 611 p_runtsk->tstat = TS_WAITING_RPDQ; 612 make_wait(&(winfo_rpdq.winfo)); 613 make_wait(TS_WAITING_RPDQ, &(winfo_rpdq.winfo)); 613 614 queue_insert_prev(&(p_pdqcb->rwait_queue), &(p_runtsk->task_queue)); 614 615 winfo_rpdq.p_pdqcb = p_pdqcb; … … 676 677 trcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri, TMO tmout) 677 678 { 678 PDQCB *p_pdqcb;679 WINFO_RPDQ 680 TMEVTB tmevtb;681 ER ercd;679 PDQCB *p_pdqcb; 680 WINFO_RPDQ winfo_rpdq; 681 TMEVTB tmevtb; 682 ER ercd; 682 683 683 684 LOG_TRCV_PDQ_ENTER(pdqid, p_data, p_datapri, tmout); … … 704 705 } 705 706 else { 706 p_runtsk->tstat = TS_WAITING_RPDQ; 707 make_wait_tmout(&(winfo_rpdq.winfo), &tmevtb, tmout); 707 make_wait_tmout(TS_WAITING_RPDQ, &(winfo_rpdq.winfo), &tmevtb, tmout); 708 708 queue_insert_prev(&(p_pdqcb->rwait_queue), &(p_runtsk->task_queue)); 709 709 winfo_rpdq.p_pdqcb = p_pdqcb;
Note:
See TracChangeset
for help on using the changeset viewer.