diff options
author | Laszlo Ersek <lersek@redhat.com> | 2014-01-03 19:57:17 +0000 |
---|---|---|
committer | jljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524> | 2014-01-03 19:57:17 +0000 |
commit | 0dc231c9bd1a5aecfbcd373a50dc348a5dfbd38a (patch) | |
tree | ebc9b077393d276d4caee5bc1c35bb2606e21a63 /OvmfPkg/Library | |
parent | e55bf53ba9f59f16a6dabe8ac08db25bc91df770 (diff) | |
download | edk2-0dc231c9bd1a5aecfbcd373a50dc348a5dfbd38a.tar.gz edk2-0dc231c9bd1a5aecfbcd373a50dc348a5dfbd38a.tar.bz2 edk2-0dc231c9bd1a5aecfbcd373a50dc348a5dfbd38a.zip |
OvmfPkg: QemuFwCfgLib: introduce InternalQemuFwCfgIsAvailable()
This internal function allows separation of library-internal and
for-clients external availability of fw_cfg.
The interface contract of QemuFwCfgIsAvailable() is changed so that now it
may modify fw_cfg state. All current users are compliant with the new
contract.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15044 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/Library')
-rw-r--r-- | OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c index 7e5ea00bf9..985b383c26 100644 --- a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c +++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c @@ -1,6 +1,7 @@ /** @file
Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>
+ Copyright (C) 2013, Red Hat, Inc.
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -81,6 +82,8 @@ IoWriteFifo8 ( Returns a boolean indicating if the firmware configuration interface
is available or not.
+ This function may change fw_cfg state.
+
@retval TRUE The interface is available
@retval FALSE The interface is not available
@@ -91,7 +94,7 @@ QemuFwCfgIsAvailable ( VOID
)
{
- return mQemuFwCfgSupported;
+ return InternalQemuFwCfgIsAvailable ();
}
@@ -151,7 +154,7 @@ QemuFwCfgReadBytes ( IN VOID *Buffer
)
{
- if (mQemuFwCfgSupported) {
+ if (InternalQemuFwCfgIsAvailable ()) {
InternalQemuFwCfgReadBytes (Size, Buffer);
} else {
ZeroMem (Buffer, Size);
@@ -176,7 +179,7 @@ QemuFwCfgWriteBytes ( IN VOID *Buffer
)
{
- if (mQemuFwCfgSupported) {
+ if (InternalQemuFwCfgIsAvailable ()) {
IoWriteFifo8 (0x511, Size, Buffer);
}
}
@@ -319,7 +322,7 @@ QemuFwCfgFindFile ( UINT32 Count;
UINT32 Idx;
- if (!mQemuFwCfgSupported) {
+ if (!InternalQemuFwCfgIsAvailable ()) {
return RETURN_UNSUPPORTED;
}
@@ -346,3 +349,22 @@ QemuFwCfgFindFile ( return RETURN_NOT_FOUND;
}
+
+
+/**
+ Returns a boolean indicating if the firmware configuration interface is
+ available for library-internal purposes.
+
+ This function never changes fw_cfg state.
+
+ @retval TRUE The interface is available internally.
+ @retval FALSE The interface is not available internally.
+**/
+BOOLEAN
+EFIAPI
+InternalQemuFwCfgIsAvailable (
+ VOID
+ )
+{
+ return mQemuFwCfgSupported;
+}
|