1(* 2 * Copyright (C) 2006-2007 XenSource Ltd. 3 * Copyright (C) 2008 Citrix Ltd. 4 * Author Vincent Hanquez <vincent.hanquez@eu.citrix.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU Lesser General Public License as published 8 * by the Free Software Foundation; version 2.1 only. with the special 9 * exception on linking described in file LICENSE. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Lesser General Public License for more details. 15 *) 16 17type handle 18 19external init: unit -> handle = "stub_eventchn_init" 20external fd: handle -> Unix.file_descr = "stub_eventchn_fd" 21 22type t = int 23 24type virq_t = 25 | Timer (* #define VIRQ_TIMER 0 *) 26 | Debug (* #define VIRQ_DEBUG 1 *) 27 | Console (* #define VIRQ_CONSOLE 2 *) 28 | Dom_exc (* #define VIRQ_DOM_EXC 3 *) 29 | Tbuf (* #define VIRQ_TBUF 4 *) 30 | Reserved_5 (* Do not use this value as it's not defined *) 31 | Debugger (* #define VIRQ_DEBUGGER 6 *) 32 | Xenoprof (* #define VIRQ_XENOPROF 7 *) 33 | Con_ring (* #define VIRQ_CON_RING 8 *) 34 | Pcpu_state (* #define VIRQ_PCPU_STATE 9 *) 35 | Mem_event (* #define VIRQ_MEM_EVENT 10 *) 36 | Xc_reserved (* #define VIRQ_XC_RESERVED 11 *) 37 | Enomem (* #define VIRQ_ENOMEM 12 *) 38 | Xenpmu (* #define VIRQ_XENPMU 13 *) 39 40external notify: handle -> int -> unit = "stub_eventchn_notify" 41external bind_interdomain: handle -> int -> int -> int = "stub_eventchn_bind_interdomain" 42external bind_virq: handle -> virq_t -> int = "stub_eventchn_bind_virq" 43let bind_dom_exc_virq handle = bind_virq handle Dom_exc 44external unbind: handle -> int -> unit = "stub_eventchn_unbind" 45external pending: handle -> int = "stub_eventchn_pending" 46external unmask: handle -> int -> unit = "stub_eventchn_unmask" 47 48let to_int x = x 49let of_int x = x 50