도와주세요!!
\linux-2.6.21.tar\linux-2.6.21arch\arm\kernel\entry-common.S 파일내에 102번째 줄에 보시면 아래와 같은 내용이 있습니다.
/*=============================================================================
* SWI handler
*-----------------------------------------------------------------------------
*/
/* If we're optimising for StrongARM the resulting code won't
run on an ARM7 and we can save a couple of instructions.
--pb */
#ifdef CONFIG_CPU_ARM710
#define A710(code...) code
.Larm710bug:
ldmia sp, {r0 - lr}^ @ Get calling r0 - lr
mov r0, r0
add sp, sp, #S_FRAME_SIZE
subs pc, lr, #4
#else
#define A710(code...)
#endif
그리고, 139 번째 줄에 보시면 아래와 같은 내용이 있습니다.
/*
* If we have CONFIG_OABI_COMPAT then we need to look at the swi
* value to determine if it is an EABI or an old ABI call.
*/
#ifdef CONFIG_ARM_THUMB
tst r8, #PSR_T_BIT
movne r10, #0 @ no thumb OABI emulation
ldreq r10, [lr, #-4] @ get SWI instruction
#else
ldr r10, [lr, #-4] @ get SWI instruction
A710( and ip, r10, #0x0f000000 @ check for SWI )
A710( teq ip, #0x0f000000 )
A710( bne .Larm710bug )
#endif
여기서 제가 질문 드리는 내용은
A710( and ip, r10, #0x0f000000 @ check for SWI )
제가 질문 드리는 내용은
#define A710(code...) code
(code...) code 의 의미를 정확히 알수 없어 이렇게 질문을 드립니다. 여기에 대해 자세히 알려주시면 정말 감사하겠습니다.