blob: 2f8c39ba57592afeb39367aa06f1211166a92d81 [file] [log] [blame]
/* Copyright Statement:
* This software/firmware and related documentation ("MediaTek Software") are
* protected under relevant copyright laws. The information contained herein is
* confidential and proprietary to MediaTek Inc. and/or its licensors. Without
* the prior written permission of MediaTek inc. and/or its licensors, any
* reproduction, modification, use or disclosure of MediaTek Software, and
* information contained herein, in whole or in part, shall be strictly
* prohibited.
* MediaTek Inc. (C) 2015. All rights reserved.
* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
* ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
* WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
* RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
* INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
* TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
* RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
* OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
* SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
* RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
* STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
* ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
* RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
* MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
* CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*/
#ifndef __REQUEST_H__
#define __REQUEST_H__
/*******************************************************************************/
/* REQUEST definitions */
/*******************************************************************************/
#define SNCFG_REQUEST_MAGIC 0x2287
#define SNCFG_REQUEST_FOLDER "/tmp/prop"
#define SNCFG_REQUEST_UNIX_SOCKET "/tmp/prop/sncfg.socket"
#ifdef __MEM_COSTDOWN__
#define SNCFG_REQUEST_MAX_SIZE 512
#else
#define SNCFG_REQUEST_MAX_SIZE 4096
#endif
/*******************************************************************************/
/* REQUEST prototypes */
/*******************************************************************************/
enum {
SNCFG_REQUEST_TYPE_PROP_SET,
SNCFG_REQUEST_TYPE_PROP_GET,
SNCFG_REQUEST_TYPE_PROP_RELOAD,
SNCFG_REQUEST_TYPE_PROP_DEBUG,
SNCFG_REQUEST_TYPE_PROP_CTRLSTOP_SIGNAL,
SNCFG_REQUEST_TYPE_PROP_TEST,
SNCFG_REQUEST_TYPE_RESERVED
};
struct sncfg_request {
unsigned short magic;
unsigned short type;
int status;
int reservedLen;
char *key;
char *value;
char string[SNCFG_REQUEST_MAX_SIZE]; /* enough ?? */
};
struct request_list {
struct request_list *prev, *next;
};
struct req {
struct request_list next;
int sock;
int child_pid;
struct sncfg_request request;
};
/*******************************************************************************/
/* REQUEST variables */
/*******************************************************************************/
/*******************************************************************************/
/* REQUEST functions */
/*******************************************************************************/
extern int pack_request(struct sncfg_request *request);
extern int unpack_request(struct sncfg_request *request, int size);
extern int connect_request(void);
extern int accept_request(int sockfd);
extern int request_for_sncfg(struct sncfg_request *request);
#endif // __REQUEST_H__