Subversion Repositories HelenOS

Rev

Rev 2726 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2726 vana 1
/*++
2
 
3
Copyright (c) 1999  Intel Corporation
4
 
5
Module Name:
6
 
7
    EfiRtLib.h
8
 
9
Abstract:
10
 
11
    EFI Runtime library functions
12
 
13
 
14
 
15
Revision History
16
 
17
--*/
18
 
19
#include "efi.h"
20
#include "efilib.h"
21
#include "efirtlib.h"
22
 
23
#pragma RUNTIME_CODE(RtZeroMem)
24
VOID
25
RUNTIMEFUNCTION
26
RtZeroMem (
27
    IN VOID     *Buffer,
28
    IN UINTN     Size
29
    )
30
{
31
    INT8        *pt;
32
 
33
    pt = Buffer;
34
    while (Size--) {
35
        *(pt++) = 0;
36
    }
37
}
38
 
39
#pragma RUNTIME_CODE(RtSetMem)
40
VOID
41
RUNTIMEFUNCTION
42
RtSetMem (
43
    IN VOID     *Buffer,
44
    IN UINTN    Size,
45
    IN UINT8    Value    
46
    )
47
{
48
    INT8        *pt;
49
 
50
    pt = Buffer;
51
    while (Size--) {
52
        *(pt++) = Value;
53
    }
54
}
55
 
56
#pragma RUNTIME_CODE(RtCopyMem)
57
VOID
58
RUNTIMEFUNCTION
59
RtCopyMem (
60
    IN VOID     *Dest,
61
    IN VOID     *Src,
62
    IN UINTN    len
63
    )
64
{
65
    CHAR8    *d, *s;
66
 
67
    d = Dest;
68
    s = Src;
69
    while (len--) {
70
        *(d++) = *(s++);
71
    }
72
}
73
 
74
#pragma RUNTIME_CODE(RtCompareMem)
75
INTN
76
RUNTIMEFUNCTION
77
RtCompareMem (
78
    IN VOID     *Dest,
79
    IN VOID     *Src,
80
    IN UINTN    len
81
    )
82
{
83
    CHAR8    *d, *s;
84
 
85
    d = Dest;
86
    s = Src;
87
    while (len--) {
88
        if (*d != *s) {
89
            return *d - *s;
90
        }
91
 
92
        d += 1;
93
        s += 1;
94
    }
95
 
96
    return 0;
97
}
98
 
99
#pragma RUNTIME_CODE(RtCompareGuid)
100
INTN
101
RUNTIMEFUNCTION
102
RtCompareGuid (
103
    IN EFI_GUID     *Guid1,
104
    IN EFI_GUID     *Guid2
105
    )
106
/*++
107
 
108
Routine Description:
109
 
110
    Compares to GUIDs
111
 
112
Arguments:
113
 
114
    Guid1       - guid to compare
115
    Guid2       - guid to compare
116
 
117
Returns:
118
    = 0     if Guid1 == Guid2
119
 
120
--*/
121
{
122
    INT32       *g1, *g2, r;
123
 
124
    //
125
    // Compare 32 bits at a time
126
    //
127
 
128
    g1 = (INT32 *) Guid1;
129
    g2 = (INT32 *) Guid2;
130
 
131
    r  = g1[0] - g2[0];
132
    r |= g1[1] - g2[1];
133
    r |= g1[2] - g2[2];
134
    r |= g1[3] - g2[3];
135
 
136
    return r;
137
}
138
 
139