Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a466c0d8 authored by Harout Hedeshian's avatar Harout Hedeshian
Browse files

net: msm_rmnet.h: Fix IOCTL numbering for newly introduced IOCTLs



Fix IOCTLs with invalid numbers. Addresses limitation in network
IOCTL code which prevents more than 16 user defined IOCTLs. All new
IOCTLs have been multiplexed into a single user defined ioctl. Required
to support RmNet Data features.

CRs-Fixed: 554883
Change-Id: Ic33bdf068f7e4014272d3b47ed7b07f5d4a6be2c
Signed-off-by: default avatarHarout Hedeshian <harouth@codeaurora.org>
parent 61a09d4a
Loading
Loading
Loading
Loading
+56 −34
Original line number Diff line number Diff line
@@ -30,27 +30,32 @@ enum rmnet_ioctl_cmds_e {
	RMNET_IOCTL_FLOW_ENABLE      = 0x000089FA, /* Flow enable            */
	RMNET_IOCTL_FLOW_DISABLE     = 0x000089FB, /* Flow disable           */
	RMNET_IOCTL_FLOW_SET_HNDL    = 0x000089FC, /* Set flow handle        */
/* RmNet Data Required IOCTLs */
	RMNET_IOCTL_GET_SUPPORTED_FEATURES   = 0x00008A00, /* Get features    */
	RMNET_IOCTL_SET_MRU                  = 0x00008A01, /* Set MRU         */
	RMNET_IOCTL_GET_MRU                  = 0x00008A02, /* Get MRU         */
	RMNET_IOCTL_GET_EPID                 = 0x00008A03, /* Get endpoint ID */
	RMNET_IOCTL_GET_DRIVER_NAME          = 0x00008A04, /* Get driver name */
	RMNET_IOCTL_ADD_MUX_CHANNEL          = 0x00008A05, /* Add MUX ID      */
	RMNET_IOCTL_SET_EGRESS_DATA_FORMAT   = 0x00008A06, /* Set EDF         */
	RMNET_IOCTL_SET_INGRESS_DATA_FORMAT  = 0x00008A07, /* Set IDF         */
	RMNET_IOCTL_SET_AGGREGATION_COUNT    = 0x00008A08, /* Set agg count   */
	RMNET_IOCTL_GET_AGGREGATION_COUNT    = 0x00008A09, /* Get agg count   */
	RMNET_IOCTL_SET_AGGREGATION_SIZE     = 0x00008A0A, /* Set agg size    */
	RMNET_IOCTL_GET_AGGREGATION_SIZE     = 0x00008A0B, /* Get agg size    */
	RMNET_IOCTL_FLOW_CONTROL             = 0x00008A0C, /* Do flow control */
	RMNET_IOCTL_GET_DFLT_CONTROL_CHANNEL = 0x00008A0D, /* For legacy use  */
	RMNET_IOCTL_GET_HWSW_MAP             = 0x00008A0E, /* Get HW/SW map   */
	RMNET_IOCTL_SET_RX_HEADROOM          = 0x00008A0F, /* RX Headroom     */
	RMNET_IOCTL_GET_EP_PAIR              = 0x00008A10, /* Endpoint pair   */
	RMNET_IOCTL_EXTENDED         = 0x000089FD, /* Extended IOCTLs        */
	RMNET_IOCTL_MAX
};

enum rmnet_ioctl_extended_cmds_e {
/* RmNet Data Required IOCTLs */
	RMNET_IOCTL_GET_SUPPORTED_FEATURES     = 0x0000,   /* Get features    */
	RMNET_IOCTL_SET_MRU                    = 0x0001,   /* Set MRU         */
	RMNET_IOCTL_GET_MRU                    = 0x0002,   /* Get MRU         */
	RMNET_IOCTL_GET_EPID                   = 0x0003,   /* Get endpoint ID */
	RMNET_IOCTL_GET_DRIVER_NAME            = 0x0004,   /* Get driver name */
	RMNET_IOCTL_ADD_MUX_CHANNEL            = 0x0005,   /* Add MUX ID      */
	RMNET_IOCTL_SET_EGRESS_DATA_FORMAT     = 0x0006,   /* Set EDF         */
	RMNET_IOCTL_SET_INGRESS_DATA_FORMAT    = 0x0007,   /* Set IDF         */
	RMNET_IOCTL_SET_AGGREGATION_COUNT      = 0x0008,   /* Set agg count   */
	RMNET_IOCTL_GET_AGGREGATION_COUNT      = 0x0009,   /* Get agg count   */
	RMNET_IOCTL_SET_AGGREGATION_SIZE       = 0x000A,   /* Set agg size    */
	RMNET_IOCTL_GET_AGGREGATION_SIZE       = 0x000B,   /* Get agg size    */
	RMNET_IOCTL_FLOW_CONTROL               = 0x000C,   /* Do flow control */
	RMNET_IOCTL_GET_DFLT_CONTROL_CHANNEL   = 0x000D,   /* For legacy use  */
	RMNET_IOCTL_GET_HWSW_MAP               = 0x000E,   /* Get HW/SW map   */
	RMNET_IOCTL_SET_RX_HEADROOM            = 0x000F,   /* RX Headroom     */
	RMNET_IOCTL_GET_EP_PAIR                = 0x0010,   /* Endpoint pair   */
	RMNET_IOCTL_EXTENDED_MAX               = 0x0011
};

/* Return values for the RMNET_IOCTL_GET_SUPPORTED_FEATURES IOCTL */
#define RMNET_IOCTL_FEAT_NOTIFY_MUX_CHANNEL              (1<<0)
#define RMNET_IOCTL_FEAT_SET_EGRESS_DATA_FORMAT          (1<<1)
@@ -75,22 +80,39 @@ enum rmnet_ioctl_cmds_e {
#define RMNET_IOCTL_INGRESS_FORMAT_DEMUXING            (1<<3)
#define RMNET_IOCTL_INGRESS_FORMAT_CHECKSUM            (1<<4)

/* User space may not have this defined. */
#ifndef IFNAMSIZ
#define IFNAMSIZ 16
#endif

struct rmnet_ioctl_extended_s {
	uint32_t   extended_ioctl;
	union {
		uint32_t data; /* Generic data field for most extended IOCTLs */

		/* Return values for
		 *    RMNET_IOCTL_GET_DRIVER_NAME
		 *    RMNET_IOCTL_GET_DFLT_CONTROL_CHANNEL */
		int8_t if_name[IFNAMSIZ];

		/* Input values for the RMNET_IOCTL_ADD_MUX_CHANNEL IOCTL */
struct rmnet_mux_val_s {
		struct {
			uint32_t  mux_id;
	const char   *vchannel_name;
};
			int8_t    vchannel_name[IFNAMSIZ];
		} rmnet_mux_val;

		/* Input values for the RMNET_IOCTL_FLOW_CONTROL IOCTL */
struct flow_control_prop_s {
		struct {
			uint8_t   flow_mode;
			uint8_t   mux_id;
};
		} flow_control_prop;

		/* Return values for RMNET_IOCTL_GET_EP_PAIR */
struct ipa_ep_pair_s {
		struct {
			uint32_t   consumer_pipe_num;
			uint32_t   producer_pipe_num;
		} ipa_ep_pair;
	} u;
};

/* QMI QoS header definition */