Skip to content

Commit

Permalink
set global variable for g_efiUuid
Browse files Browse the repository at this point in the history
  • Loading branch information
YunfeiZHAO authored and Inokinoki committed Jul 11, 2023
1 parent cafb36d commit a10b7e9
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
20 changes: 11 additions & 9 deletions qefientrystaticlist.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include "qefientrystaticlist.h"

#include <QUuid>


#include <QDebug>
#include <QtEndian>
Expand All @@ -13,6 +13,8 @@
#define dec Qt::dec
#endif

QUuid g_efiUuid=QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c");

QEFIEntryStaticList::QEFIEntryStaticList()
{
}
Expand Down Expand Up @@ -59,16 +61,16 @@ QEFIEntryStaticList::~QEFIEntryStaticList()

void QEFIEntryStaticList::load()
{
quint16 current = qefi_get_variable_uint16(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
quint16 current = qefi_get_variable_uint16(g_efiUuid,
QStringLiteral("BootCurrent"));
qDebug() << "BootCurrent: " << hex << current;

quint16 timeout = qefi_get_variable_uint16(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
quint16 timeout = qefi_get_variable_uint16(g_efiUuid,
QStringLiteral("Timeout"));
qDebug() << "Timeout: " << dec << timeout << " seconds";
m_timeout = timeout;

QByteArray data = qefi_get_variable(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
QByteArray data = qefi_get_variable(g_efiUuid,
QStringLiteral("BootOrder"));
quint16 *order_num = (quint16 *)data.data();
qDebug() << "BootOrder: ";
Expand All @@ -84,7 +86,7 @@ void QEFIEntryStaticList::load()
for (int i = 0; i < data.size() / 2; i++, order_num++) {
quint16 order_id = qFromLittleEndian<quint16>(*order_num);
QString name = QString::asprintf("Boot%04X", order_id);
QByteArray boot_data = qefi_get_variable(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
QByteArray boot_data = qefi_get_variable(g_efiUuid,
name);
QEFILoadOption *loadOption = new QEFILoadOption(boot_data);

Expand All @@ -103,7 +105,7 @@ void QEFIEntryStaticList::load()
void QEFIEntryStaticList::setBootNext(const quint16 &next)
{
// TODO: Maybe do validation
qefi_set_variable_uint16(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
qefi_set_variable_uint16(g_efiUuid,
QStringLiteral("BootNext"), next);
}

Expand All @@ -117,7 +119,7 @@ void QEFIEntryStaticList::setBootOrder(const QList<quint16> &newOrder)
for (int i = 0; i < newOrder.size(); i++, p++) {
*p = qToLittleEndian<quint16>(newOrder[i]);
}
qefi_set_variable(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
qefi_set_variable(g_efiUuid,
QStringLiteral("BootOrder"), orderBuffer);

// Sync the order in this class, we currently have confiance on the list
Expand Down Expand Up @@ -150,7 +152,7 @@ bool QEFIEntryStaticList::setBootVisibility(
bootData[2] = ((attribute >> 16) & 0xFF);
bootData[1] = ((attribute >> 8) & 0xFF);
bootData[0] = (attribute & 0xFF);
qefi_set_variable(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
qefi_set_variable(g_efiUuid,
name, bootData);

return true;
Expand Down Expand Up @@ -190,7 +192,7 @@ bool QEFIEntryStaticList::updateBootEntry(const quint16 bootID, const QByteArray

// Write the data
QString name = QString::asprintf("Boot%04X", bootID);
qefi_set_variable(QUuid("8be4df61-93ca-11d2-aa0d-00e098032b8c"),
qefi_set_variable(g_efiUuid,
name, data);

// Update entry
Expand Down
8 changes: 6 additions & 2 deletions qefientrystaticlist.h
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
#ifndef QEFIENTRYSTATICLIST_H
#define QEFIENTRYSTATICLIST_H

#include <QList>
#include <QMap>
#include <QUuid>

#include <qefientry.h>

#include <QMap>
#include <QList>
extern QUuid g_efiUuid;


class QEFIEntryStaticList
{
Expand Down

0 comments on commit a10b7e9

Please sign in to comment.