diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2012-01-31 15:06:41 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-01-31 15:06:41 +0100 |
commit | 4b84df01d14fc8f4b10164833a3d25010acc9e18 (patch) | |
tree | a44f094d5e65f8049df33b34a83cf567551ea7a1 /src/netlink.c | |
parent | c3327e12c8f381b9c860b118d9775201d57286ba (diff) | |
download | neard-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.c | 38 |
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(""); |