loc_api_rpc_glue.h revision 34ee09551764b045fdc02df754157473125edf60
134ee09551764b045fdc02df754157473125edf60Kevin Tang/* Copyright (c) 2011, Code Aurora Forum. All rights reserved. 234ee09551764b045fdc02df754157473125edf60Kevin Tang * 334ee09551764b045fdc02df754157473125edf60Kevin Tang * Redistribution and use in source and binary forms, with or without 434ee09551764b045fdc02df754157473125edf60Kevin Tang * modification, are permitted provided that the following conditions are 534ee09551764b045fdc02df754157473125edf60Kevin Tang * met: 634ee09551764b045fdc02df754157473125edf60Kevin Tang * * Redistributions of source code must retain the above copyright 734ee09551764b045fdc02df754157473125edf60Kevin Tang * notice, this list of conditions and the following disclaimer. 834ee09551764b045fdc02df754157473125edf60Kevin Tang * * Redistributions in binary form must reproduce the above 934ee09551764b045fdc02df754157473125edf60Kevin Tang * copyright notice, this list of conditions and the following 1034ee09551764b045fdc02df754157473125edf60Kevin Tang * disclaimer in the documentation and/or other materials provided 1134ee09551764b045fdc02df754157473125edf60Kevin Tang * with the distribution. 1234ee09551764b045fdc02df754157473125edf60Kevin Tang * * Neither the name of Code Aurora Forum, Inc. nor the names of its 1334ee09551764b045fdc02df754157473125edf60Kevin Tang * contributors may be used to endorse or promote products derived 1434ee09551764b045fdc02df754157473125edf60Kevin Tang * from this software without specific prior written permission. 1534ee09551764b045fdc02df754157473125edf60Kevin Tang * 1634ee09551764b045fdc02df754157473125edf60Kevin Tang * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 1734ee09551764b045fdc02df754157473125edf60Kevin Tang * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1834ee09551764b045fdc02df754157473125edf60Kevin Tang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 1934ee09551764b045fdc02df754157473125edf60Kevin Tang * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 2034ee09551764b045fdc02df754157473125edf60Kevin Tang * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2134ee09551764b045fdc02df754157473125edf60Kevin Tang * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2234ee09551764b045fdc02df754157473125edf60Kevin Tang * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 2334ee09551764b045fdc02df754157473125edf60Kevin Tang * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2434ee09551764b045fdc02df754157473125edf60Kevin Tang * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 2534ee09551764b045fdc02df754157473125edf60Kevin Tang * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 2634ee09551764b045fdc02df754157473125edf60Kevin Tang * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2734ee09551764b045fdc02df754157473125edf60Kevin Tang */ 2834ee09551764b045fdc02df754157473125edf60Kevin Tang 2934ee09551764b045fdc02df754157473125edf60Kevin Tang#ifndef LOC_API_RPC_GLUE_H 3034ee09551764b045fdc02df754157473125edf60Kevin Tang#define LOC_API_RPC_GLUE_H 3134ee09551764b045fdc02df754157473125edf60Kevin Tang 3234ee09551764b045fdc02df754157473125edf60Kevin Tang/* Include RPC headers */ 3334ee09551764b045fdc02df754157473125edf60Kevin Tang#ifdef USE_LOCAL_RPC 3434ee09551764b045fdc02df754157473125edf60Kevin Tang#include "rpc_inc/loc_api_common.h" 3534ee09551764b045fdc02df754157473125edf60Kevin Tang#include "rpc_inc/loc_api.h" 3634ee09551764b045fdc02df754157473125edf60Kevin Tang#include "rpc_inc/loc_api_cb.h" 3734ee09551764b045fdc02df754157473125edf60Kevin Tang#endif 3834ee09551764b045fdc02df754157473125edf60Kevin Tang 3934ee09551764b045fdc02df754157473125edf60Kevin Tang#ifdef USE_QCOM_AUTO_RPC 4034ee09551764b045fdc02df754157473125edf60Kevin Tang#include "loc_api_rpcgen_rpc.h" 4134ee09551764b045fdc02df754157473125edf60Kevin Tang#include "loc_api_rpcgen_common_rpc.h" 4234ee09551764b045fdc02df754157473125edf60Kevin Tang#include "loc_api_rpcgen_cb_rpc.h" 4334ee09551764b045fdc02df754157473125edf60Kevin Tang#endif 4434ee09551764b045fdc02df754157473125edf60Kevin Tang 4534ee09551764b045fdc02df754157473125edf60Kevin Tang/* Boolean */ 4634ee09551764b045fdc02df754157473125edf60Kevin Tang/* Other data types in comdef.h are defined in rpc stubs, so fix it here */ 4734ee09551764b045fdc02df754157473125edf60Kevin Tangtypedef unsigned char boolean; 4834ee09551764b045fdc02df754157473125edf60Kevin Tang#define TRUE 1 4934ee09551764b045fdc02df754157473125edf60Kevin Tang#define FALSE 0 5034ee09551764b045fdc02df754157473125edf60Kevin Tang 5134ee09551764b045fdc02df754157473125edf60Kevin Tang#include "rpc_inc/loc_api_fixup.h" 5234ee09551764b045fdc02df754157473125edf60Kevin Tang#include "rpc_inc/loc_api_sync_call.h" 5334ee09551764b045fdc02df754157473125edf60Kevin Tang#include <rpc/clnt.h> 5434ee09551764b045fdc02df754157473125edf60Kevin Tang 5534ee09551764b045fdc02df754157473125edf60Kevin Tang#ifdef __cplusplus 5634ee09551764b045fdc02df754157473125edf60Kevin Tangextern "C" 5734ee09551764b045fdc02df754157473125edf60Kevin Tang{ 5834ee09551764b045fdc02df754157473125edf60Kevin Tang#endif 5934ee09551764b045fdc02df754157473125edf60Kevin Tang 6034ee09551764b045fdc02df754157473125edf60Kevin Tangextern int loc_api_glue_init(void); 6134ee09551764b045fdc02df754157473125edf60Kevin Tangextern int loc_api_null(void); 6234ee09551764b045fdc02df754157473125edf60Kevin Tang 6334ee09551764b045fdc02df754157473125edf60Kevin Tangtypedef int32 (loc_event_cb_f_type)( 6434ee09551764b045fdc02df754157473125edf60Kevin Tang void* userData, 6534ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_client_handle_type loc_handle, /* handle of the client */ 6634ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_event_mask_type loc_event, /* event mask */ 6734ee09551764b045fdc02df754157473125edf60Kevin Tang const rpc_loc_event_payload_u_type* loc_event_payload /* payload */ 6834ee09551764b045fdc02df754157473125edf60Kevin Tang); 6934ee09551764b045fdc02df754157473125edf60Kevin Tang 7034ee09551764b045fdc02df754157473125edf60Kevin Tangtypedef void (loc_reset_notif_cb_f_type)( 7134ee09551764b045fdc02df754157473125edf60Kevin Tang void* userData, 7234ee09551764b045fdc02df754157473125edf60Kevin Tang CLIENT* clnt, 7334ee09551764b045fdc02df754157473125edf60Kevin Tang enum rpc_reset_event event 7434ee09551764b045fdc02df754157473125edf60Kevin Tang); 7534ee09551764b045fdc02df754157473125edf60Kevin Tang 7634ee09551764b045fdc02df754157473125edf60Kevin Tangextern rpc_loc_client_handle_type loc_open( 7734ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_event_mask_type event_reg_mask, 7834ee09551764b045fdc02df754157473125edf60Kevin Tang loc_event_cb_f_type *event_callback, 7934ee09551764b045fdc02df754157473125edf60Kevin Tang loc_reset_notif_cb_f_type *rpc_global_cb, 8034ee09551764b045fdc02df754157473125edf60Kevin Tang void* userData 8134ee09551764b045fdc02df754157473125edf60Kevin Tang); 8234ee09551764b045fdc02df754157473125edf60Kevin Tang 8334ee09551764b045fdc02df754157473125edf60Kevin Tangextern int32 loc_close 8434ee09551764b045fdc02df754157473125edf60Kevin Tang( 8534ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_client_handle_type handle 8634ee09551764b045fdc02df754157473125edf60Kevin Tang); 8734ee09551764b045fdc02df754157473125edf60Kevin Tang 8834ee09551764b045fdc02df754157473125edf60Kevin Tangextern void loc_clear 8934ee09551764b045fdc02df754157473125edf60Kevin Tang( 9034ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_client_handle_type handle 9134ee09551764b045fdc02df754157473125edf60Kevin Tang); 9234ee09551764b045fdc02df754157473125edf60Kevin Tang 9334ee09551764b045fdc02df754157473125edf60Kevin Tangextern int32 loc_start_fix 9434ee09551764b045fdc02df754157473125edf60Kevin Tang( 9534ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_client_handle_type handle 9634ee09551764b045fdc02df754157473125edf60Kevin Tang); 9734ee09551764b045fdc02df754157473125edf60Kevin Tang 9834ee09551764b045fdc02df754157473125edf60Kevin Tangextern int32 loc_stop_fix 9934ee09551764b045fdc02df754157473125edf60Kevin Tang( 10034ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_client_handle_type handle 10134ee09551764b045fdc02df754157473125edf60Kevin Tang); 10234ee09551764b045fdc02df754157473125edf60Kevin Tang 10334ee09551764b045fdc02df754157473125edf60Kevin Tangextern int32 loc_ioctl 10434ee09551764b045fdc02df754157473125edf60Kevin Tang( 10534ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_client_handle_type handle, 10634ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_ioctl_e_type ioctl_type, 10734ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_ioctl_data_u_type* ioctl_data 10834ee09551764b045fdc02df754157473125edf60Kevin Tang); 10934ee09551764b045fdc02df754157473125edf60Kevin Tang 11034ee09551764b045fdc02df754157473125edf60Kevin Tangextern int loc_eng_ioctl 11134ee09551764b045fdc02df754157473125edf60Kevin Tang( 11234ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_client_handle_type handle, 11334ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_ioctl_e_type ioctl_type, 11434ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_ioctl_data_u_type* ioctl_data_ptr, 11534ee09551764b045fdc02df754157473125edf60Kevin Tang uint32 timeout_msec, 11634ee09551764b045fdc02df754157473125edf60Kevin Tang rpc_loc_ioctl_callback_s_type *cb_data_ptr 11734ee09551764b045fdc02df754157473125edf60Kevin Tang); 11834ee09551764b045fdc02df754157473125edf60Kevin Tang 11934ee09551764b045fdc02df754157473125edf60Kevin Tang#ifdef __cplusplus 12034ee09551764b045fdc02df754157473125edf60Kevin Tang} 12134ee09551764b045fdc02df754157473125edf60Kevin Tang#endif 12234ee09551764b045fdc02df754157473125edf60Kevin Tang 12334ee09551764b045fdc02df754157473125edf60Kevin Tang#endif /* LOC_API_RPC_GLUE_H */ 124