MODULE_LICENSE("GPL");
+int mod_allocs = 0;
+int mod_frees = 0;
+
static int v3_major_num = 0;
switch (ioctl) {
case V3_START_GUEST:{
+ int vm_minor = 0;
struct v3_guest_img user_image;
struct v3_guest * guest = kmalloc(sizeof(struct v3_guest), GFP_KERNEL);
- int vm_minor = 0;
if (IS_ERR(guest)) {
printk("Error allocating Kernel guest_image\n");
extern u32 mallocs;
extern u32 frees;
+
+ // should probably try to stop any guests
+
+
+
dev_t dev = MKDEV(v3_major_num, MAX_VMS + 1);
printk("Removing V3 Control device\n");
device_destroy(v3_class, dev);
class_destroy(v3_class);
+
+
+ palacios_file_deinit();
+ palacios_deinit_stream();
+
+ palacios_deinit_mm();
+
+ printk("Palacios Module Mallocs = %d, Frees = %d\n", mod_allocs, mod_frees);
}
module_init(v3_init);
module_exit(v3_exit);
+
+
+
+void * trace_malloc(size_t size, gfp_t flags) {
+ void * addr = NULL;
+
+ mod_allocs++;
+ addr = kmalloc(size, flags);
+
+ return addr;
+}
+
+
+void trace_free(const void * objp) {
+ mod_frees++;
+ kfree(objp);
+}