diff --git a/tests/psa-client-server/psasim/src/psa_sim_serialise.c b/tests/psa-client-server/psasim/src/psa_sim_serialise.c index e45cd00c4c..348e42c2b4 100644 --- a/tests/psa-client-server/psasim/src/psa_sim_serialise.c +++ b/tests/psa-client-server/psasim/src/psa_sim_serialise.c @@ -85,6 +85,7 @@ static ssize_t allocate_hash_operation_slot(void) return -1; /* all in use */ } +/* Find the slot given the handle */ static ssize_t find_hash_slot_by_handle(psasim_client_handle_t handle) { for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) { @@ -450,10 +451,6 @@ int psasim_deserialise_psa_hash_operation_t(uint8_t **pos, return 1; } -/* On the server side, we have a certain number of slots. One array holds the - * psa_XXX_operation_t values by slot, the other holds the client-side handles - * for the slots. - */ size_t psasim_server_serialise_psa_hash_operation_t_needs(psa_hash_operation_t *operation) { (void) operation; diff --git a/tests/psa-client-server/psasim/src/psa_sim_serialise.pl b/tests/psa-client-server/psasim/src/psa_sim_serialise.pl index 21bfec52ba..eb2893ea5f 100755 --- a/tests/psa-client-server/psasim/src/psa_sim_serialise.pl +++ b/tests/psa-client-server/psasim/src/psa_sim_serialise.pl @@ -69,7 +69,17 @@ if ($which eq "h") { } elsif ($which eq "c") { + my $have_operation_types = (grep(/psa_\w+_operation_t/, @types)) ? 1 : 0; + print c_header(); + print c_define_types_for_operation_types() if $have_operation_types; + + for my $type (@types) { + next unless $type =~ /^psa_(\w+)_operation_t$/; + print define_operation_type_data_and_functions($1); + } + + print c_define_begins(); for my $type (@types) { if ($type eq "buffer") { @@ -82,6 +92,12 @@ if ($which eq "h") { print define_needs($type); print define_serialise($type); print define_deserialise($type); + + if ($type =~ /^psa_\w+_operation_t$/) { + print define_server_needs($type); + print define_server_serialise($type); + print define_server_deserialise($type); + } } } @@ -363,6 +379,25 @@ size_t psasim_serialise_${type_d}_needs($type value) EOF } +sub define_server_needs +{ + my ($type) = @_; + + my $type_d = $type; + $type_d =~ s/ /_/g; + + return <