/*
 * Android driver interface
 *
 * This software may be distributed under the terms of the BSD license.
 * See README for more details.
 */

#ifndef ANDROID_DRV_H
#define ANDROID_DRV_H

#define WPA_EVENT_DRIVER_STATE "CTRL-EVENT-DRIVER-STATE "

#define MAX_SSID_LEN 32

#define MAX_DRV_CMD_SIZE		248
#define DRV_NUMBER_SEQUENTIAL_ERRORS	4

#define WEXT_PNOSETUP_HEADER		"PNOSETUP "
#define WEXT_PNOSETUP_HEADER_SIZE	9
#define WEXT_PNO_TLV_PREFIX		'S'
#define WEXT_PNO_TLV_VERSION		'1'
#define WEXT_PNO_TLV_SUBVERSION		'2'
#define WEXT_PNO_TLV_RESERVED		'0'
#define WEXT_PNO_VERSION_SIZE		4
#define WEXT_PNO_AMOUNT			16
#define WEXT_PNO_SSID_SECTION		'S'
/* SSID header size is SSID section type above + SSID length */
#define WEXT_PNO_SSID_HEADER_SIZE	2
#define WEXT_PNO_SCAN_INTERVAL_SECTION	'T'
#define WEXT_PNO_SCAN_INTERVAL_LENGTH	2
#define WEXT_PNO_SCAN_INTERVAL		30
/* Scan interval size is scan interval section type + scan interval length
 * above */
#define WEXT_PNO_SCAN_INTERVAL_SIZE	(1 + WEXT_PNO_SCAN_INTERVAL_LENGTH)
#define WEXT_PNO_REPEAT_SECTION		'R'
#define WEXT_PNO_REPEAT_LENGTH		1
#define WEXT_PNO_REPEAT			4
/* Repeat section size is Repeat section type + Repeat value length above */
#define WEXT_PNO_REPEAT_SIZE		(1 + WEXT_PNO_REPEAT_LENGTH)
#define WEXT_PNO_MAX_REPEAT_SECTION	'M'
#define WEXT_PNO_MAX_REPEAT_LENGTH	1
#define WEXT_PNO_MAX_REPEAT		3
/* Max Repeat section size is Max Repeat section type + Max Repeat value length
 * above */
#define WEXT_PNO_MAX_REPEAT_SIZE	(1 + WEXT_PNO_MAX_REPEAT_LENGTH)
/* This corresponds to the size of all sections expect SSIDs */
#define WEXT_PNO_NONSSID_SECTIONS_SIZE \
(WEXT_PNO_SCAN_INTERVAL_SIZE + WEXT_PNO_REPEAT_SIZE + WEXT_PNO_MAX_REPEAT_SIZE)
/* PNO Max command size is total of header, version, ssid and other sections +
 * Null termination */
#define WEXT_PNO_MAX_COMMAND_SIZE \
	(WEXT_PNOSETUP_HEADER_SIZE + WEXT_PNO_VERSION_SIZE \
	 + WEXT_PNO_AMOUNT * (WEXT_PNO_SSID_HEADER_SIZE + MAX_SSID_LEN) \
	 + WEXT_PNO_NONSSID_SECTIONS_SIZE + 1)

#endif /* ANDROID_DRV_H */
