{"action":"created","issue":{"url":"https://api.github.com/repos/libvmi/libvmi/issues/435","repository_url":"https://api.github.com/repos/libvmi/libvmi","labels_url":"https://api.github.com/repos/libvmi/libvmi/issues/435/labels{/name}","comments_url":"https://api.github.com/repos/libvmi/libvmi/issues/435/comments","events_url":"https://api.github.com/repos/libvmi/libvmi/issues/435/events","html_url":"https://github.com/libvmi/libvmi/pull/435","id":201109666,"number":435,"title":"RFC: Init rework","user":{"login":"tklengyel","id":3172829,"avatar_url":"https://avatars.githubusercontent.com/u/3172829?v=3","gravatar_id":"","url":"https://api.github.com/users/tklengyel","html_url":"https://github.com/tklengyel","followers_url":"https://api.github.com/users/tklengyel/followers","following_url":"https://api.github.com/users/tklengyel/following{/other_user}","gists_url":"https://api.github.com/users/tklengyel/gists{/gist_id}","starred_url":"https://api.github.com/users/tklengyel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tklengyel/subscriptions","organizations_url":"https://api.github.com/users/tklengyel/orgs","repos_url":"https://api.github.com/users/tklengyel/repos","events_url":"https://api.github.com/users/tklengyel/events{/privacy}","received_events_url":"https://api.github.com/users/tklengyel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2017-01-16T20:14:31Z","updated_at":"2017-02-04T19:00:27Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/libvmi/libvmi/pulls/435","html_url":"https://github.com/libvmi/libvmi/pull/435","diff_url":"https://github.com/libvmi/libvmi/pull/435.diff","patch_url":"https://github.com/libvmi/libvmi/pull/435.patch"},"body":"Fixes #287 \r\n\r\nThis PR sanitizes the various init functions so that we have a more intuitive API. Here we deprecate the init_custom functions and rework vmi_init and vmi_init_complete as follows.\r\n\r\n- vmi_init will allocate the vmi_instance and then only initialize the hypervisor driver interface of LibVMI (ie. only physical memory access and vCPU register functions). This requires the user to specify the hypervisor mode. VMI_AUTO mode is deprecated, instead a dedicated function is exposed - vmi_get_access_mode - the user can call if automatical hypervisor identification is needed. The inputs to this function are made more flexible but allowing the user to pass various domain-identification inputs, such as domain name or domain id. This approach will allow us to add other types of IDs later if necessary (ie. UUID) without having to change the API. A new field is added that can further carry information that may be required for the hypervisor driver to init (as anticipated for the VirtualBox driver).\r\n\r\n - vmi_init_paging remains largely as it was, initializing the v2p translation architecture specific functions of LibVMI. A new flags input is added to be able to configure paging specific features (ie. transition-pages) that previously relied on the OS interface being initialized. Calling this function multiple times will re-set the interface automatically.\r\n\r\n - vmi_init_os will initialize the OS specific components of LibVMI (ie. vmi_*_ksym) and this is the only init function that requires further configuration to be provided.\r\n\r\n- vmi_init_complete will call all previous functions automatically - going from vmi_get_access_mode to vmi_init_os"},"comment":{"url":"https://api.github.com/repos/libvmi/libvmi/issues/comments/277467057","html_url":"https://github.com/libvmi/libvmi/pull/435#issuecomment-277467057","issue_url":"https://api.github.com/repos/libvmi/libvmi/issues/435","id":277467057,"user":{"login":"tklengyel","id":3172829,"avatar_url":"https://avatars.githubusercontent.com/u/3172829?v=3","gravatar_id":"","url":"https://api.github.com/users/tklengyel","html_url":"https://github.com/tklengyel","followers_url":"https://api.github.com/users/tklengyel/followers","following_url":"https://api.github.com/users/tklengyel/following{/other_user}","gists_url":"https://api.github.com/users/tklengyel/gists{/gist_id}","starred_url":"https://api.github.com/users/tklengyel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tklengyel/subscriptions","organizations_url":"https://api.github.com/users/tklengyel/orgs","repos_url":"https://api.github.com/users/tklengyel/repos","events_url":"https://api.github.com/users/tklengyel/events{/privacy}","received_events_url":"https://api.github.com/users/tklengyel/received_events","type":"User","site_admin":false},"created_at":"2017-02-04T19:00:27Z","updated_at":"2017-02-04T19:00:27Z","body":"Retest this please."}}
{"actor":{"display_login":"tklengyel"}}