| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /************************************************************** |
| * Copyright (c) 2008- 2020 Oplus. All rights reserved. |
| * VENDOR_EDIT |
| * File : oplus_kevent.h |
| * Description: For kevent action upload upload to user layer |
| * Version : 1.0 |
| * Date : 2019-12-19 |
| * Author : |
| * TAG : |
| ****************************************************************/ |
| #ifndef _OPLUS_KEVENT_H_ |
| #define _OPLUS_KEVENT_H_ |
| |
| #include <linux/init.h> |
| #include <linux/kernel.h> |
| #include <linux/module.h> |
| #include <linux/netdevice.h> |
| #include <linux/sched.h> |
| #include <linux/string.h> |
| #include <linux/skbuff.h> |
| #include <linux/types.h> |
| #include <linux/netlink.h> |
| #include <net/net_namespace.h> |
| #include <net/sock.h> |
| #include <linux/version.h> |
| |
| #ifdef CONFIG_OPLUS_KEVENT_UPLOAD |
| |
| #define NETLINK_OPLUS_KEVENT 34 |
| |
| struct kernel_packet_info |
| { |
| int type; /* 0:root,1:only string,other number represent other type */ |
| char log_tag[32]; /* logTag */ |
| char event_id[20]; /*eventID */ |
| size_t payload_length; /* Length of packet data */ |
| unsigned char payload[0]; /* Optional packet data */ |
| }__attribute__((packed)); |
| |
| int kevent_send_to_user(struct kernel_packet_info *userinfo); |
| void kernel_kevent_receive(struct sk_buff *__skbbr); |
| #endif /* CONFIG_OPLUS_KEVENT_UPLOAD */ |
| |
| #ifdef CONFIG_OPLUS_KEVENT_TEST |
| ssize_t demo_kevent_write(struct file *filp, const char __user *buffer, size_t count, loff_t *f_pos); |
| #endif /* CONFIG_OPLUS_KEVENT_TEST */ |
| #endif |