1 // #include <loglevel.h>
6 #define STR(X) __STR(X)
11 #if defined(SERIAL_CONSOLE)
12 #define __CONSOLE_INLINE_TX_AL TTYS0_TX_AL
14 #define __CONSOLE_INLINE_TX_AL
17 /* uses: esp, ax, dx */
18 #define __CONSOLE_TX_CHAR(byte) \
23 #define __CONSOLE_INLINE_TX_CHAR(byte) \
25 __CONSOLE_INLINE_TX_AL
27 /* uses: esp, ax, edx */
28 #define __CONSOLE_TX_HEX8(byte) \
30 CALLSP(console_tx_hex8)
32 /* uses: byte, ax, dx */
33 #define __CONSOLE_INLINE_TX_HEX8(byte) \
42 __CONSOLE_INLINE_TX_AL ; \
51 __CONSOLE_INLINE_TX_AL
53 /* uses: esp, eax, ebx, dx */
54 #define __CONSOLE_TX_HEX32(lword) \
56 CALLSP(console_tx_hex32)
58 /* uses: eax, lword, dx */
59 #define __CONSOLE_INLINE_TX_HEX32(lword) \
67 __CONSOLE_INLINE_TX_AL ; \
77 __CONSOLE_INLINE_TX_AL ; \
87 __CONSOLE_INLINE_TX_AL ; \
97 __CONSOLE_INLINE_TX_AL ; \
107 __CONSOLE_INLINE_TX_AL ; \
117 __CONSOLE_INLINE_TX_AL ; \
127 __CONSOLE_INLINE_TX_AL ; \
136 __CONSOLE_INLINE_TX_AL
139 /* uses: esp, ebx, ax, dx */
140 #define __CONSOLE_TX_STRING(string) \
142 CALLSP(console_tx_string)
144 /* uses: ebx, ax, dx */
145 #define __CONSOLE_INLINE_TX_STRING(string) \
146 movl string, %ebx ; \
147 10: movb (%ebx), %al ; \
151 __CONSOLE_INLINE_TX_AL ; \
156 #define CONSOLE_EMERG_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
157 #define CONSOLE_EMERG_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
158 #define CONSOLE_EMERG_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
159 #define CONSOLE_EMERG_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
160 #define CONSOLE_EMERG_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
161 #define CONSOLE_EMERG_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
162 #define CONSOLE_EMERG_TX_STRING(string) __CONSOLE_TX_STRING(string)
163 #define CONSOLE_EMERG_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
165 #define CONSOLE_ALERT_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
166 #define CONSOLE_ALERT_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
167 #define CONSOLE_ALERT_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
168 #define CONSOLE_ALERT_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
169 #define CONSOLE_ALERT_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
170 #define CONSOLE_ALERT_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
171 #define CONSOLE_ALERT_TX_STRING(string) __CONSOLE_TX_STRING(string)
172 #define CONSOLE_ALERT_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
174 #define CONSOLE_CRIT_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
175 #define CONSOLE_CRIT_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
176 #define CONSOLE_CRIT_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
177 #define CONSOLE_CRIT_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
178 #define CONSOLE_CRIT_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
179 #define CONSOLE_CRIT_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
180 #define CONSOLE_CRIT_TX_STRING(string) __CONSOLE_TX_STRING(string)
181 #define CONSOLE_CRIT_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
183 #define CONSOLE_ERR_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
184 #define CONSOLE_ERR_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
185 #define CONSOLE_ERR_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
186 #define CONSOLE_ERR_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
187 #define CONSOLE_ERR_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
188 #define CONSOLE_ERR_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
189 #define CONSOLE_ERR_TX_STRING(string) __CONSOLE_TX_STRING(string)
190 #define CONSOLE_ERR_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
192 #define CONSOLE_WARNING_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
193 #define CONSOLE_WARNING_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
194 #define CONSOLE_WARNING_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
195 #define CONSOLE_WARNING_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
196 #define CONSOLE_WARNING_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
197 #define CONSOLE_WARNING_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
198 #define CONSOLE_WARNING_TX_STRING(string) __CONSOLE_TX_STRING(string)
199 #define CONSOLE_WARNING_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
201 #define CONSOLE_NOTICE_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
202 #define CONSOLE_NOTICE_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
203 #define CONSOLE_NOTICE_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
204 #define CONSOLE_NOTICE_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
205 #define CONSOLE_NOTICE_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
206 #define CONSOLE_NOTICE_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
207 #define CONSOLE_NOTICE_TX_STRING(string) __CONSOLE_TX_STRING(string)
208 #define CONSOLE_NOTICE_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
210 #define CONSOLE_INFO_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
211 #define CONSOLE_INFO_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
212 #define CONSOLE_INFO_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
213 #define CONSOLE_INFO_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
214 #define CONSOLE_INFO_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
215 #define CONSOLE_INFO_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
216 #define CONSOLE_INFO_TX_STRING(string) __CONSOLE_TX_STRING(string)
217 #define CONSOLE_INFO_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
219 #define CONSOLE_DEBUG_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
220 #define CONSOLE_DEBUG_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
221 #define CONSOLE_DEBUG_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
222 #define CONSOLE_DEBUG_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
223 #define CONSOLE_DEBUG_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
224 #define CONSOLE_DEBUG_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
225 #define CONSOLE_DEBUG_TX_STRING(string) __CONSOLE_TX_STRING(string)
226 #define CONSOLE_DEBUG_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
228 #define CONSOLE_SPEW_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
229 #define CONSOLE_SPEW_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
230 #define CONSOLE_SPEW_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
231 #define CONSOLE_SPEW_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
232 #define CONSOLE_SPEW_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
233 #define CONSOLE_SPEW_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
234 #define CONSOLE_SPEW_TX_STRING(string) __CONSOLE_TX_STRING(string)
235 #define CONSOLE_SPEW_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
237 /* uses: esp, ax, dx */
239 __CONSOLE_INLINE_TX_AL
242 /* uses: esp, ax, edx */
244 __CONSOLE_INLINE_TX_HEX8(%al)
248 /* uses: esp, ebx, eax, dx */
257 __CONSOLE_INLINE_TX_AL
267 __CONSOLE_INLINE_TX_AL
277 __CONSOLE_INLINE_TX_AL
287 __CONSOLE_INLINE_TX_AL
297 __CONSOLE_INLINE_TX_AL
307 __CONSOLE_INLINE_TX_AL
317 __CONSOLE_INLINE_TX_AL
326 __CONSOLE_INLINE_TX_AL
329 /* Uses esp, ebx, ax, dx */
338 __CONSOLE_INLINE_TX_AL
339 jmp console_tx_string