#include #include #include #include #include #include "libemm64.h" /* Test data. Our test code will copy foo to bar, with 64 bit operations */ u_int64_t foo = 0x1234567890abcdefULL; u_int64_t bar = 0; void sig(int sig, siginfo_t *info, void *ctx, void *addr) { fprintf(stderr, "signal %d\n", sig); fprintf(stderr, "addr %p\n", addr); _exit(1); } int main() { signal(SIGBUS, (sig_t)sig); signal(SIGSEGV, (sig_t)sig); signal(SIGILL, (sig_t)sig); printf("before, foo:0x%016jx, bar:0x%016jx\n", foo, bar); bcopy64((uintptr_t)(void *)&foo, (uintptr_t)(void *)&bar, sizeof(foo)); printf("after, foo:0x%016jx, bar:0x%016jx\n", foo, bar); exit(0); }