hc
2024-03-22 619f0f87159c5dbd2755b1b0a0eb35784be84e7a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/** @file
  The Mac Connection2 Protocol adapter functions for WiFi Connection Manager.
 
  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
 
**/
 
#ifndef __EFI_WIFI_IMPL__
#define __EFI_WIFI_IMPL__
 
/**
  Start scan operation, and send out a token to collect available networks.
 
  @param[in]  Nic                 Pointer to the device data of the selected NIC.
 
  @retval EFI_SUCCESS             The operation is completed.
  @retval EFI_ALREADY_STARTED     A former scan operation is already ongoing.
  @retval EFI_INVALID_PARAMETER   One or more parameters are invalid.
  @retval EFI_OUT_OF_RESOURCES    Failed to allocate memory.
  @retval Other Errors            Return errors when getting networks from low layer.
 
**/
EFI_STATUS
WifiMgrStartScan (
  IN      WIFI_MGR_DEVICE_DATA        *Nic
  );
 
/**
  Get current link state from low layer.
 
  @param[in]   Nic                Pointer to the device data of the selected NIC.
  @param[out]  LinkState          The pointer to buffer to retrieve link state.
 
  @retval EFI_SUCCESS             The operation is completed.
  @retval EFI_INVALID_PARAMETER   One or more parameters are invalid.
  @retval EFI_UNSUPPORTED         Adapter information protocol is not supported.
  @retval Other Errors            Returned errors when retrieving link state from low layer.
 
**/
EFI_STATUS
WifiMgrGetLinkState (
  IN    WIFI_MGR_DEVICE_DATA          *Nic,
  OUT   EFI_ADAPTER_INFO_MEDIA_STATE  *LinkState
  );
 
/**
  Start connect operation, and send out a token to connect to a target network.
 
  @param[in]  Nic                 Pointer to the device data of the selected NIC.
  @param[in]  Profile             The target network to be connected.
 
  @retval EFI_SUCCESS             The operation is completed.
  @retval EFI_ALREADY_STARTED     Already in "connected" state, need to perform a disconnect
                                  operation first.
  @retval EFI_INVALID_PARAMETER   One or more parameters are invalid.
  @retval EFI_OUT_OF_RESOURCES    Failed to allocate memory.
  @retval Other Errors            Return errors when connecting network on low layer.
 
**/
EFI_STATUS
WifiMgrConnectToNetwork (
  IN    WIFI_MGR_DEVICE_DATA              *Nic,
  IN    WIFI_MGR_NETWORK_PROFILE          *Profile
  );
 
/**
  Start disconnect operation, and send out a token to disconnect from current connected
  network.
 
  @param[in]  Nic                 Pointer to the device data of the selected NIC.
 
  @retval EFI_SUCCESS             The operation is completed.
  @retval EFI_OUT_OF_RESOURCES    Failed to allocate memory.
  @retval Other Errors            Return errors when disconnecting a network on low layer.
 
**/
EFI_STATUS
WifiMgrDisconnectToNetwork (
  IN    WIFI_MGR_DEVICE_DATA              *Nic
  );
 
/**
  The state machine of the connection manager, periodically check the state and
  perform a corresponding operation.
 
  @param[in]  Event                   The timer event to be triggered.
  @param[in]  Context                 The context of the Nic device data.
 
**/
VOID
EFIAPI
WifiMgrOnTimerTick (
  IN EFI_EVENT              Event,
  IN VOID                   *Context
  );
 
#endif