Carsten Grzemba
2023-12-08 6368be5c1885b28b69fb705c7dbeee05359f8e02
illumos-gate: made 64-bit libnwam compatible for 32-bit nwamd, 2nd

1 files deleted
1 files added
104 ■■■■ changed files
components/openindiana/illumos-gate/patches/0003-want-64-bit-libnwam-32bit-compat.patch 51 ●●●●● patch | view | raw | blame | history
components/openindiana/illumos-gate/patches/0006-want-64-bit-libnwam-32bit-compat.patch 53 ●●●●● patch | view | raw | blame | history
components/openindiana/illumos-gate/patches/0003-want-64-bit-libnwam-32bit-compat.patch
File was deleted
components/openindiana/illumos-gate/patches/0006-want-64-bit-libnwam-32bit-compat.patch
New file
@@ -0,0 +1,53 @@
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..368b914da2 100644
--- a/usr/src/lib/libnwam/common/libnwam_priv.h
+++ b/usr/src/lib/libnwam/common/libnwam_priv.h
@@ -73,6 +73,8 @@ typedef enum {
 #define    NWAMD_MAX_NUM_WLANS    64
+#pragma pack(4)
+
 typedef union {
     /* Used for EVENT_[UN]REGISTER requests */
     struct {
@@ -133,11 +135,13 @@ 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
  * (used in netcfgd).