Subversion Repositories HelenOS

Rev

Rev 2726 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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