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

[xen master] tools/ocaml/evtchn: Misc cleanup



commit 40893f5ac6f2405656ffe0c75099f75b1817b641
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Mon Jan 30 16:37:49 2023 +0000
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Mon Feb 6 10:22:12 2023 +0000

    tools/ocaml/evtchn: Misc cleanup
    
     * Remove local integers when all we're returning is Val_int() of another
       variable.  The CAMLlocal*() can't be optimised automatically, as it's
       registered with the GC.
     * Rename "virq_type" to "virq" and "_port" to "port".
     * In stub_eventchn_pending(), rename 'port' to 'rc', to be consistent with
       all other stubs that return xenevtchn_port_or_error_t.
     * In stub_eventchn_unmask(), check for rc == -1 to be consistent with all
       other stubs.
    
    No practical change.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Acked-by: Christian Lindig <christian.lindig@xxxxxxxxxx>
---
 tools/ocaml/libs/eventchn/xeneventchn_stubs.c | 45 +++++++++++----------------
 1 file changed, 18 insertions(+), 27 deletions(-)

diff --git a/tools/ocaml/libs/eventchn/xeneventchn_stubs.c 
b/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
index d7881ca95f..34dcfed302 100644
--- a/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
+++ b/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
@@ -98,17 +98,15 @@ CAMLprim value stub_eventchn_fdopen(value fdval)
 CAMLprim value stub_eventchn_fd(value xce_val)
 {
        CAMLparam1(xce_val);
-       CAMLlocal1(result);
        xenevtchn_handle *xce = xce_of_val(xce_val);
        int fd;
 
+       /* Don't drop the GC lock.  This is a simple read out of memory */
        fd = xenevtchn_fd(xce);
        if (fd == -1)
                caml_failwith("evtchn fd failed");
 
-       result = Val_int(fd);
-
-       CAMLreturn(result);
+       CAMLreturn(Val_int(fd));
 }
 
 CAMLprim value stub_eventchn_notify(value xce_val, value port)
@@ -131,37 +129,34 @@ CAMLprim value stub_eventchn_bind_interdomain(value 
xce_val, value domid,
                                               value remote_port)
 {
        CAMLparam3(xce_val, domid, remote_port);
-       CAMLlocal1(port);
        xenevtchn_handle *xce = xce_of_val(xce_val);
        xenevtchn_port_or_error_t rc;
 
        caml_enter_blocking_section();
-       rc = xenevtchn_bind_interdomain(xce, Int_val(domid), 
Int_val(remote_port));
+       rc = xenevtchn_bind_interdomain(xce, Int_val(domid),
+                                       Int_val(remote_port));
        caml_leave_blocking_section();
 
        if (rc == -1)
                caml_failwith("evtchn bind_interdomain failed");
-       port = Val_int(rc);
 
-       CAMLreturn(port);
+       CAMLreturn(Val_int(rc));
 }
 
-CAMLprim value stub_eventchn_bind_virq(value xce_val, value virq_type)
+CAMLprim value stub_eventchn_bind_virq(value xce_val, value virq)
 {
-       CAMLparam2(xce_val, virq_type);
-       CAMLlocal1(port);
+       CAMLparam2(xce_val, virq);
        xenevtchn_handle *xce = xce_of_val(xce_val);
        xenevtchn_port_or_error_t rc;
 
        caml_enter_blocking_section();
-       rc = xenevtchn_bind_virq(xce, Int_val(virq_type));
+       rc = xenevtchn_bind_virq(xce, Int_val(virq));
        caml_leave_blocking_section();
 
        if (rc == -1)
                caml_failwith("evtchn bind_virq failed");
-       port = Val_int(rc);
 
-       CAMLreturn(port);
+       CAMLreturn(Val_int(rc));
 }
 
 CAMLprim value stub_eventchn_unbind(value xce_val, value port)
@@ -183,35 +178,31 @@ CAMLprim value stub_eventchn_unbind(value xce_val, value 
port)
 CAMLprim value stub_eventchn_pending(value xce_val)
 {
        CAMLparam1(xce_val);
-       CAMLlocal1(result);
        xenevtchn_handle *xce = xce_of_val(xce_val);
-       xenevtchn_port_or_error_t port;
+       xenevtchn_port_or_error_t rc;
 
        caml_enter_blocking_section();
-       port = xenevtchn_pending(xce);
+       rc = xenevtchn_pending(xce);
        caml_leave_blocking_section();
 
-       if (port == -1)
+       if (rc == -1)
                caml_failwith("evtchn pending failed");
-       result = Val_int(port);
 
-       CAMLreturn(result);
+       CAMLreturn(Val_int(rc));
 }
 
-CAMLprim value stub_eventchn_unmask(value xce_val, value _port)
+CAMLprim value stub_eventchn_unmask(value xce_val, value port)
 {
-       CAMLparam2(xce_val, _port);
+       CAMLparam2(xce_val, port);
        xenevtchn_handle *xce = xce_of_val(xce_val);
-       evtchn_port_t port;
        int rc;
 
-       port = Int_val(_port);
-
        caml_enter_blocking_section();
-       rc = xenevtchn_unmask(xce, port);
+       rc = xenevtchn_unmask(xce, Int_val(port));
        caml_leave_blocking_section();
 
-       if (rc)
+       if (rc == -1)
                caml_failwith("evtchn unmask failed");
+
        CAMLreturn(Val_unit);
 }
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

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