Message ID | 1467624335-13937-1-git-send-email-ivan.hu@canonical.com |
---|---|
State | Accepted |
Headers | show |
On 2016-07-04 05:25 PM, Ivan Hu wrote: > Planning to upstream efi_runtime kernel module, add a header file for using uefi > runtime service on user space. > > Signed-off-by: Ivan Hu <ivan.hu@canonical.com> > --- > src/lib/include/fwts_efi_runtime.h | 160 +++++++++++++++++++++++++++++++ > src/uefi/uefirtauthvar/uefirtauthvar.c | 2 +- > src/uefi/uefirtmisc/uefirtmisc.c | 2 +- > src/uefi/uefirttime/uefirttime.c | 2 +- > src/uefi/uefirtvariable/uefirtvariable.c | 2 +- > src/uefi/uefivarinfo/uefivarinfo.c | 2 +- > 6 files changed, 165 insertions(+), 5 deletions(-) > create mode 100644 src/lib/include/fwts_efi_runtime.h > > diff --git a/src/lib/include/fwts_efi_runtime.h b/src/lib/include/fwts_efi_runtime.h > new file mode 100644 > index 0000000..a65de31 > --- /dev/null > +++ b/src/lib/include/fwts_efi_runtime.h > @@ -0,0 +1,160 @@ > +/* > + * Copyright(C) 2016 Canonical Ltd. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. > + */ > + > +#ifndef _FWTS_EFI_RUNTIME_H_ > +#define _FWTS_EFI_RUNTIME_H_ > + > +typedef enum { > + EfiResetCold, > + EfiResetWarm, > + EfiResetShutdown > +} EFI_RESET_TYPE; > + > +typedef struct { > + uint32_t Data1; > + uint16_t Data2; > + uint16_t Data3; > + uint8_t Data4[8]; > +} __attribute__ ((packed)) EFI_GUID; > + > +typedef struct { > + uint16_t Year; /* 1900 – 9999 */ > + uint8_t Month; /* 1 – 12 */ > + uint8_t Day; /* 1 – 31 */ > + uint8_t Hour; /* 0 – 23 */ > + uint8_t Minute; /* 0 – 59 */ > + uint8_t Second; /* 0 – 59 */ > + uint8_t Pad1; > + uint32_t Nanosecond; /* 0 – 999,999,999 */ > + int16_t TimeZone; /* -1440 to 1440 or 2047 */ > + uint8_t Daylight; > + uint8_t Pad2; > +} __attribute__ ((packed)) EFI_TIME; > + > +typedef struct { > + uint32_t Resolution; > + uint32_t Accuracy; > + uint8_t SetsToZero; > +} __attribute__ ((packed)) EFI_TIME_CAPABILITIES; > + > +typedef struct { > + EFI_GUID CapsuleGuid; > + uint32_t HeaderSize; > + uint32_t Flags; > + uint32_t CapsuleImageSize; > +} __attribute__ ((packed)) EFI_CAPSULE_HEADER; > + > +struct efi_getvariable { > + uint16_t *VariableName; > + EFI_GUID *VendorGuid; > + uint32_t *Attributes; > + uint64_t *DataSize; > + void *Data; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_setvariable { > + uint16_t *VariableName; > + EFI_GUID *VendorGuid; > + uint32_t Attributes; > + uint64_t DataSize; > + void *Data; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_getnextvariablename { > + uint64_t *VariableNameSize; > + uint16_t *VariableName; > + EFI_GUID *VendorGuid; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_queryvariableinfo { > + uint32_t Attributes; > + uint64_t *MaximumVariableStorageSize; > + uint64_t *RemainingVariableStorageSize; > + uint64_t *MaximumVariableSize; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_gettime { > + EFI_TIME *Time; > + EFI_TIME_CAPABILITIES *Capabilities; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_settime { > + EFI_TIME *Time; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_getwakeuptime { > + uint8_t *Enabled; > + uint8_t *Pending; > + EFI_TIME *Time; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_setwakeuptime { > + uint8_t Enabled; > + EFI_TIME *Time; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_getnexthighmonotoniccount { > + uint32_t *HighCount; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_querycapsulecapabilities { > + EFI_CAPSULE_HEADER **CapsuleHeaderArray; > + uint64_t CapsuleCount; > + uint64_t *MaximumCapsuleSize; > + EFI_RESET_TYPE *ResetType; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +/* ioctl calls that are permitted to the /dev/efi_runtime interface. */ > +#define EFI_RUNTIME_GET_VARIABLE \ > + _IOWR('p', 0x01, struct efi_getvariable) > +#define EFI_RUNTIME_SET_VARIABLE \ > + _IOW('p', 0x02, struct efi_setvariable) > + > +#define EFI_RUNTIME_GET_TIME \ > + _IOR('p', 0x03, struct efi_gettime) > +#define EFI_RUNTIME_SET_TIME \ > + _IOW('p', 0x04, struct efi_settime) > + > +#define EFI_RUNTIME_GET_WAKETIME \ > + _IOR('p', 0x05, struct efi_getwakeuptime) > +#define EFI_RUNTIME_SET_WAKETIME \ > + _IOW('p', 0x06, struct efi_setwakeuptime) > + > +#define EFI_RUNTIME_GET_NEXTVARIABLENAME \ > + _IOWR('p', 0x07, struct efi_getnextvariablename) > + > +#define EFI_RUNTIME_QUERY_VARIABLEINFO \ > + _IOR('p', 0x08, struct efi_queryvariableinfo) > + > +#define EFI_RUNTIME_GET_NEXTHIGHMONOTONICCOUNT \ > + _IOR('p', 0x09, struct efi_getnexthighmonotoniccount) > + > +#define EFI_RUNTIME_QUERY_CAPSULECAPABILITIES \ > + _IOR('p', 0x0A, struct efi_querycapsulecapabilities) > + > +#endif /* _FWTS_EFI_RUNTIME_H_ */ > diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c > index 6d8c385..ed23a8e 100644 > --- a/src/uefi/uefirtauthvar/uefirtauthvar.c > +++ b/src/uefi/uefirtauthvar/uefirtauthvar.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > #include "authvardefs.h" > > diff --git a/src/uefi/uefirtmisc/uefirtmisc.c b/src/uefi/uefirtmisc/uefirtmisc.c > index 0b319d7..347b2b1 100644 > --- a/src/uefi/uefirtmisc/uefirtmisc.c > +++ b/src/uefi/uefirtmisc/uefirtmisc.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000 > diff --git a/src/uefi/uefirttime/uefirttime.c b/src/uefi/uefirttime/uefirttime.c > index 5c883a5..f79e2da 100644 > --- a/src/uefi/uefirttime/uefirttime.c > +++ b/src/uefi/uefirttime/uefirttime.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define UEFI_IGNORE_UNSET_BITS (0) > diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c > index aca0202..f60dbad 100644 > --- a/src/uefi/uefirtvariable/uefirtvariable.c > +++ b/src/uefi/uefirtvariable/uefirtvariable.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define TEST_GUID1 \ > diff --git a/src/uefi/uefivarinfo/uefivarinfo.c b/src/uefi/uefivarinfo/uefivarinfo.c > index 005e3a1..22afe53 100644 > --- a/src/uefi/uefivarinfo/uefivarinfo.c > +++ b/src/uefi/uefivarinfo/uefivarinfo.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define MAX_VARNAME_LENGTH 1024 > > > Acked-by: Alex Hung <alex.hung@canonical.com>
On 04/07/16 10:25, Ivan Hu wrote: > Planning to upstream efi_runtime kernel module, add a header file for using uefi > runtime service on user space. > > Signed-off-by: Ivan Hu <ivan.hu@canonical.com> > --- > src/lib/include/fwts_efi_runtime.h | 160 +++++++++++++++++++++++++++++++ > src/uefi/uefirtauthvar/uefirtauthvar.c | 2 +- > src/uefi/uefirtmisc/uefirtmisc.c | 2 +- > src/uefi/uefirttime/uefirttime.c | 2 +- > src/uefi/uefirtvariable/uefirtvariable.c | 2 +- > src/uefi/uefivarinfo/uefivarinfo.c | 2 +- > 6 files changed, 165 insertions(+), 5 deletions(-) > create mode 100644 src/lib/include/fwts_efi_runtime.h > > diff --git a/src/lib/include/fwts_efi_runtime.h b/src/lib/include/fwts_efi_runtime.h > new file mode 100644 > index 0000000..a65de31 > --- /dev/null > +++ b/src/lib/include/fwts_efi_runtime.h > @@ -0,0 +1,160 @@ > +/* > + * Copyright(C) 2016 Canonical Ltd. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. > + */ > + > +#ifndef _FWTS_EFI_RUNTIME_H_ > +#define _FWTS_EFI_RUNTIME_H_ > + > +typedef enum { > + EfiResetCold, > + EfiResetWarm, > + EfiResetShutdown > +} EFI_RESET_TYPE; > + > +typedef struct { > + uint32_t Data1; > + uint16_t Data2; > + uint16_t Data3; > + uint8_t Data4[8]; > +} __attribute__ ((packed)) EFI_GUID; > + > +typedef struct { > + uint16_t Year; /* 1900 – 9999 */ > + uint8_t Month; /* 1 – 12 */ > + uint8_t Day; /* 1 – 31 */ > + uint8_t Hour; /* 0 – 23 */ > + uint8_t Minute; /* 0 – 59 */ > + uint8_t Second; /* 0 – 59 */ > + uint8_t Pad1; > + uint32_t Nanosecond; /* 0 – 999,999,999 */ > + int16_t TimeZone; /* -1440 to 1440 or 2047 */ > + uint8_t Daylight; > + uint8_t Pad2; > +} __attribute__ ((packed)) EFI_TIME; > + > +typedef struct { > + uint32_t Resolution; > + uint32_t Accuracy; > + uint8_t SetsToZero; > +} __attribute__ ((packed)) EFI_TIME_CAPABILITIES; > + > +typedef struct { > + EFI_GUID CapsuleGuid; > + uint32_t HeaderSize; > + uint32_t Flags; > + uint32_t CapsuleImageSize; > +} __attribute__ ((packed)) EFI_CAPSULE_HEADER; > + > +struct efi_getvariable { > + uint16_t *VariableName; > + EFI_GUID *VendorGuid; > + uint32_t *Attributes; > + uint64_t *DataSize; > + void *Data; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_setvariable { > + uint16_t *VariableName; > + EFI_GUID *VendorGuid; > + uint32_t Attributes; > + uint64_t DataSize; > + void *Data; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_getnextvariablename { > + uint64_t *VariableNameSize; > + uint16_t *VariableName; > + EFI_GUID *VendorGuid; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_queryvariableinfo { > + uint32_t Attributes; > + uint64_t *MaximumVariableStorageSize; > + uint64_t *RemainingVariableStorageSize; > + uint64_t *MaximumVariableSize; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_gettime { > + EFI_TIME *Time; > + EFI_TIME_CAPABILITIES *Capabilities; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_settime { > + EFI_TIME *Time; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_getwakeuptime { > + uint8_t *Enabled; > + uint8_t *Pending; > + EFI_TIME *Time; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_setwakeuptime { > + uint8_t Enabled; > + EFI_TIME *Time; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_getnexthighmonotoniccount { > + uint32_t *HighCount; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +struct efi_querycapsulecapabilities { > + EFI_CAPSULE_HEADER **CapsuleHeaderArray; > + uint64_t CapsuleCount; > + uint64_t *MaximumCapsuleSize; > + EFI_RESET_TYPE *ResetType; > + uint64_t *status; > +} __attribute__ ((packed)); > + > +/* ioctl calls that are permitted to the /dev/efi_runtime interface. */ > +#define EFI_RUNTIME_GET_VARIABLE \ > + _IOWR('p', 0x01, struct efi_getvariable) > +#define EFI_RUNTIME_SET_VARIABLE \ > + _IOW('p', 0x02, struct efi_setvariable) > + > +#define EFI_RUNTIME_GET_TIME \ > + _IOR('p', 0x03, struct efi_gettime) > +#define EFI_RUNTIME_SET_TIME \ > + _IOW('p', 0x04, struct efi_settime) > + > +#define EFI_RUNTIME_GET_WAKETIME \ > + _IOR('p', 0x05, struct efi_getwakeuptime) > +#define EFI_RUNTIME_SET_WAKETIME \ > + _IOW('p', 0x06, struct efi_setwakeuptime) > + > +#define EFI_RUNTIME_GET_NEXTVARIABLENAME \ > + _IOWR('p', 0x07, struct efi_getnextvariablename) > + > +#define EFI_RUNTIME_QUERY_VARIABLEINFO \ > + _IOR('p', 0x08, struct efi_queryvariableinfo) > + > +#define EFI_RUNTIME_GET_NEXTHIGHMONOTONICCOUNT \ > + _IOR('p', 0x09, struct efi_getnexthighmonotoniccount) > + > +#define EFI_RUNTIME_QUERY_CAPSULECAPABILITIES \ > + _IOR('p', 0x0A, struct efi_querycapsulecapabilities) > + > +#endif /* _FWTS_EFI_RUNTIME_H_ */ > diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c > index 6d8c385..ed23a8e 100644 > --- a/src/uefi/uefirtauthvar/uefirtauthvar.c > +++ b/src/uefi/uefirtauthvar/uefirtauthvar.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > #include "authvardefs.h" > > diff --git a/src/uefi/uefirtmisc/uefirtmisc.c b/src/uefi/uefirtmisc/uefirtmisc.c > index 0b319d7..347b2b1 100644 > --- a/src/uefi/uefirtmisc/uefirtmisc.c > +++ b/src/uefi/uefirtmisc/uefirtmisc.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000 > diff --git a/src/uefi/uefirttime/uefirttime.c b/src/uefi/uefirttime/uefirttime.c > index 5c883a5..f79e2da 100644 > --- a/src/uefi/uefirttime/uefirttime.c > +++ b/src/uefi/uefirttime/uefirttime.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define UEFI_IGNORE_UNSET_BITS (0) > diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c > index aca0202..f60dbad 100644 > --- a/src/uefi/uefirtvariable/uefirtvariable.c > +++ b/src/uefi/uefirtvariable/uefirtvariable.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define TEST_GUID1 \ > diff --git a/src/uefi/uefivarinfo/uefivarinfo.c b/src/uefi/uefivarinfo/uefivarinfo.c > index 005e3a1..22afe53 100644 > --- a/src/uefi/uefivarinfo/uefivarinfo.c > +++ b/src/uefi/uefivarinfo/uefivarinfo.c > @@ -27,7 +27,7 @@ > #include <fcntl.h> > > #include "fwts_uefi.h" > -#include "efi_runtime.h" > +#include "fwts_efi_runtime.h" > #include "fwts_efi_module.h" > > #define MAX_VARNAME_LENGTH 1024 > > > OK - looks good to me, thanks Ivan. Acked-by: Colin Ian King <colin.king@canonical.com>
diff --git a/src/lib/include/fwts_efi_runtime.h b/src/lib/include/fwts_efi_runtime.h new file mode 100644 index 0000000..a65de31 --- /dev/null +++ b/src/lib/include/fwts_efi_runtime.h @@ -0,0 +1,160 @@ +/* + * Copyright(C) 2016 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef _FWTS_EFI_RUNTIME_H_ +#define _FWTS_EFI_RUNTIME_H_ + +typedef enum { + EfiResetCold, + EfiResetWarm, + EfiResetShutdown +} EFI_RESET_TYPE; + +typedef struct { + uint32_t Data1; + uint16_t Data2; + uint16_t Data3; + uint8_t Data4[8]; +} __attribute__ ((packed)) EFI_GUID; + +typedef struct { + uint16_t Year; /* 1900 – 9999 */ + uint8_t Month; /* 1 – 12 */ + uint8_t Day; /* 1 – 31 */ + uint8_t Hour; /* 0 – 23 */ + uint8_t Minute; /* 0 – 59 */ + uint8_t Second; /* 0 – 59 */ + uint8_t Pad1; + uint32_t Nanosecond; /* 0 – 999,999,999 */ + int16_t TimeZone; /* -1440 to 1440 or 2047 */ + uint8_t Daylight; + uint8_t Pad2; +} __attribute__ ((packed)) EFI_TIME; + +typedef struct { + uint32_t Resolution; + uint32_t Accuracy; + uint8_t SetsToZero; +} __attribute__ ((packed)) EFI_TIME_CAPABILITIES; + +typedef struct { + EFI_GUID CapsuleGuid; + uint32_t HeaderSize; + uint32_t Flags; + uint32_t CapsuleImageSize; +} __attribute__ ((packed)) EFI_CAPSULE_HEADER; + +struct efi_getvariable { + uint16_t *VariableName; + EFI_GUID *VendorGuid; + uint32_t *Attributes; + uint64_t *DataSize; + void *Data; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_setvariable { + uint16_t *VariableName; + EFI_GUID *VendorGuid; + uint32_t Attributes; + uint64_t DataSize; + void *Data; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_getnextvariablename { + uint64_t *VariableNameSize; + uint16_t *VariableName; + EFI_GUID *VendorGuid; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_queryvariableinfo { + uint32_t Attributes; + uint64_t *MaximumVariableStorageSize; + uint64_t *RemainingVariableStorageSize; + uint64_t *MaximumVariableSize; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_gettime { + EFI_TIME *Time; + EFI_TIME_CAPABILITIES *Capabilities; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_settime { + EFI_TIME *Time; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_getwakeuptime { + uint8_t *Enabled; + uint8_t *Pending; + EFI_TIME *Time; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_setwakeuptime { + uint8_t Enabled; + EFI_TIME *Time; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_getnexthighmonotoniccount { + uint32_t *HighCount; + uint64_t *status; +} __attribute__ ((packed)); + +struct efi_querycapsulecapabilities { + EFI_CAPSULE_HEADER **CapsuleHeaderArray; + uint64_t CapsuleCount; + uint64_t *MaximumCapsuleSize; + EFI_RESET_TYPE *ResetType; + uint64_t *status; +} __attribute__ ((packed)); + +/* ioctl calls that are permitted to the /dev/efi_runtime interface. */ +#define EFI_RUNTIME_GET_VARIABLE \ + _IOWR('p', 0x01, struct efi_getvariable) +#define EFI_RUNTIME_SET_VARIABLE \ + _IOW('p', 0x02, struct efi_setvariable) + +#define EFI_RUNTIME_GET_TIME \ + _IOR('p', 0x03, struct efi_gettime) +#define EFI_RUNTIME_SET_TIME \ + _IOW('p', 0x04, struct efi_settime) + +#define EFI_RUNTIME_GET_WAKETIME \ + _IOR('p', 0x05, struct efi_getwakeuptime) +#define EFI_RUNTIME_SET_WAKETIME \ + _IOW('p', 0x06, struct efi_setwakeuptime) + +#define EFI_RUNTIME_GET_NEXTVARIABLENAME \ + _IOWR('p', 0x07, struct efi_getnextvariablename) + +#define EFI_RUNTIME_QUERY_VARIABLEINFO \ + _IOR('p', 0x08, struct efi_queryvariableinfo) + +#define EFI_RUNTIME_GET_NEXTHIGHMONOTONICCOUNT \ + _IOR('p', 0x09, struct efi_getnexthighmonotoniccount) + +#define EFI_RUNTIME_QUERY_CAPSULECAPABILITIES \ + _IOR('p', 0x0A, struct efi_querycapsulecapabilities) + +#endif /* _FWTS_EFI_RUNTIME_H_ */ diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c index 6d8c385..ed23a8e 100644 --- a/src/uefi/uefirtauthvar/uefirtauthvar.c +++ b/src/uefi/uefirtauthvar/uefirtauthvar.c @@ -27,7 +27,7 @@ #include <fcntl.h> #include "fwts_uefi.h" -#include "efi_runtime.h" +#include "fwts_efi_runtime.h" #include "fwts_efi_module.h" #include "authvardefs.h" diff --git a/src/uefi/uefirtmisc/uefirtmisc.c b/src/uefi/uefirtmisc/uefirtmisc.c index 0b319d7..347b2b1 100644 --- a/src/uefi/uefirtmisc/uefirtmisc.c +++ b/src/uefi/uefirtmisc/uefirtmisc.c @@ -27,7 +27,7 @@ #include <fcntl.h> #include "fwts_uefi.h" -#include "efi_runtime.h" +#include "fwts_efi_runtime.h" #include "fwts_efi_module.h" #define CAPSULE_FLAGS_PERSIST_ACROSS_RESET 0x00010000 diff --git a/src/uefi/uefirttime/uefirttime.c b/src/uefi/uefirttime/uefirttime.c index 5c883a5..f79e2da 100644 --- a/src/uefi/uefirttime/uefirttime.c +++ b/src/uefi/uefirttime/uefirttime.c @@ -27,7 +27,7 @@ #include <fcntl.h> #include "fwts_uefi.h" -#include "efi_runtime.h" +#include "fwts_efi_runtime.h" #include "fwts_efi_module.h" #define UEFI_IGNORE_UNSET_BITS (0) diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c index aca0202..f60dbad 100644 --- a/src/uefi/uefirtvariable/uefirtvariable.c +++ b/src/uefi/uefirtvariable/uefirtvariable.c @@ -27,7 +27,7 @@ #include <fcntl.h> #include "fwts_uefi.h" -#include "efi_runtime.h" +#include "fwts_efi_runtime.h" #include "fwts_efi_module.h" #define TEST_GUID1 \ diff --git a/src/uefi/uefivarinfo/uefivarinfo.c b/src/uefi/uefivarinfo/uefivarinfo.c index 005e3a1..22afe53 100644 --- a/src/uefi/uefivarinfo/uefivarinfo.c +++ b/src/uefi/uefivarinfo/uefivarinfo.c @@ -27,7 +27,7 @@ #include <fcntl.h> #include "fwts_uefi.h" -#include "efi_runtime.h" +#include "fwts_efi_runtime.h" #include "fwts_efi_module.h" #define MAX_VARNAME_LENGTH 1024
Planning to upstream efi_runtime kernel module, add a header file for using uefi runtime service on user space. Signed-off-by: Ivan Hu <ivan.hu@canonical.com> --- src/lib/include/fwts_efi_runtime.h | 160 +++++++++++++++++++++++++++++++ src/uefi/uefirtauthvar/uefirtauthvar.c | 2 +- src/uefi/uefirtmisc/uefirtmisc.c | 2 +- src/uefi/uefirttime/uefirttime.c | 2 +- src/uefi/uefirtvariable/uefirtvariable.c | 2 +- src/uefi/uefivarinfo/uefivarinfo.c | 2 +- 6 files changed, 165 insertions(+), 5 deletions(-) create mode 100644 src/lib/include/fwts_efi_runtime.h