From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.107.236.41]) by mx.groups.io with SMTP id smtpd.web10.79927.1673589897116235306 for ; Thu, 12 Jan 2023 22:04:57 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=aEk2oGQl; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.236.41, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ASrtBRQ+dCj9JSlp7djz/p2yCDQSPDJ1Fie+E/SRpBzWkoIrvBlKV6GpqkxuYxyuVQXfouYtbK+qU36nliSFSDy3Nii8fDGOiCwa1moavqWdBCk1jdFEmFc28OZJ9F378bT7X5k0NtfkZWCqnStL/AHxeI3ub/au2YRq+V2wBiwhc3CS9jiyHu47J0/NeHIrx9SFmvO0wbyCJNpmi3v2xOb1fQnBN8bZ7cWLdQJ9E3MWX1VjPEJrYzZwBvER4kynb1Fu/UJin3m1brXc2DjqS7lGvNeDI+o+S8YlAzanc8Wm5oG2+YQenVhVNv27vpOCFQ9m+Sd22nX0drdMK8xa9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=t0Dn6mG0eA2MOiigGBuPHRiJa8aibhqAIm/ue6bioTw=; b=KgX77cwpgHdGbUQTJ9VxgqyqCJ2gwtXGxkAu9DPzPB772dFoOm2mzP3IPEP4RCxVkoO0KFQS0TuIedpH//16+aXFBBkZSPFANMK/lhloyLK2q4/3S18jC5K9ePyQ/I2wnQKd5NJjvfy2SDWkEnYti2Vv9z8tO0MRi0Eu/klCrFFEmC4herG3GJ+NFs7w6jFPnQ7KZwNe3fb2I3fQARmdd6gSP55lblpadDSNl2jjxtItewJBbSUISCLaH0tSjkJVkGbNQhWp0o4Zlw2qF+krM7rWjU9BuRPkLgWYFByTlZOydUZkYPFMmAD8CkumhSIPelSVymtMTbyRFfEmDHdabw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t0Dn6mG0eA2MOiigGBuPHRiJa8aibhqAIm/ue6bioTw=; b=aEk2oGQl7FzLgdH3i3o76tba0PyHpnQ6vd34pDwUr7jtWT60BB6d3ks1aoC4grL57bBzFuhLD+5q3oLBrrCMoTYKMwFKal4mWzbZw/BPR7EdMQQy+yEppWEkfXTpLVuqBiIFVxV7lYu85tB4JAxjyxcvzzcVb2JkZ1QQ7Nw6Kn4= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by BY5PR12MB4306.namprd12.prod.outlook.com (2603:10b6:a03:206::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.19; Fri, 13 Jan 2023 06:04:54 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::cddb:3de9:cd1d:26e4]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::cddb:3de9:cd1d:26e4%5]) with mapi id 15.20.5986.018; Fri, 13 Jan 2023 06:04:53 +0000 From: "Chang, Abner" To: "Oram, Isaac W" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Gao, Liming" , Nickle Wang , Igor Kulchytskyy , "Desimone, Nathaniel L" Subject: Re: [edk2-devel] [PATCH 1/3] MdeModulePkg/Include: Add IpmiCommandLib header file Thread-Topic: [edk2-devel] [PATCH 1/3] MdeModulePkg/Include: Add IpmiCommandLib header file Thread-Index: AQHZJuOIlxFi5UqmMESRPQ4q+nwOBq6b2/Dg Date: Fri, 13 Jan 2023 06:04:53 +0000 Message-ID: References: <20221228045912.1677-1-abner.chang@amd.com> <20221228045912.1677-2-abner.chang@amd.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-01-13T06:04:51Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=bdbe4375-92f8-4868-958b-de542ff8432b; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|BY5PR12MB4306:EE_ x-ms-office365-filtering-correlation-id: ec008cea-a86c-4e18-1615-08daf52c16fe x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iTyngmI0XhHhs9o9n9AyoFxtoN8Ql3cPrHegTsi8I4/X3ujtKwijgRqihTBIeESxpox2ESaeTE8JzdDA1G5CN78E6ZU0S1JvX0yur6/hN1YgVNpa8h7jxkDZ0rTQhzN9Pm7QxcXQqDW3E8HP0yv0Ifs6iZCt9FJlvBwZYAKnUqAfKaUqBKgYsbpnBl3Uv5XMAEgvECTKmI+FBc3ZtKA6O5ZdN627kb2WVyD2XoMu8Vlhce3lsBe4SKeYJC8ov0ml6SOEyOhV9rY2FleffhQ61loQKFdXgTjuyw/JSKLy+7mqqL4v4AS+V85Ynojwux8WBog8011RMF+/D29nXtwRsUIaK7WUcVKG3IZ1T7T4wvp65Oj6R4h0pG5idNjlbmRLGGMUHejZY5Amd9f7e0O9WM2HxmvbB619JimVkUa8a/2IY8tDoCQkoOX5RM5/w9C8IMhCkBnNXU+QQXywALIpGOn6t1NGg5tUjE56fe8yINUiEHE6Y0QGXJnbldn3Giv1ahis0ka95FOQMPAFY7SPG7eXSCkq4pD1A3yvS/4pxNxHUQSTHR+/Y/UfZhjmog2kaQ98f0+uN0tBliPGLZ3nvS1mvwl7UcWop8Nxe2WuWggHpIzI+2wbTTchijvH/DrFDO/uEe4kXaWBwePOx8dAFxXGLGrzKT9wQhQqi1jdJv4pboiOlK50+eyc5ABVh0w7R8sENQDffZ7V+u7oEj0TggIKM1vzQqv3LIXzGgWFxh2Sm5Af+rKOieL1s8dMeBB8xBsY9foNJmoZgw003Mit1g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(346002)(396003)(366004)(376002)(39860400002)(451199015)(6506007)(26005)(186003)(53546011)(9686003)(966005)(71200400001)(7696005)(478600001)(38100700002)(122000001)(38070700005)(55016003)(86362001)(83380400001)(33656002)(66899015)(30864003)(52536014)(8936002)(5660300002)(2906002)(66556008)(4326008)(66946007)(316002)(76116006)(66476007)(66446008)(8676002)(64756008)(110136005)(19627235002)(54906003)(41300700001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?L3Tw48tO1YstT6MatnpnjYdoamGiXLk1/dMhDDqCrGz0dQ2KvRSz5WdKeBlb?= =?us-ascii?Q?JnQ+88qtbgLVDu1Vk+yU3RPwrITyy5d8bic6G4a6FIJQCEt43KoXCvY/atGa?= =?us-ascii?Q?rTPGyu+P2VitlDzMV6At4kSCVZxOIamUWSWO2BUP7ZU+cfV6tKBFd91uXnel?= =?us-ascii?Q?xWKuqvCNSv16VuzFECUKwe4FJ4bvx65RNT6jmXr5Agnt2n0ZpTxhCyQX1T1a?= =?us-ascii?Q?hFAzeiNj1vmwMaQ1lTdCUyhSCgpgrNlWU0B32VmGt2nHCVAtzFmQDhi3F7Cl?= =?us-ascii?Q?HQ5RGWyAf2FtiB1aHeMYEoBkmSdl4ncaZyYtpsEiHpRSWRXzX/yZoQWjDnvO?= =?us-ascii?Q?hbImYSinkWHY5TGpox+cjgsfJKNN9tnCK86MHjPgULBbv1U0IXrTaOdeZqLE?= =?us-ascii?Q?AFy3fklCZQRQCgd7TSlLQYuMgous/960KNty7I40sI4Ay4o+3pBtj4J1alXJ?= =?us-ascii?Q?z5RIfzGpk0dKPa/RtRGEmCysYyTtc9u52ofY6HzxLKwN0EIZK4b50hx8lGOn?= =?us-ascii?Q?B6z/H9rBbwFP+NT4atGQfxaTyD+VnSGYbGqHjChJoUXUrdynhhHWkFizqQ3J?= =?us-ascii?Q?C9kMff52asujN9B8C0QJnQon6HDXnxQFFVHrVliH8ZDC614fV7QYIho/opSL?= =?us-ascii?Q?Is8RS8vzekTQMo9r5urEI73ylvvKBOEV6W/EoN1sgB/vbgQX827uTe8dHroT?= =?us-ascii?Q?1VgnBrlsILPKFYK5zUBRmg3YSRZLP9LtjoL+XBZAz5nO6ViVnSXllOt28B2i?= =?us-ascii?Q?3PfHqrQgM512YdvlItXzD7+rRMzGwIemUPnXMwBdcezxvaVKvo0vIq/zGTRl?= =?us-ascii?Q?FdJ6aA4qkamRRYRBNsjPfDkIT47SDUFz7pv93sZ1W2IHbiWAvy+UDYtst6Rg?= =?us-ascii?Q?rg5OaAjmvw+962ozmme4cusDIgRTXtoHM4bx2jkJTaJ02AzOWOa2Pi50S44M?= =?us-ascii?Q?8+RCXb5VJkSq77xAIa3QG+s2/K+Y+Kd3HQXiM5VyQU9GxbiY5yNoNDV2Mkna?= =?us-ascii?Q?hosmh7K6/ylcaJ3xLi3MM5kZddV3UGd23zNHGucn69Gb0mRK5uTl7DsYb5T4?= =?us-ascii?Q?eNz+tg3AtKpWT3hzPh5YLrdKatkBHI04MkdCtZfpWSGm2X05OWekki2H+343?= =?us-ascii?Q?E9VQTnIYQils09+lueiI8R1TNMNrtlfbBQ+qhn1ggTvZ2J4W1KXN+j/WXYM5?= =?us-ascii?Q?z6UHwwBOIQIiPREFnSwimzfzLY9MNUuJHWLI2Q0XgTll6qLzcXOJUIRMUULL?= =?us-ascii?Q?g6F6ZJLOnfoH+xMS+8achmPRhQnW7LZxqLL9I8jEtONwKy8Gr0vq4TSZUF4G?= =?us-ascii?Q?PxhVuwwNt4FN4Qn9XItO39Gd96yqJSJ+EgYKbPIX9exACCXL9zxB0uTHywi1?= =?us-ascii?Q?6nFryNwqWHudqPZ5IR9QAVjZrQwY13pc3KQnMH15sKv0qkdONTjUQRW+o9Sw?= =?us-ascii?Q?IOcuNIjw1f6Wvcg0biK/+PilGp6J57sRDLjvt/JFc31r+RDcRFcvXNjAOGT0?= =?us-ascii?Q?lkettAWPhlokfmA0DE9I73eue3qP5cd5mzGKrhvigPLfj4KPN9ei6pC4DBwW?= =?us-ascii?Q?VbMLt8DG/qxKz5lgaz+RvVFL3rSLggmrI0bFBrrK?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec008cea-a86c-4e18-1615-08daf52c16fe X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2023 06:04:53.9150 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: djgE1Tt6wQrUKA2yum1zS3GlwPesCDqUeHRNEMzcKObWxLOm9YsoZZlMrwr71LeFfrgfj41PU916ZI7SoVgNNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4306 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Thanks for catching these typos in patches. V2 is sent to address them. Abner > -----Original Message----- > From: Oram, Isaac W > Sent: Friday, January 13, 2023 8:11 AM > To: devel@edk2.groups.io; Chang, Abner > Cc: Wang, Jian J ; Gao, Liming > ; Nickle Wang ; Igor > Kulchytskyy ; Desimone, Nathaniel L > > Subject: RE: [edk2-devel] [PATCH 1/3] MdeModulePkg/Include: Add > IpmiCommandLib header file >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > Reviewed-by: Isaac Oram >=20 > Typos in SetPowerRestireRequest and SetPowerRestireResponse in function > comment block and parameters. > 35 instances of successly should perhaps be successfully. > 344: NetFnChasis should perhaps be NetFnChassis. >=20 > Regards, > Isaac >=20 > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Chang, > Abner via groups.io > Sent: Tuesday, December 27, 2022 8:59 PM > To: devel@edk2.groups.io > Cc: Wang, Jian J ; Gao, Liming > ; Nickle Wang ; Igor > Kulchytskyy ; Oram, Isaac W ; > Desimone, Nathaniel L > Subject: [edk2-devel] [PATCH 1/3] MdeModulePkg/Include: Add > IpmiCommandLib header file >=20 > From: Abner Chang >=20 > Add IpmiCommandLib to MdeModulePkg. This header file is copied from > edk2-platforms/Features/Intel/OutOfBandManagement/ > IpmiFeaturePkg\Include\Library. Having this header file in > edk2 to avoid the dependence of edk2 module with edk2-platfrom. > The NULL instance of IpmiCommandLib under MdeModulePkg has to be > implemented for the same reason. > IpmiCommandLib.h in edk2-platforms should be removed once this patch set > is merged. Expect no impacts on edk2-platforms because MdeModulePkg is > referred in INF file by all edk2 modules under edk2-platforms that use > IpmiCommandLib. >=20 > Signed-off-by: Abner Chang > Cc: Jian J Wang > Cc: Liming Gao > Cc: Nickle Wang > Cc: Igor Kulchytskyy > Cc: Isaac Oram > Cc: Nate DeSimone > --- > MdeModulePkg/Include/Library/IpmiCommandLib.h | 683 > ++++++++++++++++++ > 1 file changed, 683 insertions(+) > create mode 100644 MdeModulePkg/Include/Library/IpmiCommandLib.h >=20 > diff --git a/MdeModulePkg/Include/Library/IpmiCommandLib.h > b/MdeModulePkg/Include/Library/IpmiCommandLib.h > new file mode 100644 > index 00000000000..cac8123411f > --- /dev/null > +++ b/MdeModulePkg/Include/Library/IpmiCommandLib.h > @@ -0,0 +1,683 @@ > +/** @file > + This library abstract how to send/receive IPMI command. > + > +Copyright (c) 2018-2021, Intel Corporation. All rights reserved.
> +Copyright (C) 2022 Advanced Micro Devices, Inc. All rights > +reserved.
> + > +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef IPMI_COMMAND_LIB_H_ > +#define IPMI_COMMAND_LIB_H_ > + > +#include > +#include > + > +// > +// IPMI NetFnApp > +// > + > +/** > + This function gets the IPMI Device ID. > + > + @param[out] DeviceId Get device ID response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetDeviceId ( > + OUT IPMI_GET_DEVICE_ID_RESPONSE *DeviceId > + ); > + > +/** > + This function gets the self-test result. > + > + @param[out] SelfTestResult Self test command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSelfTestResult ( > + OUT IPMI_SELF_TEST_RESULT_RESPONSE *SelfTestResult > + ); > + > +/** > + This function resets watchdog timer. > + > + @param[out] CompletionCode The command completion code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiResetWatchdogTimer ( > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function sets watchdog timer. > + > + @param[in] SetWatchdogTimer Set watchdog timer request. > + @param[out] CompletionCode The command completion code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSetWatchdogTimer ( > + IN IPMI_SET_WATCHDOG_TIMER_REQUEST *SetWatchdogTimer, > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function gets watchdog timer. > + > + @param[out] GetWatchdogTimer Get watchdog timer response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetWatchdogTimer ( > + OUT IPMI_GET_WATCHDOG_TIMER_RESPONSE *GetWatchdogTimer > + ); > + > +/** > + This function sets BMC global enables. > + > + @param[in] SetBmcGlobalEnables Set BMC global enables command > request. > + @param[out] CompletionCode The command completion code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSetBmcGlobalEnables ( > + IN IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST *SetBmcGlobalEnables, > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function gets BMC global enables. > + > + @param[out] GetBmcGlobalEnables Get BMC global enables command > response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetBmcGlobalEnables ( > + OUT IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE > *GetBmcGlobalEnables > + ); > + > +/** > + This function clears message flag. > + > + @param[in] ClearMessageFlagsRequest Clear message flags command > request. > + @param[out] CompletionCode The command completion code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiClearMessageFlags ( > + IN IPMI_CLEAR_MESSAGE_FLAGS_REQUEST *ClearMessageFlagsRequest, > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function gets message flag. > + > + @param[out] GetMessageFlagsResponse Get message flags response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetMessageFlags ( > + OUT IPMI_GET_MESSAGE_FLAGS_RESPONSE > *GetMessageFlagsResponse > + ); > + > +/** > + This function gets message. > + > + @param[out] GetMessageResponse Get message command > response. > + @param[in,out] GetMessageResponseSize The size of get message > response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetMessage ( > + OUT IPMI_GET_MESSAGE_RESPONSE *GetMessageResponse, > + IN OUT UINT32 *GetMessageResponseSize > + ); > + > +/** > + This function sends message. > + > + @param[in] SendMessageRequest The send message command > request. > + @param[in] SendMessageRequestSize The size of the send message > command request. > + @param[out] SendMessageResponse The send message command > response. > + @param[in,out] SendMessageResponseSize The size of the send > message command response. > + When input, the expected size= of response. > + When output, the actual size = of response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSendMessage ( > + IN IPMI_SEND_MESSAGE_REQUEST *SendMessageRequest, > + IN UINT32 SendMessageRequestSize, > + OUT IPMI_SEND_MESSAGE_RESPONSE *SendMessageResponse, > + IN OUT UINT32 *SendMessageResponseSize > + ); > + > +/** > + This function gets the system UUID. > + > + @param[out] SystemGuid The pointer to retrieve system UUID. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Others Other errors. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSystemUuid ( > + OUT EFI_GUID *SystemGuid > + ); > + > +/** > + This function gets the channel information. > + > + @param[in] GetChannelInfoRequest The get channel information > request. > + @param[in] GetChannelInfoResponse The get channel information > response. > + @param[in,out] GetChannelInfoResponseSize When input, the expected > size of response. > + When output, the exact size= of the returned > + response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetChannelInfo ( > + IN IPMI_GET_CHANNEL_INFO_REQUEST *GetChannelInfoRequest, > + OUT IPMI_GET_CHANNEL_INFO_RESPONSE *GetChannelInfoResponse, > + OUT UINT32 *GetChannelInfoResponseSize > + ); > + > +// > +// IPMI NetFnTransport > +// > + > +/** > + This function activates SOL > + > + @param[in] SolActivatingRequest SOL activating request. > + @param[out] CompletionCode The command completion code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSolActivating ( > + IN IPMI_SOL_ACTIVATING_REQUEST *SolActivatingRequest, > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function sets SOL configuration parameters. > + > + @param[in] SetConfigurationParametersRequest Set SOL > configuration parameters > + command request= . > + @param[in] SetConfigurationParametersRequestSize Size of the set > SOL configuration > + parameters comm= and request. > + @param[out] CompletionCode The command com= pletion > code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSetSolConfigurationParameters ( > + IN IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST > *SetConfigurationParametersRequest, > + IN UINT32 SetConfigurationPar= ametersRequestSize, > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function gets SOL configuration parameters. > + > + @param[in] GetConfigurationParametersRequest Get SOL > configuration parameters > + command reque= st. > + @param[out] GetConfigurationParametersResponse Get SOL > configuration parameters > + response. > + @param[in,out] GetConfigurationParametersResponseSize When input, > the size of the expected > + response. > + When output, = the exact size of > + expect respon= se. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSolConfigurationParameters ( > + IN IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST > *GetConfigurationParametersRequest, > + OUT IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE > *GetConfigurationParametersResponse, > + IN OUT UINT32 > *GetConfigurationParametersResponseSize > + ); > + > +/** > + This function gets the LAN configuration parameter. > + > + @param[in] GetLanConfigurationParametersRequest Get LAN > configuration parameters command request. > + @param[in] GetLanConfigurationParametersResponse The response of > the get LAN configuration parameters. > + @param[in,out] GetLanConfigurationParametersSize When input, the > expected size of response data. > + When out, the ex= act size of response data. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > + > +EFI_STATUS > +EFIAPI > +IpmiGetLanConfigurationParameters ( > + IN IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST > *GetLanConfigurationParametersRequest, > + OUT IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE > *GetLanConfigurationParametersResponse, > + IN OUT UINT32 *GetLanConfigurat= ionParametersSize > + ); > + > +// > +// IPMI NetFnChasis > +// > + > +/** > + This function gets chassis capability. > + > + @param[out] GetChassisCapabilitiesResponse Gets chassis capability > command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetChassisCapabilities ( > + OUT IPMI_GET_CHASSIS_CAPABILITIES_RESPONSE > +*GetChassisCapabilitiesResponse > + ); > + > +/** > + This function gets chassis status. > + > + @param[out] GetChassisCapabilitiesResponse The get chassis status > command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetChassisStatus ( > + OUT IPMI_GET_CHASSIS_STATUS_RESPONSE *GetChassisStatusResponse > + ); > + > +/** > + This function sends chassis control request. > + > + @param[in] ChassisControlRequest The chassis control request. > + @param[out] CompletionCode The command completion code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiChassisControl ( > + IN IPMI_CHASSIS_CONTROL_REQUEST *ChassisControlRequest, > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function sets power restore policy. > + > + @param[in] SetPowerRestireRequest The set power restore policy > control > + command request. > + @param[out] SetPowerRestireResponse The response of power restore > policy. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSetPowerRestorePolicy ( > + IN IPMI_SET_POWER_RESTORE_POLICY_REQUEST > *SetPowerRestireRequest, > + OUT IPMI_SET_POWER_RESTORE_POLICY_RESPONSE > *SetPowerRestireResponse > + ); > + > +// > +// IPMI NetFnStorage > +// > + > +/** > + This function sets system boot option. > + > + @param[in] BootOptionsRequest Set system boot option request. > + @param[out] BootOptionsResponse The response of set system boot > + option request. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSetSystemBootOptions ( > + IN IPMI_SET_BOOT_OPTIONS_REQUEST *BootOptionsRequest, > + OUT IPMI_SET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse > + ); > + > +/** > + This function gets system boot option. > + > + @param[in] BootOptionsRequest Get system boot option request. > + @param[out] BootOptionsResponse The response of get system boot > + option request. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSystemBootOptions ( > + IN IPMI_GET_BOOT_OPTIONS_REQUEST *BootOptionsRequest, > + OUT IPMI_GET_BOOT_OPTIONS_RESPONSE *BootOptionsResponse > + ); > + > +/** > + This function gets FRU inventory area info. > + > + @param[in] GetFruInventoryAreaInfoRequest Get FRU inventory area > command request. > + @param[out] GetFruInventoryAreaInfoResponse get FRU inventory area > command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetFruInventoryAreaInfo ( > + IN IPMI_GET_FRU_INVENTORY_AREA_INFO_REQUEST > *GetFruInventoryAreaInfoRequest, > + OUT IPMI_GET_FRU_INVENTORY_AREA_INFO_RESPONSE > +*GetFruInventoryAreaInfoResponse > + ); > + > +/** > + This function reads FRU data. > + > + @param[in] ReadFruDataRequest Read FRU data command request= . > + @param[out] ReadFruDataResponse Read FRU data command > response. > + @param[in,out] ReadFruDataResponseSize Size of the read FRU data > response. > + When input, the expected size= of response data. > + When out, the exact size of = response data. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiReadFruData ( > + IN IPMI_READ_FRU_DATA_REQUEST *ReadFruDataRequest, > + OUT IPMI_READ_FRU_DATA_RESPONSE *ReadFruDataResponse, > + IN OUT UINT32 *ReadFruDataResponseSize > + ); > + > +/** > + This function gets chassis capability. > + > + @param[in] WriteFruDataRequest Write FRU data command request. > + @param[in] WriteFruDataRequestSize Size of the write FRU data > command request. > + @param[out] WriteFruDataResponse Write FRU data response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiWriteFruData ( > + IN IPMI_WRITE_FRU_DATA_REQUEST *WriteFruDataRequest, > + IN UINT32 WriteFruDataRequestSize, > + OUT IPMI_WRITE_FRU_DATA_RESPONSE *WriteFruDataResponse > + ); > + > +/** > + This function gets SEL information. > + > + @param[out] GetSelInfoResponse Get SEL information command > response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSelInfo ( > + OUT IPMI_GET_SEL_INFO_RESPONSE *GetSelInfoResponse > + ); > + > +/** > + This function gets SEL entry. > + > + @param[in] GetSelEntryRequest Get SEL entry command request= . > + @param[out] GetSelEntryResponse Get SEL entry command respons= e. > + @param[in,out] GetSelEntryResponseSize Size of Get SEL entry request= . > + When input, the expected size= of response data. > + When out, the exact size of = response data. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSelEntry ( > + IN IPMI_GET_SEL_ENTRY_REQUEST *GetSelEntryRequest, > + OUT IPMI_GET_SEL_ENTRY_RESPONSE *GetSelEntryResponse, > + IN OUT UINT32 *GetSelEntryResponseSize > + ); > + > +/** > + This function adds SEL entry. > + > + @param[in] AddSelEntryRequest Add SEL entry command request. > + @param[out] AddSelEntryResponse Add SEL entry command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiAddSelEntry ( > + IN IPMI_ADD_SEL_ENTRY_REQUEST *AddSelEntryRequest, > + OUT IPMI_ADD_SEL_ENTRY_RESPONSE *AddSelEntryResponse > + ); > + > +/** > + This function partially adds SEL entry. > + > + @param[in] PartialAddSelEntryRequest Partial add SEL entry com= mand > request. > + @param[in] PartialAddSelEntryRequestSize Size of partial add SEL e= ntry > command request. > + @param[out] PartialAddSelEntryResponse Partial add SEL entry > command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiPartialAddSelEntry ( > + IN IPMI_PARTIAL_ADD_SEL_ENTRY_REQUEST > *PartialAddSelEntryRequest, > + IN UINT32 PartialAddSelEntryRequestSize= , > + OUT IPMI_PARTIAL_ADD_SEL_ENTRY_RESPONSE > *PartialAddSelEntryResponse > + ); > + > +/** > + This function clears SEL entry. > + > + @param[in] ClearSelRequest Clear SEL command request. > + @param[out] ClearSelResponse Clear SEL command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiClearSel ( > + IN IPMI_CLEAR_SEL_REQUEST *ClearSelRequest, > + OUT IPMI_CLEAR_SEL_RESPONSE *ClearSelResponse > + ); > + > +/** > + This function gets SEL time. > + > + @param[out] GetSelTimeResponse Get SEL time command response. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSelTime ( > + OUT IPMI_GET_SEL_TIME_RESPONSE *GetSelTimeResponse > + ); > + > +/** > + This function sets SEL time. > + > + @param[in] SetSelTimeRequest Set SEL time command request. > + @param[out] CompletionCode Command completion code. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiSetSelTime ( > + IN IPMI_SET_SEL_TIME_REQUEST *SetSelTimeRequest, > + OUT UINT8 *CompletionCode > + ); > + > +/** > + This function gets SDR repository information. > + > + @param[out] GetSdrRepositoryInfoResp Get SDR repository response= . > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSdrRepositoryInfo ( > + OUT IPMI_GET_SDR_REPOSITORY_INFO_RESPONSE > *GetSdrRepositoryInfoResp > + ); > + > +/** > + This function gets SDR > + > + @param[in] GetSdrRequest Get SDR resquest. > + @param[out] GetSdrResponse Get SDR response. > + @param[in,out] GetSdrResponseSize The size of get SDR response. > + When input, the expected size of= response data. > + When out, the exact size of res= ponse data. > + > + @retval EFI_SUCCESS Command is sent successly. > + @retval EFI_NOT_AVAILABLE_YET Transport interface is not ready yet. > + @retval Other Failure. > + > +**/ > +EFI_STATUS > +EFIAPI > +IpmiGetSdr ( > + IN IPMI_GET_SDR_REQUEST *GetSdrRequest, > + OUT IPMI_GET_SDR_RESPONSE *GetSdrResponse, > + IN OUT UINT32 *GetSdrResponseSize > + ); > + > +#endif > -- > 2.37.1.windows.1 >=20 >=20 >=20 >=20 >=20