Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998 Intel Corporation
Module Name:
str.c
Abstract:
String runtime functions
Revision History
--*/
#include "lib.h"
#pragma RUNTIME_CODE(RtAcquireLock)
INTN RUNTIMEFUNCTION RtStrCmp ( IN CHAR16 *s1, IN CHAR16 *s2 ) /* compare strings */ { while (*s1) { if (*s1 != *s2) { break; }
s1 += 1; s2 += 1; }
return *s1 - *s2; }
#pragma RUNTIME_CODE(RtStrCpy)
VOID RUNTIMEFUNCTION RtStrCpy ( IN CHAR16 *Dest, IN CHAR16 *Src ) /* copy strings */ { while (*Src) { *(Dest++) = *(Src++); } *Dest = 0; }
#pragma RUNTIME_CODE(RtStrCat)
VOID RUNTIMEFUNCTION RtStrCat ( IN CHAR16 *Dest, IN CHAR16 *Src ) { RtStrCpy(Dest+StrLen(Dest), Src); }
#pragma RUNTIME_CODE(RtStrLen)
UINTN RUNTIMEFUNCTION RtStrLen ( IN CHAR16 *s1 ) /* string length */ { UINTN len; for (len=0; *s1; s1+=1, len+=1) ; return len; }
#pragma RUNTIME_CODE(RtStrSize)
UINTN RUNTIMEFUNCTION RtStrSize ( IN CHAR16 *s1 ) /* string size */ { UINTN len; for (len=0; *s1; s1+=1, len+=1) ; return (len + 1) * sizeof(CHAR16); }
#pragma RUNTIME_CODE(RtBCDtoDecimal)
UINT8 RUNTIMEFUNCTION RtBCDtoDecimal( IN UINT8 BcdValue ) { UINTN High, Low;
High = BcdValue >> 4; Low = BcdValue - (High << 4);
return ((UINT8)(Low + (High * 10))); }
#pragma RUNTIME_CODE(RtDecimaltoBCD)
UINT8 RUNTIMEFUNCTION RtDecimaltoBCD ( IN UINT8 DecValue ) { UINTN High, Low;
High = DecValue / 10; Low = DecValue - (High * 10);
return ((UINT8)(Low + (High << 4))); }
|