* Copyright (c) 2001,2003,2004 David H. Hovemeyer <daveho@cs.umd.edu>
  * Copyright (c) 2003, Jeffrey K. Hollingsworth <hollings@cs.umd.edu>
  * Copyright (c) 2004, Iulian Neamtiu <neamtiu@cs.umd.edu>
- * $Revision: 1.40 $
+ * $Revision: 1.41 $
  * 
  * This is free software.  You are permitted to use,
  * redistribute, and modify it as specified in the file "COPYING".
 
 #include <geekos/pci.h>
 
-
+#include <geekos/ne2k.h>
 
 #define SPEAKER_PORT 0x61
-
+#define TEST_NE2K 0
+
+#if TEST_NE2K
+int Packet_Received(struct NE2K_Packet_Info* info, uchar_t *pkt) {
+  int i;
+  for(i = 0; i < info->size; i++) {
+    PrintBoth("%x ", *(pkt+i));
+    if(i % 10 == 0)
+      PrintBoth("\n");
+  }
+  Free(pkt);
+  return 0;
+}
+#endif
 
 void Spin()
 {
 
   Init_Stubs();
 
+#if TEST_NE2K
+  Init_Ne2k(&Packet_Received);
+#endif
+
   //  Init_IDE();
 
   // Print("Done; stalling\n");
   spkr_thread = Start_Kernel_Thread(Buzzer, (ulong_t)&doIBuzz, PRIORITY_NORMAL, false);
   }
 #endif
+#if TEST_NE2K
+  uchar_t src_addr[6] = { 0x52, 0x54, 0x00, 0x12, 0x34, 0x58 };
+  uchar_t dest_addr[6] = { 0x52, 0x54, 0x00, 0x12, 0x34, 0x56 };
+
+  uint_t size = 64, i;
+  uchar_t *data = Malloc(size);
+  data = "This is a 64-byte string that will be used to test transmission.";
+
+  for(i = 0; i < 3; i++) {
+    NE2K_Send(src_addr, dest_addr, 0x01, data, size);
+  }
+#endif
 
+#if !TEST_NE2K
   {
     RunVMM(bootInfo);
   }
+#endif
 
 
   SerialPrint("RunVMM returned, spinning\n");