Skip to content

File portmacro.h

FileList > FreeRTOS > src > portmacro.h

Go to the source code of this file.

Public Types

Type Name
typedef long BaseType_t
typedef portSTACK_TYPE StackType_t
typedef uint32_t TickType_t
typedef unsigned long UBaseType_t

Public Functions

Type Name
__attribute__ ((always_inline))
void vPortEnterCritical (void)
void vPortExitCritical (void)
void vPortSuppressTicksAndSleep (TickType_t xExpectedIdleTime)

Public Static Functions

Type Name
portFORCE_INLINE uint32_t ulPortRaiseBASEPRI (void)
portFORCE_INLINE void vPortRaiseBASEPRI (void)
portFORCE_INLINE void vPortSetBASEPRI (uint32_t ulNewMaskValue)
portFORCE_INLINE BaseType_t xPortIsInsideInterrupt (void)

Macros

Type Name
define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
define portBASE_TYPE long
define portBYTE_ALIGNMENT 8
define portCHAR char
define portCLEAR_INTERRUPT_MASK_FROM_ISR (x) vPortSetBASEPRI(x)
define portDISABLE_INTERRUPTS () vPortRaiseBASEPRI()
define portDOUBLE double
define portENABLE_INTERRUPTS () vPortSetBASEPRI(0)
define portEND_SWITCHING_ISR (xSwitchRequired) if( xSwitchRequired != pdFALSE ) portYIELD()
define portENTER_CRITICAL () vPortEnterCritical()
define portEXIT_CRITICAL () vPortExitCritical()
define portFLOAT float
define portFORCE_INLINE inline __attribute__(( always_inline))
define portGET_HIGHEST_PRIORITY (uxTopPriority, uxReadyPriorities) uxTopPriority = ( 31UL - ( uint32_t ) ucPortCountLeadingZeros( ( uxReadyPriorities ) ) )
define portINLINE __inline
define portLONG long
define portMAX_DELAY ( TickType_t ) 0xffffffffUL
define portMEMORY_BARRIER () __asm volatile( "" ::: "memory" )
define portNOP ()
define portNVIC_INT_CTRL_REG ( * ( ( volatile uint32_t * ) 0xe000ed04 ) )
define portNVIC_PENDSVSET_BIT ( 1UL << 28UL )
define portRECORD_READY_PRIORITY (uxPriority, uxReadyPriorities) ( uxReadyPriorities ) |= ( 1UL << ( uxPriority ) )
define portRESET_READY_PRIORITY (uxPriority, uxReadyPriorities) ( uxReadyPriorities ) &= ~( 1UL << ( uxPriority ) )
define portSET_INTERRUPT_MASK_FROM_ISR () ulPortRaiseBASEPRI()
define portSHORT short
define portSTACK_GROWTH ( -1 )
define portSTACK_TYPE uint32_t
define portSUPPRESS_TICKS_AND_SLEEP (xExpectedIdleTime) vPortSuppressTicksAndSleep( xExpectedIdleTime )
define portTASK_FUNCTION (vFunction, pvParameters) void vFunction( void *pvParameters )
define portTASK_FUNCTION_PROTO (vFunction, pvParameters) void vFunction( void *pvParameters )
define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )
define portTICK_TYPE_IS_ATOMIC 1
define portYIELD ()
define portYIELD_FROM_ISR (x) portEND_SWITCHING_ISR( x )

Public Types Documentation

typedef BaseType_t

typedef long BaseType_t;

typedef StackType_t

typedef portSTACK_TYPE StackType_t;

typedef TickType_t

typedef uint32_t TickType_t;

typedef UBaseType_t

typedef unsigned long UBaseType_t;

Public Functions Documentation

function __attribute__

__attribute__ (
    (always_inline)
) 

function vPortEnterCritical

void vPortEnterCritical (
    void
) 

function vPortExitCritical

void vPortExitCritical (
    void
) 

function vPortSuppressTicksAndSleep

void vPortSuppressTicksAndSleep (
    TickType_t xExpectedIdleTime
) 

Public Static Functions Documentation

function ulPortRaiseBASEPRI

static portFORCE_INLINE uint32_t ulPortRaiseBASEPRI (
    void
) 

function vPortRaiseBASEPRI

static portFORCE_INLINE void vPortRaiseBASEPRI (
    void
) 

function vPortSetBASEPRI

static portFORCE_INLINE void vPortSetBASEPRI (
    uint32_t ulNewMaskValue
) 

function xPortIsInsideInterrupt

static portFORCE_INLINE BaseType_t xPortIsInsideInterrupt (
    void
) 

Macro Definition Documentation

define configUSE_PORT_OPTIMISED_TASK_SELECTION

#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1

define portBASE_TYPE

#define portBASE_TYPE long

define portBYTE_ALIGNMENT

#define portBYTE_ALIGNMENT 8

define portCHAR

#define portCHAR char

define portCLEAR_INTERRUPT_MASK_FROM_ISR

#define portCLEAR_INTERRUPT_MASK_FROM_ISR (
    x
) vPortSetBASEPRI(x)

define portDISABLE_INTERRUPTS

#define portDISABLE_INTERRUPTS (

) vPortRaiseBASEPRI()

define portDOUBLE

#define portDOUBLE double

define portENABLE_INTERRUPTS

#define portENABLE_INTERRUPTS (

) vPortSetBASEPRI(0)

define portEND_SWITCHING_ISR

#define portEND_SWITCHING_ISR (
    xSwitchRequired
) if( xSwitchRequired != pdFALSE ) portYIELD()

define portENTER_CRITICAL

#define portENTER_CRITICAL (

) vPortEnterCritical()

define portEXIT_CRITICAL

#define portEXIT_CRITICAL (

) vPortExitCritical()

define portFLOAT

#define portFLOAT float

define portFORCE_INLINE

#define portFORCE_INLINE inline __attribute__(( always_inline))

define portGET_HIGHEST_PRIORITY

#define portGET_HIGHEST_PRIORITY (
    uxTopPriority,
    uxReadyPriorities
) uxTopPriority = ( 31UL - ( uint32_t ) ucPortCountLeadingZeros( ( uxReadyPriorities ) ) )

define portINLINE

#define portINLINE __inline

define portLONG

#define portLONG long

define portMAX_DELAY

#define portMAX_DELAY ( TickType_t ) 0xffffffffUL

define portMEMORY_BARRIER

#define portMEMORY_BARRIER (

) __asm volatile( "" ::: "memory" )

define portNOP

#define portNOP (

) 

define portNVIC_INT_CTRL_REG

#define portNVIC_INT_CTRL_REG ( * ( ( volatile uint32_t * ) 0xe000ed04 ) )

define portNVIC_PENDSVSET_BIT

#define portNVIC_PENDSVSET_BIT ( 1UL << 28UL )

define portRECORD_READY_PRIORITY

#define portRECORD_READY_PRIORITY (
    uxPriority,
    uxReadyPriorities
) ( uxReadyPriorities ) |= ( 1UL << ( uxPriority ) )

define portRESET_READY_PRIORITY

#define portRESET_READY_PRIORITY (
    uxPriority,
    uxReadyPriorities
) ( uxReadyPriorities ) &= ~( 1UL << ( uxPriority ) )

define portSET_INTERRUPT_MASK_FROM_ISR

#define portSET_INTERRUPT_MASK_FROM_ISR (

) ulPortRaiseBASEPRI()

define portSHORT

#define portSHORT short

define portSTACK_GROWTH

#define portSTACK_GROWTH ( -1 )

define portSTACK_TYPE

#define portSTACK_TYPE uint32_t

define portSUPPRESS_TICKS_AND_SLEEP

#define portSUPPRESS_TICKS_AND_SLEEP (
    xExpectedIdleTime
) vPortSuppressTicksAndSleep( xExpectedIdleTime )

define portTASK_FUNCTION

#define portTASK_FUNCTION (
    vFunction,
    pvParameters
) void vFunction( void *pvParameters )

define portTASK_FUNCTION_PROTO

#define portTASK_FUNCTION_PROTO (
    vFunction,
    pvParameters
) void vFunction( void *pvParameters )

define portTICK_PERIOD_MS

#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )

define portTICK_TYPE_IS_ATOMIC

#define portTICK_TYPE_IS_ATOMIC 1

define portYIELD

#define portYIELD (

) {                                                                             \
    /* Set a PendSV to request a context switch. */                             \
    portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;                             \
                                                                                \
    /* Barriers are normally not required but do ensure the code is completely  \
    within the specified behaviour for the architecture. */                     \
    __asm volatile( "dsb" ::: "memory" );                                       \
    __asm volatile( "isb" );                                                    \
}

define portYIELD_FROM_ISR

#define portYIELD_FROM_ISR (
    x
) portEND_SWITCHING_ISR( x )

The documentation for this class was generated from the following file fw/rbcx-coprocessor/lib/FreeRTOS/src/portmacro.h