X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Flinux-exts.c;h=d07cef02ce436b8e9860d171842663fd9b4f1320;hb=21e93d7fc021590c20ab5fecef03374e008d15e9;hp=d6409b8ad715f8f53970a8b98dd3dd3ac211e875;hpb=c94c9b19999f937b32627794c80e19c9be555822;p=palacios.git diff --git a/linux_module/linux-exts.c b/linux_module/linux-exts.c index d6409b8..d07cef0 100644 --- a/linux_module/linux-exts.c +++ b/linux_module/linux-exts.c @@ -17,6 +17,18 @@ struct vm_ext { }; +void * get_vm_ext_data(struct v3_guest * guest, char * ext_name) { + struct vm_ext * ext = NULL; + + list_for_each_entry(ext, &(guest->exts), node) { + if (strncmp(ext->impl->name, ext_name, strlen(ext->impl->name)) == 0) { + return ext->vm_data; + } + } + + return NULL; +} + int init_vm_extensions(struct v3_guest * guest) { extern struct linux_ext * __start__lnx_exts[]; @@ -29,6 +41,7 @@ int init_vm_extensions(struct v3_guest * guest) { if (ext_impl->guest_init == NULL) { // We can have global extensions without per guest state + ext_impl = __start__lnx_exts[++i]; continue; } @@ -54,6 +67,7 @@ int init_vm_extensions(struct v3_guest * guest) { } + int deinit_vm_extensions(struct v3_guest * guest) { struct vm_ext * ext = NULL; struct vm_ext * tmp = NULL;