]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/StatusCode/Dxe/DataHubStatusCodeWorker.c
Follow up EDKT238, EDKT239, EDKT242, EDKT243
[mirror_edk2.git] / EdkModulePkg / Universal / StatusCode / Dxe / DataHubStatusCodeWorker.c
Content-type: text/html ]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/StatusCode/Dxe/DataHubStatusCodeWorker.c


500 - Internal Server Error

Malformed UTF-8 character (fatal) at (eval 6) line 1, <$fd> line 214.
CommitLineData
56836fe9 1/** @file\r
2 Data Hub status code worker in DXE.\r
3\r
161c26a7 4 Copyright (c) 2006, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9 \r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
56836fe9 12\r
13 Module Name: DataHubStatusCodeWorker.c\r
14\r
15**/\r
16#include "DxeStatusCode.h"\r
17\r
18//\r
19// Initialize FIFO to cache records.\r
20//\r
a93763b7 21STATIC \r
56836fe9 22EFI_LOCK mFifoLock = EFI_INITIALIZE_LOCK_VARIABLE (EFI_TPL_HIGH_LEVEL);\r
a93763b7 23STATIC\r
56836fe9 24LIST_ENTRY mRecordsFifo = INITIALIZE_LIST_HEAD_VARIABLE (mRecordsFifo);\r
a93763b7 25STATIC\r
56836fe9 26UINTN mNumberOfRecords = 0;\r
a93763b7 27STATIC\r
56836fe9 28EFI_EVENT mLogDataHubEvent;\r
29//\r
30// Cache data hub protocol.\r
31//\r
a93763b7 32STATIC\r
56836fe9 33EFI_DATA_HUB_PROTOCOL *mDataHubProtocol;\r
34\r
35\r
36/**\r
37 Return buffer of length DATAHUB_STATUSCODE_RECORD\r
38 \r
39 @retval NULL Can not allocate free memeory for record.\r
40 @retval !NULL Point to buffer of record.\r
41\r
42**/\r
43DATAHUB_STATUSCODE_RECORD *\r
44AcquireRecordBuffer (\r
45 VOID\r
46 )\r
47{\r
48 DATAHUB_STATUSCODE_RECORD *Record;\r
49\r
50 Record = (DATAHUB_STATUSCODE_RECORD *) AllocateZeroPool (sizeof (DATAHUB_STATUSCODE_RECORD));\r
51 if (NULL == Record) {\r
52 return NULL;\r
53 }\r
54 Record->Signature = DATAHUB_STATUS_CODE_SIGNATURE;\r
55\r
56 EfiAcquireLock (&mFifoLock);\r
57 InsertTailList (&mRecordsFifo, &Record->Node);\r
58 mNumberOfRecords++;\r
59 EfiReleaseLock (&mFifoLock);\r
60\r
61 return Record;\r
62}\r
63\r
64\r
65/**\r
66 Release a mRecordBuffer entry allocated by AcquirRecordBuffer ().\r
67\r
68 @param Record Point to record buffer which is acquired by AcquirRecordBuffer()\r
69 \r
56836fe9 70**/\r
71VOID\r
72FreeRecordBuffer (\r
73 IN DATAHUB_STATUSCODE_RECORD *Record\r
74 )\r
56836fe9 75{\r
76 ASSERT (Record != NULL);\r
77 ASSERT (mNumberOfRecords != 0);\r
78\r
79 EfiAcquireLock (&mFifoLock);\r
80 RemoveEntryList (&Record->Node);\r
81 mNumberOfRecords--;\r
82 EfiReleaseLock (&mFifoLock);\r
83\r
84 FreePool (Record);\r
85}\r
86\r
87\r
88/**\r
89 Report status code into DataHub.\r
90 \r
91