- Codice: Seleziona tutto
typedef struct {
unsigned int slock;
} raw_spinlock_t;
static inline void __raw_spin_lock(raw_spinlock_t *lock)
{
asm volatile(
"1:\n\t"
"lock;decl %0\n\t" //???????????
"jns 2f\n\t"
"3:\n\t"
"rep;nop\n\t"
"cmpl $0,%0\n\t"
"jle 3b\n\t"
"jmp 1b\n\t"
"2:\t" : "=m" (lock->slock) : : "memory");
}
Vorrei sapere cosa significa in assembler mettere una cosa del tipo "puntatore;".Ho capito che provo a decrementare il contenuto di un registro e se lo trovo minore o uguale a zero mi fermo, come con un semaforo, ma non capisco la sintassi

