Rev 2933 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2933 | Rev 2952 | ||
---|---|---|---|
Line 32... | Line 32... | ||
32 | */ |
32 | */ |
33 | /** |
33 | /** |
34 | * @file |
34 | * @file |
35 | */ |
35 | */ |
36 | 36 | ||
- | 37 | #include <stdio.h> |
|
- | 38 | ||
37 | static void kputint(unsigned i) |
39 | static void kputint(unsigned i) |
38 | { |
40 | { |
39 | unsigned dummy; |
41 | unsigned dummy; |
40 | asm volatile ( |
42 | asm volatile ( |
41 | "movl $30, %%eax;" |
43 | "movl $30, %%eax;" |
42 | "int $0x30" |
44 | "int $0x30" |
43 | : "=d" (dummy) /* output - %edx clobbered */ |
45 | : "=d" (dummy) /* output - %edx clobbered */ |
44 | : "d" (i) /* input */ |
46 | : "d" (i) /* input */ |
45 | : "%eax","%ecx" /* all scratch registers clobbered */ |
47 | : "%eax","%ecx" /* all scratch registers clobbered */ |
46 | ); |
48 | ); |
47 | } |
49 | } |
48 | 50 | ||
- | 51 | int z = 42; |
|
- | 52 | ||
49 | void test_func(void); |
53 | void test_func(void); |
50 | void test_func(void) |
54 | void test_func(void) |
51 | { |
55 | { |
- | 56 | kputint(-1); |
|
- | 57 | kputint(z); |
|
- | 58 | printf("Hello, world! (from rtld)\n"); |
|
- | 59 | getchar(); |
|
- | 60 | printf("x\n"); |
|
- | 61 | while(1); |
|
- | 62 | ||
52 | asm ( |
63 | asm ( |
53 | "movl $253, %%eax;" |
64 | "movl $253, %%eax;" |
54 | "int $0x30" |
65 | "int $0x30" |
55 | : /* output */ |
66 | : /* output */ |
56 | : /* input */ |
67 | : /* input */ |
57 | : "%eax","%ecx","%edx" /* all scratch registers clobbered */ |
68 | : "%eax","%ecx","%edx" /* all scratch registers clobbered */ |
58 | ); |
69 | ); |
59 | } |
70 | } |
60 | 71 | ||
61 | 72 | ||
62 | void _rtld_main(void) |
73 | void _rtld_main(void) |
63 | { |
74 | { |