Mercurial > ecos
diff packages/kernel/current/include/kapidata.h @ 115:6ed91473a1cd ecos-sw-2000-08-21
Merge from eCos master repository on 2000-08-21-22:40:54-BST
| author | jlarmour |
|---|---|
| date | Fri, 25 Aug 2000 17:32:38 +0000 |
| parents | bf00f99aec69 |
| children | 8f2f7615e727 |
line wrap: on
line diff
--- a/packages/kernel/current/include/kapidata.h +++ b/packages/kernel/current/include/kapidata.h @@ -210,7 +210,10 @@ typedef struct cyg_thread *prev; cyg_priority_t priority; /* current thread priority */ - + +#ifdef CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE + cyg_bool timeslice_enabled; /* per-thread timeslice enable */ +#endif #elif defined(CYGSEM_KERNEL_SCHED_LOTTERY) cyg_thread *next; @@ -228,9 +231,19 @@ typedef struct cyg_threadqueue *queue; -#ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE +#ifdef CYGSEM_KERNEL_SCHED_ASR_SUPPORT + volatile cyg_bool asr_inhibit; // If true, blocks calls to ASRs + volatile cyg_bool asr_pending; // If true, this thread's ASR should be called. +#ifndef CYGSEM_KERNEL_SCHED_ASR_GLOBAL + void (*asr)(CYG_ADDRWORD); // ASR function +#endif +#ifndef CYGSEM_KERNEL_SCHED_ASR_DATA_GLOBAL + CYG_ADDRWORD asr_data; // ASR data pointer +#endif +#endif +#ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL cyg_count32 mutex_count; -#ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE +#ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_SIMPLE cyg_priority_t original_priority; cyg_bool priority_inherited; #endif @@ -328,6 +341,13 @@ struct cyg_mutex_t cyg_bool locked; /* true if locked */ cyg_thread *owner; /* Current locking thread */ cyg_threadqueue queue; /* Queue of waiting threads */ + +#ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_DYNAMIC + cyg_uint32 protocol; /* this mutex's protocol */ +#endif +#ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL_CEILING + cyg_priority_t ceiling; /* mutex priority ceiling */ +#endif }; @@ -339,45 +359,12 @@ struct cyg_cond_t cyg_threadqueue queue; /* Queue of waiting threads */ }; -/*---------------------------------------------------------------------------*/ - -/* This corresponds to the extra fields provided by the mempoolt template - not the actual size of the template in any given instance. */ -typedef struct cyg_mempoolt { - cyg_threadqueue queue; -} cyg_mempoolt; - - -struct cyg_mempool_var_memdq { - struct cyg_mempool_var_memdq *prev, *next; - cyg_int32 size; -}; +/*------------------------------------------------------------------------*/ -struct cyg_mempool_var { - struct cyg_mempool_var_memdq head; - cyg_uint8 *obase; - cyg_int32 osize; - cyg_int32 oalign; - cyg_uint8 *bottom; - cyg_uint8 *top; - cyg_int32 alignment; - cyg_int32 freemem; - cyg_mempoolt mempoolt; -}; +/* Memory allocator types now come from the "memalloc" package which is */ +/* where the implementation lives. */ -struct cyg_mempool_fix { - cyg_uint32 *bitmap; - cyg_int32 maptop; - cyg_uint8 *mempool; - cyg_int32 numblocks; - cyg_int32 freeblocks; - cyg_int32 blocksize; - cyg_int32 firstfree; - cyg_uint8 *top; - cyg_mempoolt mempoolt; -}; - -/*------------------------------------------------------------------------*/ +#include <cyg/memalloc/kapidata.h> #ifdef __cplusplus }
