android_kernel_lge_bullhead/drivers/soc/qcom/glink_loopback_commands.h

94 lines
1.8 KiB
C

/* Copyright (c) 2014, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _GLINK_LOOPBACK_COMMANDS_H_
#define _GLINK_LOOPBACK_COMMANDS_H_
#define MAX_NAME_LEN 32
enum request_type {
OPEN = 1,
CLOSE,
QUEUE_RX_INTENT_CONFIG,
TX_CONFIG,
RX_DONE_CONFIG,
};
struct req_hdr {
uint32_t req_id;
uint32_t req_type;
uint32_t req_size;
};
struct open_req {
uint32_t delay_ms;
uint32_t name_len;
char ch_name[MAX_NAME_LEN];
};
struct close_req {
uint32_t delay_ms;
uint32_t name_len;
char ch_name[MAX_NAME_LEN];
};
struct queue_rx_intent_config_req {
uint32_t num_intents;
uint32_t intent_size;
uint32_t random_delay;
uint32_t delay_ms;
uint32_t name_len;
char ch_name[MAX_NAME_LEN];
};
enum transform_type {
NO_TRANSFORM = 0,
PACKET_COUNT,
CHECKSUM,
};
struct tx_config_req {
uint32_t random_delay;
uint32_t delay_ms;
uint32_t echo_count;
uint32_t transform_type;
uint32_t name_len;
char ch_name[MAX_NAME_LEN];
};
struct rx_done_config_req {
uint32_t random_delay;
uint32_t delay_ms;
uint32_t name_len;
char ch_name[MAX_NAME_LEN];
};
union req_payload {
struct open_req open;
struct close_req close;
struct queue_rx_intent_config_req q_rx_int_conf;
struct tx_config_req tx_conf;
struct rx_done_config_req rx_done_conf;
};
struct req {
struct req_hdr hdr;
union req_payload payload;
};
struct resp {
uint32_t req_id;
uint32_t req_type;
uint32_t response;
};
#endif