1e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
2e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
3e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * Redistribution and use in source and binary forms, with or without
4e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * modification, are permitted provided that the following conditions are
5e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * met:
6e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Redistributions of source code must retain the above copyright
7e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       notice, this list of conditions and the following disclaimer.
8e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Redistributions in binary form must reproduce the above
9e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       copyright notice, this list of conditions and the following
10e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       disclaimer in the documentation and/or other materials provided
11e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       with the distribution.
12e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *     * Neither the name of The Linux Foundation, nor the names of its
13e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       contributors may be used to endorse or promote products derived
14e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *       from this software without specific prior written permission.
15e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
16e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti *
28e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti */
29e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifndef LOC_ENG_DATA_SERVER_HANDLER
30e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#define LOC_ENG_DATA_SERVER_HANDLER
31e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
32e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <linux/types.h>
33e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <arpa/inet.h>
34e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
35e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti//for SSID_BUF_SIZE
36e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#include <hardware/gps.h>
37e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
38e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#ifndef SSID_BUF_SIZE
39e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    #define SSID_BUF_SIZE (32+1)
40e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif
41e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
42e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum {
43e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    /* 0x0 - 0xEF is reserved for daemon internal */
44e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    GPSONE_LOC_API_IF_REQUEST   = 0xF0,
45e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    GPSONE_LOC_API_IF_RELEASE,
46e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    GPSONE_LOC_API_RESPONSE,
47e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    GPSONE_UNBLOCK,
48e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
49e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
50e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletienum {
51e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    GPSONE_LOC_API_IF_REQUEST_SUCCESS = 0xF0,
52e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    GPSONE_LOC_API_IF_RELEASE_SUCCESS,
53e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    GPSONE_LOC_API_IF_FAILURE,
54e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
55e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
56e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
57e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct ctrl_msg_response {
58e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    int result;
59e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
60e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
61e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct ctrl_msg_unblock {
62e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    int reserved;
63e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
64e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
65e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletitypedef enum {
66e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_TYPE_SUPL = 0,
67e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_TYPE_WIFI,
68e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_TYPE_ANY
69e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} ctrl_if_req_type_e_type;
70e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
71e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletitypedef enum {
72e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_SENDER_ID_QUIPC = 0,
73e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_SENDER_ID_MSAPM,
74e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_SENDER_ID_MSAPU,
75e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_SENDER_ID_GPSONE_DAEMON,
76e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti  IF_REQUEST_SENDER_ID_MODEM
77e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti} ctrl_if_req_sender_id_e_type;
78e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
79e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct ctrl_msg_if_request {
80e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    ctrl_if_req_type_e_type type;
81e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    ctrl_if_req_sender_id_e_type sender_id;
82e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    unsigned long ipv4_addr;
83e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    unsigned char ipv6_addr[16];
84e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    char ssid[SSID_BUF_SIZE];
85e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    char password[SSID_BUF_SIZE];
86e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
87e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
88e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti/* do not change this structure */
89e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletistruct ctrl_msgbuf {
90e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    size_t msgsz;
91e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    uint16_t reserved1;
92e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    uint32_t reserved2;
93e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    uint8_t ctrl_type;
94e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    union {
95e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        struct ctrl_msg_response   cmsg_response;
96e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        struct ctrl_msg_unblock    cmsg_unblock;
97e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti        struct ctrl_msg_if_request cmsg_if_request;
98e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti    } cmsg;
99e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti};
100e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
101e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiextern void* loc_api_handle;
102e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
103e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_loc_api_server_if_request_handler(struct ctrl_msgbuf *pmsg, int len);
104e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuletiint loc_eng_dmn_conn_loc_api_server_if_release_handler(struct ctrl_msgbuf *pmsg, int len);
105e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti
106e7c98642e1e156ea6cde1238cd0006f669cfb696Uday Kishore Pasupuleti#endif /* LOC_ENG_DATA_SERVER_HANDLER */
107