Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
main.c File Reference
#include <zephyr.h>
#include <ztest.h>
#include <syscall_handler.h>
#include <kernel_internal.h>
#include "test_syscall.h"
#include <syscalls/stack_info_get_mrsh.c>
#include <syscalls/check_perms_mrsh.c>

Data Structures

struct  foo
 
struct  scenario_data
 

Macros

#define NUM_STACKS   3
 
#define STEST_STACKSIZE   (512 + CONFIG_TEST_EXTRA_STACKSIZE)
 

Functions

 K_THREAD_STACK_DEFINE (user_stack,(512+CONFIG_TEST_EXTRA_STACKSIZE))
 
 K_THREAD_STACK_ARRAY_DEFINE (user_stack_array, 3,(512+CONFIG_TEST_EXTRA_STACKSIZE))
 
 K_KERNEL_STACK_DEFINE (kern_stack,(512+CONFIG_TEST_EXTRA_STACKSIZE))
 
 K_KERNEL_STACK_ARRAY_DEFINE (kern_stack_array, 3,(512+CONFIG_TEST_EXTRA_STACKSIZE))
 
void stack_buffer_scenarios (void)
 
void stest_thread_entry (void *p1, void *p2, void *p3)
 
void stest_thread_launch (uint32_t flags, bool drop)
 
void scenario_entry (void *stack_obj, size_t obj_size, size_t reported_size, size_t declared_size, bool is_array)
 
void test_stack_buffer (void)
 Test kernel provides user thread read/write access to its own stack memory buffer. More...
 
void no_op_entry (void *p1, void *p2, void *p3)
 
void test_idle_stack (void)
 Show that the idle thread stack size is correct. More...
 
void test_main (void)
 

Variables

struct k_thread test_thread
 
__kstackmem struct foo stest_member_stack
 
ZTEST_BMEM struct scenario_data scenario_data
 

Macro Definition Documentation

◆ NUM_STACKS

#define NUM_STACKS   3

◆ STEST_STACKSIZE

#define STEST_STACKSIZE   (512 + CONFIG_TEST_EXTRA_STACKSIZE)

Function Documentation

◆ K_KERNEL_STACK_ARRAY_DEFINE()

K_KERNEL_STACK_ARRAY_DEFINE ( kern_stack_array  ,
,
(512+CONFIG_TEST_EXTRA_STACKSIZE)   
)

◆ K_KERNEL_STACK_DEFINE()

K_KERNEL_STACK_DEFINE ( kern_stack  ,
(512+CONFIG_TEST_EXTRA_STACKSIZE)   
)

◆ K_THREAD_STACK_ARRAY_DEFINE()

K_THREAD_STACK_ARRAY_DEFINE ( user_stack_array  ,
,
(512+CONFIG_TEST_EXTRA_STACKSIZE)   
)

◆ K_THREAD_STACK_DEFINE()

K_THREAD_STACK_DEFINE ( user_stack  ,
(512+CONFIG_TEST_EXTRA_STACKSIZE)   
)

◆ no_op_entry()

void no_op_entry ( void p1,
void p2,
void p3 
)

◆ scenario_entry()

void scenario_entry ( void stack_obj,
size_t  obj_size,
size_t  reported_size,
size_t  declared_size,
bool  is_array 
)

◆ stack_buffer_scenarios()

void stack_buffer_scenarios ( void  )

◆ stest_thread_entry()

void stest_thread_entry ( void p1,
void p2,
void p3 
)

◆ stest_thread_launch()

void stest_thread_launch ( uint32_t  flags,
bool  drop 
)

◆ test_idle_stack()

void test_idle_stack ( void  )

Show that the idle thread stack size is correct.

The idle thread has to occasionally clean up self-exiting threads. Exercise this and show that we didn't overflow, reporting out stack usage.

◆ test_main()

void test_main ( void  )

test case main entry

◆ test_stack_buffer()

void test_stack_buffer ( void  )

Test kernel provides user thread read/write access to its own stack memory buffer.

Thread can access its own stack memory buffer and perform read/write operations.

Variable Documentation

◆ scenario_data

◆ stest_member_stack

__kstackmem struct foo stest_member_stack

◆ test_thread

struct k_thread test_thread