QP/C  5.9.8
qf_port.h File Reference

QF/C port example for QXK, generic C compiler. More...

#include "qep_port.h"
#include "qxk_port.h"
#include "qf.h"
#include "qxthread.h"

Go to the source code of this file.

Macros

#define QF_MAX_ACTIVE   64
 The maximum number of active objects in the application. More...
 
#define QF_MAX_EPOOL   3
 The maximum number of event pools in the application. More...
 
#define QF_EVENT_SIZ_SIZE   2
 The size (in bytes) of the event-size representation in the QF. More...
 
#define QF_EQUEUE_CTR_SIZE   1
 The size (in bytes) of the ring-buffer counters used in the native QF event queue implementation. More...
 
#define QF_MPOOL_SIZ_SIZE   2
 The size (in bytes) of the block-size representation in the native QF event pool. More...
 
#define QF_MPOOL_CTR_SIZE   2
 The size (in bytes) of the block-counter representation in the native QF event pool. More...
 
#define QF_TIMEEVT_CTR_SIZE   2
 The size (in bytes) of the time event-counter representation in the QTimeEvt struct. More...
 
#define QF_INT_DISABLE()   intDisable()
 Define the interrupt disabling policy. More...
 
#define QF_INT_ENABLE()   intEnable()
 Define the interrupt enabling policy. More...
 
#define QF_CRIT_STAT_TYPE   crit_stat_t
 Define the type of the critical section status. More...
 
#define QF_CRIT_ENTRY(stat_)   ((stat_) = critEntry())
 Define the critical section entry policy. More...
 
#define QF_CRIT_EXIT(stat_)   critExit(stat_)
 Define the critical section exit policy. More...
 

Typedefs

typedef unsigned int crit_stat_t
 

Functions

void intDisable (void)
 
void intEnable (void)
 
QF_CRIT_STAT_TYPE critEntry (void)
 
void critExit (QF_CRIT_STAT_TYPE stat)
 

Detailed Description

QF/C port example for QXK, generic C compiler.

Definition in file qf_port.h.

Macro Definition Documentation

◆ QF_MAX_ACTIVE

#define QF_MAX_ACTIVE   64

The maximum number of active objects in the application.

Description
This macro must be defined in the QF port and should be in range of 1..64, inclusive. The value of this macro determines the maximum priority level of an active object in the system. Not all priority levels must be used, but the maximum priority cannot exceed QF_MAX_ACTIVE.
Note
Once you choose a certain value of QF_MAX_ACTIVE, you must consistently use the same value in building all the QP component libraries and your own application code. The consistency is guaranteed if you define this macro only once in the qf_port.h header file and henceforth include this header file in all builds.

Definition at line 58 of file qf_port.h.

◆ QF_MAX_EPOOL

#define QF_MAX_EPOOL   3

The maximum number of event pools in the application.

Description
This macro should be defined in the QF ports and should be in range of 1..255, inclusive. The value of this macro determines the maximum event pools in the system. Not all event pools must be actually used, but the maximum number of pools cannot exceed QF_MAX_EPOOL.

If the macro is not defined, the default value is 3. Defining the value below the maximum saves some memory, mostly for the subscriber-lists.

See also
QSubscrList.
Note
Once you choose a certain value of QF_MAX_EPOOL, you must consistently use the same value in building all the QP component libraries and your own application code. The consistency is guaranteed if you define this macro only once in the qf_port.h header file and henceforth include this header file in all builds.

Definition at line 78 of file qf_port.h.

◆ QF_EVENT_SIZ_SIZE

#define QF_EVENT_SIZ_SIZE   2

The size (in bytes) of the event-size representation in the QF.

Valid values: 1, 2, or 4; default 2

Description
This macro can be defined in the QF ports to configure the QEvtSize type. If the macro is not defined, the default of 2 byte will be chosen in qf.h. The valid QF_EVENT_SIZ_SIZE values of 1, 2, or 4, correspond to QEvtSize of uint8_t, uint16_t, and uint32_t, respectively. The QEvtSize data type determines the dynamic range of event-sizes in your application.
See also
QF_poolInit(), QF_new_()
Note
Once you choose a certain value of QF_EVENT_SIZ_SIZE, you must consistently use the same value in building all the QP component libraries and your own application code. The consistency is guaranteed if you define this macro only once in the qf_port.h header file and henceforth include this header file in all builds.

Definition at line 99 of file qf_port.h.

◆ QF_EQUEUE_CTR_SIZE

#define QF_EQUEUE_CTR_SIZE   1

The size (in bytes) of the ring-buffer counters used in the native QF event queue implementation.

Valid values: 1, 2, or 4; default 1

Description
This macro can be defined in the QF ports to configure the QEQueueCtr type. If the macro is not defined, the default of 1 byte will be chosen in qequeue.h. The valid QF_EQUEUE_CTR_SIZE values of 1, 2, or 4, correspond to QEQueueCtr of uint8_t, uint16_t, and uint32_t, respectively. The QEQueueCtr data type determines the dynamic range of numerical values of ring-buffer counters inside event queues, or, in other words, the maximum number of events that the native QF event queue can manage.
See also
QEQueue
Note
Once you choose a certain value of QF_EQUEUE_CTR_SIZE, you must consistently use the same value in building all the QP component libraries and your own application code. The consistency is guaranteed if you define this macro only once in the qf_port.h header file and henceforth include this header file in all builds.

Definition at line 121 of file qf_port.h.

◆ QF_MPOOL_SIZ_SIZE

#define QF_MPOOL_SIZ_SIZE   2

The size (in bytes) of the block-size representation in the native QF event pool.

Valid values: 1, 2, or 4; default QF_EVENT_SIZ_SIZE.

Description
This macro can be defined in the QF ports to configure the ::QMPoolSize type. If the macro is not defined, the default of QF_EVENT_SIZ_SIZE will be chosen in qmpool.h, because the memory pool is primarily used for implementing event pools.

The valid QF_MPOOL_SIZ_SIZE values of 1, 2, or 4, correspond to ::QMPoolSize of uint8_t, uint16_t, and uint32_t, respectively. The ::QMPoolSize data type determines the dynamic range of block-sizes that the native QMPool can handle.

See also
QF_EVENT_SIZ_SIZE, QMPool
Note
Once you choose a certain value of QF_MPOOL_SIZ_SIZE, you must consistently use the same value in building all the QP component libraries and your own application code. The consistency is guaranteed if you define this macro only once in the qf_port.h header file and henceforth include this header file in all builds.

Definition at line 145 of file qf_port.h.

◆ QF_MPOOL_CTR_SIZE

#define QF_MPOOL_CTR_SIZE   2

The size (in bytes) of the block-counter representation in the native QF event pool.

Valid values: 1, 2, or 4; default 2.

Description
This macro can be defined in the QF ports to configure the ::QMPoolCtr type. If the macro is not defined, the default of 2 bytes will be chosen in qmpool.h. The valid QF_MPOOL_CTR_SIZE values of 1, 2, or 4, correspond to ::QMPoolSize of uint8_t, uint16_t, and uint32_t, respectively. The ::QMPoolCtr data type determines the dynamic range of block-counters that the native QMPool can handle, or, in other words, the maximum number of blocks that the native QF event pool can manage.
See also
QMPool
Note
Once you choose a certain value of QF_MPOOL_CTR_SIZE, you must consistently use the same value in building all the QP component libraries and your own application code. The consistency is guaranteed if you define this macro only once in the qf_port.h header file and henceforth include this header file in all builds.

Definition at line 167 of file qf_port.h.

◆ QF_TIMEEVT_CTR_SIZE

#define QF_TIMEEVT_CTR_SIZE   2

The size (in bytes) of the time event-counter representation in the QTimeEvt struct.

Valid values: 1, 2, or 4; default 2.

Description
This macro can be defined in the QF ports to configure the internal tick counters of Time Events. If the macro is not defined, the default of 2 bytes will be chosen in qf.h. The valid QF_TIMEEVT_CTR_SIZE values of 1, 2, or 4, correspond to tick counters of uint8_t, uint16_t, and uint32_t, respectively. The tick counter representation determines the dynamic range of time delays that a Time Event can handle.
See also
QTimeEvt
Note
Once you choose a certain value of QF_TIMEEVT_CTR_SIZE, you must consistently use the same value in building all the QP component libraries and your own application code. The consistency is guaranteed if you define this macro only once in the qf_port.h header file and henceforth include this header file in all builds.

Definition at line 188 of file qf_port.h.

◆ QF_INT_DISABLE

#define QF_INT_DISABLE ( )    intDisable()

Define the interrupt disabling policy.

This macro encapsulates platform-specific way of disabling interrupts from "C" for a given CPU and compiler.

Note
the QF_INT_DISABLE macro should always be used in pair with the macro QF_INT_ENABLE.

Definition at line 198 of file qf_port.h.

◆ QF_INT_ENABLE

#define QF_INT_ENABLE ( )    intEnable()

Define the interrupt enabling policy.

Description
This macro encapsulates platform-specific way of enabling interrupts from "C" for a given CPU and compiler.
Note
the QF_INT_DISABLE macro should always be used in pair with the macro QF_INT_ENABLE.

Definition at line 209 of file qf_port.h.

◆ QF_CRIT_STAT_TYPE

#define QF_CRIT_STAT_TYPE   crit_stat_t

Define the type of the critical section status.

Description
Defining this macro configures the "saving and restoring critical section status" policy. Coversely, if this macro is not defined, the simple "unconditional critical section exit" is used.

Definition at line 221 of file qf_port.h.

◆ QF_CRIT_ENTRY

#define QF_CRIT_ENTRY (   stat_)    ((stat_) = critEntry())

Define the critical section entry policy.

Description
This macro enters a critical section (often by means of disabling interrupts). When the "saving and restoring critical section status" policy is used, the macro sets the status_ argument to the critical section status just before the entry. When the policy of "unconditional critical section exit" is used, the macro does not use the status_ argument.
Note
the QF_CRIT_ENTRY macro should always be used in pair with the macro QF_CRIT_EXIT.

Definition at line 236 of file qf_port.h.

◆ QF_CRIT_EXIT

#define QF_CRIT_EXIT (   stat_)    critExit(stat_)

Define the critical section exit policy.

Description
This macro enters a critical section (often by means of disabling interrupts). When the "saving and restoring critical section status" policy is used, the macro restores the critical section status from the status_ argument. When the policy of "unconditional critical section exit" is used, the macro does not use the status argument and exits the critical section unconditionally (often by means of enabling interrupts).
Note
the QF_CRIT_ENTRY macro should always be used in pair with the macro QF_CRIT_EXIT.

Definition at line 252 of file qf_port.h.