Hello, master.
I'm glad to find this site, and thanks.
 
I'm on study of kernel, porting linux to arm-core processor.
I read source, which is assemble code.  I can't understand, can't find any doc about that.
 
Please, guide me.
 
kernel ver 2.2.2
/linux/include/asm-arm/proc-armv/*
 
==========in semaphore.h===================
extern inline void down(struct semaphore * sem)
{
 unsigned int cpsr, temp;
 
 __asm__ __volatile__ ("
 @ atomic down operation
 mrs %0, cpsr
 orr %1, %0, #128  @ disable IRQs
 bic %0, %0, #0x80000000 @ clear N
 msr cpsr, %1
 ldr %1, [%2]
 subs %1, %1, #1
 orrmi %0, %0, #0x80000000 @ set N
 str %1, [%2]
 msr cpsr, %0
 movmi r0, %2
 blmi " SYMBOL_NAME_STR(__down_failed)
  : "=&r" (cpsr), "=&r" (temp)
  : "r" (sem)
  : "r0", "lr", "cc");
}
=============================================
 
help me reading this code,  have good luck, trimendous achievement.
good bye.
������ �������
TEL  02-522-8370
FAX  02-522-8370

Reply via email to