From: Jack Lange Date: Sat, 25 Oct 2008 18:39:54 +0000 (-0500) Subject: Merge branch 'devel' X-Git-Tag: 1.0^0 X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=66a1a4c7a9edcd7d8bc207aca093d694a6e6b5b2;hp=32694d99c15e00731a240e0fccea252e08bf5ada Merge branch 'devel' Conflicts: palacios/include/devices/generic.h palacios/src/devices/ramdisk.c --- diff --git a/palacios/include/devices/generic.h b/palacios/include/devices/generic.h index 03c120c..664466e 100644 --- a/palacios/include/devices/generic.h +++ b/palacios/include/devices/generic.h @@ -20,13 +20,13 @@ */ + #ifndef __DEVICES_GENERIC_H__ #define __DEVICES_GENERIC_H__ #ifdef __V3VEE__ - #include // diff --git a/palacios/include/devices/ide.h b/palacios/include/devices/ide.h index 03d8a48..fd6cf04 100644 --- a/palacios/include/devices/ide.h +++ b/palacios/include/devices/ide.h @@ -205,6 +205,7 @@ struct drive_t { struct sense_info_t sense; struct atapi_t atapi; + /* JRL */ void * private_data; @@ -243,6 +244,7 @@ struct ramdisk_t { #endif + #if 0 // FLAT MODE diff --git a/palacios/include/palacios/vmcs.h b/palacios/include/palacios/vmcs.h index 5c78dd6..3ba5064 100644 --- a/palacios/include/palacios/vmcs.h +++ b/palacios/include/palacios/vmcs.h @@ -21,12 +21,14 @@ */ + #ifndef __VMCS_H__ #define __VMCS_H__ #ifdef __V3VEE__ + #include diff --git a/palacios/include/palacios/vmcs_gen.h b/palacios/include/palacios/vmcs_gen.h index a78990b..7c1a1c8 100644 --- a/palacios/include/palacios/vmcs_gen.h +++ b/palacios/include/palacios/vmcs_gen.h @@ -806,4 +806,3 @@ void PrintTrace_VMCS_ALL(); #endif - diff --git a/palacios/src/devices/ramdisk.c b/palacios/src/devices/ramdisk.c index 10de469..5879875 100644 --- a/palacios/src/devices/ramdisk.c +++ b/palacios/src/devices/ramdisk.c @@ -1796,7 +1796,7 @@ int handle_atapi_packet_command(struct vm_device * dev, struct channel_t * chann break; } - + if (rd_init_send_atapi_command(dev, channel, atapi_command, toc_length, alloc_length, false) == -1) { PrintError("Failed to init send atapi command in read toc (fmt=%d)\n", format); return -1; @@ -2576,7 +2576,6 @@ static void rd_print_state(struct ramdisk_t * ramdisk) { - static int check_bit_fields(struct controller_t * controller) { //Check bit fields controller->sector_count = 0; diff --git a/palacios/src/geekos/debug.c b/palacios/src/geekos/debug.c new file mode 100644 index 0000000..483d4af --- /dev/null +++ b/palacios/src/geekos/debug.c @@ -0,0 +1,30 @@ +/* + * This file is part of the Palacios Virtual Machine Monitor developed + * by the V3VEE Project with funding from the United States National + * Science Foundation and the Department of Energy. + * + * The V3VEE Project is a joint project between Northwestern University + * and the University of New Mexico. You can find out more at + * http://www.v3vee.org + * + * Copyright (c) 2008, Jack Lange + * Copyright (c) 2008, The V3VEE Project + * All rights reserved. + * + * Author: Jack Lange + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "V3VEE_LICENSE". + */ + +#include + + +void PrintBoth(const char * format, ...) { + va_list args; + + va_start(args, format); + PrintList(format, args); + SerialPrintList(format, args); + va_end(args); +} diff --git a/palacios/src/geekos/net.c b/palacios/src/geekos/net.c new file mode 100644 index 0000000..8fc76bc --- /dev/null +++ b/palacios/src/geekos/net.c @@ -0,0 +1,51 @@ +/* + * This file is part of the Palacios Virtual Machine Monitor developed + * by the V3VEE Project with funding from the United States National + * Science Foundation and the Department of Energy. + * + * The V3VEE Project is a joint project between Northwestern University + * and the University of New Mexico. You can find out more at + * http://www.v3vee.org + * + * Copyright (c) 2008, Jack Lange + * Copyright (c) 2008, The V3VEE Project + * All rights reserved. + * + * Author: Jack Lange + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "V3VEE_LICENSE". + */ + +#include +#include +#include + +void Init_Network() { + init_socket_layer(); +} + + + + +void test_network() { + + uchar_t local_addr[4]; + uchar_t remote_addr[4]; + + local_addr[0] = 10; + local_addr[1] = 0; + local_addr[2] = 2; + local_addr[3] = 21; + + set_ip_addr(local_addr); + + remote_addr[0] = 10; + remote_addr[1] = 0; + remote_addr[2] = 2; + remote_addr[3] = 20; + + + connect(remote_addr, 4301); + +} diff --git a/palacios/src/geekos/queue.c b/palacios/src/geekos/queue.c new file mode 100644 index 0000000..ed1a664 --- /dev/null +++ b/palacios/src/geekos/queue.c @@ -0,0 +1,58 @@ +/* + * This file is part of the Palacios Virtual Machine Monitor developed + * by the V3VEE Project with funding from the United States National + * Science Foundation and the Department of Energy. + * + * The V3VEE Project is a joint project between Northwestern University + * and the University of New Mexico. You can find out more at + * http://www.v3vee.org + * + * Copyright (c) 2008, Jack Lange + * Copyright (c) 2008, The V3VEE Project + * All rights reserved. + * + * Author: Jack Lange + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "V3VEE_LICENSE". + */ + +#include + + + +void init_queue(struct gen_queue * queue) { + queue->num_entries = 0; + INIT_LIST_HEAD(&(queue->entries)); +} + + +struct gen_queue * create_queue() { + struct gen_queue * tmp_queue = Malloc(sizeof(struct gen_queue)); + init_queue(tmp_queue); + return tmp_queue; +} + +void enqueue(struct gen_queue * queue, void * entry) { + struct queue_entry * q_entry = Malloc(sizeof(struct queue_entry)); + + q_entry->entry = entry; + list_add_tail(&(q_entry->entry_list), &(queue->entries)); + queue->num_entries++; +} + + +void * dequeue(struct gen_queue * queue) { + void * entry_val = 0; + + if (!list_empty(&(queue->entries))) { + struct list_head * q_entry = queue->entries.next; + struct queue_entry * tmp_entry = list_entry(q_entry, struct queue_entry, entry_list); + + entry_val = tmp_entry->entry; + list_del(q_entry); + Free(tmp_entry); + } + + return entry_val; +} diff --git a/palacios/src/geekos/testvm.s b/palacios/src/geekos/testvm.s new file mode 100644 index 0000000..e2d5a44 --- /dev/null +++ b/palacios/src/geekos/testvm.s @@ -0,0 +1,60 @@ +# -*- fundamental -*- +# This file is part of the Palacios Virtual Machine Monitor developed +# by the V3VEE Project with funding from the United States National +# Science Foundation and the Department of Energy. +# +# The V3VEE Project is a joint project between Northwestern University +# and the University of New Mexico. You can find out more at +# http://www.v3vee.org +# +# Copyright (c) 2008, Jack Lange +# Copyright (c) 2008, The V3VEE Project +# All rights reserved. +# +# Author: Jack Lange +# +# This is free software. You are permitted to use, +# redistribute, and modify it as specified in the file "V3VEE_LICENSE". + + +.global MyBuzzVM +MyBuzzVM: + pushl %ebp + movl %esp, %ebp + pushl %esi + pushl %ebx + inb $97, %al + movl $97, %ecx + movb %al, %bl + orl $2, %ebx + movl %eax, %esi +.L24: + movb %bl, %al + movl %ecx, %edx + outb %al, %dx + movl $0, %edx +.L30: + incl %edx + cmpl $999999, %edx + jle .L30 + movl %esi, %eax + movl %ecx, %edx + outb %al, %dx + movl $0, %edx +.L35: + incl %edx + cmpl $999999, %edx + jle .L35 + jmp .L24 + + + + + + + + + + + + diff --git a/palacios/src/palacios/vmm_config.c b/palacios/src/palacios/vmm_config.c index 5114521..f7ae6e3 100644 --- a/palacios/src/palacios/vmm_config.c +++ b/palacios/src/palacios/vmm_config.c @@ -17,6 +17,7 @@ * redistribute, and modify it as specified in the file "V3VEE_LICENSE". */ + #include #include #include