Newer
Older
mbed-os / components / TARGET_PSA / spm / TARGET_IGNORE / neg_server_tests / NEG_SERVER_PART2 / psa_neg_server_part2_partition.c
@Oren Cohen Oren Cohen on 27 Nov 2018 11 KB PSA SPM
/* Copyright (c) 2017 ARM Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/***********************************************************************************************************************
 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * THIS FILE IS AN AUTO-GENERATED FILE - DO NOT MODIFY IT.
 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 **********************************************************************************************************************/

#include "cmsis.h"
#include "mbed_toolchain.h" /* For using MBED_ALIGN macro */
#include "rtx_os.h"
#include "spm_panic.h"
#include "spm_internal.h"
#include "psa_neg_server_part2_partition.h"
#include "psa_neg_server_part2_ifs.h"


/* Threads stacks */
MBED_ALIGN(8) uint8_t neg_server_part2_thread_stack[640] = {0};

/* Threads control blocks */
osRtxThread_t neg_server_part2_thread_cb = {0};

/* Thread attributes - for thread initialization */
osThreadAttr_t neg_server_part2_thread_attr = {
    .name = "neg_server_part2",
    .attr_bits = 0,
    .cb_mem = &neg_server_part2_thread_cb,
    .cb_size = sizeof(neg_server_part2_thread_cb),
    .stack_mem = neg_server_part2_thread_stack,
    .stack_size = 640,
    .priority = osPriorityNormal,
    .tz_module = 0,
    .reserved = 0
    };

spm_rot_service_t neg_server_part2_rot_services[NEG_SERVER_PART2_ROT_SRV_COUNT] = {
    {
        .sid = PART2_INT_MASK,
        .mask = PART2_INT_MASK_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_GET_MSG_NULL,
        .mask = PART2_GET_MSG_NULL_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_GET_SIGNUM_MULTIPLE_BIT,
        .mask = PART2_GET_SIGNUM_MULTIPLE_BIT_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_GET_SIGNUM_NOT_SUBSET,
        .mask = PART2_GET_SIGNUM_NOT_SUBSET_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_GET_SIGNUM_NOT_ACTIVE,
        .mask = PART2_GET_SIGNUM_NOT_ACTIVE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_GET_SIGNUM_TWICE,
        .mask = PART2_GET_SIGNUM_TWICE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_READ_INVALID_HANDLE,
        .mask = PART2_READ_INVALID_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_READ_NULL_HANDLE,
        .mask = PART2_READ_NULL_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_READ_TX_SIZE_ZERO,
        .mask = PART2_READ_TX_SIZE_ZERO_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_WRITE_BUFFER_NULL,
        .mask = PART2_WRITE_BUFFER_NULL_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_WRITE_RX_BUFF_NULL,
        .mask = PART2_WRITE_RX_BUFF_NULL_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_WRITE_INVALID_HANDLE,
        .mask = PART2_WRITE_INVALID_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_WRITE_NULL_HANDLE,
        .mask = PART2_WRITE_NULL_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_REPLY_INVALID_HANDLE,
        .mask = PART2_REPLY_INVALID_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_REPLY_NULL_HANDLE,
        .mask = PART2_REPLY_NULL_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_NOTIFY_PART_ID_INVALID,
        .mask = PART2_NOTIFY_PART_ID_INVALID_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_IDENTITY_INVALID_HANDLE,
        .mask = PART2_IDENTITY_INVALID_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_IDENTITY_NULL_HANDLE,
        .mask = PART2_IDENTITY_NULL_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_SET_RHANDLE_INVALID_HANDLE,
        .mask = PART2_SET_RHANDLE_INVALID_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_SET_RHANDLE_NULL_HANDLE,
        .mask = PART2_SET_RHANDLE_NULL_HANDLE_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_READ_WRAPAROUND,
        .mask = PART2_READ_WRAPAROUND_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_READ_EXCESS_INVEC,
        .mask = PART2_READ_EXCESS_INVEC_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_WRITE_WRAPAROUND,
        .mask = PART2_WRITE_WRAPAROUND_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_WRITE_EXCESS_OUTVEC,
        .mask = PART2_WRITE_EXCESS_OUTVEC_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_WRITE_SIZE_OVERFLOW,
        .mask = PART2_WRITE_SIZE_OVERFLOW_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
    {
        .sid = PART2_READ_NULL_BUFFER,
        .mask = PART2_READ_NULL_BUFFER_MSK,
        .partition = NULL,
        .min_version = 5,
        .min_version_policy = PSA_MINOR_VERSION_POLICY_RELAXED,
        .allow_nspe = true,
        .queue = {
            .head = NULL,
            .tail = NULL
        }
    },
};


static osRtxMutex_t neg_server_part2_mutex = {0};
static const osMutexAttr_t neg_server_part2_mutex_attr = {
    .name = "neg_server_part2_mutex",
    .attr_bits = osMutexRecursive | osMutexPrioInherit | osMutexRobust,
    .cb_mem = &neg_server_part2_mutex,
    .cb_size = sizeof(neg_server_part2_mutex),
};


extern void server_main2(void *ptr);

void neg_server_part2_init(spm_partition_t *partition)
{
    if (NULL == partition) {
        SPM_PANIC("partition is NULL!\n");
    }

    partition->mutex = osMutexNew(&neg_server_part2_mutex_attr);
    if (NULL == partition->mutex) {
        SPM_PANIC("Failed to create mutex for secure partition neg_server_part2!\n");
    }

    for (uint32_t i = 0; i < NEG_SERVER_PART2_ROT_SRV_COUNT; ++i) {
        neg_server_part2_rot_services[i].partition = partition;
    }
    partition->rot_services = neg_server_part2_rot_services;

    partition->thread_id = osThreadNew(server_main2, NULL, &neg_server_part2_thread_attr);
    if (NULL == partition->thread_id) {
        SPM_PANIC("Failed to create start main thread of partition neg_server_part2!\n");
    }
}