1 /* ///////////////////////////////////////////////////////////////////////// */
3 /* Copyright (c) Atmel Corporation. All rights reserved. */
5 /* Module Name: wilc_wlan_if.h */
8 /* ///////////////////////////////////////////////////////////////////////// */
10 #ifndef WILC_WLAN_IF_H
11 #define WILC_WLAN_IF_H
13 #include <linux/semaphore.h>
14 #include <linux/netdevice.h>
16 /********************************************
20 ********************************************/
22 #define N_INIT 0x00000001
23 #define N_ERR 0x00000002
24 #define N_TXQ 0x00000004
25 #define N_INTR 0x00000008
26 #define N_RXQ 0x00000010
28 /********************************************
30 * Host Interface Defines
32 ********************************************/
35 #define HIF_SPI BIT(0)
36 #define HIF_SDIO_GPIO_IRQ BIT(2)
38 /********************************************
40 * Tx/Rx Buffer Size Defines
42 ********************************************/
44 #define CE_TX_BUFFER_SIZE (64 * 1024)
45 #define CE_RX_BUFFER_SIZE (384 * 1024)
47 /********************************************
49 * Wlan Interface Defines
51 ********************************************/
72 #define WILC_MAC_INDICATE_STATUS 0x1
73 #define WILC_MAC_STATUS_INIT -1
74 #define WILC_MAC_STATUS_READY 0
75 #define WILC_MAC_STATUS_CONNECT 1
77 #define WILC_MAC_INDICATE_SCAN 0x2
79 struct tx_complete_data {
86 typedef void (*wilc_tx_complete_func_t)(void *, int);
88 #define WILC_TX_ERR_NO_BUF (-2)
90 /********************************************
92 * Wlan Configuration ID
94 ********************************************/
95 #define WILC_MULTICAST_TABLE_SIZE 8
96 #define MAX_SSID_LEN 33
97 #define MAX_RATES_SUPPORTED 12
101 EXT_SUPP_RATES_IE = 50,
102 HT_CAPABILITY_IE = 45,
132 B_ONLY_MODE = 0, /* 1, 2 M, otherwise 5, 11 M */
133 G_ONLY_MODE, /* 6,12,24 otherwise 9,18,36,48,54 */
134 G_MIXED_11B_1_MODE, /* 1,2,5.5,11 otherwise all on */
135 G_MIXED_11B_2_MODE, /* 1,2,5,11,6,12,24 otherwise all on */
136 } G_OPERATING_MODE_T;
139 G_SHORT_PREAMBLE = 0, /* Short Preamble */
140 G_LONG_PREAMBLE = 1, /* Long Preamble */
141 G_AUTO_PREAMBLE = 2, /* Auto Preamble Selection */
144 #define MAC_CONNECTED 1
145 #define MAC_DISCONNECTED 0
147 #define SCAN_DONE TRUE
163 CHIP_SLEEPING_AUTO = 1,
164 CHIP_SLEEPING_MANUAL = 2
169 ACQUIRE_AND_WAKEUP = 1,
174 RELEASE_ALLOW_SLEEP = 1,
183 WPA_AES_TKIP = 0x69, /* Aes or Tkip */
186 WPA2_AES_TKIP = 0x71, /* Aes or Tkip */
198 SITE_SURVEY_ALL_CH = 1,
218 } RSNA_REKEY_POLICY_T;
222 FILTER_AP_ONLY = 0x01,
223 FILTER_STA_ONLY = 0x02
224 } SCAN_CLASS_FITLER_T;
227 PRI_HIGH_RSSI = 0x00,
233 CH_FILTER_OFF = 0x00,
238 AUTO_PROT = 0, /* Auto */
239 NO_PROT, /* Do not use any protection */
240 ERP_PROT, /* Protect all ERP frame exchanges */
241 HT_PROT, /* Protect all HT frame exchanges */
242 GF_PROT, /* Protect all GF frame exchanges */
243 } N_PROTECTION_MODE_T;
248 } G_PROTECTION_MODE_T;
253 HT_ONLY_20_40MHZ_MODE,
254 } N_OPERATING_MODE_T;
260 DETECT_PROTECT_REPORT = 3,
261 } N_OBSS_DETECTION_T;
264 RTS_CTS_NONHT_PROT = 0, /* RTS-CTS at non-HT rate */
265 FIRST_FRAME_NONHT_PROT, /* First frame at non-HT rate */
266 LSIG_TXOP_PROT, /* LSIG TXOP Protection */
267 FIRST_FRAME_MIXED_PROT, /* First frame at Mixed format */
268 } N_PROTECTION_TYPE_T;
273 MIMO_MODE = 3, /* power save disable */
295 WID_TYPE_FORCE_32BIT = 0xFFFFFFFF
310 * -----------------------------------------------------------
311 * Configuration : Infrastructure Independent Access Point
312 * Values to set : 0 1 2
313 * -----------------------------------------------------------
315 WID_BSS_TYPE = 0x0000,
319 * -----------------------------------------------------------
320 * Configuration : 1 2 5.5 11 6 9 12 18 24 36 48 54
321 * Values to set : 1 2 5 11 6 9 12 18 24 36 48 54
322 * -----------------------------------------------------------
324 WID_CURRENT_TX_RATE = 0x0001,
328 * -----------------------------------------------------------
329 * Configuration(g) : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
330 * Values to set : 1 2 3 4 5 6 7 8 9 10 11 12 13 14
331 * -----------------------------------------------------------
333 WID_CURRENT_CHANNEL = 0x0002,
337 * -----------------------------------------------------------
338 * Configuration : short long Auto
339 * Values to set : 0 1 2
340 * -----------------------------------------------------------
342 WID_PREAMBLE = 0x0003,
345 * 11g operating mode (ignored if 11g not present)
346 * -----------------------------------------------------------
347 * Configuration : HighPerf Compat(RSet #1) Compat(RSet #2)
348 * Values to set : 1 2 3
349 * -----------------------------------------------------------
351 WID_11G_OPERATING_MODE = 0x0004,
354 * Mac status (response only)
355 * -----------------------------------------------------------
356 * Configuration : disconnect connect
357 * Values to get : 0 1
358 * -----------------------------------------------------------
364 * -----------------------------------------------------------
365 * Configuration : Passive Scanning Active Scanning
366 * Values to set : 0 1
367 * -----------------------------------------------------------
369 WID_SCAN_TYPE = 0x0007,
372 * Key Id (WEP default key Id)
373 * -----------------------------------------------------------
374 * Configuration : Any value between 0 to 3
375 * Values to set : Same value. Default is 0
376 * -----------------------------------------------------------
382 * -----------------------------------------------------------
383 * Configuration : QoS Disable WMM Enable
384 * Values to set : 0 1
385 * -----------------------------------------------------------
387 WID_QOS_ENABLE = 0x000A,
391 * -----------------------------------------------------------
392 * Configuration : NO_POWERSAVE MIN_POWERSAVE MAX_POWERSAVE
393 * Values to set : 0 1 2
394 * -----------------------------------------------------------
396 WID_POWER_MANAGEMENT = 0x000B,
399 * WEP/802 11I Configuration
400 * -----------------------------------------------------------
401 * Configuration:Disable WP40 WP104 WPA-AES WPA-TKIP RSN-AES RSN-TKIP
402 * Values (0x) : 00 03 07 29 49 31 51
403 * Configuration:WPA-AES+TKIP RSN-AES+TKIP
404 * Values (0x) : 69 71
405 * -----------------------------------------------------------
407 WID_11I_MODE = 0x000C,
410 * WEP Configuration: Used in BSS STA mode only when WEP is enabled
411 * -----------------------------------------------------------
412 * Configuration : Open System Shared Key Any Type | 802.1x Auth
413 * Values (0x) : 01 02 03 | BIT2
414 * -----------------------------------------------------------
416 WID_AUTH_TYPE = 0x000D,
420 * -----------------------------------------------------------
421 * Configuration : Values to set
422 * Survey 1 Channel : 0
423 * survey all Channels : 1
424 * Disable Site Survey : 2
425 * -----------------------------------------------------------
427 WID_SITE_SURVEY = 0x000E,
431 * -----------------------------------------------------------
432 * Configuration : Any value between 1 to 255
433 * Values to set : Same value. Default is 3
434 * -----------------------------------------------------------
436 WID_LISTEN_INTERVAL = 0x000F,
440 * -----------------------------------------------------------
441 * Configuration : Any value between 1 to 255
442 * Values to set : Same value. Default is 3
443 * -----------------------------------------------------------
445 WID_DTIM_PERIOD = 0x0010,
449 * -----------------------------------------------------------
450 * Configuration : Normal Ack No Ack
451 * Values to set : 0 1
452 * -----------------------------------------------------------
454 WID_ACK_POLICY = 0x0011,
457 * Reset MAC (Set only)
458 * -----------------------------------------------------------
459 * Configuration : Don't Reset Reset No Request
460 * Values to set : 0 1 2
461 * -----------------------------------------------------------
466 * Broadcast SSID Option: Setting this will adhere to "" SSID element
467 * -----------------------------------------------------------
468 * Configuration : Enable Disable
469 * Values to set : 1 0
470 * -----------------------------------------------------------
472 WID_BCAST_SSID = 0x0015,
475 * Disconnect (Station)
476 * -----------------------------------------------------------
477 * Configuration : Association ID
478 * Values to set : Association ID
479 * -----------------------------------------------------------
481 WID_DISCONNECT = 0x0016,
485 * -----------------------------------------------------------
486 * Configuration : Sets TX Power (Higher the value greater the power)
487 * Values to set : Any value between 0 and 63 (inclusive Default 48)
488 * -----------------------------------------------------------
490 WID_TX_POWER_LEVEL_11A = 0x0018,
493 * Group Key Update Policy Selection
494 * -----------------------------------------------------------
495 * Configuration : Disabled timeBased packetBased timePacketBased
496 * Values to set : 1 2 3 4
497 * -----------------------------------------------------------
499 WID_REKEY_POLICY = 0x0019,
503 * -----------------------------------------------------------
504 * Configuration : Disallow Short Slot Allow Short Slot
505 * (Enable Only Long Slot) (Enable Short Slot if applicable)
506 * Values to set : 0 1
507 * -----------------------------------------------------------
509 WID_SHORT_SLOT_ALLOWED = 0x001A,
511 WID_PHY_ACTIVE_REG = 0x001B,
515 * -----------------------------------------------------------
516 * Configuration : Sets TX Power (Higher the value greater the power)
517 * Values to set : Any value between 0 and 63 (inclusive Default 48)
518 * -----------------------------------------------------------
520 WID_TX_POWER_LEVEL_11B = 0x001D,
524 * -----------------------------------------------------------
525 * Configuration : Request default scan
527 * -----------------------------------------------------------
529 WID_START_SCAN_REQ = 0x001E,
533 * -----------------------------------------------------------
535 * Values to get : Rssi value
536 * -----------------------------------------------------------
542 * -----------------------------------------------------------
543 * Configuration : Request to join
544 * Values to set : index of scan result
545 * -----------------------------------------------------------
547 WID_JOIN_REQ = 0x0020,
549 WID_LINKSPEED = 0x0026,
552 * Enable User Control of TX Power
553 * -----------------------------------------------------------
554 * Configuration : Disable Enable
555 * Values to set : 0 1
556 * -----------------------------------------------------------
558 WID_USER_CONTROL_ON_TX_POWER = 0x0027,
560 WID_MEMORY_ACCESS_8BIT = 0x0029,
563 * Enable Auto RX Sensitivity feature
564 * -----------------------------------------------------------
565 * Configuration : Disable Enable
566 * Values to set : 0 1
567 * -----------------------------------------------------------
569 WID_AUTO_RX_SENSITIVITY = 0x0032,
572 * Receive Buffer Based Ack
573 * -----------------------------------------------------------
574 * Configuration : Disable Enable
575 * Values to set : 0 1
576 * -----------------------------------------------------------
578 WID_DATAFLOW_CONTROL = 0x0033,
582 * -----------------------------------------------------------
583 * Configuration : Class No filter AP only Station Only
584 * Values to set : 0 1 2
585 * Configuration : Priority High Rssi Low Rssi Detect
586 * Values to set : 0 0x4 0x0
587 * Configuration : Channel filter off filter on
588 * Values to set : 0 0x10
589 * -----------------------------------------------------------
591 WID_SCAN_FILTER = 0x0036,
594 * Link Loss Threshold (measure in the beacon period)
595 * -----------------------------------------------------------
596 * Configuration : Any value between 10 and 254(Set to 255 disable)
597 * Values to set : Same value. Default is 10
598 * -----------------------------------------------------------
600 WID_LINK_LOSS_THRESHOLD = 0x0037,
602 WID_ABORT_RUNNING_SCAN = 0x003E,
604 /* NMAC Character WID list */
605 WID_WPS_START = 0x0043,
608 * Protection mode for MAC
609 * -----------------------------------------------------------
610 * Configuration : Auto No protection ERP HT GF
611 * Values to set : 0 1 2 3 4
612 * -----------------------------------------------------------
614 WID_11N_PROT_MECH = 0x0080,
617 * ERP Protection type for MAC
618 * -----------------------------------------------------------
619 * Configuration : Self-CTS RTS-CTS
620 * Values to set : 0 1
621 * -----------------------------------------------------------
623 WID_11N_ERP_PROT_TYPE = 0x0081,
627 * -----------------------------------------------------------
628 * Configuration : HT Enable HT Disable
629 * Values to set : 1 0
630 * -----------------------------------------------------------
632 WID_11N_ENABLE = 0x0082,
635 * 11n Operating mode (Note that 11g operating mode will also be
636 * used in addition to this, if this is set to HT Mixed mode)
637 * -----------------------------------------------------------
638 * Configuration : HT Mixed HT Only-20MHz HT Only-20/40MHz
639 * Values to set : 1 2 3
640 * -----------------------------------------------------------
642 WID_11N_OPERATING_MODE = 0x0083,
645 * 11n OBSS non-HT STA Detection flag
646 * -----------------------------------------------------------
647 * Configuration : Do not detect
649 * Configuration : Detect, do not protect or report
651 * Configuration : Detect, protect and do not report
653 * Configuration : Detect, protect and report to other BSS
655 * -----------------------------------------------------------
657 WID_11N_OBSS_NONHT_DETECTION = 0x0084,
660 * 11n HT Protection Type
661 * -----------------------------------------------------------
662 * Configuration : RTS-CTS First Frame Exchange at non-HT-rate
663 * Values to set : 0 1
664 * Configuration : LSIG TXOP First Frame Exchange in Mixed Fmt
665 * Values to set : 2 3
666 * -----------------------------------------------------------
668 WID_11N_HT_PROT_TYPE = 0x0085,
671 * 11n RIFS Protection Enable Flag
672 * -----------------------------------------------------------
673 * Configuration : Disable Enable
674 * Values to set : 0 1
675 * -----------------------------------------------------------
677 WID_11N_RIFS_PROT_ENABLE = 0x0086,
681 * -----------------------------------------------------------
682 * Configuration : Static Dynamic MIMO (Power Save Disabled)
683 * Values to set : 1 2 3
684 * -----------------------------------------------------------
686 WID_11N_SMPS_MODE = 0x0087,
689 * Current transmit MCS
690 * -----------------------------------------------------------
691 * Configuration : MCS Index for data rate
692 * Values to set : 0 to 7
693 * -----------------------------------------------------------
695 WID_11N_CURRENT_TX_MCS = 0x0088,
697 WID_11N_PRINT_STATS = 0x0089,
700 * 11n Short GI Enable Flag
701 * -----------------------------------------------------------
702 * Configuration : Disable Enable
703 * Values to set : 0 1
704 * -----------------------------------------------------------
706 WID_11N_SHORT_GI_ENABLE = 0x008D,
709 * 11n RIFS Enable Flag
710 * -----------------------------------------------------------
711 * Configuration : Disable Enable
712 * Values to set : 0 1
713 * -----------------------------------------------------------
715 WID_RIFS_MODE = 0x0094,
719 * -----------------------------------------------------------
720 * Configuration : Disable Self CTS Enable Self CTS
721 * Values to set : 0 1
722 * Configuration : Disable TX Abort Enable TX Abort
723 * Values to set : 2 3
724 * Configuration : Enable HW TX Abort Enable SW TX Abort
725 * Values to set : 4 5
726 * -----------------------------------------------------------
728 WID_TX_ABORT_CONFIG = 0x00A1,
730 WID_REG_TSSI_11B_VALUE = 0x00A6,
731 WID_REG_TSSI_11G_VALUE = 0x00A7,
732 WID_REG_TSSI_11N_VALUE = 0x00A8,
733 WID_TX_CALIBRATION = 0x00A9,
734 WID_DSCR_TSSI_11B_VALUE = 0x00AA,
735 WID_DSCR_TSSI_11G_VALUE = 0x00AB,
736 WID_DSCR_TSSI_11N_VALUE = 0x00AC,
739 * Immediate Block-Ack Support
740 * -----------------------------------------------------------
741 * Configuration : Disable Enable
742 * Values to set : 0 1
743 * -----------------------------------------------------------
745 WID_11N_IMMEDIATE_BA_ENABLED = 0x00AF,
749 * -----------------------------------------------------------
750 * Configuration : Disable Enable
751 * Values to set : 1 0
752 * -----------------------------------------------------------
754 WID_11N_TXOP_PROT_DISABLE = 0x00B0,
756 WID_TX_POWER_LEVEL_11N = 0x00B1,
758 /* Custom Character WID list */
759 WID_PC_TEST_MODE = 0x00C8,
760 /* SCAN Complete notification WID*/
761 WID_SCAN_COMPLETE = 0x00C9,
763 WID_DEL_BEACON = 0x00CA,
765 WID_LOGTerminal_Switch = 0x00CD,
766 WID_TX_POWER = 0x00CE,
767 /* EMAC Short WID list */
770 * -----------------------------------------------------------
771 * Configuration : Any value between 256 to 2347
772 * Values to set : Same value. Default is 2347
773 * -----------------------------------------------------------
775 WID_RTS_THRESHOLD = 0x1000,
778 * Fragmentation Threshold
779 * -----------------------------------------------------------
780 * Configuration : Any value between 256 to 2346
781 * Values to set : Same value. Default is 2346
782 * -----------------------------------------------------------
784 WID_FRAG_THRESHOLD = 0x1001,
786 WID_SHORT_RETRY_LIMIT = 0x1002,
787 WID_LONG_RETRY_LIMIT = 0x1003,
788 WID_BEACON_INTERVAL = 0x1006,
789 WID_MEMORY_ACCESS_16BIT = 0x1008,
790 WID_RX_SENSE = 0x100B,
791 WID_ACTIVE_SCAN_TIME = 0x100C,
792 WID_PASSIVE_SCAN_TIME = 0x100D,
794 WID_SITE_SURVEY_SCAN_TIME = 0x100E,
795 WID_JOIN_START_TIMEOUT = 0x100F,
796 WID_AUTH_TIMEOUT = 0x1010,
797 WID_ASOC_TIMEOUT = 0x1011,
798 WID_11I_PROTOCOL_TIMEOUT = 0x1012,
799 WID_EAPOL_RESPONSE_TIMEOUT = 0x1013,
801 /* NMAC Short WID list */
802 WID_11N_SIG_QUAL_VAL = 0x1085,
803 WID_CCA_THRESHOLD = 0x1087,
805 /* Custom Short WID list */
807 /* EMAC Integer WID list */
808 WID_FAILED_COUNT = 0x2000,
809 WID_RETRY_COUNT = 0x2001,
810 WID_MULTIPLE_RETRY_COUNT = 0x2002,
811 WID_FRAME_DUPLICATE_COUNT = 0x2003,
812 WID_ACK_FAILURE_COUNT = 0x2004,
813 WID_RECEIVED_FRAGMENT_COUNT = 0x2005,
814 WID_MCAST_RECEIVED_FRAME_COUNT = 0x2006,
815 WID_FCS_ERROR_COUNT = 0x2007,
816 WID_SUCCESS_FRAME_COUNT = 0x2008,
817 WID_HUT_TX_COUNT = 0x200A,
818 WID_TX_FRAGMENT_COUNT = 0x200B,
819 WID_TX_MULTICAST_FRAME_COUNT = 0x200C,
820 WID_RTS_SUCCESS_COUNT = 0x200D,
821 WID_RTS_FAILURE_COUNT = 0x200E,
822 WID_WEP_UNDECRYPTABLE_COUNT = 0x200F,
823 WID_REKEY_PERIOD = 0x2010,
824 WID_REKEY_PACKET_COUNT = 0x2011,
825 WID_1X_SERV_ADDR = 0x2012,
826 WID_STACK_IP_ADDR = 0x2013,
827 WID_STACK_NETMASK_ADDR = 0x2014,
828 WID_HW_RX_COUNT = 0x2015,
829 WID_MEMORY_ADDRESS = 0x201E,
830 WID_MEMORY_ACCESS_32BIT = 0x201F,
831 WID_RF_REG_VAL = 0x2021,
833 /* NMAC Integer WID list */
834 WID_11N_PHY_ACTIVE_REG_VAL = 0x2080,
836 /* Custom Integer WID list */
837 WID_GET_INACTIVE_TIME = 0x2084,
838 WID_SET_OPERATION_MODE = 0X2086,
839 /* EMAC String WID list */
841 WID_FIRMWARE_VERSION = 0x3001,
842 WID_OPERATIONAL_RATE_SET = 0x3002,
844 WID_WEP_KEY_VALUE = 0x3004,
845 WID_11I_PSK = 0x3008,
846 WID_11E_P_ACTION_REQ = 0x3009,
848 WID_HARDWARE_VERSION = 0x300B,
849 WID_MAC_ADDR = 0x300C,
850 WID_HUT_DEST_ADDR = 0x300D,
851 WID_PHY_VERSION = 0x300F,
852 WID_SUPP_USERNAME = 0x3010,
853 WID_SUPP_PASSWORD = 0x3011,
854 WID_SITE_SURVEY_RESULTS = 0x3012,
855 WID_RX_POWER_LEVEL = 0x3013,
856 WID_DEL_ALL_RX_BA = 0x3014,
857 WID_SET_STA_MAC_INACTIVE_TIME = 0x3017,
858 WID_ADD_WEP_KEY = 0x3019,
859 WID_REMOVE_WEP_KEY = 0x301A,
860 WID_ADD_PTK = 0x301B,
861 WID_ADD_RX_GTK = 0x301C,
862 WID_ADD_TX_GTK = 0x301D,
863 WID_REMOVE_KEY = 0x301E,
864 WID_ASSOC_REQ_INFO = 0x301F,
865 WID_ASSOC_RES_INFO = 0x3020,
866 WID_MANUFACTURER = 0x3026, /*Added for CAPI tool */
867 WID_MODEL_NAME = 0x3027, /*Added for CAPI tool */
868 WID_MODEL_NUM = 0x3028, /*Added for CAPI tool */
869 WID_DEVICE_NAME = 0x3029, /*Added for CAPI tool */
870 WID_SET_DRV_HANDLER = 0x3030,
872 /* NMAC String WID list */
873 WID_11N_P_ACTION_REQ = 0x3080,
874 WID_HUT_TEST_ID = 0x3081,
875 WID_PMKID_INFO = 0x3082,
876 WID_FIRMWARE_INFO = 0x3083,
877 WID_REGISTER_FRAME = 0x3084,
878 WID_DEL_ALL_STA = 0x3085,
879 WID_REMAIN_ON_CHAN = 0x3996,
880 WID_SSID_PROBE_REQ = 0x3997,
881 WID_JOIN_REQ_EXTENDED = 0x3998,
883 WID_IP_ADDRESS = 0x3999,
885 /* Custom String WID list */
887 /* EMAC Binary WID list */
888 WID_UAPSD_CONFIG = 0x4001,
889 WID_UAPSD_STATUS = 0x4002,
890 WID_WMM_AP_AC_PARAMS = 0x4003,
891 WID_WMM_STA_AC_PARAMS = 0x4004,
892 WID_NETWORK_INFO = 0x4005,
893 WID_STA_JOIN_INFO = 0x4006,
894 WID_CONNECTED_STA_LIST = 0x4007,
896 /* NMAC Binary WID list */
897 WID_11N_AUTORATE_TABLE = 0x4080,
899 WID_SCAN_CHANNEL_LIST = 0x4084,
901 WID_INFO_ELEMENT_PROBE = 0x4085,
902 WID_INFO_ELEMENT_ASSOCIATE = 0x4086,
903 WID_ADD_STA = 0X4087,
904 WID_REMOVE_STA = 0X4088,
905 WID_EDIT_STA = 0X4089,
906 WID_ADD_BEACON = 0x408a,
908 WID_SETUP_MULTICAST_FILTER = 0x408b,
910 /* Miscellaneous WIDs */
916 int wilc_wlan_init(struct net_device *dev);
917 u32 wilc_get_chipid(struct wilc *wilc, bool update);