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