[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v1 6/7] tools/ocaml/libs/xb: hide type of Xb.t


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Edwin Török <edvin.torok@xxxxxxxxxx>
  • Date: Fri, 29 Jul 2022 18:53:29 +0100
  • Authentication-results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Edwin Török <edvin.torok@xxxxxxxxxx>, "Christian Lindig" <christian.lindig@xxxxxxxxxx>, David Scott <dave@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Delivery-date: Fri, 29 Jul 2022 17:54:15 +0000
  • Ironport-data: A9a23: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
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

The only user of 'xb' that I can find is in-tree oxenstored.
Other code (e.g. xenopsd) would use the mirage 'xenstore' implementation
instead, so changing the API here shouldn't require anyone to update
their code.

Hiding the type will make it easier to change the implementation
in the future without breaking code that relies on it.

No functional change.

Signed-off-by: Edwin Török <edvin.torok@xxxxxxxxxx>
---
 tools/ocaml/libs/xb/xb.ml           | 3 +++
 tools/ocaml/libs/xb/xb.mli          | 9 ++-------
 tools/ocaml/xenstored/connection.ml | 8 ++------
 3 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/tools/ocaml/libs/xb/xb.ml b/tools/ocaml/libs/xb/xb.ml
index 104d319d77..8404ddd8a6 100644
--- a/tools/ocaml/libs/xb/xb.ml
+++ b/tools/ocaml/libs/xb/xb.ml
@@ -196,6 +196,9 @@ let peek_output con = Queue.peek con.pkt_out
 let input_len con = Queue.length con.pkt_in
 let has_in_packet con = Queue.length con.pkt_in > 0
 let get_in_packet con = Queue.pop con.pkt_in
+let has_partial_input con = match con.partial_in with
+       | HaveHdr _ -> true
+       | NoHdr (n, _) -> n < Partial.header_size ()
 let has_more_input con =
        match con.backend with
        | Fd _         -> false
diff --git a/tools/ocaml/libs/xb/xb.mli b/tools/ocaml/libs/xb/xb.mli
index 3a00da6cdd..794e35bb34 100644
--- a/tools/ocaml/libs/xb/xb.mli
+++ b/tools/ocaml/libs/xb/xb.mli
@@ -66,13 +66,7 @@ type backend_mmap = {
 type backend_fd = { fd : Unix.file_descr; }
 type backend = Fd of backend_fd | Xenmmap of backend_mmap
 type partial_buf = HaveHdr of Partial.pkt | NoHdr of int * bytes
-type t = {
-  backend : backend;
-  pkt_in : Packet.t Queue.t;
-  pkt_out : Packet.t Queue.t;
-  mutable partial_in : partial_buf;
-  mutable partial_out : string;
-}
+type t
 val init_partial_in : unit -> partial_buf
 val reconnect : t -> unit
 val queue : t -> Packet.t -> unit
@@ -97,6 +91,7 @@ val has_output : t -> bool
 val peek_output : t -> Packet.t
 val input_len : t -> int
 val has_in_packet : t -> bool
+val has_partial_input : t -> bool
 val get_in_packet : t -> Packet.t
 val has_more_input : t -> bool
 val is_selectable : t -> bool
diff --git a/tools/ocaml/xenstored/connection.ml 
b/tools/ocaml/xenstored/connection.ml
index a94d47cdc2..0ce54cd7f9 100644
--- a/tools/ocaml/xenstored/connection.ml
+++ b/tools/ocaml/xenstored/connection.ml
@@ -125,9 +125,7 @@ let get_perm con =
 let set_target con target_domid =
        con.perm <- Perms.Connection.set_target (get_perm con) 
~perms:[Perms.READ; Perms.WRITE] target_domid
 
-let is_backend_mmap con = match con.xb.Xenbus.Xb.backend with
-       | Xenbus.Xb.Xenmmap _ -> true
-       | _ -> false
+let is_backend_mmap con = Xenbus.Xb.is_mmap con.xb
 
 let send_reply con tid rid ty data =
        if (String.length data) > xenstore_payload_max && (is_backend_mmap con) 
then
@@ -280,9 +278,7 @@ let get_transaction con tid =
 
 let do_input con = Xenbus.Xb.input con.xb
 let has_input con = Xenbus.Xb.has_in_packet con.xb
-let has_partial_input con = match con.xb.Xenbus.Xb.partial_in with
-       | HaveHdr _ -> true
-       | NoHdr (n, _) -> n < Xenbus.Partial.header_size ()
+let has_partial_input con = Xenbus.Xb.has_partial_input con.xb
 let pop_in con = Xenbus.Xb.get_in_packet con.xb
 let has_more_input con = Xenbus.Xb.has_more_input con.xb
 
-- 
2.34.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.