📄 salvolib.h
字号:
#define OSENABLE_TIMEOUTS TRUE
/* */
/* tiny (bundled-only version) libraries */
/* */
#elif (OSLIBRARY_CONFIG == OSY)
#define OSBYTES_OF_DELAYS 1
#define OSBYTES_OF_TICKS 0
#define OSDISABLE_TASK_PRIORITIES TRUE
#define OSENABLE_BINARY_SEMAPHORES TRUE
#define OSENABLE_CYCLIC_TIMERS FALSE
#define OSENABLE_EVENT_FLAGS FALSE
#define OSENABLE_IDLING_HOOK TRUE
#define OSENABLE_MESSAGES FALSE
#define OSENABLE_MESSAGE_QUEUES FALSE
#define OSENABLE_SEMAPHORES TRUE
#define OSENABLE_TIMEOUTS FALSE
#else
#error salvolib.h: Unknown library configuration -- aborting.
#endif
/************************************************************/
/* */
/* OSLIBRARY_VARIANT settings -- OSCALL_OSXYZ settings */
/* */
#if (OSLIBRARY_VARIANT == OSA)
#if (OSCOMPILER == OSHT_PICC) || (OSCOMPILER == OSHT_V8C) \
|| (OSCOMPILER == OSKEIL_C51)
#define OSCALL_OSCREATEEVENT OSFROM_ANYWHERE
#define OSCALL_OSGETPRIOTASK OSFROM_ANYWHERE
#define OSCALL_OSGETSTATETASK OSFROM_ANYWHERE
#define OSCALL_OSMSGQCOUNT OSFROM_ANYWHERE
#define OSCALL_OSMSGQEMPTY OSFROM_ANYWHERE
#define OSCALL_OSRETURNEVENT OSFROM_ANYWHERE
#define OSCALL_OSSIGNALEVENT OSFROM_ANYWHERE
#define OSCALL_OSSTARTTASK OSFROM_ANYWHERE
#endif
#elif (OSLIBRARY_VARIANT == OSB)
#if (OSCOMPILER == OSHT_PICC) || (OSCOMPILER == OSHT_V8C)
#define OSCALL_OSCREATEEVENT OSFROM_BACKGROUND
#define OSCALL_OSGETPRIOTASK OSFROM_BACKGROUND
#define OSCALL_OSGETSTATETASK OSFROM_BACKGROUND
#define OSCALL_OSMSGQCOUNT OSFROM_BACKGROUND
#define OSCALL_OSMSGQEMPTY OSFROM_BACKGROUND
#define OSCALL_OSRETURNEVENT OSFROM_BACKGROUND
#define OSCALL_OSSIGNALEVENT OSFROM_BACKGROUND
#define OSCALL_OSSTARTTASK OSFROM_BACKGROUND
#elif (OSCOMPILER == OSKEIL_C51)
#define OSPRESERVE_INTERRUPT_MASK FALSE
#endif
#elif (OSLIBRARY_VARIANT == OSE)
#if (OSCOMPILER == OSKEIL_C51)
#define OSPRESERVE_INTERRUPT_MASK TRUE
#endif
#elif (OSLIBRARY_VARIANT == OSF)
#if (OSCOMPILER == OSHT_PICC) || (OSCOMPILER == OSHT_V8C)
#define OSCALL_OSCREATEEVENT OSFROM_FOREGROUND
#define OSCALL_OSGETPRIOTASK OSFROM_FOREGROUND
#define OSCALL_OSGETSTATETASK OSFROM_FOREGROUND
#define OSCALL_OSMSGQCOUNT OSFROM_FOREGROUND
#define OSCALL_OSMSGQEMPTY OSFROM_FOREGROUND
#define OSCALL_OSRETURNEVENT OSFROM_FOREGROUND
#define OSCALL_OSSIGNALEVENT OSFROM_FOREGROUND
#define OSCALL_OSSTARTTASK OSFROM_FOREGROUND
#endif
#elif (OSLIBRARY_VARIANT == OSI)
/* nothing doing here -- used by IAR MSP430 C compiler, */
/* among others ... */
#elif (OSLIBRARY_VARIANT != OSNONE)
#error salvolib.h: Unknown library variant -- aborting.
#endif
/************************************************************/
/* */
/* OSLIBRARY_GLOBALS settings -- compiler-dependent */
/* */
#if (OSCOMPILER == OSMPLAB_C18)
#if (OSLIBRARY_GLOBALS == OSN)
#define OSMPLAB_C18_LOC_ALL_NEAR TRUE
#elif (OSLIBRARY_GLOBALS == OSF)
#define OSMPLAB_C18_LOC_ALL_NEAR FALSE
#else
#error salvolib.h: Unknown library memory type -- aborting.
#endif /* #if OSLIBRARY_GLOBALS ... */
#elif (OSCOMPILER == OSKEIL_C51)
#if (OSLIBRARY_GLOBALS == OSD)
#define OSLOC_ALL data
#elif (OSLIBRARY_GLOBALS == OSI)
#define OSLOC_ALL idata
#elif (OSLIBRARY_GLOBALS == OSX)
#define OSLOC_ALL xdata
#else
#error salvolib.h: Unknown library memory type -- aborting.
#endif /* #if OSLIBRARY_GLOBALS ... */
#elif (OSCOMPILER == OSHT_8051C)
#if (OSLIBRARY_GLOBALS == OSD)
#define OSLOC_ALL near
#elif (OSLIBRARY_GLOBALS == OSI)
#define OSLOC_ALL idata
#elif (OSLIBRARY_GLOBALS == OSX)
#define OSLOC_ALL far
#else
#error salvolib.h: Unknown library memory type -- aborting.
#endif /* #if OSLIBRARY_GLOBALS ... */
#elif ( (OSCOMPILER == OSIAR_ICC) && (OSTARGET == OSPIC18 ) )
#if (OSLIBRARY_GLOBALS == OSN)
#define OSLOC_ALL __bank0
#elif (OSLIBRARY_GLOBALS == OSF)
#define OSLOC_ALL __bank
#else
#error salvolib.h: Unknown library memory type -- aborting.
#endif /* #if OSLIBRARY_GLOBALS ... */
#endif /* #if OSCOMPILER ... */
/************************************************************/
/************************************************************/
/* */
/* task and event limits for all libraries. These limits */
/* have no effect if OSSET_LIMITS is FALSE. */
/* */
/* tiny and SE don't support event flags or message queues */
/* */
#if (OSTARGET == OSPIC16) \
|| (OSTARGET == OSPIC17) \
|| (OSTARGET == OSPIC18) \
|| (OSTARGET == OSVAV8) \
|| (OSTARGET == OSM68HC11) \
|| (OSTARGET == OSI8051) \
|| (OSTARGET == OSAVR) \
|| (OSTARGET == OSMSP430) \
|| (OSTARGET == OSEZ8) \
|| (OSTARGET == OSTMS320C24X) \
|| (OSTARGET == OSTMS320C28X)
#define OSLIBRARY_EVENTS 5
#define OSLIBRARY_TASKS 3
#if (OSLIBRARY_CONFIG == OSS) \
|| (OSLIBRARY_CONFIG == OSY)
#define OSLIBRARY_EVENT_FLAGS 0
#define OSLIBRARY_MESSAGE_QUEUES 0
#else
#define OSLIBRARY_EVENT_FLAGS 1
#define OSLIBRARY_MESSAGE_QUEUES 1
#endif
#elif (OSTARGET == OSPIC12)
#define OSLIBRARY_EVENTS 4
#define OSLIBRARY_TASKS 3
#define OSLIBRARY_EVENT_FLAGS 1
#define OSLIBRARY_MESSAGE_QUEUES 0
#elif (OSTARGET == OSIX86)
#define OSLIBRARY_EVENTS 25
#define OSLIBRARY_TASKS 25
#define OSLIBRARY_EVENT_FLAGS 25
#define OSLIBRARY_MESSAGE_QUEUES 25
#endif
#define OSLIB_SE_EVENTS_LIMIT 12
#define OSLIB_SE_TASKS_LIMIT 7
/************************************************************/
/************************************************************/
/* */
/* this section differentiates between library generation */
/* and library usage (freeware or standard). */
/* */
/* library generation -- use maximum allowed */
/* */
#if OSMAKE_LIBRARY
#define OSTASKS OSLIBRARY_TASKS
#if (OSLIBRARY_CONFIG == OSA) \
|| (OSLIBRARY_CONFIG == OSE) \
|| (OSLIBRARY_CONFIG == OSS) \
|| (OSLIBRARY_CONFIG == OST) \
|| (OSLIBRARY_CONFIG == OSY)
#define OSEVENT_FLAGS OSLIBRARY_EVENT_FLAGS
#define OSEVENTS OSLIBRARY_EVENTS
#define OSMESSAGE_QUEUES OSLIBRARY_MESSAGE_QUEUES
#else
#define OSEVENT_FLAGS 0
#define OSEVENTS 0
#define OSMESSAGE_QUEUES 0
#endif
/* */
/* library use -- override up to maximum allowed for */
/* freeware libraries, and allow full range of values for */
/* standard libraries. */
/* */
#else /* #if OSMAKE_LIBRARY */
/* */
/* events can be overridden downwards, but not to 0. */
/* event flags and message queues can be overriden down to */
/* 0 when these event types aren't used. */
/* */
#if (OSLIBRARY_CONFIG == OSA) \
|| (OSLIBRARY_CONFIG == OSE) \
|| (OSLIBRARY_CONFIG == OSS) \
|| (OSLIBRARY_CONFIG == OST) \
|| (OSLIBRARY_CONFIG == OSY)
#if !defined(OSEVENTS)
#define OSEVENTS OSLIBRARY_EVENTS
#elif OSEVENTS == 0
#error salvolib.h: Library requires OSEVENTS >= 0 -- aborting.
#elif ( (OSEVENTS > OSLIBRARY_EVENTS) \
&& (OSLIBRARY_TYPE == OSF) )
#error salvolib.h: OSEVENTS exceeds freeware library limit -- aborting.
#elif ( (OSEVENTS > OSLIB_SE_EVENTS_LIMIT) \
&& ( (OSLIBRARY_TYPE == OSL) && (OSLIBRARY_CONFIG == OSS) ) )
#error salvolib.h: OSEVENTS exceeds SE library limit -- aborting.
#endif
/* */
/* note that these limits (event flags and message queues) */
/* are not "hard" in that there is not limit-checking on */
/* on particular event types -- only on all events. These */
/* limits are here mainly because the Salvo Lite apps would*/
/* otherwise have too large a default RAM utilization in */
/* the mem.c module. */
/* */
#if !defined(OSEVENT_FLAGS)
#define OSEVENT_FLAGS OSLIBRARY_EVENT_FLAGS
#elif ( (OSEVENT_FLAGS > OSLIBRARY_EVENT_FLAGS) \
&& ( (OSLIBRARY_TYPE == OSF) ) )
#error salvolib.h: OSEVENT_FLAGS exceeds freeware library limit -- aborting.
#endif
#if !defined(OSMESSAGE_QUEUES)
#define OSMESSAGE_QUEUES OSLIBRARY_MESSAGE_QUEUES
#elif ( (OSMESSAGE_QUEUES > OSLIBRARY_MESSAGE_QUEUES) \
&& ( (OSLIBRARY_TYPE == OSF) ) )
#error salvolib.h: OSMESSAGE_QUEUES exceeds freeware library limit -- aborting.
#endif
#else /* #if (OSLIBRARY_CONFIG ... */
#if !defined(OSEVENTS)
#define OSEVENTS 0
#elif OSEVENTS > 0
#error salvolib.h: Library incompatible with OSEVENTS > 0 -- aborting.
#endif
#if !defined(OSEVENT_FLAGS)
#define OSEVENT_FLAGS 0
#elif OSEVENT_FLAGS > 0
#error salvolib.h: Library incompatible with OSEVENT_FLAGS > 0 -- aborting.
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -