: "=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)
*/
int memcmp(const void *m1, const void *m2, size_t Num)
{
+ if( Num == 0 ) return 0; // No bytes are always identical
+
while(Num--)
{
- if(*(Uint8*)m1 != *(Uint8*)m2) break;
+ if(*(Uint8*)m1 != *(Uint8*)m2)
+ return *(Uint8*)m1 - *(Uint8*)m2;
m1 ++;
m2 ++;
}
- return *(Uint8*)m1 - *(Uint8*)m2;
+ return 0;
}
/**
EXPORT(LittleEndian16); EXPORT(BigEndian16);
EXPORT(LittleEndian32); EXPORT(BigEndian32);
+
+EXPORT(SHORTLOCK);
+EXPORT(SHORTREL);
+EXPORT(IS_LOCKED);