在PEI阶段,全局变量大概有这么几个: gPs PEI Service 结构的实现,包括所有的PEI 服务的函数指针。比如学见的PeiInstallPPi, PeiCreateHob, PeiSetSystem.
其次就是PrivateData, 这个是今天我们要讨论的问题,其类型为 PEI_CORE_INSTANCE.
具体就是长这个样子:
struct _PEI_CORE_INSTANCE {
184 UINTN Signature;
185
189 EFI_PEI_SERVICES *Ps;
190 PEI_PPI_DATABASE PpiData;
191
195 UINTN FvCount;
196
201 PEI_CORE_FV_HANDLE *Fv;
202
207 PEI_CORE_UNKNOW_FORMAT_FV_INFO *UnknownFvInfo;
208 UINTN UnknownFvInfoCount;
209
213 EFI_PEI_FILE_HANDLE *CurrentFvFileHandles;
214 UINTN AprioriCount;
215 UINTN CurrentPeimFvCount;
216 UINTN CurrentPeimCount;
217 EFI_PEI_FILE_HANDLE CurrentFileHandle;
218 BOOLEAN PeimNeedingDispatch;
219 BOOLEAN PeimDispatchOnThisPass;
220 BOOLEAN PeimDispatcherReenter;
221 EFI_PEI_HOB_POINTERS HobList;
222 BOOLEAN SwitchStackSignal;
223 BOOLEAN PeiMemoryInstalled;
224 VOID *CpuIo;
225 EFI_PEI_SECURITY2_PPI *PrivateSecurityPpi;
226 EFI_PEI_SERVICES ServiceTableShadow;
227 EFI_PEI_PPI_DESCRIPTOR *XipLoadFile;
228 EFI_PHYSICAL_ADDRESS PhysicalMemoryBegin;
229 UINT64 PhysicalMemoryLength;
230 EFI_PHYSICAL_ADDRESS FreePhysicalMemoryTop;
231 UINTN HeapOffset;
232 BOOLEAN HeapOffsetPositive;
233 UINTN StackOffset;
234 BOOLEAN StackOffsetPositive;
235 PEICORE_FUNCTION_POINTER ShadowedPeiCore;
236 CACHE_SECTION_DATA CacheSection;
237 //
238 // For Loading modules at fixed address feature to cache the top address below which the
239 // Runtime code, boot time code and PEI memory will be placed. Please note that the offset between this field
240 // and Ps should not be changed since maybe user could get this top address by using the offet to Ps.
241 //
242 EFI_PHYSICAL_ADDRESS LoadModuleAtFixAddressTopAddress;
243 //
244 // The field is define for Loading modules at fixed address feature to tracker the PEI code
245 // memory range usage. It is a bit mapped array in which every bit indicates the correspoding memory page
246 // available or not.
247 //
248 UINT64 *PeiCodeMemoryRangeUsageBitMap;
249 //
250 // This field points to the shadowed image read function
251 //
252 PE_COFF_LOADER_READ_FILE ShadowedImageRead;
253
254 //
255 // Pointer to the temp buffer with the PcdPeiCoreMaxPeimPerFv + 1 number of entries.
256 //
257 EFI_PEI_FILE_HANDLE *FileHandles;
258 //
259 // Pointer to the temp buffer with the PcdPeiCoreMaxPeimPerFv number of entries.
260 //
261 EFI_GUID *FileGuid;
262
263 //
264 // Temp Memory Range is not covered by PeiTempMem and Stack.
265 // Those Memory Range will be migrated into phisical memory.
266 //
267 HOLE_MEMORY_DATA HoleData[HOLE_MAX_NUMBER];
268 };
PEI_CORE_FV_HANDLE 数据结构
此数据结构用来记录一个PeiMain 识别的FV空间的数据信息,包括其起始位置,数据格式解析的PPI, 自己的句柄以及所包含的每个PEI模块的派遣状态和每个文件的句柄,
它的真实样子是这样的:
typedef struct {
110 EFI_FIRMWARE_VOLUME_HEADER *FvHeader;
111 EFI_PEI_FIRMWARE_VOLUME_PPI *FvPpi;
112 EFI_PEI_FV_HANDLE FvHandle;
113 //
114 // Ponter to the buffer with the PcdPeiCoreMaxPeimPerFv number of Entries.
115 //
116 UINT8 *PeimState;
117 //
118 // Ponter to the buffer with the PcdPeiCoreMaxPeimPerFv number of Entries.
119 //
120 EFI_PEI_FILE_HANDLE *FvFileHandles;
121 BOOLEAN ScanFv;
122 UINT32 AuthenticationStatus;
123 } PEI_CORE_FV_HANDLE;
.htaccess设置技巧Are you looking for some useful .htaccess tricks for your WordPress site. The .htaccess file is a powerful configuration file which allows you to do a lot of neat things on your website. ...
一、Image processing data set1、MNIST ,是最流行的深度学习数据集之一。这是一个手写数字数据集,包含一个有着 60000 样本的训练集和一个有着 10000 样本的测试集。对于在现实世界数据上尝试学习技术和深度识别模式而言,这是一个非常好的数据库,且无需花费过多时间和精力进行数据预处理。大小:约 50 MB数量:70000 张图像,共分为 10 个类别。...
分享KaliLinux2016.2第50周镜像文件KaliLinux官方于12月11日发布KaliLinux2016.2的第50周镜像。这次保持以往规律,仍然是11个镜像文件。默认的Gnome桌面的4个镜像,...
一、卸载系统自带3款软件卸载①卸载自带的office,待卸载完成。②卸载自带的浏览器,待卸载完成。③卸载自带的输入法(sunpinyin),待卸载完成。安装①去应用商城安装WPS,待安装完成。②去应用商城安装谷歌浏览器,待安装完成。③去应用商城安装搜狗输入法,待安装完成。④去应用商城安装QQ,待安装完成。最好一步一步来,免得出现问题卡Bug,最后重启。二、屏蔽Windows分区查询分区UUID:lsblk -f新建:90-hide_parts.rules
Caused by: java.lang.NullPointerException: nullorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'globalTransactionScanner' defined in class path resource [io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.cl
展开全部关于 “A LEFT JOIN B ON 条件636f707962616964757a686964616f31333363373666表达式” 的一点提醒ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行,即使on中包含有A表中的列的限制条件,也不会过滤A的任何数据(A的数据只会通过where过滤)。如果 B 表中没有任何一行数据匹配 ...
GitHub介绍 众所周知,GitHub是一个代码托管平台,可以依据现在目前最流行的版本管理方式Git进行管理,可以说,GitHub就是程序员的FaceBook,它让我领略到了开源的魅力。Git介绍 Git是目前最流行的版本管理方式,其他的版本管理方式,我也有所了解,比如说SVN。和svn相比,git有太多的有点,比如,我在本地管理仓库的时候是不需要联网的,而svn不行,不联网它就不干
一、简介提取手部轮廓特征,k-means聚类算法,训练得到手势识别模型,然后用测试数据测试。1 K-means算法原理K-means算法是最常用的一种聚类算法。算法的输入为一个样本集(或者称为点集),通过该算法可以将样本进行聚类,具有相似特征的样本聚为一类。针对每个点,计算这个点距离所有中心点最近的那个中心点,然后将这个点归为这个中心点代表的簇。一次迭代结束之后,针对每个簇类,重新计算中心点,然后针对每个点,重新寻找距离自己最近的中心点。如此循环,直到前后两次迭代的簇类没有变化。下面通过一个
将修改后的文件同步到集群中的其他节点上,不需要重启集群,重新运行原来自己要执行的程序即可正常执行。
作者:66在开始帧间预测代码分析之前,先把理论部分再理一遍。这部分涉及到的知识点较之前多些,相关的资料与代码不容易找出匹配的部分,造成作为新手的我阅读源代码反复好几次才搞清楚(还没体验过上手就明了的感觉)。我把理论部分修改尽力趋同于后面对代码的解析。相关的名词:ME(运动估计)、MC(运动补偿)、MV(运动向量,其实就是运动距离加方向,代码中用Dir表示方向,MV表示距离)、SAD(绝
STA: Single-Thread Apartment, 中文叫单线程套间。就是在COM库初始化的时候创建一个内存结构,然后让它和调用CoInitialize的线程相关联。这个内存结构针对每个线程都会有一个。支持STA的COM对象只能在创建它的线程里被使用,其它线程如果再创建它就会失败。 MTA: Mutil-Thread Apartment,中文叫多线程套间。COM库在进程中创建一
本地缓存Storage localStorage及sessionStorage使用(没有过期时间,不清空就一直在) 在审查台Application-Storage里查看设置setItem(key, value) 添加或更新(如果数据项中已存在该key)数据项中指定key的value获取getItem(key) 获取数据项中指定key对应的value移出指...