From: Jack Lange Date: Tue, 14 Jun 2011 17:06:47 +0000 (-0500) Subject: module reorganization X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=276cfa264720edddc1677e35c6a300596965de7d;p=palacios.releases.git module reorganization --- diff --git a/linux_module/Makefile b/linux_module/Makefile index 1a48a04..86d16a4 100644 --- a/linux_module/Makefile +++ b/linux_module/Makefile @@ -9,24 +9,24 @@ endif EXTRA_CFLAGS += -I$(PWD)/../palacios/include/ -include autoconf.h -DMODULE=1 -D__KERNEL__=1 -v3vee-y := palacios.o \ - palacios-dev.o \ - palacios-vm.o \ - palacios-mm.o \ - palacios-queue.o \ - palacios-hashtable.o \ +v3vee-y := os_stubs.o \ + main.o \ + vm.o \ + mm.o \ + util-queue.o \ + util-hashtable.o \ linux-exts.o -v3vee-$(V3_CONFIG_CONSOLE) += palacios-console.o -v3vee-$(V3_CONFIG_FILE) += palacios-file.o -v3vee-$(V3_CONFIG_STREAM) += palacios-stream.o \ - palacios-ringbuffer.o -v3vee-$(V3_CONFIG_EXT_INSPECTOR) += palacios-inspector.o -v3vee-$(V3_CONFIG_PACKET) += palacios-packet.o -v3vee-$(V3_CONFIG_SOCKET) += palacios-socket.o -v3vee-$(V3_CONFIG_KEYED_STREAMS) += palacios-keyed-stream.o -v3vee-$(V3_CONFIG_HOST_DEVICE) += palacios-host-dev.o -v3vee-$(V3_CONFIG_GRAPHICS_CONSOLE) += palacios-graphics-console.o +v3vee-$(V3_CONFIG_CONSOLE) += iface-console.o +v3vee-$(V3_CONFIG_FILE) += iface-file.o +v3vee-$(V3_CONFIG_STREAM) += iface-stream.o \ + util-ringbuffer.o +v3vee-$(V3_CONFIG_EXT_INSPECTOR) += inspector.o +v3vee-$(V3_CONFIG_PACKET) += iface-packet.o +v3vee-$(V3_CONFIG_SOCKET) += iface-socket.o +v3vee-$(V3_CONFIG_KEYED_STREAMS) += iface-keyed-stream.o +v3vee-$(V3_CONFIG_HOST_DEVICE) += iface-host-dev.o +v3vee-$(V3_CONFIG_GRAPHICS_CONSOLE) += iface-graphics-console.o v3vee-$(V3_CONFIG_VNET) += palacios-vnet.o \ palacios-vnet-ctrl.o \ diff --git a/linux_module/palacios-console.c b/linux_module/iface-console.c similarity index 99% rename from linux_module/palacios-console.c rename to linux_module/iface-console.c index d0c85ba..02d9761 100644 --- a/linux_module/palacios-console.c +++ b/linux_module/iface-console.c @@ -16,9 +16,9 @@ #include #include -#include "palacios-vm.h" +#include "vm.h" #include "palacios.h" -#include "palacios-queue.h" +#include "util-queue.h" #include "linux-exts.h" typedef enum { CONSOLE_CURS_SET = 1, diff --git a/linux_module/palacios-file.c b/linux_module/iface-file.c similarity index 100% rename from linux_module/palacios-file.c rename to linux_module/iface-file.c diff --git a/linux_module/palacios-graphics-console.c b/linux_module/iface-graphics-console.c similarity index 99% rename from linux_module/palacios-graphics-console.c rename to linux_module/iface-graphics-console.c index e1d9216..227e90e 100644 --- a/linux_module/palacios-graphics-console.c +++ b/linux_module/iface-graphics-console.c @@ -15,12 +15,12 @@ #include #include -#include "palacios-graphics-console.h" +#include "iface-graphics-console.h" #include "palacios.h" #include "linux-exts.h" -#include "palacios-vm.h" +#include "vm.h" #include diff --git a/linux_module/palacios-graphics-console.h b/linux_module/iface-graphics-console.h similarity index 100% rename from linux_module/palacios-graphics-console.h rename to linux_module/iface-graphics-console.h diff --git a/linux_module/palacios-host-dev.c b/linux_module/iface-host-dev.c similarity index 99% rename from linux_module/palacios-host-dev.c rename to linux_module/iface-host-dev.c index 927b5ad..6744d66 100644 --- a/linux_module/palacios-host-dev.c +++ b/linux_module/iface-host-dev.c @@ -17,9 +17,9 @@ #include #include "palacios.h" -#include "palacios-host-dev-user.h" +#include "iface-host-dev.h" #include "linux-exts.h" -#include "palacios-vm.h" +#include "vm.h" /* There are two things in this file: diff --git a/linux_module/palacios-host-dev-user.h b/linux_module/iface-host-dev.h similarity index 100% rename from linux_module/palacios-host-dev-user.h rename to linux_module/iface-host-dev.h diff --git a/linux_module/palacios-keyed-stream.c b/linux_module/iface-keyed-stream.c similarity index 99% rename from linux_module/palacios-keyed-stream.c rename to linux_module/iface-keyed-stream.c index ef185a5..792066a 100644 --- a/linux_module/palacios-keyed-stream.c +++ b/linux_module/iface-keyed-stream.c @@ -1,5 +1,5 @@ #include "palacios.h" -#include "palacios-hashtable.h" +#include "util-hashtable.h" #include "linux-exts.h" #define sint64_t int64_t diff --git a/linux_module/palacios-packet.c b/linux_module/iface-packet.c similarity index 99% rename from linux_module/palacios-packet.c rename to linux_module/iface-packet.c index 667f548..d72306e 100644 --- a/linux_module/palacios-packet.c +++ b/linux_module/iface-packet.c @@ -27,6 +27,7 @@ #include "palacios.h" #include "linux-exts.h" + struct palacios_packet_state { struct socket * raw_sock; uint8_t inited; diff --git a/linux_module/palacios-socket.c b/linux_module/iface-socket.c similarity index 100% rename from linux_module/palacios-socket.c rename to linux_module/iface-socket.c diff --git a/linux_module/palacios-stream.c b/linux_module/iface-stream.c similarity index 98% rename from linux_module/palacios-stream.c rename to linux_module/iface-stream.c index 411c119..c487eb4 100644 --- a/linux_module/palacios-stream.c +++ b/linux_module/iface-stream.c @@ -11,8 +11,8 @@ #include #include "linux-exts.h" -#include "palacios-ringbuffer.h" -#include "palacios-vm.h" +#include "util-ringbuffer.h" +#include "vm.h" #define STREAM_BUF_SIZE 1024 #define STREAM_NAME_LEN 128 @@ -186,6 +186,8 @@ static int stream_connect(struct v3_guest * guest, unsigned int cmd, unsigned lo return -EFAULT; } + + printk("ERROR: Opening Streams is currently not implemented...\n"); return -EFAULT; diff --git a/linux_module/palacios-inspector.c b/linux_module/inspector.c similarity index 97% rename from linux_module/palacios-inspector.c rename to linux_module/inspector.c index 340821b..b6cfc1a 100644 --- a/linux_module/palacios-inspector.c +++ b/linux_module/inspector.c @@ -11,10 +11,10 @@ #include #include "palacios.h" -#include "palacios-vm.h" +#include "vm.h" #include "linux-exts.h" -struct dentry * v3_dir = NULL; +static struct dentry * v3_dir = NULL; diff --git a/linux_module/palacios-dev.c b/linux_module/main.c similarity index 99% rename from linux_module/palacios-dev.c rename to linux_module/main.c index f640403..621ab58 100644 --- a/linux_module/palacios-dev.c +++ b/linux_module/main.c @@ -19,8 +19,8 @@ #include #include "palacios.h" -#include "palacios-mm.h" -#include "palacios-vm.h" +#include "mm.h" +#include "vm.h" #include "linux-exts.h" diff --git a/linux_module/palacios-mm.c b/linux_module/mm.c similarity index 100% rename from linux_module/palacios-mm.c rename to linux_module/mm.c diff --git a/linux_module/palacios-mm.h b/linux_module/mm.h similarity index 100% rename from linux_module/palacios-mm.h rename to linux_module/mm.h diff --git a/linux_module/palacios.c b/linux_module/os_stubs.c similarity index 99% rename from linux_module/palacios.c rename to linux_module/os_stubs.c index b59f2fb..be06001 100644 --- a/linux_module/palacios.c +++ b/linux_module/os_stubs.c @@ -22,7 +22,7 @@ -#include "palacios-mm.h" +#include "mm.h" u32 pg_allocs = 0; diff --git a/linux_module/palacios-serial.h b/linux_module/palacios-serial.h deleted file mode 100644 index e9fa8a0..0000000 --- a/linux_module/palacios-serial.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Palacios VM Stream Serial interface - * (c) Jack Lange, 2010 - */ - -#ifndef __PALACIOS_SERIAL_H__ -#define __PALACIOS_SERIAL_H__ - -int open_serial(char * name); - -#endif diff --git a/linux_module/palacios-vnet.c b/linux_module/palacios-vnet.c index 1584ab1..b18ca90 100644 --- a/linux_module/palacios-vnet.c +++ b/linux_module/palacios-vnet.c @@ -14,7 +14,7 @@ #include #include -#include "palacios-mm.h" +#include "mm.h" #include "palacios-vnet.h" static void host_print(const char * fmt, ...) { diff --git a/linux_module/palacios-hashtable.c b/linux_module/util-hashtable.c similarity index 99% rename from linux_module/palacios-hashtable.c rename to linux_module/util-hashtable.c index 6c025fc..52fc594 100644 --- a/linux_module/palacios-hashtable.c +++ b/linux_module/util-hashtable.c @@ -8,7 +8,7 @@ #include #include -#include "palacios-hashtable.h" +#include "util-hashtable.h" struct hash_entry { diff --git a/linux_module/palacios-hashtable.h b/linux_module/util-hashtable.h similarity index 100% rename from linux_module/palacios-hashtable.h rename to linux_module/util-hashtable.h diff --git a/linux_module/palacios-queue.c b/linux_module/util-queue.c similarity index 98% rename from linux_module/palacios-queue.c rename to linux_module/util-queue.c index 3e0249b..58221a6 100644 --- a/linux_module/palacios-queue.c +++ b/linux_module/util-queue.c @@ -19,7 +19,7 @@ #include -#include "palacios-queue.h" +#include "util-queue.h" void init_queue(struct gen_queue * queue, unsigned int max_entries) { queue->num_entries = 0; diff --git a/linux_module/palacios-queue.h b/linux_module/util-queue.h similarity index 100% rename from linux_module/palacios-queue.h rename to linux_module/util-queue.h diff --git a/linux_module/palacios-ringbuffer.c b/linux_module/util-ringbuffer.c similarity index 95% rename from linux_module/palacios-ringbuffer.c rename to linux_module/util-ringbuffer.c index 2ab5b50..53071e8 100644 --- a/linux_module/palacios-ringbuffer.c +++ b/linux_module/util-ringbuffer.c @@ -1,29 +1,29 @@ -/* +/* * Ringbuffer Routines for VM - * (c) Lei Xia, 2010 + * (c) Lei Xia, 2010 */ -#include -#include +#include +#include #include #include "palacios.h" -#include "palacios-ringbuffer.h" - +#include "util-ringbuffer.h" + void init_ringbuf(struct ringbuf * ring, unsigned int size) { ring->buf = kmalloc(size, GFP_KERNEL); - ring->size = size; - - ring->start = 0; - ring->end = 0; - ring->current_len = 0; -} + ring->size = size; + + ring->start = 0; + ring->end = 0; + ring->current_len = 0; +} struct ringbuf * create_ringbuf(unsigned int size) { struct ringbuf * ring = (struct ringbuf *)kmalloc(sizeof(struct ringbuf), GFP_KERNEL); init_ringbuf(ring, size); - - return ring; -} + + return ring; +} void free_ringbuf(struct ringbuf * ring) { kfree(ring->buf); @@ -32,147 +32,147 @@ void free_ringbuf(struct ringbuf * ring) { static inline unsigned char * get_read_ptr(struct ringbuf * ring) { return (unsigned char *)(ring->buf + ring->start); -} - +} + static inline unsigned char * get_write_ptr(struct ringbuf * ring) { return (unsigned char *)(ring->buf + ring->end); } static inline int get_read_section_size(struct ringbuf * ring) { - return ring->size - ring->start; -} - + return ring->size - ring->start; +} + static inline int get_write_section_size(struct ringbuf * ring) { - return ring->size - ring->end; -} - + return ring->size - ring->end; +} + static inline int is_read_loop(struct ringbuf * ring, unsigned int len) { - if ((ring->start >= ring->end) && (ring->current_len > 0)) { - // end is past the end of the buffer - if (get_read_section_size(ring) < len) { - return 1; - } - } - return 0; -} - + if ((ring->start >= ring->end) && (ring->current_len > 0)) { + // end is past the end of the buffer + if (get_read_section_size(ring) < len) { + return 1; + } + } + return 0; +} + static inline int is_write_loop(struct ringbuf * ring, unsigned int len) { - if ((ring->end >= ring->start) && (ring->current_len < ring->size)) { - // end is past the end of the buffer - if (get_write_section_size(ring) < len) { - return 1; - } - } - return 0; -} - + if ((ring->end >= ring->start) && (ring->current_len < ring->size)) { + // end is past the end of the buffer + if (get_write_section_size(ring) < len) { + return 1; + } + } + return 0; +} + static inline int ringbuf_avail_space(struct ringbuf * ring) { - return ring->size - ring->current_len; -} - + return ring->size - ring->current_len; +} + int ringbuf_data_len(struct ringbuf * ring) { - return ring->current_len; -} - + return ring->current_len; +} + static inline int ringbuf_capacity(struct ringbuf * ring) { - return ring->size; -} - + return ring->size; +} + int ringbuf_read(struct ringbuf * ring, unsigned char * dst, unsigned int len) { - int read_len = 0; - int ring_data_len = ring->current_len; - - read_len = (len > ring_data_len) ? ring_data_len : len; - - if (is_read_loop(ring, read_len)) { - int section_len = get_read_section_size(ring); - - memcpy(dst, get_read_ptr(ring), section_len); - memcpy(dst + section_len, ring->buf, read_len - section_len); - - ring->start = read_len - section_len; - } else { - memcpy(dst, get_read_ptr(ring), read_len); - - ring->start += read_len; - } - - ring->current_len -= read_len; - - return read_len; -} - + int read_len = 0; + int ring_data_len = ring->current_len; + + read_len = (len > ring_data_len) ? ring_data_len : len; + + if (is_read_loop(ring, read_len)) { + int section_len = get_read_section_size(ring); + + memcpy(dst, get_read_ptr(ring), section_len); + memcpy(dst + section_len, ring->buf, read_len - section_len); + + ring->start = read_len - section_len; + } else { + memcpy(dst, get_read_ptr(ring), read_len); + + ring->start += read_len; + } + + ring->current_len -= read_len; + + return read_len; +} + #if 0 static int ringbuf_peek(struct ringbuf * ring, unsigned char * dst, unsigned int len) { - int read_len = 0; - int ring_data_len = ring->current_len; - - read_len = (len > ring_data_len) ? ring_data_len : len; - - if (is_read_loop(ring, read_len)) { - int section_len = get_read_section_size(ring); - - memcpy(dst, get_read_ptr(ring), section_len); - memcpy(dst + section_len, ring->buf, read_len - section_len); - } else { - memcpy(dst, get_read_ptr(ring), read_len); - } - - return read_len; -} - + int read_len = 0; + int ring_data_len = ring->current_len; + + read_len = (len > ring_data_len) ? ring_data_len : len; + + if (is_read_loop(ring, read_len)) { + int section_len = get_read_section_size(ring); + + memcpy(dst, get_read_ptr(ring), section_len); + memcpy(dst + section_len, ring->buf, read_len - section_len); + } else { + memcpy(dst, get_read_ptr(ring), read_len); + } + + return read_len; +} + static int ringbuf_delete(struct ringbuf * ring, unsigned int len) { - int del_len = 0; - int ring_data_len = ring->current_len; - - del_len = (len > ring_data_len) ? ring_data_len : len; - - if (is_read_loop(ring, del_len)) { - int section_len = get_read_section_size(ring); - ring->start = del_len - section_len; - } else { - ring->start += del_len; - } - - ring->current_len -= del_len; - return del_len; -} + int del_len = 0; + int ring_data_len = ring->current_len; + + del_len = (len > ring_data_len) ? ring_data_len : len; + + if (is_read_loop(ring, del_len)) { + int section_len = get_read_section_size(ring); + ring->start = del_len - section_len; + } else { + ring->start += del_len; + } + + ring->current_len -= del_len; + return del_len; +} #endif int ringbuf_write(struct ringbuf * ring, unsigned char * src, unsigned int len) { - int write_len = 0; - int ring_avail_space = ring->size - ring->current_len; - + int write_len = 0; + int ring_avail_space = ring->size - ring->current_len; + write_len = (len > ring_avail_space) ? ring_avail_space : len; - - if (is_write_loop(ring, write_len)) { - int section_len = get_write_section_size(ring); + + if (is_write_loop(ring, write_len)) { + int section_len = get_write_section_size(ring); - memcpy(get_write_ptr(ring), src, section_len); - ring->end = 0; - - memcpy(get_write_ptr(ring), src + section_len, write_len - section_len); - - ring->end += write_len - section_len; + memcpy(get_write_ptr(ring), src, section_len); + ring->end = 0; + + memcpy(get_write_ptr(ring), src + section_len, write_len - section_len); + + ring->end += write_len - section_len; } else { - memcpy(get_write_ptr(ring), src, write_len); - - ring->end += write_len; - } - - ring->current_len += write_len; - - return write_len; -} + memcpy(get_write_ptr(ring), src, write_len); + + ring->end += write_len; + } + + ring->current_len += write_len; + + return write_len; +} diff --git a/linux_module/palacios-ringbuffer.h b/linux_module/util-ringbuffer.h similarity index 100% rename from linux_module/palacios-ringbuffer.h rename to linux_module/util-ringbuffer.h diff --git a/linux_module/palacios-vm.c b/linux_module/vm.c similarity index 99% rename from linux_module/palacios-vm.c rename to linux_module/vm.c index e98be0c..852733c 100644 --- a/linux_module/palacios-vm.c +++ b/linux_module/vm.c @@ -20,7 +20,7 @@ #include #include "palacios.h" -#include "palacios-vm.h" +#include "vm.h" #include "linux-exts.h" diff --git a/linux_module/palacios-vm.h b/linux_module/vm.h similarity index 100% rename from linux_module/palacios-vm.h rename to linux_module/vm.h diff --git a/linux_usr/v3_user_host_dev.h b/linux_usr/v3_user_host_dev.h index 523150f..b761773 100644 --- a/linux_usr/v3_user_host_dev.h +++ b/linux_usr/v3_user_host_dev.h @@ -2,7 +2,7 @@ #define _V3_USER_HOST_DEV_ #include -#include "palacios-host-dev-user.h" +#include "iface-host-dev.h" int v3_user_host_dev_rendezvous(char *vmdev, char *url); // returns devfd for use in poll/select int v3_user_host_dev_depart(int devfd); diff --git a/palacios/include/palacios/vmm_instr_decoder.h b/palacios/include/palacios/vmm_instr_decoder.h index ebab425..1cce578 100644 --- a/palacios/include/palacios/vmm_instr_decoder.h +++ b/palacios/include/palacios/vmm_instr_decoder.h @@ -482,9 +482,7 @@ static inline int decode_cr(struct guest_info * core, */ #define MASK_DISPLACEMENT(reg, mode) ({ \ sint64_t val = 0; \ - if (mode == DISP0) { \ - val = reg; \ - } else if (mode == DISP8) { \ + if (mode == DISP8) { \ val = (sint8_t)(reg & 0xff); \ } else if (mode == DISP16) { \ val = (sint16_t)(reg & 0xffff); \ @@ -501,9 +499,6 @@ static inline int decode_cr(struct guest_info * core, #define ADDR_MASK(val, length) ({ \ ullong_t mask = 0x0LL; \ switch (length) { \ - case 1: \ - mask = 0x0000000000000ffLL; \ - break; \ case 2: \ mask = 0x00000000000fffffLL; \ break; \