replace common qcom sources with samsung ones
This commit is contained in:
1
qcom/opensource/commonsys/dataservices/Android.mk
Normal file
1
qcom/opensource/commonsys/dataservices/Android.mk
Normal file
@@ -0,0 +1 @@
|
||||
include $(call all-subdir-makefiles)
|
||||
2
qcom/opensource/commonsys/dataservices/sockev/Android.mk
Normal file
2
qcom/opensource/commonsys/dataservices/sockev/Android.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
include $(call all-subdir-makefiles)
|
||||
|
||||
15
qcom/opensource/commonsys/dataservices/sockev/src/Android.mk
Normal file
15
qcom/opensource/commonsys/dataservices/sockev/src/Android.mk
Normal file
@@ -0,0 +1,15 @@
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES := sockev_cli.c
|
||||
LOCAL_CFLAGS := -Wall -Werror
|
||||
|
||||
LOCAL_C_INCLUDES := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
|
||||
LOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
|
||||
|
||||
LOCAL_CLANG := true
|
||||
LOCAL_MODULE := sockev
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
||||
@@ -0,0 +1,96 @@
|
||||
/******************************************************************************
|
||||
S O C K E V _ C L I . C
|
||||
Copyright (c) 2013, The Linux Foundation. All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
* Neither the name of The Linux Foundation nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
@file sockev_cli.c
|
||||
@brief command line test utility to receive sockev netlink messages.
|
||||
******************************************************************************/
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/sockev.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#define SOCKEVCLI_ERROR -1
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int skfd, rc;
|
||||
socklen_t addrlen;
|
||||
struct sockaddr_nl my_addr, src_addr;
|
||||
struct nlmsghdr *nlh = NULL;
|
||||
struct sknlsockevmsg *msg;
|
||||
|
||||
nlh = (struct nlmsghdr *)
|
||||
malloc(NLMSG_SPACE(sizeof(struct sknlsockevmsg) + 16));
|
||||
if (!nlh) {
|
||||
fprintf(stderr, "malloc() failed\n");
|
||||
return SOCKEVCLI_ERROR;
|
||||
}
|
||||
|
||||
skfd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCKEV);
|
||||
if (skfd < 0) {
|
||||
fprintf(stderr, "nl_open_sock: socket failed\n");
|
||||
return SOCKEVCLI_ERROR;
|
||||
}
|
||||
|
||||
memset(&my_addr, 0, sizeof(struct sockaddr_nl));
|
||||
|
||||
my_addr.nl_family = AF_NETLINK;
|
||||
my_addr.nl_pid = getpid();
|
||||
my_addr.nl_groups = SKNLGRP_SOCKEV;
|
||||
|
||||
rc = bind(skfd, (struct sockaddr *)&my_addr,
|
||||
sizeof(struct sockaddr_nl));
|
||||
if (rc < 0) {
|
||||
fprintf(stderr, "nl_open_sock: bind failed\n");
|
||||
close(skfd);
|
||||
return SOCKEVCLI_ERROR;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
recvfrom(skfd, nlh, sizeof(struct sknlsockevmsg) + 16, 0,
|
||||
(const struct sockaddr *)&src_addr, &addrlen);
|
||||
msg = NLMSG_DATA(nlh);
|
||||
printf("----------------------------\n");
|
||||
printf("pid:\t%d\n", msg->pid);
|
||||
printf("event:\t%s\n", msg->event);
|
||||
printf("skfamily:\t0x%04X\n", msg->skfamily);
|
||||
printf("skstate:\t%03d\n", msg->skstate);
|
||||
printf("skprotocol:\t%03d\n", msg->skprotocol);
|
||||
printf("sktype:\t0x%04X\n", msg->sktype);
|
||||
printf("skflags:\t0x%016llX\n", msg->skflags);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user