diff options
| author | Feng Tang <feng.tang@intel.com> | 2010-06-07 12:05:22 +0800 |
|---|---|---|
| committer | Feng Tang <feng.tang@intel.com> | 2010-07-20 11:10:03 +0800 |
| commit | f86e7a6867e35bda1be65b8388c1cc6fecd198ba (patch) | |
| tree | ef9c1634cb93a33901858c72cf6bb7d99bc02254 /core | |
| parent | 4f0c539f915d7b69ae68bca3f17f8d74b4b2639d (diff) | |
| download | syslinux-f86e7a6867e35bda1be65b8388c1cc6fecd198ba.tar.gz | |
elflink: add core/hello.c
Diffstat (limited to 'core')
| -rw-r--r-- | core/hello.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/core/hello.c b/core/hello.c new file mode 100644 index 00000000..68eec044 --- /dev/null +++ b/core/hello.c @@ -0,0 +1,96 @@ +#include <stddef.h> +#include <com32.h> +#include <stdio.h> +#include <string.h> + +#include "core.h" + +#include <console.h> + +static int console_init = 0; + +void myputchar(int c) +{ + static com32sys_t ireg; + + if (c == '\n') + myputchar('\r'); + + ireg.eax.b[1] = 0x02; + ireg.edx.b[0] = c; + __intcall(0x21, &ireg, NULL); +} + +void myputs(const char *str) +{ + while (*str) + myputchar(*str++); +} + +void hello(void) +{ + static char hello_str[] = "Hello, World!"; + + printf("%s from (%s)\n", hello_str, __FILE__); /* testing */ +} + +void hexdump(void *buf, int bytelen, const char *str) +{ + unsigned int *p32, i; + + if (str) + printf("Dump %s:\n", str); + + p32 = (unsigned int *)buf; + for (i = 0; i < (bytelen / 4); i++){ + printf(" 0x%08x ", p32[i]); + } + printf("\n\n"); +} + +void mydump(void) +{ + printf("append buf at %x\n", AppendBuf); + + hexdump(AppendBuf, 60, "appendbuf"); +} + +static inline void myprint(int num) +{ + uint32_t i; + + for (i = 0; i < 5; i ++) + printf("%d", num); + printf("\n"); +} + +void mp1(void) +{ + myprint(1); +} + +void mp2(void) +{ + myprint(2); +} + +void mp3(void) +{ + myprint(3); +} + +void mp4(void) +{ + myprint(4); +} + +void mp5(void) +{ + myprint(5); +} + +void printf_init(void) +{ + openconsole(&dev_null_r, &dev_stdcon_w); +} + |
