Jacob Gorm Hansen wrote:
Sorry about that too, whoever dreamed this whole thing up has not been
able to answer my increasingly desperate cries for help recently, and
I am a little frustrated with the amount of time I have spent just
getting a simple block device attached.
1) Create domain
domid = 0
xc_domain_create(&domid)
xc_domain_maxmem(domid, memory >> 10);
xc_domain_memory_increase_reservation(domid, memory >> 12);
2) Build domain
lconsole = rconsole = 0;
xc_evtchn_bind_interdomain(0, domid, &lconsole, &rconsole);
lstore = rstore = 0;
xc_evtchn_bind_interdomain(0, domid, &lconsole, &rconsole);
xc_linux_build(domid, kernel, ramdisk, cmdline, 0, vcpus, rstore,
&mfn_store, rconsole, &mfn_console)
home = "/tools/<yourtool>/domain/%d" % domid
xs_domain_introduce(domid, mfn_store, lstore, home);
xs_write(home + "/console/ring-ref", mfn_console)
xs_write(home + "/console/port", lconsole)
3) Create block device (pdev, vdev)
static int uuid;
dom0_home = xs_get_domain_path(0)
backend = dom0_home + "/backend/vbd/%s/%s' % (uuid, domid)
frontend = home + "/device/vbd/%s' % uuid
transaction_start()
xs_write(backend + "/frontend", frontend);
xs_write(backend + "/frontend-id", domid);
transaction_end()
transaction_start()
xs_write(frontend + "/backend", backend);
xs_write(frontend + "/backend-id", 0);
xs_write(frontend + "/virtual-device", vdev)
transaction_end()
xs_write(backend + "/physical-device", pdev)
This might seem complicated, but compared to what you had to do under
2.0.x, it's a 1000x times easier.
Regards,
Anthony Liguori
Jacob
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|