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