summaryrefslogtreecommitdiff
path: root/src/netlink.c
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2012-01-31 15:06:41 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2012-01-31 15:06:41 +0100
commit4b84df01d14fc8f4b10164833a3d25010acc9e18 (patch)
treea44f094d5e65f8049df33b34a83cf567551ea7a1 /src/netlink.c
parentc3327e12c8f381b9c860b118d9775201d57286ba (diff)
downloadneard-4b84df01d14fc8f4b10164833a3d25010acc9e18.tar.gz
neard-4b84df01d14fc8f4b10164833a3d25010acc9e18.tar.bz2
neard-4b84df01d14fc8f4b10164833a3d25010acc9e18.zip
adapter: Implement Powered property handling
Diffstat (limited to 'src/netlink.c')
-rw-r--r--src/netlink.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/netlink.c b/src/netlink.c
index 8ddd091..68777bd 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -347,6 +347,44 @@ nla_put_failure:
return err;
}
+int __near_netlink_adapter_enable(int idx, near_bool_t enable)
+{
+ struct nl_msg *msg;
+ void *hdr;
+ int family, err = 0;
+ uint8_t cmd;
+
+ DBG("");
+
+ msg = nlmsg_alloc();
+ if (msg == NULL)
+ return -ENOMEM;
+
+ family = genl_family_get_id(nfc_state->nlnfc);
+
+ if (enable == TRUE)
+ cmd = NFC_CMD_DEV_UP;
+ else
+ cmd = NFC_CMD_DEV_DOWN;
+
+ hdr = genlmsg_put(msg, NL_AUTO_PID, NL_AUTO_SEQ, family, 0,
+ NLM_F_REQUEST, cmd, NFC_GENL_VERSION);
+ if (hdr == NULL) {
+ err = -EINVAL;
+ goto nla_put_failure;
+ }
+
+ NLA_PUT_U32(msg, NFC_ATTR_DEVICE_INDEX, idx);
+
+ err = nl_send_msg(nfc_state->nl_sock, msg, NULL, NULL);
+
+nla_put_failure:
+ nlmsg_free(msg);
+
+ return err;
+}
+
+
static int no_seq_check(struct nl_msg *n, void *arg)
{
DBG("");