Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3887 → Rev 3888

/tags/0.4.0/boot/arch/ia64/loader/gefi/lib/runtime/rtstr.c
0,0 → 1,126
/*++
 
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)));
}