attr.h: Add NLA_PUT_S32
authorHauke Mehrtens <hauke@hauke-m.de>
Sat, 20 Nov 2021 23:08:55 +0000 (00:08 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Tue, 14 Dec 2021 21:11:05 +0000 (22:11 +0100)
This function is used by iw 5.16.

These new headers were copied from the mainline libnl.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
include/netlink/attr.h

index 3b56a82dc66e21376a6466f16ca37ff57569d969..bcfbf07fa8091140fd12d9347e6100f2525678cc 100644 (file)
@@ -298,6 +298,31 @@ static inline uint16_t nla_get_u16(struct nlattr *nla)
        return *(uint16_t *) nla_data(nla);
 }
 
+/**
+ * Add 32 bit signed integer attribute to netlink message.
+ * @arg msg             Netlink message.
+ * @arg attrtype        Attribute type.
+ * @arg value           Numeric value to store as payload.
+ *
+ * @see nla_put
+ * @return 0 on success or a negative error code.
+ */
+static inline int nla_put_s32(struct nl_msg *msg, int attrtype, int32_t value)
+{
+       return nla_put(msg, attrtype, sizeof(int32_t), &value);
+}
+
+/**
+ * Return payload of 32 bit signed integer attribute.
+ * @arg nla             32 bit integer attribute.
+ *
+ * @return Payload as 32 bit integer.
+ */
+static inline int32_t nla_get_s32(struct nlattr *nla)
+{
+       return *(int32_t *) nla_data(nla);
+}
+
 /**
  * Add 32 bit integer attribute to netlink message.
  * @arg msg            Netlink message.
@@ -631,6 +656,15 @@ static inline size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dst
 #define NLA_PUT_U16(msg, attrtype, value) \
        NLA_PUT_TYPE(msg, uint16_t, attrtype, value)
 
+/**
+ * Add 32 bit signed integer attribute to netlink message.
+ * @arg msg            Netlink message.
+ * @arg attrtype       Attribute type.
+ * @arg value          Numeric value.
+ */
+#define NLA_PUT_S32(msg, attrtype, value) \
+       NLA_PUT_TYPE(msg, int32_t, attrtype, value)
+
 /**
  * Add 32 bit integer attribute to netlink message.
  * @arg msg            Netlink message.