]> Joshua Wise's Git repositories - netwatch.git/blobdiff - tools/poke-rls.c
More ICH2-specific code diked out.
[netwatch.git] / tools / poke-rls.c
index 01de181bf1e5497ca8e248a8fd7277bef32cf0a3..557e7a9b0ec02bf25b639cc4f7857e7baa294056 100644 (file)
@@ -1,3 +1,13 @@
+/* poke-rls.c
+ * Linux-side communication packet utility
+ * NetWatch system management mode administration console
+ *
+ * Copyright (c) 2008 Jacob Potter and Joshua Wise.  All rights reserved.
+ * This program is free software; you can redistribute and/or modify it under
+ * the terms found in the file LICENSE in the root of this source tree.
+ *
+ */
+
 #include <sys/io.h>
 #include <reg-82801b.h>
 #include <string.h>
 #include <sys/io.h>
 #include <reg-82801b.h>
 #include <string.h>
@@ -14,12 +24,22 @@ static uint16_t _get_PMBASE()
        return pmbase;
 }
 
        return pmbase;
 }
 
+typedef struct {
+       uint32_t signature;
+       uint32_t type;
+       uint8_t data[];
+} packet_t;
 
 
-extern unsigned int poke(unsigned long addr);
+extern unsigned int poke(unsigned long addr, unsigned long * value);
 
 int main(int argc, char **argv)
 {
        unsigned int res;
 
 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)
        {
 
        if (iopl(3) < 0)
        {
@@ -27,6 +47,12 @@ int main(int argc, char **argv)
                return 1;
        }
        
                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) {
+               int i;
+               for (i = 0; i < 96; i++)
+                       printf("%s\n", packet->data + i * 41);
+       }
 }
 }
This page took 0.027309 seconds and 4 git commands to generate.