REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			408 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			408 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This file defines the EFI Wireless MAC Connection II Protocol.
 | |
| 
 | |
|   Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
|   @par Revision Reference:
 | |
|   This Protocol is introduced in UEFI Specification 2.6
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __EFI_WIFI2_PROTOCOL_H__
 | |
| #define __EFI_WIFI2_PROTOCOL_H__
 | |
| 
 | |
| #define EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL_GUID \
 | |
|   { \
 | |
|     0x1b0fb9bf, 0x699d, 0x4fdd, { 0xa7, 0xc3, 0x25, 0x46, 0x68, 0x1b, 0xf6, 0x3b } \
 | |
|   }
 | |
| 
 | |
| typedef struct _EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_BSS_TYPE
 | |
| ///
 | |
| typedef enum {
 | |
|   IeeeInfrastructureBSS,
 | |
|   IeeeIndependentBSS,
 | |
|   IeeeMeshBSS,
 | |
|   IeeeAnyBss
 | |
| } EFI_80211_BSS_TYPE;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_CONNECT_NETWORK_RESULT_CODE
 | |
| ///
 | |
| typedef enum {
 | |
|   //
 | |
|   // The connection establishment operation finished successfully.
 | |
|   //
 | |
|   ConnectSuccess,
 | |
|   //
 | |
|   // The connection was refused by the Network.
 | |
|   //
 | |
|   ConnectRefused,
 | |
|   //
 | |
|   // The connection establishment operation failed (i.e, Network is not
 | |
|   // detected).
 | |
|   //
 | |
|   ConnectFailed,
 | |
|   //
 | |
|   // The connection establishment operation was terminated on timeout.
 | |
|   //
 | |
|   ConnectFailureTimeout,
 | |
|   //
 | |
|   // The connection establishment operation failed on other reason.
 | |
|   //
 | |
|   ConnectFailedReasonUnspecified
 | |
| } EFI_80211_CONNECT_NETWORK_RESULT_CODE;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_MAC_ADDRESS
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT8    Addr[6];
 | |
| } EFI_80211_MAC_ADDRESS;
 | |
| 
 | |
| #define EFI_MAX_SSID_LEN  32
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_SSID
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // Length in bytes of the SSId. If zero, ignore SSId field.
 | |
|   //
 | |
|   UINT8    SSIdLen;
 | |
|   //
 | |
|   // Specifies the service set identifier.
 | |
|   //
 | |
|   UINT8    SSId[EFI_MAX_SSID_LEN];
 | |
| } EFI_80211_SSID;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_GET_NETWORKS_DATA
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // The number of EFI_80211_SSID in SSIDList. If zero, SSIDList should be
 | |
|   // ignored.
 | |
|   //
 | |
|   UINT32            NumOfSSID;
 | |
|   //
 | |
|   // The SSIDList is a pointer to an array of EFI_80211_SSID instances. The
 | |
|   // number of entries is specified by NumOfSSID. The array should only include
 | |
|   // SSIDs of hidden networks. It is suggested that the caller inputs less than
 | |
|   // 10 elements in the SSIDList. It is the caller's responsibility to free
 | |
|   // this buffer.
 | |
|   //
 | |
|   EFI_80211_SSID    SSIDList[1];
 | |
| } EFI_80211_GET_NETWORKS_DATA;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_SUITE_SELECTOR
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // Organization Unique Identifier, as defined in IEEE 802.11 standard,
 | |
|   // usually set to 00-0F-AC.
 | |
|   //
 | |
|   UINT8    Oui[3];
 | |
|   //
 | |
|   // Suites types, as defined in IEEE 802.11 standard.
 | |
|   //
 | |
|   UINT8    SuiteType;
 | |
| } EFI_80211_SUITE_SELECTOR;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_AKM_SUITE_SELECTOR
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // Indicates the number of AKM suite selectors that are contained in
 | |
|   // AKMSuiteList. If zero, the AKMSuiteList is ignored.
 | |
|   //
 | |
|   UINT16                      AKMSuiteCount;
 | |
|   //
 | |
|   // A variable-length array of AKM suites, as defined in IEEE 802.11 standard,
 | |
|   // Table 8-101. The number of entries is specified by AKMSuiteCount.
 | |
|   //
 | |
|   EFI_80211_SUITE_SELECTOR    AKMSuiteList[1];
 | |
| } EFI_80211_AKM_SUITE_SELECTOR;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_CIPHER_SUITE_SELECTOR
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // Indicates the number of cipher suites that are contained in
 | |
|   // CipherSuiteList. If zero, the CipherSuiteList is ignored.
 | |
|   //
 | |
|   UINT16                      CipherSuiteCount;
 | |
|   //
 | |
|   // A variable-length array of cipher suites, as defined in IEEE 802.11
 | |
|   // standard, Table 8-99. The number of entries is specified by
 | |
|   // CipherSuiteCount.
 | |
|   //
 | |
|   EFI_80211_SUITE_SELECTOR    CipherSuiteList[1];
 | |
| } EFI_80211_CIPHER_SUITE_SELECTOR;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_NETWORK
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // Specifies the type of the BSS.
 | |
|   //
 | |
|   EFI_80211_BSS_TYPE                 BSSType;
 | |
|   //
 | |
|   // Specifies the SSID of the BSS.
 | |
|   //
 | |
|   EFI_80211_SSID                     SSId;
 | |
|   //
 | |
|   // Pointer to the AKM suites supported in the wireless network.
 | |
|   //
 | |
|   EFI_80211_AKM_SUITE_SELECTOR       *AKMSuite;
 | |
|   //
 | |
|   // Pointer to the cipher suites supported in the wireless network.
 | |
|   //
 | |
|   EFI_80211_CIPHER_SUITE_SELECTOR    *CipherSuite;
 | |
| } EFI_80211_NETWORK;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_NETWORK_DESCRIPTION
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // Specifies the found wireless network.
 | |
|   //
 | |
|   EFI_80211_NETWORK    Network;
 | |
|   //
 | |
|   // Indicates the network quality as a value between 0 to 100, where 100
 | |
|   // indicates the highest network quality.
 | |
|   //
 | |
|   UINT8                NetworkQuality;
 | |
| } EFI_80211_NETWORK_DESCRIPTION;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_GET_NETWORKS_RESULT
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // The number of EFI_80211_NETWORK_DESCRIPTION in NetworkDesc. If zero,
 | |
|   // NetworkDesc should be ignored.
 | |
|   //
 | |
|   UINT8                            NumOfNetworkDesc;
 | |
|   //
 | |
|   // The NetworkDesc is a pointer to an array of EFI_80211_NETWORK_DESCRIPTION
 | |
|   // instances. It is caller's responsibility to free this buffer.
 | |
|   //
 | |
|   EFI_80211_NETWORK_DESCRIPTION    NetworkDesc[1];
 | |
| } EFI_80211_GET_NETWORKS_RESULT;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_GET_NETWORKS_TOKEN
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // If the status code returned by GetNetworks() is EFI_SUCCESS, then this
 | |
|   // Event will be signaled after the Status field is updated by the EFI
 | |
|   // Wireless MAC Connection Protocol II driver. The type of Event must be
 | |
|   // EFI_NOTIFY_SIGNAL.
 | |
|   //
 | |
|   EFI_EVENT    Event;
 | |
|   //
 | |
|   // Will be set to one of the following values:
 | |
|   // EFI_SUCCESS: The operation completed successfully.
 | |
|   // EFI_NOT_FOUND: Failed to find available wireless networks.
 | |
|   // EFI_DEVICE_ERROR: An unexpected network or system error occurred.
 | |
|   // EFI_ACCESS_DENIED: The operation is not completed due to some underlying
 | |
|   // hardware or software state.
 | |
|   // EFI_NOT_READY: The operation is started but not yet completed.
 | |
|   //
 | |
|   EFI_STATUS                       Status;
 | |
|   //
 | |
|   // Pointer to the input data for getting networks.
 | |
|   //
 | |
|   EFI_80211_GET_NETWORKS_DATA      *Data;
 | |
|   //
 | |
|   // Indicates the scan result. It is caller's responsibility to free this
 | |
|   // buffer.
 | |
|   //
 | |
|   EFI_80211_GET_NETWORKS_RESULT    *Result;
 | |
| } EFI_80211_GET_NETWORKS_TOKEN;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_CONNECT_NETWORK_DATA
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // Specifies the wireless network to connect to.
 | |
|   //
 | |
|   EFI_80211_NETWORK    *Network;
 | |
|   //
 | |
|   // Specifies a time limit in seconds that is optionally present, after which
 | |
|   // the connection establishment procedure is terminated by the UNDI driver.
 | |
|   // This is an optional parameter and may be 0. Values of 5 seconds or higher
 | |
|   // are recommended.
 | |
|   //
 | |
|   UINT32               FailureTimeout;
 | |
| } EFI_80211_CONNECT_NETWORK_DATA;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_CONNECT_NETWORK_TOKEN
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // If the status code returned by ConnectNetwork() is EFI_SUCCESS, then this
 | |
|   // Event will be signaled after the Status field is updated by the EFI
 | |
|   // Wireless MAC Connection Protocol II driver. The type of Event must be
 | |
|   // EFI_NOTIFY_SIGNAL.
 | |
|   //
 | |
|   EFI_EVENT    Event;
 | |
|   //
 | |
|   // Will be set to one of the following values:
 | |
|   // EFI_SUCCESS: The operation completed successfully.
 | |
|   // EFI_DEVICE_ERROR: An unexpected network or system error occurred.
 | |
|   // EFI_ACCESS_DENIED: The operation is not completed due to some underlying
 | |
|   // hardware or software state.
 | |
|   // EFI_NOT_READY: The operation is started but not yet completed.
 | |
|   //
 | |
|   EFI_STATUS                               Status;
 | |
|   //
 | |
|   // Pointer to the connection data.
 | |
|   //
 | |
|   EFI_80211_CONNECT_NETWORK_DATA           *Data;
 | |
|   //
 | |
|   // Indicates the connection state.
 | |
|   //
 | |
|   EFI_80211_CONNECT_NETWORK_RESULT_CODE    ResultCode;
 | |
| } EFI_80211_CONNECT_NETWORK_TOKEN;
 | |
| 
 | |
| ///
 | |
| /// EFI_80211_DISCONNECT_NETWORK_TOKEN
 | |
| ///
 | |
| typedef struct {
 | |
|   //
 | |
|   // If the status code returned by DisconnectNetwork() is EFI_SUCCESS, then
 | |
|   // this Event will be signaled after the Status field is updated by the EFI
 | |
|   // Wireless MAC Connection Protocol II driver. The type of Event must be
 | |
|   // EFI_NOTIFY_SIGNAL.
 | |
|   //
 | |
|   EFI_EVENT     Event;
 | |
|   //
 | |
|   // Will be set to one of the following values:
 | |
|   // EFI_SUCCESS: The operation completed successfully
 | |
|   // EFI_DEVICE_ERROR: An unexpected network or system error occurred.
 | |
|   // EFI_ACCESS_DENIED: The operation is not completed due to some underlying
 | |
|   // hardware or software state.
 | |
|   //
 | |
|   EFI_STATUS    Status;
 | |
| } EFI_80211_DISCONNECT_NETWORK_TOKEN;
 | |
| 
 | |
| /**
 | |
|   Request a survey of potential wireless networks that administrator can later
 | |
|   elect to try to join.
 | |
| 
 | |
|   @param[in]  This                Pointer to the
 | |
|                                   EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL
 | |
|                                   instance.
 | |
|   @param[in]  Token               Pointer to the token for getting wireless
 | |
|                                   network.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The operation started, and an event will
 | |
|                                   eventually be raised for the caller.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is
 | |
|                                   TRUE:
 | |
|                                   This is NULL.
 | |
|                                   Token is NULL.
 | |
|   @retval EFI_UNSUPPORTED         One or more of the input parameters is not
 | |
|                                   supported by this implementation.
 | |
|   @retval EFI_ALREADY_STARTED     The operation of getting wireless network is
 | |
|                                   already started.
 | |
|   @retval EFI_OUT_OF_RESOURCES    Required system resources could not be
 | |
|                                   allocated.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_WIRELESS_MAC_CONNECTION_II_GET_NETWORKS)(
 | |
|   IN EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL          *This,
 | |
|   IN EFI_80211_GET_NETWORKS_TOKEN                     *Token
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Connect a wireless network specified by a particular SSID, BSS type and
 | |
|   Security type.
 | |
| 
 | |
|   @param[in]  This                Pointer to the
 | |
|                                   EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL
 | |
|                                   instance.
 | |
|   @param[in]  Token               Pointer to the token for connecting wireless
 | |
|                                   network.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The operation started successfully. Results
 | |
|                                   will be notified eventually.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is
 | |
|                                   TRUE:
 | |
|                                   This is NULL.
 | |
|                                   Token is NULL.
 | |
|   @retval EFI_UNSUPPORTED         One or more of the input parameters are not
 | |
|                                   supported by this implementation.
 | |
|   @retval EFI_ALREADY_STARTED     The connection process is already started.
 | |
|   @retval EFI_NOT_FOUND           The specified wireless network is not found.
 | |
|   @retval EFI_OUT_OF_RESOURCES    Required system resources could not be
 | |
|                                   allocated.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_WIRELESS_MAC_CONNECTION_II_CONNECT_NETWORK)(
 | |
|   IN EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL          *This,
 | |
|   IN EFI_80211_CONNECT_NETWORK_TOKEN                  *Token
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Request a disconnection with current connected wireless network.
 | |
| 
 | |
|   @param[in]  This                Pointer to the
 | |
|                                   EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL
 | |
|                                   instance.
 | |
|   @param[in]  Token               Pointer to the token for disconnecting
 | |
|                                   wireless network.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The operation started successfully. Results
 | |
|                                   will be notified eventually.
 | |
|   @retval EFI_INVALID_PARAMETER   One or more of the following conditions is
 | |
|                                   TRUE:
 | |
|                                   This is NULL.
 | |
|                                   Token is NULL.
 | |
|   @retval EFI_UNSUPPORTED         One or more of the input parameters are not
 | |
|                                   supported by this implementation.
 | |
|   @retval EFI_NOT_FOUND           Not connected to a wireless network.
 | |
|   @retval EFI_OUT_OF_RESOURCES    Required system resources could not be
 | |
|                                   allocated.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_WIRELESS_MAC_CONNECTION_II_DISCONNECT_NETWORK)(
 | |
|   IN EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL          *This,
 | |
|   IN EFI_80211_DISCONNECT_NETWORK_TOKEN               *Token
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// The EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL provides network management
 | |
| /// service interfaces for 802.11 network stack. It is used by network
 | |
| /// applications (and drivers) to establish wireless connection with a wireless
 | |
| /// network.
 | |
| ///
 | |
| struct _EFI_WIRELESS_MAC_CONNECTION_II_PROTOCOL {
 | |
|   EFI_WIRELESS_MAC_CONNECTION_II_GET_NETWORKS          GetNetworks;
 | |
|   EFI_WIRELESS_MAC_CONNECTION_II_CONNECT_NETWORK       ConnectNetwork;
 | |
|   EFI_WIRELESS_MAC_CONNECTION_II_DISCONNECT_NETWORK    DisconnectNetwork;
 | |
| };
 | |
| 
 | |
| extern EFI_GUID  gEfiWiFi2ProtocolGuid;
 | |
| 
 | |
| #endif
 |