
--- ext/libvirt/_libvirt.c.orig 2009-01-19 18:24:22.000000000 -0800 +++ ext/libvirt/_libvirt.c 2009-01-19 18:24:39.000000000 -0800 @@ -728,6 +728,21 @@ gen_call_void(virDomainSave, conn(s), domain_get(s), StringValueCStr(to)); } +/* + * Call +virDomainAttachDevice+[http://www.libvirt.org/html/libvirt-libvirt.html#virDomainAttachDevice] + */ +VALUE libvirt_dom_attach_device_xml(VALUE s, VALUE xml) { + virDomainPtr dom = domain_get(s); + return virDomainAttachDevice(dom, StringValueCStr(xml)); +} + +/* + * Call +virDomainDetachDevice+[http://www.libvirt.org/html/libvirt-libvirt.html#virDomainDetachDevice] + */ +VALUE libvirt_dom_detach_device_xml(VALUE s, VALUE xml) { + virDomainPtr dom = domain_get(s); + return virDomainDetachDevice(dom, StringValueCStr(xml)); +} /* * Call +virDomainCoreDump+[http://www.libvirt.org/html/libvirt-libvirt.html#virDomainCoreDump] @@ -1921,7 +1936,8 @@ rb_define_method(c_domain, "autostart", libvirt_dom_autostart, 0); rb_define_method(c_domain, "autostart=", libvirt_dom_autostart_set, 1); rb_define_method(c_domain, "free", libvirt_dom_free, 0); - + rb_define_method(c_domain, "attach_device", libvirt_dom_attach_device_xml, 1); + rb_define_method(c_domain, "detach_device", libvirt_dom_detach_device_xml, 1); /* * Class Libvirt::Domain::Info */