mirror of
https://github.com/azure-rtos/threadx
synced 2025-01-30 08:02:57 +08:00
102 lines
4.5 KiB
C
102 lines
4.5 KiB
C
/***************************************************************************
|
|
* Copyright (c) 2024 Microsoft Corporation
|
|
*
|
|
* This program and the accompanying materials are made available under the
|
|
* terms of the MIT License which is available at
|
|
* https://opensource.org/licenses/MIT.
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
**************************************************************************/
|
|
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
/** */
|
|
/** Thread-Metric Component */
|
|
/** */
|
|
/** Application Interface (API) */
|
|
/** */
|
|
/**************************************************************************/
|
|
/**************************************************************************/
|
|
|
|
|
|
/**************************************************************************/
|
|
/* */
|
|
/* APPLICATION INTERFACE DEFINITION RELEASE */
|
|
/* */
|
|
/* tm_api.h PORTABLE C */
|
|
/* 6.1.7 */
|
|
/* AUTHOR */
|
|
/* */
|
|
/* William E. Lamie, Microsoft Corporation */
|
|
/* */
|
|
/* DESCRIPTION */
|
|
/* */
|
|
/* This file defines the basic Application Interface (API) */
|
|
/* implementation source code for the Thread-Metrics performance */
|
|
/* test suite. All service prototypes and data structure definitions */
|
|
/* are defined in this file. */
|
|
/* */
|
|
/* RELEASE HISTORY */
|
|
/* */
|
|
/* DATE NAME DESCRIPTION */
|
|
/* */
|
|
/* 10-15-2021 William E. Lamie Initial Version 6.1.7 */
|
|
/* */
|
|
/**************************************************************************/
|
|
|
|
#ifndef TM_API_H
|
|
#define TM_API_H
|
|
|
|
#include "tm_porting_layer.h"
|
|
|
|
/* Determine if a C++ compiler is being used. If so, ensure that standard
|
|
C is used to process the API information. */
|
|
|
|
#ifdef __cplusplus
|
|
|
|
/* Yes, C++ compiler is present. Use standard C. */
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
/* Define API constants. */
|
|
|
|
#define TM_SUCCESS 0
|
|
#define TM_ERROR 1
|
|
|
|
|
|
/* Define the time interval in seconds. This can be changed with a -D compiler option. */
|
|
|
|
#ifndef TM_TEST_DURATION
|
|
#define TM_TEST_DURATION 30
|
|
#endif
|
|
|
|
|
|
/* Define RTOS Neutral APIs. RTOS vendors should fill in the guts of the following
|
|
API. Once this is done the Thread-Metric tests can be successfully run. */
|
|
|
|
void tm_initialize(void (*test_initialization_function)(void));
|
|
int tm_thread_create(int thread_id, int priority, void (*entry_function)(void));
|
|
int tm_thread_resume(int thread_id);
|
|
int tm_thread_suspend(int thread_id);
|
|
void tm_thread_relinquish(void);
|
|
void tm_thread_sleep(int seconds);
|
|
int tm_queue_create(int queue_id);
|
|
int tm_queue_send(int queue_id, unsigned long *message_ptr);
|
|
int tm_queue_receive(int queue_id, unsigned long *message_ptr);
|
|
int tm_semaphore_create(int semaphore_id);
|
|
int tm_semaphore_get(int semaphore_id);
|
|
int tm_semaphore_put(int semaphore_id);
|
|
int tm_memory_pool_create(int pool_id);
|
|
int tm_memory_pool_allocate(int pool_id, unsigned char **memory_ptr);
|
|
int tm_memory_pool_deallocate(int pool_id, unsigned char *memory_ptr);
|
|
|
|
|
|
/* Determine if a C++ compiler is being used. If so, complete the standard
|
|
C conditional started above. */
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|