forked from xapi-project/xen-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
device.mli
227 lines (190 loc) · 7.76 KB
/
device.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
(*
* Copyright (C) 2006-2009 Citrix Systems Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; version 2.1 only. with the special
* exception on linking described in file LICENSE.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*)
open Device_common
open Xenops_task
exception Ioemu_failed of string
exception Ioemu_failed_dying
exception Device_shutdown
exception Device_not_found
exception Cdrom
module Generic :
sig
val rm_device_state : xs:Xenstore.Xs.xsh -> device -> unit
val exists : xs:Xenstore.Xs.xsh -> device -> bool
val get_private_key: xs:Xenstore.Xs.xsh -> device -> string -> string
end
module Vbd :
sig
type mode = ReadOnly | ReadWrite
val string_of_mode : mode -> string
val mode_of_string : string -> mode
type physty = File | Phys | Qcow | Vhd | Aio
val string_of_physty : physty -> string
val physty_of_string : string -> physty
val kind_of_physty : physty -> kind
val uses_blktap : phystype:physty -> bool
type devty = CDROM | Disk
val string_of_devty : devty -> string
val devty_of_string : string -> devty
type t = {
mode:mode;
device_number: Device_number.t option;
phystype: physty;
params: string;
dev_type: devty;
unpluggable: bool;
protocol: protocol option;
extra_backend_keys: (string * string) list;
extra_private_keys: (string * string) list;
backend_domid: int;
}
val add : Xenops_task.t -> xs:Xenstore.Xs.xsh -> hvm:bool -> t -> Xenctrl.domid -> device
val release : Xenops_task.t -> xs:Xenstore.Xs.xsh -> device -> unit
val media_eject : xs:Xenstore.Xs.xsh -> device_number:Device_number.t -> int -> unit
val media_insert : xs:Xenstore.Xs.xsh -> device_number:Device_number.t
-> params:string -> phystype:physty -> int -> unit
val media_is_ejected : xs:Xenstore.Xs.xsh -> device_number:Device_number.t -> int -> bool
val media_tray_is_locked : xs:Xenstore.Xs.xsh -> device_number:Device_number.t -> int -> bool
val clean_shutdown_async : xs:Xenstore.Xs.xsh -> device -> unit
val clean_shutdown_wait : Xenops_task.t -> xs:Xenstore.Xs.xsh -> ignore_transients:bool -> device -> unit
(* For migration: *)
val hard_shutdown_request : xs:Xenstore.Xs.xsh -> device -> unit
val hard_shutdown_complete : xs:Xenstore.Xs.xsh -> device -> unit Watch.t
val hard_shutdown_wait : Xenops_task.t -> xs:Xenstore.Xs.xsh -> timeout:float -> device -> unit
end
module Vif :
sig
exception Invalid_Mac of string
val xensource_mac: unit -> string
val random_local_mac: unit -> string
val hashchain_local_mac: int -> string -> string
val add : Xenops_task.t -> xs:Xenstore.Xs.xsh -> devid:int -> netty:Netman.netty
-> mac:string -> carrier:bool
-> ?mtu:int -> ?rate:(int64 * int64) option
-> ?protocol:protocol -> ?backend_domid:Xenctrl.domid
-> ?other_config:((string * string) list)
-> ?extra_private_keys:(string * string) list -> Xenctrl.domid
-> device
val set_carrier : xs:Xenstore.Xs.xsh -> device -> bool -> unit
val release : Xenops_task.t -> xs:Xenstore.Xs.xsh -> device -> unit
val move : xs:Xenstore.Xs.xsh -> device -> string -> unit
end
val clean_shutdown : Xenops_task.t -> xs:Xenstore.Xs.xsh -> device -> unit
val hard_shutdown : Xenops_task.t -> xs:Xenstore.Xs.xsh -> device -> unit
val can_surprise_remove : xs:Xenstore.Xs.xsh -> device -> bool
module Vcpu :
sig
val add : xs:Xenstore.Xs.xsh -> devid:int -> int -> bool -> unit
val del : xs:Xenstore.Xs.xsh -> devid:int -> int -> unit
val set : xs:Xenstore.Xs.xsh -> devid:int -> int -> bool -> unit
val status : xs:Xenstore.Xs.xsh -> devid:int -> int -> bool
end
module PV_Vnc :
sig
exception Failed_to_start
val save : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> unit
val get_statefile : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> string option
val start : ?statefile:string -> xs:Xenstore.Xs.xsh -> ?ip:string -> Xenctrl.domid -> unit
val stop : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> unit
val get_vnc_port : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> int option
val get_tc_port : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> int option
end
module PCI :
sig
type t = {
domain: int;
bus: int;
slot: int;
func: int;
irq: int;
resources: (int64 * int64 * int64) list;
driver: string;
}
type dev = int * int * int * int
val to_string: dev -> string
val of_string: string -> dev
exception Cannot_use_pci_with_no_pciback of t list
val add : xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> hvm:bool -> msitranslate:int -> pci_power_mgmt:int
-> ?flrscript:string option -> dev list -> Xenctrl.domid -> int -> unit
val release : xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> hvm:bool
-> (int * int * int * int) list -> Xenctrl.domid -> int -> unit
val reset : xs:Xenstore.Xs.xsh -> dev -> unit
val bind : dev list -> unit
val plug : Xenops_task.t -> xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> dev -> Xenctrl.domid -> unit
val unplug : Xenops_task.t -> xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> dev -> Xenctrl.domid -> unit
val list : xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> Xenctrl.domid -> (int * dev) list
end
module Vfs :
sig
val add : xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> ?backend_domid:int -> Xenctrl.domid -> unit
end
module Vfb :
sig
val add : xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> ?backend_domid:int -> ?protocol:protocol -> Xenctrl.domid -> unit
end
module Vkbd :
sig
val add : xc:Xenctrl.handle -> xs:Xenstore.Xs.xsh -> ?backend_domid:int -> ?protocol:protocol -> Xenctrl.domid -> unit
end
module Dm :
sig
type disp_intf_opt =
| Std_vga
| Cirrus
val disp_intf_opt_of_rpc: Rpc.t -> disp_intf_opt
val rpc_of_disp_intf_opt: disp_intf_opt -> Rpc.t
type disp_opt =
| NONE
| VNC of disp_intf_opt * string option * bool * int * string (* IP address, auto-allocate, port if previous false, keymap *)
| SDL of disp_intf_opt * string (* X11 display *)
| Passthrough of int option
| Intel of disp_intf_opt * int option
type media = Disk | Cdrom
type info = {
memory: int64;
boot: string;
serial: string option;
monitor: string option;
vcpus: int;
usb: string list;
nics: (string * string * int) list;
disks: (int * string * media) list;
acpi: bool;
disp: disp_opt;
pci_emulations: string list;
pci_passthrough: bool;
(* Xenclient extras *)
xenclient_enabled: bool;
hvm: bool;
sound: string option;
power_mgmt: int option;
oem_features: int option;
inject_sci: int option;
video_mib: int;
extras: (string * string option) list;
}
val get_vnc_port : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> int option
val get_tc_port : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> int option
val signal : Xenops_task.t -> xs:Xenstore.Xs.xsh -> qemu_domid:int -> domid:Xenctrl.domid -> ?wait_for:string -> ?param:string
-> string -> unit
val cmdline_of_info: info -> bool -> int -> string list
val start : Xenops_task.t -> xs:Xenstore.Xs.xsh -> dmpath:string -> ?timeout:float -> info -> Xenctrl.domid -> unit
val start_vnconly : Xenops_task.t -> xs:Xenstore.Xs.xsh -> dmpath:string -> ?timeout:float -> info -> Xenctrl.domid -> unit
val restore : Xenops_task.t -> xs:Xenstore.Xs.xsh -> dmpath:string -> ?timeout:float -> info -> Xenctrl.domid -> unit
val suspend : Xenops_task.t -> xs:Xenstore.Xs.xsh -> qemu_domid:int -> Xenctrl.domid -> unit
val resume : Xenops_task.t -> xs:Xenstore.Xs.xsh -> qemu_domid:int -> Xenctrl.domid -> unit
val stop : xs:Xenstore.Xs.xsh -> qemu_domid:int -> Xenctrl.domid -> unit
end
val get_vnc_port : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> int option
val get_tc_port : xs:Xenstore.Xs.xsh -> Xenctrl.domid -> int option