mirror of
https://github.com/espressif/mbedtls.git
synced 2025-06-15 13:32:52 +08:00
Copy the struct to align it, avoiding an ABI break
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
parent
1a0a2c6baa
commit
0feecbd6f3
@ -42,7 +42,7 @@ extern "C" {
|
|||||||
* \brief timer structure
|
* \brief timer structure
|
||||||
*/
|
*/
|
||||||
struct mbedtls_timing_hr_time {
|
struct mbedtls_timing_hr_time {
|
||||||
uint64_t opaque[4];
|
unsigned char opaque[32];
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#include "mbedtls/platform.h"
|
#include "mbedtls/platform.h"
|
||||||
@ -231,7 +233,10 @@ volatile int mbedtls_timing_alarmed = 0;
|
|||||||
|
|
||||||
unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset)
|
unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset)
|
||||||
{
|
{
|
||||||
struct _hr_time *t = (struct _hr_time *) val;
|
/* Copy val to an 8-byte-aligned address, so that we can safely cast it */
|
||||||
|
uint64_t val_aligned[(sizeof(struct mbedtls_timing_hr_time) + 7) / 8];
|
||||||
|
memcpy(val_aligned, val, sizeof(struct _hr_time));
|
||||||
|
struct _hr_time *t = (struct _hr_time *)val_aligned;
|
||||||
|
|
||||||
if (reset) {
|
if (reset) {
|
||||||
QueryPerformanceCounter(&t->start);
|
QueryPerformanceCounter(&t->start);
|
||||||
@ -277,7 +282,10 @@ void mbedtls_set_alarm(int seconds)
|
|||||||
|
|
||||||
unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset)
|
unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset)
|
||||||
{
|
{
|
||||||
struct _hr_time *t = (struct _hr_time *) val;
|
/* Copy val to an 8-byte-aligned address, so that we can safely cast it */
|
||||||
|
uint64_t val_aligned[(sizeof(struct mbedtls_timing_hr_time) + 7) / 8];
|
||||||
|
memcpy(val_aligned, val, sizeof(struct _hr_time));
|
||||||
|
struct _hr_time *t = (struct _hr_time *)val_aligned;
|
||||||
|
|
||||||
if (reset) {
|
if (reset) {
|
||||||
gettimeofday(&t->start, NULL);
|
gettimeofday(&t->start, NULL);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user