15d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#ifndef __VOICE_SVC_H__ 25d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define __VOICE_SVC_H__ 35d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 45d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/types.h> 55d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/ioctl.h> 65d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 75d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VOICE_SVC_DRIVER_NAME "voice_svc" 85d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 95d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VOICE_SVC_MVM_STR "MVM" 105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define VOICE_SVC_CVS_STR "CVS" 115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_APR_SERVICE_NAME_LEN 64 125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSG_REGISTER 0x1 145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSG_REQUEST 0x2 155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MSG_RESPONSE 0x3 165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct voice_svc_write_msg { 185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 msg_type; 195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u8 payload[0]; 205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct voice_svc_register { 235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin char svc_name[MAX_APR_SERVICE_NAME_LEN]; 245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 src_port; 255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u8 reg_flag; 265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct voice_svc_cmd_response { 295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 src_port; 305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 dest_port; 315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 token; 325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 opcode; 335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 payload_size; 345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u8 payload[0]; 355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct voice_svc_cmd_request { 385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin char svc_name[MAX_APR_SERVICE_NAME_LEN]; 395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 src_port; 405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 dest_port; 415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 token; 425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 opcode; 435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u32 payload_size; 445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin __u8 payload[0]; 455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#endif 48