X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Flib.c;h=9287d9c3d7f811c194627e16fd771628c499e278;hb=41769c02317835472d7678d3531ecfc23df8e17a;hp=0ca98f9efc9c0e580751344884e87dfd834748aa;hpb=b8a91f439c2721992885557cebae762495fe4348;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/lib.c b/Kernel/arch/x86/lib.c index 0ca98f9e..9287d9c3 100644 --- a/Kernel/arch/x86/lib.c +++ b/Kernel/arch/x86/lib.c @@ -85,7 +85,7 @@ void SHORTLOCK(struct sShortSpinlock *Lock) : "=a"(v) : "a"(0), "r"(cpu), "r"(&Lock->Lock) ); - #elseif STACKED_LOCKS == 2 + #elif STACKED_LOCKS == 2 __ASM__("lock cmpxchgl %2, (%3)" : "=a"(v) : "a"(0), "r"(thread), "r"(&Lock->Lock) @@ -189,6 +189,8 @@ void *memsetd(void *Dest, Uint32 Val, size_t Num) */ int memcmp(const void *m1, const void *m2, size_t Num) { + if( Num == 0 ) return 1; // No bytes are always identical + while(Num--) { if(*(Uint8*)m1 != *(Uint8*)m2) break; @@ -328,3 +330,7 @@ EXPORT(__udivdi3); EXPORT(__umoddi3); EXPORT(LittleEndian16); EXPORT(BigEndian16); EXPORT(LittleEndian32); EXPORT(BigEndian32); + +EXPORT(SHORTLOCK); +EXPORT(SHORTREL); +EXPORT(IS_LOCKED);