Changeset bea6233 in mainline for kernel/arch/arm64/include/arch/asm.h


Ignore:
Timestamp:
2023-02-26T15:27:13Z (14 months ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7cf5ddb
Parents:
deed510
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-02-26 15:18:02)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2023-02-26 15:27:13)
Message:

Replace cpu_sleep() with cpu_interruptible_sleep()

The new function combines interrupt reenabling with sleep,
so that a platform can implement this sequence atomically.
This is currently done only on ia32 and amd64.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm64/include/arch/asm.h

    rdeed510 rbea6233  
    5252{
    5353        asm volatile ("wfe");
     54}
     55
     56/** Enables interrupts and blocks until an interrupt arrives,
     57 * atomically if possible on target architecture.
     58 * Disables interrupts again before returning to caller.
     59 */
     60_NO_TRACE static inline void cpu_interruptible_sleep(void)
     61{
     62        // FIXME: do this atomically
     63        interrupts_enable();
     64        cpu_sleep();
     65        interrupts_disable();
    5466}
    5567
Note: See TracChangeset for help on using the changeset viewer.