]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/examples/clntsrv/client.cc
Update
[l4.git] / l4 / pkg / examples / clntsrv / client.cc
index 388ebcc55286abda163a2ba0ef933ac134ddbe29..b0ceeb4b363783cf865e7068362cb012aa36545b 100644 (file)
 #include <l4/sys/types.h>
 #include <l4/re/env>
 #include <l4/re/util/cap_alloc>
-#include <l4/cxx/ipc_stream>
 
 #include <stdio.h>
-
 #include "shared.h"
 
-static int
-func_neg_call(L4::Cap<void> const &server, l4_uint32_t *result,
-              l4_uint32_t val)
-{
-  L4::Ipc::Iostream s(l4_utcb());
-  s << l4_umword_t(Opcode::func_neg) << val;
-  int r = l4_error(s.call(server.cap(), Protocol::Calc));
-  if (r)
-    return r; // failure
-  s >> *result;
-  return 0; // ok
-}
-
-static int
-func_sub_call(L4::Cap<void> const &server, l4_uint32_t *result,
-              l4_uint32_t val1, l4_uint32_t val2)
-{
-  L4::Ipc::Iostream s(l4_utcb());
-  s << l4_umword_t(Opcode::func_sub) << val1 << val2;
-  int r = l4_error(s.call(server.cap(), Protocol::Calc));
-  if (r)
-    return r; // failure
-  s >> *result;
-  return 0; // ok
-}
-
 int
 main()
 {
-  L4::Cap<void> server = L4Re::Env::env()->get_cap<void>("calc_server");
+  L4::Cap<Calc> server = L4Re::Env::env()->get_cap<Calc>("calc_server");
   if (!server.is_valid())
     {
       printf("Could not get server capability!\n");
@@ -58,14 +30,14 @@ main()
 
   printf("Asking for %d - %d\n", val1, val2);
 
-  if (func_sub_call(server, &val1, val1, val2))
+  if (server->sub(val1, val2, &val1))
     {
       printf("Error talking to server\n");
       return 1;
     }
   printf("Result of substract call: %d\n", val1);
   printf("Asking for -%d\n", val1);
-  if (func_neg_call(server, &val1, val1))
+  if (server->neg(val1, &val1))
     {
       printf("Error talking to server\n");
       return 1;