Skip to content
  • James Hogan's avatar
    metag: Atomics, locks and bitops · 6006c0d8
    James Hogan authored
    
    
    Add header files to implement Meta hardware thread locks (used by some
    other atomic operations), atomics, spinlocks, and bitops.
    
    There are 2 main types of atomic primitives for metag (in addition to
    IRQs off on UP):
     - LOCK instructions provide locking between hardware threads.
     - LNKGET/LNKSET instructions provide load-linked/store-conditional
       operations allowing for lighter weight atomics on Meta2
    
    LOCK instructions allow for hardware threads to acquire voluntary or
    exclusive hardware thread locks:
     - LOCK0 releases exclusive and voluntary lock from the running hardware
       thread.
     - LOCK1 acquires the voluntary hardware lock, blocking until it becomes
       available.
     - LOCK2 implies LOCK1, and additionally acquires the exclusive hardware
       lock, blocking all other hardware threads from executing.
    
    Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
    6006c0d8