equal
deleted
inserted
replaced
893 |
893 |
894 asm("dontswap: "); |
894 asm("dontswap: "); |
895 __JUMP(,lr); |
895 __JUMP(,lr); |
896 |
896 |
897 asm("__PendingDfcQueue: "); |
897 asm("__PendingDfcQueue: "); |
898 asm(".word %a0" : : "i" ((TInt)&TheScheduler.iDfcs)); |
898 asm(".word %a0" : : "i" (&TheScheduler.iDfcs)); |
899 } |
899 } |
900 |
900 |
901 |
901 |
902 /** Queues a DFC (not an IDFC) from an IDFC or thread with preemption disabled. |
902 /** Queues a DFC (not an IDFC) from an IDFC or thread with preemption disabled. |
903 |
903 |
1848 asm("ldr pc, [sp], #4 "); // and exit immediately with r2=0 iff no reschedule occurred |
1848 asm("ldr pc, [sp], #4 "); // and exit immediately with r2=0 iff no reschedule occurred |
1849 |
1849 |
1850 asm("__TheScheduler: "); |
1850 asm("__TheScheduler: "); |
1851 asm(".word TheScheduler "); |
1851 asm(".word TheScheduler "); |
1852 asm("__SystemLock: "); |
1852 asm("__SystemLock: "); |
1853 asm(".word %a0" : : "i" ((TInt)&TheScheduler.iLock)); |
1853 asm(".word %a0" : : "i" (&TheScheduler.iLock)); |
1854 #ifdef BTRACE_CPU_USAGE |
1854 #ifdef BTRACE_CPU_USAGE |
1855 asm("context_switch_trace_header:"); |
1855 asm("context_switch_trace_header:"); |
1856 asm(".word %a0" : : "i" ((TInt)(8<<BTrace::ESizeIndex) + (BTrace::EContextIdPresent<<BTrace::EFlagsIndex*8) + (BTrace::ECpuUsage<<BTrace::ECategoryIndex*8) + (BTrace::ENewThreadContext<<BTrace::ESubCategoryIndex*8)) ); |
1856 asm(".word %a0" : : "i" ((TInt)(8<<BTrace::ESizeIndex) + (BTrace::EContextIdPresent<<BTrace::EFlagsIndex*8) + (BTrace::ECpuUsage<<BTrace::ECategoryIndex*8) + (BTrace::ENewThreadContext<<BTrace::ESubCategoryIndex*8)) ); |
1857 |
1857 |
1858 asm("context_switch_trace:"); |
1858 asm("context_switch_trace:"); |
2306 SET_INTS(r3, MODE_SVC, INTS_ALL_ON); // interrupts back on |
2306 SET_INTS(r3, MODE_SVC, INTS_ALL_ON); // interrupts back on |
2307 asm("mov r0, r2 "); // Return 0 if no reschedule, non-zero if reschedule occurred |
2307 asm("mov r0, r2 "); // Return 0 if no reschedule, non-zero if reschedule occurred |
2308 asm("ldr pc, [sp], #4 "); |
2308 asm("ldr pc, [sp], #4 "); |
2309 |
2309 |
2310 asm("__RescheduleNeededFlag: "); |
2310 asm("__RescheduleNeededFlag: "); |
2311 asm(".word %a0" : : "i" ((TInt)&TheScheduler.iRescheduleNeededFlag)); |
2311 asm(".word %a0" : : "i" (&TheScheduler.iRescheduleNeededFlag)); |
2312 } |
2312 } |
2313 |
2313 |
2314 |
2314 |
2315 /** Returns the current processor context type (thread, IDFC or interrupt). |
2315 /** Returns the current processor context type (thread, IDFC or interrupt). |
2316 |
2316 |