1 /****************************************************************************
3 * Copyright (c) 2014 - 2016 Samsung Electronics Co., Ltd. All rights reserved
5 ****************************************************************************/
7 #ifndef __SLSI_KIC_INTERNAL_H
8 #define __SLSI_KIC_INTERNAL_H
11 #include <linux/netlink.h>
12 #include <linux/skbuff.h>
13 #include <linux/list.h>
14 #include <linux/mutex.h>
15 #include <linux/version.h>
16 #include <linux/semaphore.h>
17 #include <net/genetlink.h>
18 #include <linux/time.h>
19 #include <linux/module.h>
21 #include <scsc/scsc_logring.h>
23 #include <scsc/kic/slsi_kic_prim.h>
24 #include <scsc/kic/slsi_kic_wifi.h>
25 #include <scsc/kic/slsi_kic_cm.h>
26 #include <scsc/kic/slsi_kic_bt.h>
27 #include <scsc/kic/slsi_kic_ant.h>
29 #define OS_UNUSED_PARAMETER(x) ((void)(x))
40 struct slsi_kic_service_details
{
41 struct list_head proxy_q
;
42 enum slsi_kic_technology_type tech
;
43 struct slsi_kic_service_info info
;
46 struct slsi_kic_chip_details
{
47 struct semaphore proxy_service_list_mutex
;
48 struct list_head proxy_service_list
;
51 struct slsi_kic_wifi_ops_tuple
{
53 struct slsi_kic_wifi_ops wifi_ops
;
54 struct mutex ops_mutex
;
57 struct slsi_kic_bt_ops_tuple
{
59 struct slsi_kic_bt_ops bt_ops
;
60 struct mutex ops_mutex
;
63 struct slsi_kic_ant_ops_tuple
{
65 struct slsi_kic_ant_ops ant_ops
;
66 struct mutex ops_mutex
;
69 struct slsi_kic_cm_ops_tuple
{
71 struct slsi_kic_cm_ops cm_ops
;
72 struct mutex ops_mutex
;
75 struct slsi_kic_pdata
{
76 enum slsi_kic_state state
;
77 struct slsi_kic_chip_details chip_details
;
78 struct slsi_kic_wifi_ops_tuple wifi_ops_tuple
;
79 struct slsi_kic_cm_ops_tuple cm_ops_tuple
;
80 struct slsi_kic_bt_ops_tuple bt_ops_tuple
;
81 struct slsi_kic_ant_ops_tuple ant_ops_tuple
;
82 uint32_t seq
; /* This should *perhaps* be moved to a record struct for
83 * each subscription - will look into that during the
87 struct slsi_kic_pdata
*slsi_kic_core_get_context(void);
89 #endif /* #ifndef __SLSI_KIC_INTERNAL_H */