From fe2d470cb9a157fb7588418198c86934492a6772 Mon Sep 17 00:00:00 2001
From: Carsten Grzemba <cgrzemba@opencsw.org>
Date: Thu, 07 Dec 2023 16:36:35 +0100
Subject: [PATCH] illumos-gate: made 64-bit libnwam compatible for 32-bit nwamd

---
 components/openindiana/illumos-gate/patches/0003-want-64-bit-libnwam-32bit-compat.patch |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/components/openindiana/illumos-gate/patches/0003-want-64-bit-libnwam-32bit-compat.patch b/components/openindiana/illumos-gate/patches/0003-want-64-bit-libnwam-32bit-compat.patch
new file mode 100644
index 0000000..c8dd90f
--- /dev/null
+++ b/components/openindiana/illumos-gate/patches/0003-want-64-bit-libnwam-32bit-compat.patch
@@ -0,0 +1,51 @@
+Because the nwamd is still a 32bit binary the doorfs calls have to be compatible for 64bit and 32bit.
+If all runs in 64bit this patch is no longer necessary.
+
+diff --git a/usr/src/lib/libnwam/common/libnwam.h b/usr/src/lib/libnwam/common/libnwam.h
+index 7d9025a399..63c6271e46 100644
+--- a/usr/src/lib/libnwam/common/libnwam.h
++++ b/usr/src/lib/libnwam/common/libnwam.h
+@@ -966,6 +966,8 @@ typedef enum {
+        NWAM_OBJECT_TYPE_KNOWN_WLAN = 4
+ } nwam_object_type_t;
+ 
++#pragma pack(4)
++
+ typedef struct nwam_event *nwam_event_t;
+ struct nwam_event {
+        int nwe_type;
+@@ -1040,6 +1042,8 @@ struct nwam_event {
+        } nwe_data;
+ };
+ 
++#pragma pack()
++
+ /* NWAM client functions, used to register/unregister and receive events */
+ extern nwam_error_t nwam_events_init(void);
+ extern void nwam_events_fini(void);
+diff --git a/usr/src/lib/libnwam/common/libnwam_priv.h b/usr/src/lib/libnwam/common/libnwam_priv.h
+index 14b92b2c3a..40c029e4e3 100644
+--- a/usr/src/lib/libnwam/common/libnwam_priv.h
++++ b/usr/src/lib/libnwam/common/libnwam_priv.h
+@@ -73,6 +73,7 @@ typedef enum {
+ 
+ #define        NWAMD_MAX_NUM_WLANS     64
+ 
++#pragma pack(4)
+ typedef union {
+        /* Used for EVENT_[UN]REGISTER requests */
+        struct {
+@@ -133,10 +134,11 @@ typedef struct nwam_backend_door_arg {
+        nwam_backend_door_cmd_t nwbda_cmd;
+        char nwbda_dbname[MAXPATHLEN];                  /* config filename */
+        char nwbda_object[NWAM_MAX_NAME_LEN];           /* config object */
+-       size_t nwbda_datalen;                           /* data follows arg */
++       unsigned int nwbda_datalen;                             /* data follows arg */
+        nwam_error_t nwbda_result;                      /* return code */
+        uint64_t nwbda_flags;
+ } nwam_backend_door_arg_t;
++#pragma pack()
+ 
+ /*
+  * Functions needed to initialize/stop processing of libnwam backend data
+

--
Gitblit v1.9.3