Strict C99: don't use an anonymous union field

GCC and Clang accept anonymous union fields, but this is not valid ISO
C. Use a named field.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/library/psa_crypto_se.c b/library/psa_crypto_se.c
index 9418b5f..b9f186a 100644
--- a/library/psa_crypto_se.c
+++ b/library/psa_crypto_se.c
@@ -72,7 +72,7 @@
     {
         psa_drv_se_internal_context_t internal;
         psa_drv_se_context_t context;
-    };
+    } u;
 };
 
 static psa_se_drv_table_entry_t driver_table[PSA_MAX_SE_DRIVERS];
@@ -104,7 +104,7 @@
 psa_drv_se_context_t *psa_get_se_driver_context(
     psa_se_drv_table_entry_t *driver )
 {
-    return( &driver->context );
+    return( &driver->u.context );
 }
 
 int psa_get_se_driver( psa_key_lifetime_t lifetime,
@@ -115,7 +115,7 @@
     if( p_methods != NULL )
         *p_methods = ( driver ? driver->methods : NULL );
     if( p_drv_context != NULL )
-        *p_drv_context = ( driver ? &driver->context : NULL );
+        *p_drv_context = ( driver ? &driver->u.context : NULL );
     return( driver != NULL );
 }
 
@@ -134,7 +134,7 @@
 
 #if SIZE_MAX > UINT32_MAX
     /* ITS file sizes are limited to 32 bits. */
-    if( driver->internal.persistent_data_size > UINT32_MAX )
+    if( driver->u.internal.persistent_data_size > UINT32_MAX )
         return( PSA_ERROR_NOT_SUPPORTED );
 #endif
 
@@ -162,8 +162,8 @@
      * persistent_data_size is in range, but compilers don't know that,
      * so cast to reassure them. */
     return( psa_its_get( uid, 0,
-                         (uint32_t) driver->internal.persistent_data_size,
-                         driver->internal.persistent_data,
+                         (uint32_t) driver->u.internal.persistent_data_size,
+                         driver->u.internal.persistent_data,
                          &length ) );
 }
 
@@ -181,8 +181,8 @@
      * persistent_data_size is in range, but compilers don't know that,
      * so cast to reassure them. */
     return( psa_its_set( uid,
-                         (uint32_t) driver->internal.persistent_data_size,
-                         driver->internal.persistent_data,
+                         (uint32_t) driver->u.internal.persistent_data_size,
+                         driver->u.internal.persistent_data,
                          0 ) );
 }
 
@@ -221,8 +221,8 @@
             driver->methods->key_management->p_validate_slot_number;
         if( p_validate_slot_number == NULL )
             return( PSA_ERROR_NOT_SUPPORTED );
-        status = p_validate_slot_number( &driver->context,
-                                         driver->internal.persistent_data,
+        status = p_validate_slot_number( &driver->u.context,
+                                         driver->u.internal.persistent_data,
                                          attributes, method,
                                          *slot_number );
     }
@@ -240,8 +240,8 @@
             driver->methods->key_management->p_allocate;
         if( p_allocate == NULL )
             return( PSA_ERROR_NOT_SUPPORTED );
-        status = p_allocate( &driver->context,
-                             driver->internal.persistent_data,
+        status = p_allocate( &driver->u.context,
+                             driver->u.internal.persistent_data,
                              attributes, method,
                              slot_number );
     }
@@ -265,8 +265,8 @@
         driver->methods->key_management->p_destroy == NULL )
         return( PSA_ERROR_NOT_PERMITTED );
     status = driver->methods->key_management->p_destroy(
-        &driver->context,
-        driver->internal.persistent_data,
+        &driver->u.context,
+        driver->u.internal.persistent_data,
         slot_number );
     storage_status = psa_save_se_persistent_data( driver );
     return( status == PSA_SUCCESS ? storage_status : status );
@@ -284,8 +284,8 @@
         if( methods->p_init != NULL )
         {
             psa_status_t status = methods->p_init(
-                &driver->context,
-                driver->internal.persistent_data,
+                &driver->u.context,
+                driver->u.internal.persistent_data,
                 driver->lifetime );
             if( status != PSA_SUCCESS )
                 return( status );
@@ -341,14 +341,14 @@
 
     driver_table[i].lifetime = lifetime;
     driver_table[i].methods = methods;
-    driver_table[i].internal.persistent_data_size =
+    driver_table[i].u.internal.persistent_data_size =
         methods->persistent_data_size;
 
     if( methods->persistent_data_size != 0 )
     {
-        driver_table[i].internal.persistent_data =
+        driver_table[i].u.internal.persistent_data =
             mbedtls_calloc( 1, methods->persistent_data_size );
-        if( driver_table[i].internal.persistent_data == NULL )
+        if( driver_table[i].u.internal.persistent_data == NULL )
         {
             status = PSA_ERROR_INSUFFICIENT_MEMORY;
             goto error;
@@ -373,8 +373,8 @@
     size_t i;
     for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ )
     {
-        if( driver_table[i].internal.persistent_data != NULL )
-            mbedtls_free( driver_table[i].internal.persistent_data );
+        if( driver_table[i].u.internal.persistent_data != NULL )
+            mbedtls_free( driver_table[i].u.internal.persistent_data );
     }
     memset( driver_table, 0, sizeof( driver_table ) );
 }