]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/StatusCode/Dxe/DataHubStatusCodeWorker.c
Change license of following files from Intel Copy Right to BSD-license.
[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 233.
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
21EFI_LOCK mFifoLock = EFI_INITIALIZE_LOCK_VARIABLE (EFI_TPL_HIGH_LEVEL);\r
22LIST_ENTRY mRecordsFifo = INITIALIZE_LIST_HEAD_VARIABLE (mRecordsFifo);\r
23UINTN mNumberOfRecords = 0;\r
24\r
25EFI_EVENT mLogDataHubEvent;\r
26//\r
27// Cache data hub protocol.\r
28//\r
29EFI_DATA_HUB_PROTOCOL *mDataHubProtocol;\r
30\r
31\r
32/**\r
33 Return buffer of length DATAHUB_STATUSCODE_RECORD\r
34 \r
35 @retval NULL Can not allocate free memeory for record.\r
36 @retval !NULL Point to buffer of record.\r
37\r
38**/\r
39DATAHUB_STATUSCODE_RECORD *\r
40AcquireRecordBuffer (\r
41 VOID\r
42 )\r
43{\r
44 DATAHUB_STATUSCODE_RECORD *Record;\r
45\r
46 Record = (DATAHUB_STATUSCODE_RECORD *) AllocateZeroPool (sizeof (DATAHUB_STATUSCODE_RECORD));\r
47 if (NULL == Record) {\r
48 return NULL;\r
49 }\r
50 Record->Signature = DATAHUB_STATUS_CODE_SIGNATURE;\r
51\r
52 EfiAcquireLock (&mFifoLock);\r
53 InsertTailList (&mRecordsFifo, &Record->Node);\r
54 mNumberOfRecords++;\r
55 EfiReleaseLock (&mFifoLock);\r
56\r
57 return Record;\r
58}\r
59\r
60\r
61/**\r
62 Release a mRecordBuffer entry allocated by AcquirRecordBuffer ().\r
63\r
64 @param Record Point to record buffer which is acquired by AcquirRecordBuffer()\r
65 \r
66 @retval EFI_SUCCESS If DataRecord is valid.\r
67 @retval !EFI_SUCCESS The record list has empty.\r
68\r
69**/\r
70VOID\r
71FreeRecordBuffer (\r
72 IN DATAHUB_STATUSCODE_RECORD *Record\r
73 )\r
74/*++\r
75\r
76Routine Description:\r
77\r
78 Release a mRecordBuffer entry allocated by AquireEmptyRecordBuffer ().\r
79\r
80Arguments:\r
81\r
82 RecordBuffer - Data to free\r
83\r
84Returns:\r
85\r
86 EFI_SUCCESS - If DataRecord is valid\r
87 EFI_UNSUPPORTED - The record list has empty\r
88\r
89--*/\r
90{\r
91 ASSERT (Record != NULL);\r
92 ASSERT (mNumberOfRecords != 0);\r
93\r
94 EfiAcquireLock (&mFifoLock);\r
95 RemoveEntryList (&Record->Node);\r
96 mNumberOfRecords--;\r
97 EfiReleaseLock (&mFifoLock);\r
98\r
99 FreePool (Record);\r
100}\r
101\r
102\r
103/**\r
104 Report status code into DataHub.\r
105 \r
106