X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/d88bb1f4479b42f9078674c33e6618c27c2c98ce..d5cffad757d05610d796476603aaff266e6c8f50:/tools/poke-rls.c diff --git a/tools/poke-rls.c b/tools/poke-rls.c index c6db7bc..03c4fb1 100644 --- a/tools/poke-rls.c +++ b/tools/poke-rls.c @@ -2,6 +2,7 @@ #include #include #include +#include static uint16_t _get_PMBASE() { @@ -13,19 +14,36 @@ static uint16_t _get_PMBASE() return pmbase; } +typedef struct { + uint32_t signature; + uint32_t type; + uint8_t data[]; +} packet_t; -extern unsigned int poke(short addr); +extern unsigned int poke(unsigned long addr, unsigned long * value); int main(int argc, char **argv) { unsigned int res; + packet_t * packet = (packet_t *)memalign(4096, sizeof(packet_t)); + + packet->signature = 0x1BADD00D; + packet->type = 42; + strcpy(packet->data, "hello, world!"); if (iopl(3) < 0) { perror("iopl"); return 1; } - - res = poke(_get_PMBASE() + 0x04); - printf("found %p\n", res); + + res = poke(_get_PMBASE() + 0x04, (void *)packet); + printf("returned %p\n", res); + + if (res == 42) { + printf("%s\n", packet->data); + printf("%s\n", packet->data+41); + printf("%s\n", packet->data+82); + printf("%s\n", packet->data+123); + } }