poke-devel
[Top][All Lists]
Advanced

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

[COMMITTED 1/7] poked: print PDAP version and define `poked_pdap_version


From: Mohammad-Reza Nabipoor
Subject: [COMMITTED 1/7] poked: print PDAP version and define `poked_pdap_version'
Date: Sun, 4 Dec 2022 23:04:56 +0100

Pokelets can use `poked_pdap_version' to make sure they're on the
same page as the `poked'.

2022-12-04  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

        * poked/poked.c (main): Print PDAP version.
        (poked_init): Add new param (`pdap_version').
        Update `__poked_pdap_version' Poke variable.
        * poked/poked.pk (__poked_pdap_version): New variable.
        (poked_pdap_version): New function.
---
 ChangeLog      |  8 ++++++++
 poked/poked.c  | 13 +++++++++----
 poked/poked.pk |  5 +++++
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2fb1909a..d47097b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2022-12-04  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+
+       * poked/poked.c (main): Print PDAP version.
+       (poked_init): Add new param (`pdap_version').
+       Update `__poked_pdap_version' Poke variable.
+       * poked/poked.pk (__poked_pdap_version): New variable.
+       (poked_pdap_version): New function.
+
 2022-11-29  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
 
        * testsuite/lib/poke-pk.exp (tap_execute): Only keep the filename
diff --git a/poked/poked.c b/poked/poked.c
index 34d2107c..90989e86 100644
--- a/poked/poked.c
+++ b/poked/poked.c
@@ -37,7 +37,7 @@ struct usock *srv;
 #define OK 0
 #define NOK 1
 
-static int poked_init (void);
+static int poked_init (int pdap_version);
 static void poked_free (void);
 
 #define OUTCMD_ITER_BEGIN 1
@@ -459,6 +459,7 @@ main (int argc, char *argv[])
   void *ret;
   int poked_restart_p;
   uint64_t n_iteration;
+  const int pdap_version = 0; /* pdap: poke daemon message protocol  */
 
   poked_options_init (argc, argv);
 
@@ -471,12 +472,13 @@ main (int argc, char *argv[])
   if (pthread_create (&th, &thattr, srvthread, srv) != 0)
     err (1, "pthread_create() failed");
 
-  printf ("socket_path %s\n\n", poked_options.socket_path);
+  printf ("socket_path %s\npdap_version %d\n\n", poked_options.socket_path,
+          pdap_version);
 
 poked_restart:
   poked_restart_p = 0;
   n_iteration = 0;
-  poked_init ();
+  poked_init (pdap_version);
   while (1)
     {
       struct usock_buf *inbuf;
@@ -765,7 +767,7 @@ static struct pk_iod_if iod = {
 //--- poke
 
 static int
-poked_init (void)
+poked_init (int pdap_version)
 {
   static struct pk_term_if tif = {
     .flush_fn = tif_flush,
@@ -864,6 +866,9 @@ poked_init (void)
         errx (1, "missing function(s) in init file: %s", FUNCS[i]);
     }
 
+  pk_decl_set_val (pkc, "__poked_pdap_version",
+                   pk_make_int (pdap_version, 32));
+
   if (pk_defvar (pkc, "poked_libpoke_version", pk_make_string (VERSION))
       == PK_NULL)
     errx (1, "unable to declare poked_libpoke_version variable");
diff --git a/poked/poked.pk b/poked/poked.pk
index 663331b7..0d746615 100644
--- a/poked/poked.pk
+++ b/poked/poked.pk
@@ -21,6 +21,11 @@ load "pk-dump-minimal.pk";
 // FIXME be endian-correct
 // FIXME offset<long,N> -> offset<ulong,N>
 
+// `poked.c' will initialize it to the right value.
+var __poked_pdap_version = -1;
+
+fun poked_pdap_version = int<32>: { return __poked_pdap_version; }
+
 var __poked_restart_p = 0;
 var __poked_exit_p = 0;
 
-- 
2.38.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]