#define COSTS_LIST_SIZE			4

/* iwpriv places the subcmd number in the first uint32_t;
   data buffer follows that */
#define SUBCMD_OFFSET			sizeof(uint32_t)
#define SUBCMD_DATA(x)			*((int *)(x->u.name + SUBCMD_OFFSET))

/** Private ioctls and ioctls subcommands */
#define LBS_SETNONE_GETNONE			(SIOCIWFIRSTPRIV + 8)
#define LBS_SUBCMD_BT_RESET			13
#define LBS_SUBCMD_FWT_RESET			14

#define LBS_SETNONE_GETONEINT			(SIOCIWFIRSTPRIV + 15)
#define LBS_SUBCMD_GET_REGION			1
#define LBS_SUBCMD_FWT_CLEANUP			15
#define LBS_SUBCMD_FWT_TIME			16
#define LBS_SUBCMD_MESH_GET_TTL			17
#define LBS_SUBCMD_BT_GET_INVERT		18
#define LBS_SUBCMD_MESH_GET_BCAST_RATE		19
#define LBS_SUBCMD_MESH_GET_RREQ_DELAY		20
#define LBS_SUBCMD_MESH_GET_ROUTE_EXP		21

#define LBS_SETONEINT_GETNONE			(SIOCIWFIRSTPRIV + 24)
#define LBS_SUBCMD_SET_REGION			8
#define LBS_SUBCMD_MESH_SET_TTL			18
#define LBS_SUBCMD_BT_SET_INVERT		19
#define LBS_SUBCMD_MESH_SET_BCAST_RATE		20
#define LBS_SUBCMD_MESH_SET_RREQ_DELAY		21
#define LBS_SUBCMD_MESH_SET_ROUTE_EXP		22

#define LBS_SET128CHAR_GET128CHAR		(SIOCIWFIRSTPRIV + 25)
#define LBS_SUBCMD_BT_ADD			18
#define LBS_SUBCMD_BT_DEL			19
#define LBS_SUBCMD_BT_LIST			20
#define LBS_SUBCMD_FWT_ADD			21
#define LBS_SUBCMD_FWT_DEL			22
#define LBS_SUBCMD_FWT_LOOKUP			23
#define LBS_SUBCMD_FWT_LIST_NEIGHBOR		24
#define LBS_SUBCMD_FWT_LIST			25
#define LBS_SUBCMD_FWT_LIST_ROUTE		26
#define LBS_SUBCMD_MESH_SET_LINK_COSTS		27
#define LBS_SUBCMD_MESH_GET_LINK_COSTS		28

#define LBS_SET_GET_SIXTEEN_INT			(SIOCIWFIRSTPRIV + 29)
#define LBS_LED_GPIO_CTRL			5
#define LBS_BCN_CTRL				6
#define LBS_LED_BEHAVIOR_CTRL			7

int lbs_do_ioctl(struct net_device *dev, struct ifreq *req, int i);
