1 /** @file
2
3 Helper functions used by at least two Simple Network Protocol methods.
4
5 Copyright (C) 2013, Red Hat, Inc.
6
7 This program and the accompanying materials are licensed and made available
8 under the terms and conditions of the BSD License which accompanies this
9 distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
13 WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #include <Library/MemoryAllocationLib.h>
18
19 #include "VirtioNet.h"
20
21 /**
22 Release RX and TX resources on the boundary of the
23 EfiSimpleNetworkInitialized state.
24
25 These functions contribute to rolling back a partial, failed initialization
26 of the virtio-net SNP driver instance, or to shutting down a fully
27 initialized, running instance.
28
29 They are only callable by the VirtioNetInitialize() and the
30 VirtioNetShutdown() SNP methods. See the state diagram in "VirtioNet.h".
31
32 @param[in,out] Dev The VNET_DEV driver instance being shut down, or whose
33 partial, failed initialization is being rolled back.
34 */
35
36 VOID
37 EFIAPI
VirtioNetShutdownRx(IN OUT VNET_DEV * Dev)38 VirtioNetShutdownRx (
39 IN OUT VNET_DEV *Dev
40 )
41 {
42 FreePool (Dev->RxBuf);
43 }
44
45
46 VOID
47 EFIAPI
VirtioNetShutdownTx(IN OUT VNET_DEV * Dev)48 VirtioNetShutdownTx (
49 IN OUT VNET_DEV *Dev
50 )
51 {
52 FreePool (Dev->TxFreeStack);
53 }
54