ChibiOS  19.1.4
chcore.h File Reference

Port related template macros and structures. More...

Go to the source code of this file.

Data Structures

struct  port_extctx
 Interrupt saved context. More...
 
struct  port_intctx
 System saved context. More...
 
struct  port_context
 Platform dependent part of the thread_t structure. More...
 

Macros

#define PORT_IDLE_THREAD_STACK_SIZE   32
 Stack size for the system idle thread. More...
 
#define PORT_INT_REQUIRED_STACK   256
 Per-thread stack overhead for interrupts servicing. More...
 
#define PORT_USE_ALT_TIMER   FALSE
 Enables an alternative timer implementation. More...
 
#define PORT_XXX_ENABLE_WFI_IDLE   FALSE
 Enables a "wait for interrupt" instruction in the idle loop. More...
 
#define PORT_SETUP_CONTEXT(tp, wbase, wtop, pf, arg)
 Platform dependent part of the chThdCreateI() API. More...
 
#define PORT_WA_SIZE(n)
 Computes the thread working area global size. More...
 
#define PORT_WORKING_AREA(s, n)   stkalign_t s[THD_WORKING_AREA_SIZE(n) / sizeof (stkalign_t)]
 Static working area allocation. More...
 
#define PORT_IRQ_IS_VALID_PRIORITY(n)   false
 Priority level verification macro. More...
 
#define PORT_IRQ_IS_VALID_KERNEL_PRIORITY(n)   false
 Priority level verification macro. More...
 
#define PORT_IRQ_PROLOGUE()
 IRQ prologue code. More...
 
#define PORT_IRQ_EPILOGUE()
 IRQ epilogue code. More...
 
#define PORT_IRQ_HANDLER(id)   void id(void)
 IRQ handler function declaration. More...
 
#define PORT_FAST_IRQ_HANDLER(id)   void id(void)
 Fast IRQ handler function declaration. More...
 
#define port_switch(ntp, otp)   _port_switch(ntp, otp)
 Performs a context switch between two threads. More...
 
Port Capabilities and Constants
#define PORT_SUPPORTS_RT   FALSE
 This port supports a realtime counter. More...
 
#define PORT_NATURAL_ALIGN   sizeof (void *)
 Natural alignment constant. More...
 
#define PORT_STACK_ALIGN   sizeof (stkalign_t)
 Stack alignment constant. More...
 
#define PORT_WORKING_AREA_ALIGN   sizeof (stkalign_t)
 Working Areas alignment constant. More...
 
Architecture and Compiler
#define PORT_ARCHITECTURE_XXX
 Macro defining an XXX architecture. More...
 
#define PORT_ARCHITECTURE_XXX_YYY
 Macro defining the specific XXX architecture. More...
 
#define PORT_ARCHITECTURE_NAME   "XXX Architecture"
 Name of the implemented architecture. More...
 
#define PORT_COMPILER_NAME   "GCC " __VERSION__
 Compiler name and version. More...
 
#define PORT_INFO   "no info"
 Port-specific information string. More...
 

Typedefs

typedef uint64_t stkalign_t
 Type of stack and memory alignment enforcement. More...
 

Functions

void _port_init (void)
 Port-related initialization code. More...
 
void _port_switch (thread_t *ntp, thread_t *otp)
 Performs a context switch between two threads. More...
 
static syssts_t port_get_irq_status (void)
 Returns a word encoding the current interrupts status. More...
 
static bool port_irq_enabled (syssts_t sts)
 Checks the interrupt status. More...
 
static bool port_is_isr_context (void)
 Determines the current execution context. More...
 
static void port_lock (void)
 Kernel-lock action. More...
 
static void port_unlock (void)
 Kernel-unlock action. More...
 
static void port_lock_from_isr (void)
 Kernel-lock action from an interrupt handler. More...
 
static void port_unlock_from_isr (void)
 Kernel-unlock action from an interrupt handler. More...
 
static void port_disable (void)
 Disables all the interrupt sources. More...
 
static void port_suspend (void)
 Disables the interrupt sources below kernel-level priority. More...
 
static void port_enable (void)
 Enables all the interrupt sources. More...
 
static void port_wait_for_interrupt (void)
 Enters an architecture-dependent IRQ-waiting mode. More...
 
static rtcnt_t port_rt_get_counter_value (void)
 Returns the current value of the realtime counter. More...
 

Detailed Description

Port related template macros and structures.

This file is a template of the system driver macros provided by a port.

Definition in file chcore.h.