Home | History | Annotate | Download | only in NvmExpressDxe
      1 /** @file
      2   NvmExpressDxe driver is used to manage non-volatile memory subsystem which follows
      3   NVM Express specification.
      4 
      5   (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
      6   Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
      7   This program and the accompanying materials
      8   are licensed and made available under the terms and conditions of the BSD License
      9   which accompanies this 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,
     13   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     14 
     15 **/
     16 
     17 #ifndef _NVME_HCI_H_
     18 #define _NVME_HCI_H_
     19 
     20 #define NVME_BAR                 0
     21 
     22 //
     23 // Offset from the beginning of private data queue buffer
     24 //
     25 #define NVME_ASQ_BUF_OFFSET                  EFI_PAGE_SIZE
     26 
     27 /**
     28   Initialize the Nvm Express controller.
     29 
     30   @param[in] Private                 The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.
     31 
     32   @retval EFI_SUCCESS                The NVM Express Controller is initialized successfully.
     33   @retval Others                     A device error occurred while initializing the controller.
     34 
     35 **/
     36 EFI_STATUS
     37 NvmeControllerInit (
     38   IN NVME_CONTROLLER_PRIVATE_DATA    *Private
     39   );
     40 
     41 /**
     42   Get identify controller data.
     43 
     44   @param  Private          The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.
     45   @param  Buffer           The buffer used to store the identify controller data.
     46 
     47   @return EFI_SUCCESS      Successfully get the identify controller data.
     48   @return EFI_DEVICE_ERROR Fail to get the identify controller data.
     49 
     50 **/
     51 EFI_STATUS
     52 NvmeIdentifyController (
     53   IN NVME_CONTROLLER_PRIVATE_DATA       *Private,
     54   IN VOID                               *Buffer
     55   );
     56 
     57 /**
     58   Get specified identify namespace data.
     59 
     60   @param  Private          The pointer to the NVME_CONTROLLER_PRIVATE_DATA data structure.
     61   @param  NamespaceId      The specified namespace identifier.
     62   @param  Buffer           The buffer used to store the identify namespace data.
     63 
     64   @return EFI_SUCCESS      Successfully get the identify namespace data.
     65   @return EFI_DEVICE_ERROR Fail to get the identify namespace data.
     66 
     67 **/
     68 EFI_STATUS
     69 NvmeIdentifyNamespace (
     70   IN NVME_CONTROLLER_PRIVATE_DATA      *Private,
     71   IN UINT32                            NamespaceId,
     72   IN VOID                              *Buffer
     73   );
     74 
     75 #endif
     76 
     77