* 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.42 $
+ * Copyright (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
+ * $Revision: 1.47 $
*
* 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>
-#include <uip/uip.h>
+
+#include <geekos/net.h>
+
#define SPEAKER_PORT 0x61
-#define TEST_NE2K 0
-
-#if TEST_NE2K
-u8_t uip_buf[UIP_BUFSIZE+2];
-u16_t uip_len;
-
-int Packet_Received(struct NE2K_Packet_Info* info, uchar_t *pkt) {
- uip_len = info->size;
- int i;
- for(i = 0; i < info->size; i++) {
- PrintBoth("%x ", *(pkt+i));
- uip_buf[i] = *(pkt+i);
- if(i % 10 == 0)
- PrintBoth("\n");
- }
- Free(pkt);
- uip_input();
- return 0;
-}
-#endif
+
+
+
void Spin()
{
Init_Stubs();
-#if TEST_NE2K
- Init_Ne2k(&Packet_Received);
- uip_init();
+ Init_Network();
- /* Local IP address */
- uip_ipaddr_t ipaddr;
- uip_ipaddr(ipaddr, 10,0,2,21);
- uip_sethostaddr(ipaddr);
-
- /* Remote IP address */
- uip_ipaddr_t ripaddr;
- uip_ipaddr(ripaddr, 10,0,2,20);
- struct uip_conn *conn;
- conn = uip_connect(&ripaddr, HTONS(8080));
-
- while(uip_len <= 0) {
- uip_periodic_conn(conn);
- }
-/* Sending...*/
- int size;
- uchar_t *data;
-
- /* Based on example code from the uIP documentation */
- if(uip_len <= UIP_LLH_LEN + UIP_TCPIP_HLEN) {
- size = uip_len + UIP_LLH_LEN;
- data = Malloc(size);
- memcpy(data, &uip_buf[0], UIP_LLH_LEN);
- memcpy(data + UIP_LLH_LEN, &uip_buf[UIP_LLH_LEN], uip_len - UIP_LLH_LEN);
- } else {
- size = uip_len + UIP_LLH_LEN + UIP_TCPIP_HLEN;
- data = Malloc(size);
- memcpy(data, &uip_buf[0], UIP_LLH_LEN);
- memcpy(data + UIP_LLH_LEN, &uip_buf[UIP_LLH_LEN], UIP_TCPIP_HLEN);
- memcpy(data + UIP_LLH_LEN + UIP_TCPIP_HLEN, uip_appdata, uip_len - UIP_TCPIP_HLEN - UIP_LLH_LEN);
- }
-/* Finished */
-#endif /* TEST_NE2K */
// Init_IDE();
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 };
-
- /* manually copy over the src and dest mac addresses for now */
- memcpy(data, dest_addr, 6);
- memcpy(data + 6, src_addr, 6);
- *(data+12) = size+2;
- *(data+13) = 0x00;
-
- uint_t i;
- for(i = 0; i < 3; i++) {
- NE2K_Send(data, size);
- }
-#endif
-#if !TEST_NE2K
+
{
RunVMM(bootInfo);
}
-#endif
SerialPrint("RunVMM returned, spinning\n");