/seL4-master/src/kernel/ |
A D | sporadic.c | 72 word_t next = refill_next(sc, sc->scRefillHead); in refill_ordered() 86 #define REFILL_SANITY_START(sc) ticks_t _sum = refill_sum(sc); assert(isRoundRobin(sc) || refill_or… argument 89 assert(refill_sum(sc) == budget); assert(isRoundRobin(sc) || refill_ordered(sc)); \ 124 sc->scRefillHead = refill_next(sc, sc->scRefillHead); in refill_pop_head() 128 assert(sc->scRefillHead < sc->scRefillMax); in refill_pop_head() 136 assert(refill_size(sc) < sc->scRefillMax); in refill_add_tail() 138 word_t new_tail = refill_next(sc, sc->scRefillTail); in refill_add_tail() 187 *refill_index(sc, 0) = *refill_head(sc); in refill_update() 190 sc->scRefillTail = sc->scRefillHead; in refill_update() 246 return refill_index(sc, refill_next(sc, sc->scRefillHead))->rTime <= tail; in refill_head_overlapping() [all …]
|
A D | thread.c | 568 void postpone(sched_context_t *sc) in postpone() argument 570 tcbSchedDequeue(sc->scTcb); in postpone() 571 tcbReleaseEnqueue(sc->scTcb); in postpone() 572 NODE_STATE_ON_CORE(ksReprogram, sc->scCore) = true; in postpone()
|
A D | boot.c | 228 rootserver.sc = alloc_rootserver_obj(seL4_MinSchedContextBits, 1); in create_rootserver_objects() 507 …if (!configure_sched_context(tcb, SC_PTR(rootserver.sc), usToTicks(CONFIG_BOOT_THREAD_TIME_SLICE *… in create_initial_thread()
|
/seL4-master/src/object/ |
A D | schedcontext.c | 17 schedContext_unbindTCB(sc, sc->scTcb); in invokeSchedContext_UnbindObject() 156 if (sc->scTcb) { in maybeStallSC() 286 assert(!sc || sc->scTcb != NULL); in schedContext_resume() 287 if (likely(sc) && isSchedulable(sc->scTcb)) { in schedContext_resume() 288 if (!(refill_ready(sc) && refill_sufficient(sc, 0))) { in schedContext_resume() 301 sc->scTcb = tcb; in schedContext_bindTCB() 305 if (sc_sporadic(sc) && sc_active(sc) && sc != NODE_STATE(ksCurSC)) { in schedContext_bindTCB() 338 if (sc->scTcb) { in schedContext_unbindAllTCBs() 340 schedContext_unbindTCB(sc, sc->scTcb); in schedContext_unbindAllTCBs() 360 sc->scTcb = to; in schedContext_donate() [all …]
|
A D | notification.c | 45 sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in maybeDonateSchedContext() local 46 if (sc != NULL && sc->scTcb == NULL) { in maybeDonateSchedContext() 47 schedContext_donate(sc, tcb); in maybeDonateSchedContext() 48 schedContext_resume(sc); in maybeDonateSchedContext() 113 … sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in sendSignal() local 114 …if (tcb->tcbSchedContext == sc && sc_sporadic(sc) && tcb->tcbSchedContext != NODE_STATE(ksCurSC)) { in sendSignal() 314 sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in completeSignal() local 315 if (tcb->tcbSchedContext == sc && tcb->tcbSchedContext != NODE_STATE(ksCurSC)) { in completeSignal()
|
A D | objecttype.c | 192 sched_context_t *sc = SC_PTR(tcb->tcbSchedContext); in finaliseCap() local 193 if (sc) { in finaliseCap() 194 schedContext_unbindTCB(sc, tcb); in finaliseCap() 195 if (sc->scYieldFrom) { in finaliseCap() 221 schedContext_unbindAllTCBs(sc); in finaliseCap() 222 schedContext_unbindNtfn(sc); in finaliseCap() 223 if (sc->scReply) { in finaliseCap() 226 sc->scReply = NULL; in finaliseCap() 228 if (sc->scYieldFrom) { in finaliseCap() 229 schedContext_completeYieldTo(sc->scYieldFrom); in finaliseCap() [all …]
|
A D | tcb.c | 1314 sched_context_t *sc = NULL; in decodeSetSchedParams() local 1317 sc = SC_PTR(cap_sched_context_cap_get_capSCPtr(scCap)); in decodeSetSchedParams() 1323 if (sc->scTcb) { in decodeSetSchedParams() 1328 if (isBlocked(tcb) && !sc_released(sc)) { in decodeSetSchedParams() 1361 sc, in decodeSetSchedParams() 1831 sched_context_t *sc, in invokeTCB_ThreadControlSched() argument 1851 if (sc != NULL && sc != target->tcbSchedContext) { in invokeTCB_ThreadControlSched() 1852 schedContext_bindTCB(sc, target); in invokeTCB_ThreadControlSched() 1853 } else if (sc == NULL && target->tcbSchedContext != NULL) { in invokeTCB_ThreadControlSched()
|
/seL4-master/include/kernel/ |
A D | sporadic.h | 58 return refill_index(sc, sc->scRefillHead); in refill_head() 62 return refill_index(sc, sc->scRefillTail); in refill_tail() 81 if (sc->scRefillHead <= sc->scRefillTail) { in refill_size() 82 return (sc->scRefillTail - sc->scRefillHead + 1u); in refill_size() 84 return sc->scRefillTail + 1u + (sc->scRefillMax - sc->scRefillHead); in refill_size() 91 return refill_size(sc) == sc->scRefillMax; in refill_full() 97 return sc->scRefillHead == sc->scRefillTail; in refill_single() 137 return sc->scRefillMax > 0; in sc_active() 146 if (sc_active(sc)) { in sc_released() 162 return sc != NULL && sc_active(sc) && sc->scSporadic; in sc_sporadic() [all …]
|
A D | thread.h | 113 static inline bool_t PURE isRoundRobin(sched_context_t *sc) in isRoundRobin() argument 115 return sc->scPeriod == 0; in isRoundRobin() 302 void postpone(sched_context_t *sc);
|
A D | boot.h | 107 pptr_t sc; member
|
/seL4-master/include/object/ |
A D | schedcontext.h | 24 void schedContext_bindTCB(sched_context_t *sc, tcb_t *tcb); 36 void schedContext_unbindTCB(sched_context_t *sc, tcb_t *tcb); 45 void schedContext_unbindAllTCBs(sched_context_t *sc); 54 void schedContext_resume(sched_context_t *sc); 62 void schedContext_donate(sched_context_t *sc, tcb_t *to); 65 void schedContext_bindNtfn(sched_context_t *sc, notification_t *ntfn); 67 void schedContext_unbindNtfn(sched_context_t *sc); 69 time_t schedContext_updateConsumed(sched_context_t *sc);
|
A D | notification.h | 26 sched_context_t *sc = SC_PTR(notification_ptr_get_ntfnSchedContext(ntfnPtr)); in maybeReturnSchedContext() local 27 if (sc != NULL && sc == tcb->tcbSchedContext) { in maybeReturnSchedContext() 29 sc->scTcb = NULL; in maybeReturnSchedContext()
|
A D | tcb.h | 197 sched_context_t *sc,
|
/seL4-master/src/machine/ |
A D | capdl.c | 110 #define REFILL_INDEX(sc, index) (((refill_t *) (SC_REF(sc) + sizeof(sched_context_t)))[index]) argument 111 #define REFILL_HEAD(sc) REFILL_INDEX((sc), (sc)->scRefillHead) argument 113 static inline ticks_t sc_get_budget(sched_context_t *sc) in sc_get_budget() argument 115 ticks_t sum = REFILL_HEAD(sc).rAmount; in sc_get_budget() 116 word_t current = sc->scRefillHead; in sc_get_budget() 118 while (current != sc->scRefillTail) { in sc_get_budget() 119 current = ((current == sc->scRefillMax - 1u) ? (0) : current + 1u); in sc_get_budget() 120 sum += REFILL_INDEX(sc, current).rAmount; in sc_get_budget() 128 sched_context_t *sc = SC_PTR(cap_sched_context_cap_get_capSCPtr(sc_cap)); in obj_sc_print_attrs() local 130 (long unsigned int)ticksToUs(sc->scPeriod), in obj_sc_print_attrs() [all …]
|
/seL4-master/src/fastpath/ |
A D | fastpath.c | 182 sched_context_t *sc = NODE_STATE(ksCurThread)->tcbSchedContext; in fastpath_call() local 183 sc->scTcb = dest; in fastpath_call() 184 dest->tcbSchedContext = sc; in fastpath_call() 187 reply_t *old_caller = sc->scReply; in fastpath_call() 188 reply->replyPrev = call_stack_new(REPLY_REF(sc->scReply), false); in fastpath_call() 192 reply->replyNext = call_stack_new(SC_REF(sc), true); in fastpath_call() 193 sc->scReply = reply; in fastpath_call() 455 caller->tcbSchedContext = sc; in fastpath_reply_recv() 456 sc->scTcb = caller; in fastpath_reply_recv() 458 sc->scReply = REPLY_PTR(prev_ptr); in fastpath_reply_recv() [all …]
|
/seL4-master/include/machine/ |
A D | capdl.h | 33 void obj_sc_print_attrs(cap_t sc);
|
/seL4-master/tools/dts/ |
A D | tqma8xqp1gb.dts | 341 compatible = "fsl,imx8qxp-sc-rtc"; 345 compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt"; 350 compatible = "fsl,imx8qxp-sc-thermal"; 436 sc-powerkey { 904 fsl,sc-resource = <0x13>; 916 fsl,sc-resource = <0x14>; 928 fsl,sc-resource = <0x1e>; 940 fsl,sc-resource = <0x1c>; 952 fsl,sc-resource = <0x1d>; 964 fsl,sc-resource = <0x19>;
|
A D | allwinnerA20.dts | 254 compatible = "allwinner,sun7i-a20-sc-nmi";
|