23e3dfbed24f76da128894becc621b41825f33f0
[vboot.git] / firmware / stub / vboot_api_stub.c
1 /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  *
5  * Stub implementations of firmware-provided API functions.
6  */
7
8 #include <stdint.h>
9
10 #define _STUB_IMPLEMENTATION_
11
12 #include <stdarg.h>
13 #include <stdio.h>
14 #include <stdlib.h>
15 #include <string.h>
16 #include <sys/time.h>
17
18 #include "vboot_api.h"
19
20 static enum VbEcBootMode_t vboot_mode;
21
22 void VbExSleepMs(uint32_t msec)
23 {
24 }
25
26 VbError_t VbExBeep(uint32_t msec, uint32_t frequency)
27 {
28         return VBERROR_SUCCESS;
29 }
30
31 VbError_t VbExDisplayInit(uint32_t *width, uint32_t *height)
32 {
33         return VBERROR_SUCCESS;
34 }
35
36 VbError_t VbExDisplayBacklight(uint8_t enable)
37 {
38         return VBERROR_SUCCESS;
39 }
40
41 VbError_t VbExDisplaySetDimension(uint32_t width, uint32_t height)
42 {
43         return VBERROR_SUCCESS;
44 }
45
46 VbError_t VbExDisplayScreen(uint32_t screen_type, uint32_t locale)
47 {
48         return VBERROR_SUCCESS;
49 }
50
51 VbError_t VbExDisplayImage(uint32_t x, uint32_t y,
52                            void *buffer, uint32_t buffersize)
53 {
54         return VBERROR_SUCCESS;
55 }
56
57 VbError_t VbExDisplayDebugInfo(const char *info_str)
58 {
59         return VBERROR_SUCCESS;
60 }
61
62 uint32_t VbExKeyboardRead(void)
63 {
64         return 0;
65 }
66
67 uint32_t VbExKeyboardReadWithFlags(uint32_t *flags_ptr)
68 {
69         return 0;
70 }
71
72 uint32_t VbExGetSwitches(uint32_t mask)
73 {
74         return 0;
75 }
76
77 uint32_t VbExIsShutdownRequested(void)
78 {
79         return 0;
80 }
81
82 VbError_t VbExDecompress(void *inbuf, uint32_t in_size,
83                          uint32_t compression_type,
84                          void *outbuf, uint32_t *out_size)
85 {
86         return VBERROR_SUCCESS;
87 }
88
89 int VbExTrustEC(int devidx)
90 {
91         return 1;
92 }
93
94 VbError_t VbExEcRunningRW(int devidx, int *in_rw)
95 {
96         *in_rw = 0;
97         return VBERROR_SUCCESS;
98 }
99
100 VbError_t VbExEcJumpToRW(int devidx)
101 {
102         return VBERROR_SUCCESS;
103 }
104
105 VbError_t VbExEcRebootToRO(int devidx)
106 {
107         /* Nothing to reboot, so all we can do is return failure. */
108         return VBERROR_UNKNOWN;
109 }
110
111 VbError_t VbExEcDisableJump(int devidx)
112 {
113         return VBERROR_SUCCESS;
114 }
115
116 #define SHA256_HASH_SIZE 32
117
118 VbError_t VbExEcHashRW(int devidx, const uint8_t **hash, int *hash_size)
119 {
120         static const uint8_t fake_hash[32] = {1, 2, 3, 4};
121
122         *hash = fake_hash;
123         *hash_size = sizeof(fake_hash);
124         return VBERROR_SUCCESS;
125 }
126
127 VbError_t VbExEcGetExpectedRW(int devidx, enum VbSelectFirmware_t select,
128                               const uint8_t **image, int *image_size)
129 {
130         static uint8_t fake_image[64] = {5, 6, 7, 8};
131         *image = fake_image;
132         *image_size = sizeof(fake_image);
133         return VBERROR_SUCCESS;
134 }
135
136 VbError_t VbExEcGetExpectedRWHash(int devidx, enum VbSelectFirmware_t select,
137                                   const uint8_t **hash, int *hash_size)
138 {
139         static const uint8_t fake_hash[32] = {1, 2, 3, 4};
140
141         *hash = fake_hash;
142         *hash_size = sizeof(fake_hash);
143         return VBERROR_SUCCESS;
144 }
145
146 VbError_t VbExEcUpdateRW(int devidx, const uint8_t *image, int image_size)
147 {
148         return VBERROR_SUCCESS;
149 }
150
151 VbError_t VbExEcProtectRW(int devidx)
152 {
153         return VBERROR_SUCCESS;
154 }
155
156 VbError_t VbExEcEnteringMode(int devidx, enum VbEcBootMode_t mode)
157 {
158         vboot_mode = mode;
159         return VBERROR_SUCCESS;
160 }
161
162 VbError_t VbExEcVbootDone(int in_recovery)
163 {
164        return VBERROR_SUCCESS;
165 }
166
167 enum VbEcBootMode_t VbGetMode(void)
168 {
169         return vboot_mode;
170 }
171
172 int VbExLegacy(void)
173 {
174         return 1;
175 }
176
177 uint8_t VbExOverrideGptEntryPriority(const GptEntry *e)
178 {
179         return 0;
180 }