I'm creating an event channel between hypervisor and xen. Starting from trace.c xentrace.c
I've put this line in the xen.h
#define � VIRQ_XENINI � �11
I've put in the hypervisor this code:/*notify DOM0 event of xenini*/ static void xenini_notify_dom0(unsigned long unused){
send_guest_global_virq(dom0, VIRQ_XENINI);
}
static DECLARE_TASKLET(xenini_notify_dom0_tasklet, xenini_notify_dom0, 0);
so if i have to notify to dom0 an event, �i just need to call: � tasklet_schedule(&xenini_notify_dom0_tasklet);�
true?? (it seems to work)
In a process running on dom0 i'm running this code:
static void event_init(void) {
�� �int rc; �� �rc = xc_evtchn_open(); �� �if (rc < 0) {
�� � � �perror(xc_get_last_error()->message); �� � � �exit(EXIT_FAILURE); �� �}
�� �event_fd = xc_evtchn_fd(rc); �� �rc = xc_evtchn_bind_virq(event_fd, VIRQ_XENINI); �� �if (rc == -1) {
�� � � �PERROR("failed to bind to VIRQ_XENINI port"); �� � � �exit(EXIT_FAILURE);
�� �} �� �virq_port = rc; }
and i create a successful way to create the channel. but when i shut down the process in dom0. when i try to restart it.� It says: ERROR: failed to bind to VIRQ_XENINI port (17= file_exists).
what i have to add when i close the program?�
getinfoDom0.c
Description: Binary data
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|