cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

hello-i386.c (699B)


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