mirror of
https://git.proxmox.com/git/efi-boot-shim
synced 2025-08-14 17:23:58 +00:00
Use gcc's offsetof() instead of hacking out our own.
Signed-off-by: Peter Jones <pjones@redhat.com>
This commit is contained in:
parent
ca1d0534fa
commit
7ee19bdc41
@ -119,8 +119,6 @@ typedef struct {
|
|||||||
//UINT8 Signature[];
|
//UINT8 Signature[];
|
||||||
} WIN_CERTIFICATE_EFI_PKCS1_15;
|
} WIN_CERTIFICATE_EFI_PKCS1_15;
|
||||||
|
|
||||||
#define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field))
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Attributes of Authenticated Variable
|
* Attributes of Authenticated Variable
|
||||||
*/
|
*/
|
||||||
@ -182,14 +180,14 @@ typedef struct {
|
|||||||
/*
|
/*
|
||||||
* Size of AuthInfo prior to the data payload.
|
* Size of AuthInfo prior to the data payload.
|
||||||
*/
|
*/
|
||||||
#define AUTHINFO_SIZE ((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION, AuthInfo)) + \
|
#define AUTHINFO_SIZE ((offsetof(EFI_VARIABLE_AUTHENTICATION, AuthInfo)) + \
|
||||||
(OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)) + \
|
(offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData)) + \
|
||||||
sizeof (EFI_CERT_BLOCK_RSA_2048_SHA256))
|
sizeof (EFI_CERT_BLOCK_RSA_2048_SHA256))
|
||||||
|
|
||||||
#define AUTHINFO2_SIZE(VarAuth2) ((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \
|
#define AUTHINFO2_SIZE(VarAuth2) ((offsetof(EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \
|
||||||
(UINTN) ((EFI_VARIABLE_AUTHENTICATION_2 *) (VarAuth2))->AuthInfo.Hdr.dwLength)
|
(UINTN) ((EFI_VARIABLE_AUTHENTICATION_2 *) (VarAuth2))->AuthInfo.Hdr.dwLength)
|
||||||
|
|
||||||
#define OFFSET_OF_AUTHINFO2_CERT_DATA ((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \
|
#define OFFSET_OF_AUTHINFO2_CERT_DATA ((offsetof(EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \
|
||||||
(OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)))
|
(offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData)))
|
||||||
|
|
||||||
#endif /* SHIM_EFIAUTHENTICATED_H */
|
#endif /* SHIM_EFIAUTHENTICATED_H */
|
||||||
|
@ -314,7 +314,7 @@ simple_dir_filter(EFI_HANDLE image, CHAR16 *name, CHAR16 *filter,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ptr += OFFSET_OF(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16);
|
ptr += offsetof(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16);
|
||||||
next = ptr;
|
next = ptr;
|
||||||
}
|
}
|
||||||
if (*count)
|
if (*count)
|
||||||
@ -367,7 +367,7 @@ simple_dir_filter(EFI_HANDLE image, CHAR16 *name, CHAR16 *filter,
|
|||||||
(*result)[0] = tmp;
|
(*result)[0] = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr += OFFSET_OF(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16);
|
ptr += offsetof(EFI_FILE_INFO, FileName) + (len + 1)*sizeof(CHAR16);
|
||||||
next = ptr;
|
next = ptr;
|
||||||
}
|
}
|
||||||
if (*count == 0) {
|
if (*count == 0) {
|
||||||
|
@ -74,10 +74,8 @@ CreateTimeBasedPayload(IN OUT UINTN * DataSize, IN OUT UINT8 ** Data)
|
|||||||
Payload = *Data;
|
Payload = *Data;
|
||||||
PayloadSize = *DataSize;
|
PayloadSize = *DataSize;
|
||||||
|
|
||||||
DescriptorSize =
|
DescriptorSize = offsetof(EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)
|
||||||
OFFSET_OF(EFI_VARIABLE_AUTHENTICATION_2,
|
+ offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData);
|
||||||
AuthInfo) + OFFSET_OF(WIN_CERTIFICATE_UEFI_GUID,
|
|
||||||
CertData);
|
|
||||||
NewData = (UINT8 *) AllocateZeroPool(DescriptorSize + PayloadSize);
|
NewData = (UINT8 *) AllocateZeroPool(DescriptorSize + PayloadSize);
|
||||||
if (NewData == NULL) {
|
if (NewData == NULL) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
return EFI_OUT_OF_RESOURCES;
|
||||||
@ -103,7 +101,7 @@ CreateTimeBasedPayload(IN OUT UINTN * DataSize, IN OUT UINT8 ** Data)
|
|||||||
CopyMem(&DescriptorData->TimeStamp, &Time, sizeof(EFI_TIME));
|
CopyMem(&DescriptorData->TimeStamp, &Time, sizeof(EFI_TIME));
|
||||||
|
|
||||||
DescriptorData->AuthInfo.Hdr.dwLength =
|
DescriptorData->AuthInfo.Hdr.dwLength =
|
||||||
OFFSET_OF(WIN_CERTIFICATE_UEFI_GUID, CertData);
|
offsetof(WIN_CERTIFICATE_UEFI_GUID, CertData);
|
||||||
DescriptorData->AuthInfo.Hdr.wRevision = 0x0200;
|
DescriptorData->AuthInfo.Hdr.wRevision = 0x0200;
|
||||||
DescriptorData->AuthInfo.Hdr.wCertificateType = WIN_CERT_TYPE_EFI_GUID;
|
DescriptorData->AuthInfo.Hdr.wCertificateType = WIN_CERT_TYPE_EFI_GUID;
|
||||||
DescriptorData->AuthInfo.CertType = EFI_CERT_TYPE_PKCS7_GUID;
|
DescriptorData->AuthInfo.CertType = EFI_CERT_TYPE_PKCS7_GUID;
|
||||||
|
Loading…
Reference in New Issue
Block a user