1*4d1135e4Sbellard #include <asm/unistd.h> 2*4d1135e4Sbellard 3*4d1135e4Sbellard extern inline volatile void exit(int status) 4*4d1135e4Sbellard { 5*4d1135e4Sbellard int __res; 6*4d1135e4Sbellard __asm__ volatile ("movl %%ecx,%%ebx\n"\ 7*4d1135e4Sbellard "int $0x80" \ 8*4d1135e4Sbellard : "=a" (__res) : "0" (__NR_exit),"c" ((long)(status))); 9*4d1135e4Sbellard } 10*4d1135e4Sbellard 11*4d1135e4Sbellard extern inline int write(int fd, const char * buf, int len) 12*4d1135e4Sbellard { 13*4d1135e4Sbellard int status; 14*4d1135e4Sbellard __asm__ volatile ("pushl %%ebx\n"\ 15*4d1135e4Sbellard "movl %%esi,%%ebx\n"\ 16*4d1135e4Sbellard "int $0x80\n" \ 17*4d1135e4Sbellard "popl %%ebx\n"\ 18*4d1135e4Sbellard : "=a" (status) \ 19*4d1135e4Sbellard : "0" (__NR_write),"S" ((long)(fd)),"c" ((long)(buf)),"d" ((long)(len))); 20*4d1135e4Sbellard } 21*4d1135e4Sbellard 22*4d1135e4Sbellard void _startup(void) 23*4d1135e4Sbellard { 24*4d1135e4Sbellard write(1, "Hello World\n", 12); 25*4d1135e4Sbellard exit(0); 26*4d1135e4Sbellard } 27