[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 3/6] tools/oxenstored: Rename some 'port' variables to 'remote_port'
This will make the logic clearer when we plumb local_port through these functions. While changing this, simplify the construct in Domains.create0 to separate the remote port handling from the interface. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Christian Lindig <christian.lindig@xxxxxxxxxx> CC: David Scott <dave@xxxxxxxxxx> CC: Edwin Torok <edvin.torok@xxxxxxxxxx> CC: Rob Hoes <Rob.Hoes@xxxxxxxxxx> v2: * New. --- tools/ocaml/xenstored/domains.ml | 26 ++++++++++++-------------- tools/ocaml/xenstored/process.ml | 12 ++++++------ tools/ocaml/xenstored/xenstored.ml | 8 ++++---- 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/tools/ocaml/xenstored/domains.ml b/tools/ocaml/xenstored/domains.ml index 17fe2fa25772..26018ac0dd3d 100644 --- a/tools/ocaml/xenstored/domains.ml +++ b/tools/ocaml/xenstored/domains.ml @@ -122,9 +122,9 @@ let cleanup doms = let resume _doms _domid = () -let create doms domid mfn port = +let create doms domid mfn remote_port = let interface = Xenctrl.map_foreign_range xc domid (Xenmmap.getpagesize()) mfn in - let dom = Domain.make domid mfn port interface doms.eventchn in + let dom = Domain.make domid mfn remote_port interface doms.eventchn in Hashtbl.add doms.table domid dom; Domain.bind_interdomain dom; dom @@ -133,18 +133,16 @@ let xenstored_kva = ref "" let xenstored_port = ref "" let create0 doms = - let port, interface = - ( - let port = Utils.read_file_single_integer !xenstored_port - and fd = Unix.openfile !xenstored_kva - [ Unix.O_RDWR ] 0o600 in - let interface = Xenmmap.mmap fd Xenmmap.RDWR Xenmmap.SHARED - (Xenmmap.getpagesize()) 0 in - Unix.close fd; - port, interface - ) - in - let dom = Domain.make 0 Nativeint.zero port interface doms.eventchn in + let remote_port = Utils.read_file_single_integer !xenstored_port in + + let interface = + let fd = Unix.openfile !xenstored_kva [ Unix.O_RDWR ] 0o600 in + let interface = Xenmmap.mmap fd Xenmmap.RDWR Xenmmap.SHARED (Xenmmap.getpagesize()) 0 in + Unix.close fd; + interface + in + + let dom = Domain.make 0 Nativeint.zero remote_port interface doms.eventchn in Hashtbl.add doms.table 0 dom; Domain.bind_interdomain dom; Domain.notify dom; diff --git a/tools/ocaml/xenstored/process.ml b/tools/ocaml/xenstored/process.ml index 72a79e9328dd..b2973aca2a82 100644 --- a/tools/ocaml/xenstored/process.ml +++ b/tools/ocaml/xenstored/process.ml @@ -558,10 +558,10 @@ let do_transaction_end con t domains cons data = let do_introduce con t domains cons data = if not (Connection.is_dom0 con) then raise Define.Permission_denied; - let (domid, mfn, port) = + let (domid, mfn, remote_port) = match (split None '\000' data) with - | domid :: mfn :: port :: _ -> - int_of_string domid, Nativeint.of_string mfn, int_of_string port + | domid :: mfn :: remote_port :: _ -> + int_of_string domid, Nativeint.of_string mfn, int_of_string remote_port | _ -> raise Invalid_Cmd_Args; in let dom = @@ -569,18 +569,18 @@ let do_introduce con t domains cons data = let edom = Domains.find domains domid in if (Domain.get_mfn edom) = mfn && (Connections.find_domain cons domid) != con then begin (* Use XS_INTRODUCE for recreating the xenbus event-channel. *) - edom.remote_port <- port; + edom.remote_port <- remote_port; Domain.bind_interdomain edom; end; edom else try - let ndom = Domains.create domains domid mfn port in + let ndom = Domains.create domains domid mfn remote_port in Connections.add_domain cons ndom; Connections.fire_spec_watches (Transaction.get_root t) cons Store.Path.introduce_domain; ndom with _ -> raise Invalid_Cmd_Args in - if (Domain.get_remote_port dom) <> port || (Domain.get_mfn dom) <> mfn then + if (Domain.get_remote_port dom) <> remote_port || (Domain.get_mfn dom) <> mfn then raise Domain_not_match let do_release con t domains cons data = diff --git a/tools/ocaml/xenstored/xenstored.ml b/tools/ocaml/xenstored/xenstored.ml index 55071b49eccb..1f11f576b515 100644 --- a/tools/ocaml/xenstored/xenstored.ml +++ b/tools/ocaml/xenstored/xenstored.ml @@ -167,10 +167,10 @@ let from_channel_f chan global_f socket_f domain_f watch_f store_f = global_f ~rw | "socket" :: fd :: [] -> socket_f ~fd:(int_of_string fd) - | "dom" :: domid :: mfn :: port :: []-> + | "dom" :: domid :: mfn :: remote_port :: []-> domain_f (int_of_string domid) (Nativeint.of_string mfn) - (int_of_string port) + (int_of_string remote_port) | "watch" :: domid :: path :: token :: [] -> watch_f (int_of_string domid) (unhexify path) (unhexify token) @@ -209,10 +209,10 @@ let from_channel store cons doms chan = else warn "Ignoring invalid socket FD %d" fd in - let domain_f domid mfn port = + let domain_f domid mfn remote_port = let ndom = if domid > 0 then - Domains.create doms domid mfn port + Domains.create doms domid mfn remote_port else Domains.create0 doms in -- 2.11.0
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |