mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-20 15:47:48 +08:00
score: Doxygen Clean Up Task #3
This commit is contained in:
committed by
Jennifer Averett
parent
455bd4eae2
commit
a1f9934a8f
@@ -1,33 +1,46 @@
|
||||
/*
|
||||
|
||||
Based upon IDT provided code with the following release:
|
||||
|
||||
This source code has been made available to you by IDT on an AS-IS
|
||||
basis. Anyone receiving this source is licensed under IDT copyrights
|
||||
to use it in any way he or she deems fit, including copying it,
|
||||
modifying it, compiling it, and redistributing it either with or
|
||||
without modifications. No license under IDT patents or patent
|
||||
applications is to be implied by the copyright license.
|
||||
|
||||
Any user of this software should understand that IDT cannot provide
|
||||
technical support for this software and will not be responsible for
|
||||
any consequences resulting from the use of this software.
|
||||
|
||||
Any person who transfers this source code or any derivative work must
|
||||
include the IDT copyright notice, this paragraph, and the preceeding
|
||||
two paragraphs in the transferred software.
|
||||
|
||||
COPYRIGHT IDT CORPORATION 1996
|
||||
LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
||||
*/
|
||||
/**
|
||||
* @file idtcpu.h
|
||||
*
|
||||
* @brief CPU Related Definitions
|
||||
*
|
||||
* 950313: Ketan added sreg/lreg and R_SZ for 64-bit saves
|
||||
* added Register definition for XContext reg.
|
||||
* Look towards end of this file.
|
||||
*/
|
||||
|
||||
/*
|
||||
** idtcpu.h -- cpu related defines
|
||||
*/
|
||||
* Based upon IDT provided code with the following release:
|
||||
*
|
||||
* This source code has been made available to you by IDT on an AS-IS
|
||||
* basis. Anyone receiving this source is licensed under IDT copyrights
|
||||
* to use it in any way he or she deems fit, including copying it,
|
||||
* modifying it, compiling it, and redistributing it either with or
|
||||
* without modifications. No license under IDT patents or patent
|
||||
* applications is to be implied by the copyright license.
|
||||
*
|
||||
* Any user of this software should understand that IDT cannot provide
|
||||
* technical support for this software and will not be responsible for
|
||||
* any consequences resulting from the use of this software.
|
||||
*
|
||||
* Any person who transfers this source code or any derivative work must
|
||||
* include the IDT copyright notice, this paragraph, and the preceeding
|
||||
* two paragraphs in the transferred software.
|
||||
*
|
||||
* COPYRIGHT IDT CORPORATION 1996
|
||||
* LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_MIPS_IDTCPU_H
|
||||
#define _RTEMS_MIPS_IDTCPU_H
|
||||
|
||||
/**
|
||||
* @defgroup MipsSet_idtcpu CPU Related Definitions
|
||||
*
|
||||
* @ingroup MIPS
|
||||
*
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
/*
|
||||
* 950313: Ketan added Register definition for XContext reg.
|
||||
* added define for WAIT instruction.
|
||||
@@ -92,7 +105,7 @@ LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
||||
** Cache size constants
|
||||
*/
|
||||
#define MINCACHE 0x200 /* 512 For 3041. */
|
||||
#define MAXCACHE 0x40000 /* 256*1024 256k */
|
||||
#define MAXCACHE 0x40000 /* 256*1024 256k */
|
||||
|
||||
#if __mips == 32
|
||||
/* R4000 configuration register definitions */
|
||||
@@ -691,5 +704,5 @@ LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
||||
#define CALG $17
|
||||
#endif
|
||||
|
||||
#endif /* _RTEMS_MIPS_IDTCPU_H */
|
||||
|
||||
/**@}*/
|
||||
#endif /* _RTEMS_MIPS_IDTCPU_H */
|
||||
@@ -1,44 +1,51 @@
|
||||
/*
|
||||
|
||||
Based upon IDT provided code with the following release:
|
||||
|
||||
This source code has been made available to you by IDT on an AS-IS
|
||||
basis. Anyone receiving this source is licensed under IDT copyrights
|
||||
to use it in any way he or she deems fit, including copying it,
|
||||
modifying it, compiling it, and redistributing it either with or
|
||||
without modifications. No license under IDT patents or patent
|
||||
applications is to be implied by the copyright license.
|
||||
|
||||
Any user of this software should understand that IDT cannot provide
|
||||
technical support for this software and will not be responsible for
|
||||
any consequences resulting from the use of this software.
|
||||
|
||||
Any person who transfers this source code or any derivative work must
|
||||
include the IDT copyright notice, this paragraph, and the preceeding
|
||||
two paragraphs in the transferred software.
|
||||
|
||||
COPYRIGHT IDT CORPORATION 1996
|
||||
LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
||||
|
||||
|
||||
/*
|
||||
** iregdef.h - IDT R3000 register structure header file
|
||||
**
|
||||
** Copyright 1989 Integrated Device Technology, Inc
|
||||
** All Rights Reserved
|
||||
**
|
||||
*/
|
||||
#ifndef _RTEMS_MIPS_IREGDEF_H
|
||||
#define _RTEMS_MIPS_IREGDEF_H
|
||||
|
||||
/*
|
||||
/**
|
||||
* @file iregdef.h
|
||||
*
|
||||
* @brief IDT R3000 Register Structure
|
||||
*
|
||||
* 950313: Ketan added sreg/lreg and R_SZ for 64-bit saves
|
||||
* added Register definition for XContext reg.
|
||||
* Look towards end of this file.
|
||||
*/
|
||||
|
||||
/*
|
||||
** register names
|
||||
*/
|
||||
* Copyright 1989 Integrated Device Technology, Inc
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Based upon IDT provided code with the following release:
|
||||
*
|
||||
* This source code has been made available to you by IDT on an AS-IS
|
||||
* basis. Anyone receiving this source is licensed under IDT copyrights
|
||||
* to use it in any way he or she deems fit, including copying it,
|
||||
* modifying it, compiling it, and redistributing it either with or
|
||||
* without modifications. No license under IDT patents or patent
|
||||
* applications is to be implied by the copyright license.
|
||||
*
|
||||
* Any user of this software should understand that IDT cannot provide
|
||||
* technical support for this software and will not be responsible for
|
||||
* any consequences resulting from the use of this software.
|
||||
*
|
||||
* Any person who transfers this source code or any derivative work must
|
||||
* include the IDT copyright notice, this paragraph, and the preceeding
|
||||
* two paragraphs in the transferred software.
|
||||
*
|
||||
* COPYRIGHT IDT CORPORATION 1996
|
||||
* LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_MIPS_IREGDEF_H
|
||||
#define _RTEMS_MIPS_IREGDEF_H
|
||||
|
||||
/**
|
||||
* @defgroup MipsSet_iregdef Register Structure
|
||||
*
|
||||
* @ingroup MIPS
|
||||
*
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
/* register names */
|
||||
|
||||
#define r0 $0
|
||||
#define r1 $1
|
||||
#define r2 $2
|
||||
@@ -326,5 +333,5 @@ LICENSED MATERIAL - PROGRAM PROPERTY OF IDT
|
||||
/* Ketan till here */
|
||||
#endif
|
||||
|
||||
#endif /* _RTEMS_MIPS_IREGDEF_H */
|
||||
|
||||
/**@}*/
|
||||
#endif /* _RTEMS_MIPS_IREGDEF_H */
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* Mips CPU Dependent Header File
|
||||
*
|
||||
* @brief Mips CPU Dependent Header File
|
||||
*
|
||||
* Conversion to MIPS port by Alan Cudmore <alanc@linuxstart.com> and
|
||||
* Joel Sherrill <joel@OARcorp.com>.
|
||||
@@ -42,6 +42,14 @@
|
||||
#ifndef _RTEMS_SCORE_CPU_H
|
||||
#define _RTEMS_SCORE_CPU_H
|
||||
|
||||
/**
|
||||
* @defgroup ScoreCPU CPU CPU
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -211,7 +219,7 @@ extern "C" {
|
||||
* all tasks floating point.
|
||||
*/
|
||||
|
||||
#define CPU_ALL_TASKS_ARE_FP CPU_HARDWARE_FP
|
||||
#define CPU_ALL_TASKS_ARE_FP CPU_HARDWARE_FP
|
||||
|
||||
/*
|
||||
* Should the IDLE task have a floating point context?
|
||||
@@ -1172,4 +1180,5 @@ static inline uint32_t CPU_swap_u32(
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/**@}*/
|
||||
#endif
|
||||
@@ -1,5 +1,14 @@
|
||||
/**
|
||||
* @file rtems/score/mips.h
|
||||
*
|
||||
* @brief Information to build RTEMS for a "no cpu" while in protected mode.
|
||||
*
|
||||
* This file contains the information required to build
|
||||
* RTEMS for a particular member of the "no cpu"
|
||||
* family when executing in protected mode. It does
|
||||
* this by setting variables to indicate which implementation
|
||||
* dependent features are present in a particular member
|
||||
* of the family.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -14,6 +23,14 @@
|
||||
#ifndef _RTEMS_SCORE_MIPS_H
|
||||
#define _RTEMS_SCORE_MIPS_H
|
||||
|
||||
/**
|
||||
* @defgroup ScoreMips RTEMS no cpu Build Information
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -277,5 +294,6 @@ extern "C" {
|
||||
}
|
||||
#endif
|
||||
|
||||
/**@}*/
|
||||
#endif /* _RTEMS_SCORE_MIPS_H */
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,11 +1,13 @@
|
||||
/**
|
||||
* @file rtems/score/types.h
|
||||
*
|
||||
* @brief Type Definitions Pertaining to the MIPS Processor Family
|
||||
*
|
||||
* This include file contains type definitions pertaining to the MIPS
|
||||
* processor family.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This include file contains type definitions pertaining to the MIPS
|
||||
* processor family.
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2001.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
@@ -18,6 +20,14 @@
|
||||
#ifndef _RTEMS_SCORE_TYPES_H
|
||||
#define _RTEMS_SCORE_TYPES_H
|
||||
|
||||
/**
|
||||
* @defgroup ScoreTypes MIPS Processor Family Type Definitions
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
#include <rtems/score/basedefs.h>
|
||||
|
||||
#ifndef ASM
|
||||
@@ -40,4 +50,5 @@ typedef void ( *mips_isr_entry )( void );
|
||||
|
||||
#endif /* !ASM */
|
||||
|
||||
#endif
|
||||
/**@}*/
|
||||
#endif
|
||||
@@ -26,6 +26,8 @@
|
||||
/**
|
||||
* @defgroup RTEMS BSP SMP Interface
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
* This defines the interface between RTEMS and the BSP for
|
||||
* SMP support. The interface uses the term primary
|
||||
* to refer to the "boot" processor and secondary to refer
|
||||
@@ -47,7 +49,7 @@ extern "C" {
|
||||
|
||||
#ifndef ASM
|
||||
/**
|
||||
* @brief Maximum Number of CPUs in SMP System
|
||||
* @brief Maximum number of CPUs in SMP system.
|
||||
*
|
||||
* This variable is set during the SMP initialization sequence to
|
||||
* indicate the Maximum number of CPUs in this system.
|
||||
@@ -55,7 +57,7 @@ extern "C" {
|
||||
extern uint32_t rtems_configuration_smp_maximum_processors;
|
||||
|
||||
/**
|
||||
* @brief Initialize Secondary CPUs
|
||||
* @brief Initialize secondary CPUs.
|
||||
*
|
||||
* This method is invoked by RTEMS during initialization to bring the
|
||||
* secondary CPUs out of reset.
|
||||
@@ -63,7 +65,7 @@ extern uint32_t rtems_configuration_smp_maximum_processors;
|
||||
* @param [in] maximum is the maximum number of CPU cores that RTEMS
|
||||
* can handle
|
||||
*
|
||||
* @return This method returns the number of cores available in the
|
||||
* @retval This method returns the number of cores available in the
|
||||
* system.
|
||||
*/
|
||||
int bsp_smp_initialize(
|
||||
@@ -71,17 +73,17 @@ int bsp_smp_initialize(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Obtain Current CPU Index
|
||||
* @brief Obtain current CPU index.
|
||||
*
|
||||
* This method is invoked by RTEMS when it needs to know the index
|
||||
* of the CPU it is executing on.
|
||||
*
|
||||
* @return This method returns the current CPU index.
|
||||
* @retval This method returns the current CPU index.
|
||||
*/
|
||||
int bsp_smp_processor_id(void) RTEMS_COMPILER_PURE_ATTRIBUTE;
|
||||
|
||||
/**
|
||||
* @brief Make Request of Another CPU
|
||||
* @brief Make request of another CPU.
|
||||
*
|
||||
* This method is invoked by RTEMS when it needs to make a request
|
||||
* of another CPU. It should be implemented using some type of
|
||||
@@ -96,7 +98,7 @@ void rtems_smp_send_message(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generate a Interprocessor Broadcast Interrupt
|
||||
* @brief Generate an interprocessor broadcast interrupt.
|
||||
*
|
||||
* This method is invoked when RTEMS wants to let all of the other
|
||||
* CPUs know that it has sent them message. CPUs not including
|
||||
@@ -110,7 +112,7 @@ void rtems_smp_send_message(
|
||||
void bsp_smp_broadcast_interrupt(void);
|
||||
|
||||
/**
|
||||
* @brief Generate a Interprocessor Interrupt
|
||||
* @brief Generate a interprocessor interrupt.
|
||||
*
|
||||
* This method is invoked by RTEMS to let @a cpu know that it
|
||||
* has sent it a message.
|
||||
@@ -122,7 +124,7 @@ void bsp_smp_interrupt_cpu(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Obtain CPU Core Number
|
||||
* @brief Obtain CPU core number.
|
||||
*
|
||||
* This method is invoked by RTEMS when it needs to know which core
|
||||
* number it is executing on. This is used when it needs to perform
|
||||
@@ -130,7 +132,7 @@ void bsp_smp_interrupt_cpu(
|
||||
* the other cores. For example, it may need to realize it needs to
|
||||
* preempt a thread on another node.
|
||||
*
|
||||
* @return This method returns the Id of the current CPU core.
|
||||
* @retval This method returns the Id of the current CPU core.
|
||||
*/
|
||||
int bsp_smp_processor_id( void );
|
||||
|
||||
@@ -145,7 +147,7 @@ int bsp_smp_processor_id( void );
|
||||
void bsp_smp_secondary_cpu_initialize(int cpu);
|
||||
|
||||
/**
|
||||
* @brief RTEMS SMP Secondary CPU Initialize
|
||||
* @brief Initialize secondary CPU and coordinates.
|
||||
*
|
||||
* This method is the C entry point which secondary CPUs should
|
||||
* arrange to call. It performs OS initialization for the secondary
|
||||
@@ -166,7 +168,7 @@ void rtems_smp_secondary_cpu_initialize(void);
|
||||
void rtems_smp_initialize_per_cpu(int cpu);
|
||||
|
||||
/**
|
||||
* @brief RTEMS SMP Proccess Interrupt
|
||||
* @brief Process the incoming interprocessor request.
|
||||
*
|
||||
* This is the method called by the BSP's interrupt handler
|
||||
* to process the incoming interprocessor request.
|
||||
@@ -189,6 +191,7 @@ void bsp_smp_wait_for(
|
||||
#define bsp_smp_processor_id() 0
|
||||
#endif
|
||||
|
||||
/**@}*/
|
||||
#endif
|
||||
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/address.h
|
||||
*
|
||||
* @brief Information Required to Manipulate Physical Addresses
|
||||
*
|
||||
* This include file contains the information required to manipulate
|
||||
* physical addresses.
|
||||
*/
|
||||
@@ -40,4 +42,4 @@ extern "C" {
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* @ingroup ScoreAPIMutex
|
||||
*
|
||||
* @brief API Mutex Handler API.
|
||||
* @brief API Mutex Handler API
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -76,11 +76,11 @@ void _API_Mutex_Allocate( API_Mutex_Control **mutex );
|
||||
* @brief Acquires the specified API mutex.
|
||||
*/
|
||||
void _API_Mutex_Lock(
|
||||
API_Mutex_Control *mutex
|
||||
API_Mutex_Control *mutex
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Releases the Specified API Mutex
|
||||
* @brief Releases the specified API mutex.
|
||||
*
|
||||
* Releases the specified @a mutex.
|
||||
*
|
||||
@@ -105,7 +105,7 @@ void _API_Mutex_Unlock( API_Mutex_Control *mutex );
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Memory Allocation Mutex
|
||||
* @brief Memory allocation mutex.
|
||||
*
|
||||
* This points to the API Mutex instance used to ensure that only
|
||||
* one thread at a time is allocating or freeing memory.
|
||||
@@ -113,7 +113,7 @@ void _API_Mutex_Unlock( API_Mutex_Control *mutex );
|
||||
SCORE_EXTERN API_Mutex_Control *_RTEMS_Allocator_Mutex;
|
||||
|
||||
/**
|
||||
* @brief Macro to Ease Locking the Allocator Mutex
|
||||
* @brief Macro to ease locking the allocator mutex.
|
||||
*
|
||||
* This macro makes it explicit that one is locking the allocator mutex.
|
||||
*/
|
||||
@@ -121,7 +121,7 @@ SCORE_EXTERN API_Mutex_Control *_RTEMS_Allocator_Mutex;
|
||||
_API_Mutex_Lock( _RTEMS_Allocator_Mutex )
|
||||
|
||||
/**
|
||||
* @brief Macro to Ease Unlocking the Allocator Mutex
|
||||
* @brief Macro to ease unlocking the allocator mutex.
|
||||
*
|
||||
* This macro makes it explicit that one is unlocking the allocator mutex.
|
||||
*/
|
||||
@@ -135,4 +135,4 @@ SCORE_EXTERN API_Mutex_Control *_RTEMS_Allocator_Mutex;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* @ingroup ScoreChain
|
||||
*
|
||||
* @brief Chain Handler API.
|
||||
* @brief Chain Handler API
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -107,7 +107,7 @@ typedef union {
|
||||
Chain_Control name = CHAIN_INITIALIZER_EMPTY(name)
|
||||
|
||||
/**
|
||||
* @brief Initialize a Chain Header
|
||||
* @brief Initialize a chain header.
|
||||
*
|
||||
* This routine initializes @a the_chain structure to manage the
|
||||
* contiguous array of @a number_nodes nodes which starts at
|
||||
@@ -127,7 +127,7 @@ void _Chain_Initialize(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Extract the specified node from a chain
|
||||
* @brief Extract the specified node from a chain.
|
||||
*
|
||||
* This routine extracts @a the_node from the chain on which it resides.
|
||||
* It disables interrupts to ensure the atomicity of the extract operation.
|
||||
@@ -142,12 +142,12 @@ void _Chain_Extract(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Obtain the first node on a chain
|
||||
* @brief Obtain the first node on a chain.
|
||||
*
|
||||
* This function removes the first node from @a the_chain and returns
|
||||
* a pointer to that node. If @a the_chain is empty, then NULL is returned.
|
||||
*
|
||||
* @return This method returns a pointer a node. If a node was removed,
|
||||
* @retval This method returns a pointer a node. If a node was removed,
|
||||
* then a pointer to that node is returned. If @a the_chain was
|
||||
* empty, then NULL is returned.
|
||||
*
|
||||
@@ -158,7 +158,7 @@ Chain_Node *_Chain_Get(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Insert a node on a chain
|
||||
* @brief Insert a node on a chain.
|
||||
*
|
||||
* This routine inserts @a the_node on a chain immediately following
|
||||
* @a after_node.
|
||||
@@ -179,7 +179,7 @@ void _Chain_Insert(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Append a node on the end of a chain
|
||||
* @brief Append a node on the end of a chain.
|
||||
*
|
||||
* This routine appends @a the_node onto the end of @a the_chain.
|
||||
*
|
||||
@@ -262,7 +262,7 @@ bool _Chain_Get_with_empty_check(
|
||||
* @note It does NOT disable interrupts to ensure the atomicity of the
|
||||
* operation.
|
||||
*
|
||||
* @return The node count of the chain.
|
||||
* @retval The node count of the chain.
|
||||
*/
|
||||
size_t _Chain_Node_count_unprotected( const Chain_Control *chain );
|
||||
|
||||
@@ -277,4 +277,4 @@ size_t _Chain_Node_count_unprotected( const Chain_Control *chain );
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/corespinlock.h
|
||||
*
|
||||
* @brief Constants and Structures Associated with the Spinlock Handler
|
||||
*
|
||||
* This include file contains all the constants and structures associated
|
||||
* with the Spinlock Handler.
|
||||
*/
|
||||
@@ -110,7 +112,7 @@ typedef struct {
|
||||
} CORE_spinlock_Control;
|
||||
|
||||
/**
|
||||
* @brief Initialized a spinlock
|
||||
* @brief Initialize the spinlock.
|
||||
*
|
||||
* This routine initializes the spinlock based on the parameters passed.
|
||||
*
|
||||
@@ -123,7 +125,8 @@ void _CORE_spinlock_Initialize(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Wait for Spinlock
|
||||
* @brief Wait for spinlock.
|
||||
*
|
||||
* This routine wait for the spinlock to be released. If the spinlock
|
||||
* is set to automatic and this is the appropriate thread, then it returns
|
||||
* immediately. Otherwise, the calling thread is blocked until the spinlock
|
||||
@@ -133,7 +136,7 @@ void _CORE_spinlock_Initialize(
|
||||
* @param[in] wait is true if willing to wait
|
||||
* @param[in] timeout is the maximum number of ticks to spin (0 is forever)
|
||||
*
|
||||
* @return A status is returned which indicates the success or failure of
|
||||
* @retval A status is returned which indicates the success or failure of
|
||||
* this operation.
|
||||
*/
|
||||
CORE_spinlock_Status _CORE_spinlock_Wait(
|
||||
@@ -143,8 +146,8 @@ CORE_spinlock_Status _CORE_spinlock_Wait(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Manually release Spinlock
|
||||
*
|
||||
* @brief Manually release the spinlock.
|
||||
*
|
||||
* This routine manually releases the spinlock. All of the threads waiting
|
||||
* for the spinlock will be readied.
|
||||
*
|
||||
@@ -165,4 +168,4 @@ CORE_spinlock_Status _CORE_spinlock_Release(
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/isr.h
|
||||
*
|
||||
* @brief Data Related to the Management of Processor Interrupt Levels
|
||||
*
|
||||
* This include file contains all the constants and structures associated
|
||||
* with the management of processor interrupt levels. This handler
|
||||
* supports interrupt critical sections, vectoring of user interrupt
|
||||
@@ -87,19 +89,19 @@ SCORE_EXTERN ISR_Handler_entry *_ISR_Vector_table;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Initialize the ISR Handler
|
||||
* @brief Initialize the ISR handler.
|
||||
*
|
||||
* This routine performs the initialization necessary for the ISR handler.
|
||||
*/
|
||||
void _ISR_Handler_initialization ( void );
|
||||
|
||||
/**
|
||||
* @brief Disable Interrupts on This Core
|
||||
* @brief Disable interrupts on this core.
|
||||
*
|
||||
* This routine disables all interrupts so that a critical section
|
||||
* of code can be executing without being interrupted.
|
||||
*
|
||||
* @return The argument @a _level will contain the previous interrupt
|
||||
* @retval The argument @a _level will contain the previous interrupt
|
||||
* mask level.
|
||||
*/
|
||||
#define _ISR_Disable_on_this_core( _level ) \
|
||||
@@ -109,7 +111,7 @@ void _ISR_Handler_initialization ( void );
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief Enable Interrupts on This Core
|
||||
* @brief Enable interrupts on this core.
|
||||
*
|
||||
* This routine enables interrupts to the previous interrupt mask
|
||||
* LEVEL. It is used at the end of a critical section of code to
|
||||
@@ -125,7 +127,7 @@ void _ISR_Handler_initialization ( void );
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief Temporarily Enable Interrupts on This Core
|
||||
* @brief Temporarily enable interrupts on this core.
|
||||
*
|
||||
* This routine temporarily enables interrupts to the previous
|
||||
* interrupt mask level and then disables all interrupts so that
|
||||
@@ -153,7 +155,7 @@ void _ISR_Handler_initialization ( void );
|
||||
#if defined(RTEMS_SMP)
|
||||
|
||||
/**
|
||||
* @brief Initialize SMP Interrupt Critical Section Support
|
||||
* @brief Initialize SMP interrupt critical section support.
|
||||
*
|
||||
* This method initializes the variables required by the SMP implementation
|
||||
* of interrupt critical section management.
|
||||
@@ -161,17 +163,17 @@ void _ISR_Handler_initialization ( void );
|
||||
void _ISR_SMP_Initialize(void);
|
||||
|
||||
/**
|
||||
* @brief Enter Interrupt Critical Section on SMP System
|
||||
* @brief Enter interrupt critical section on SMP system.
|
||||
*
|
||||
* This method is used to enter an interrupt critical section that
|
||||
* is honored across all cores in an SMP system.
|
||||
*
|
||||
* @return This method returns the previous interrupt mask level.
|
||||
* @retval This method returns the previous interrupt mask level.
|
||||
*/
|
||||
ISR_Level _ISR_SMP_Disable(void);
|
||||
|
||||
/**
|
||||
* @brief Exit Interrupt Critical Section on SMP System
|
||||
* @brief Exit interrupt critical section on SMP system.
|
||||
*
|
||||
* This method is used to exit an interrupt critical section that
|
||||
* is honored across all cores in an SMP system.
|
||||
@@ -182,7 +184,7 @@ ISR_Level _ISR_SMP_Disable(void);
|
||||
void _ISR_SMP_Enable(ISR_Level level);
|
||||
|
||||
/**
|
||||
* @brief Temporarily Exit Interrupt Critical Section on SMP System
|
||||
* @brief Temporarily exit interrupt critical section on SMP system.
|
||||
*
|
||||
* This method is used to temporarily exit an interrupt critical section
|
||||
* that is honored across all cores in an SMP system.
|
||||
@@ -193,20 +195,20 @@ void _ISR_SMP_Enable(ISR_Level level);
|
||||
void _ISR_SMP_Flash(ISR_Level level);
|
||||
|
||||
/**
|
||||
* @brief Enter SMP interrupt code
|
||||
* @brief Enter SMP interrupt code.
|
||||
*
|
||||
* This method is used to enter the SMP interrupt section.
|
||||
*
|
||||
* @return This method returns the isr level.
|
||||
* @retval This method returns the isr level.
|
||||
*/
|
||||
int _ISR_SMP_Enter(void);
|
||||
|
||||
/**
|
||||
* @brief Exit SMP interrupt code
|
||||
* @brief Exit SMP interrupt code.
|
||||
*
|
||||
* This method is used to exit the SMP interrupt.
|
||||
*
|
||||
* @return This method returns 0 on a simple return and returns 1 on a
|
||||
* @retval This method returns 0 on a simple return and returns 1 on a
|
||||
* dispatching return.
|
||||
*/
|
||||
int _ISR_SMP_Exit(void);
|
||||
@@ -214,7 +216,7 @@ int _ISR_SMP_Exit(void);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Enter Interrupt Disable Critical Section
|
||||
* @brief Enter interrupt disable critical section.
|
||||
*
|
||||
* This routine enters an interrupt disable critical section. When
|
||||
* in an SMP configuration, this involves obtaining a spinlock to ensure
|
||||
@@ -222,7 +224,7 @@ int _ISR_SMP_Exit(void);
|
||||
* When on a single core system, this only involves disabling local
|
||||
* CPU interrupts.
|
||||
*
|
||||
* @return The argument @a _level will contain the previous interrupt
|
||||
* @retval The argument @a _level will contain the previous interrupt
|
||||
* mask level.
|
||||
*/
|
||||
#if defined(RTEMS_SMP)
|
||||
@@ -234,14 +236,14 @@ int _ISR_SMP_Exit(void);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Exits Interrupt Disable Critical Section
|
||||
* @brief Exits interrupt disable critical section.
|
||||
*
|
||||
* This routine exits an interrupt disable critical section. When
|
||||
* in an SMP configuration, this involves releasing a spinlock.
|
||||
* When on a single core system, this only involves disabling local
|
||||
* CPU interrupts.
|
||||
*
|
||||
* @return The argument @a _level will contain the previous interrupt
|
||||
* @retval The argument @a _level will contain the previous interrupt
|
||||
* mask level.
|
||||
*/
|
||||
#if defined(RTEMS_SMP)
|
||||
@@ -253,7 +255,7 @@ int _ISR_SMP_Exit(void);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Temporarily Exit Interrupt Disable Critical Section
|
||||
* @brief Temporarily exit interrupt disable critical section.
|
||||
*
|
||||
* This routine is used to temporarily enable interrupts
|
||||
* during a long critical section. It is used in long sections of
|
||||
@@ -263,7 +265,7 @@ int _ISR_SMP_Exit(void);
|
||||
* must be selected with care to ensure that the critical section
|
||||
* properly protects itself.
|
||||
*
|
||||
* @return The argument @a _level will contain the previous interrupt
|
||||
* @retval The argument @a _level will contain the previous interrupt
|
||||
* mask level.
|
||||
*/
|
||||
#if defined(RTEMS_SMP)
|
||||
@@ -275,7 +277,7 @@ int _ISR_SMP_Exit(void);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Install Interrupt Handler Vector
|
||||
* @brief Install interrupt handler vector.
|
||||
*
|
||||
* This routine installs new_handler as the interrupt service routine
|
||||
* for the specified vector. The previous interrupt service routine is
|
||||
@@ -289,26 +291,26 @@ int _ISR_SMP_Exit(void);
|
||||
* @param[in] _old_handler is a pointer to a variable which will be set
|
||||
* to the old handler
|
||||
*
|
||||
* @return *_old_handler will be set to the old ISR handler
|
||||
* @retval *_old_handler will be set to the old ISR handler
|
||||
*/
|
||||
#define _ISR_Install_vector( _vector, _new_handler, _old_handler ) \
|
||||
_CPU_ISR_install_vector( _vector, _new_handler, _old_handler )
|
||||
|
||||
/**
|
||||
* @brief Return Current Interrupt Level
|
||||
* @brief Return current interrupt level.
|
||||
*
|
||||
* This routine returns the current interrupt level.
|
||||
*
|
||||
* LM32 Specific Information:
|
||||
* XXX document implementation including references if appropriate
|
||||
*
|
||||
* @return This method returns the current level.
|
||||
* @retval This method returns the current level.
|
||||
*/
|
||||
#define _ISR_Get_level() \
|
||||
_CPU_ISR_Get_level()
|
||||
|
||||
/**
|
||||
* @brief Set Current Interrupt Level
|
||||
* @brief Set current interrupt level.
|
||||
*
|
||||
* This routine sets the current interrupt level to that specified
|
||||
* by @a _new_level. The new interrupt level is effective when the
|
||||
@@ -324,7 +326,7 @@ int _ISR_SMP_Exit(void);
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief ISR Handler or Dispatcher
|
||||
* @brief ISR interrupt dispatcher.
|
||||
*
|
||||
* This routine is the interrupt dispatcher. ALL interrupts
|
||||
* are vectored to this routine so that minimal context can be saved
|
||||
@@ -340,7 +342,7 @@ int _ISR_SMP_Exit(void);
|
||||
void _ISR_Handler( void );
|
||||
|
||||
/**
|
||||
* @brief ISR Wrapper for Thread Dispatcher
|
||||
* @brief ISR wrapper for thread dispatcher.
|
||||
*
|
||||
* This routine provides a wrapper so that the routine
|
||||
* @ref _Thread_Dispatch can be invoked when a reschedule is necessary
|
||||
@@ -355,13 +357,13 @@ void _ISR_Handler( void );
|
||||
void _ISR_Dispatch( void );
|
||||
|
||||
/**
|
||||
* @brief Is an ISR in Progress
|
||||
* @brief Checks if an ISR in progress.
|
||||
*
|
||||
* This function returns true if the processor is currently servicing
|
||||
* and interrupt and false otherwise. A return value of true indicates
|
||||
* that the caller is an interrupt service routine, NOT a thread.
|
||||
*
|
||||
* @return This methods returns true when called from an ISR.
|
||||
* @retval This methods returns true when called from an ISR.
|
||||
*/
|
||||
#if (CPU_PROVIDES_ISR_IS_IN_PROGRESS == TRUE)
|
||||
bool _ISR_Is_in_progress( void );
|
||||
@@ -379,4 +381,4 @@ void _ISR_Dispatch( void );
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/scheduleredf.h
|
||||
*
|
||||
* @brief Data Related to the Manipulation of Threads for the EDF Scheduler
|
||||
*
|
||||
* This include file contains all the constants and structures associated
|
||||
* with the manipulation of threads for the EDF scheduler.
|
||||
*/
|
||||
@@ -27,6 +29,10 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @defgroup ScoreScheduler
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
* @addtogroup ScoreScheduler
|
||||
*
|
||||
*/
|
||||
@@ -98,14 +104,14 @@ typedef struct {
|
||||
extern RBTree_Control _Scheduler_EDF_Ready_queue;
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Initialize
|
||||
* @brief Initialize EDF scheduler.
|
||||
*
|
||||
* This routine initializes the EDF scheduler.
|
||||
*/
|
||||
void _Scheduler_EDF_Initialize( void );
|
||||
|
||||
/**
|
||||
* @brief Removes Thread from Ready Queue
|
||||
* @brief Removes thread from ready queue.
|
||||
*
|
||||
* This routine removes @a the_thread from the scheduling decision,
|
||||
* that is, removes it from the ready queue. It performs
|
||||
@@ -119,7 +125,8 @@ void _Scheduler_EDF_Block(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Schedule
|
||||
* @brief Sets the heir thread to be the next ready thread
|
||||
* in the rbtree ready queue.
|
||||
*
|
||||
* This kernel routine sets the heir thread to be the next ready thread
|
||||
* in the rbtree ready queue.
|
||||
@@ -127,7 +134,7 @@ void _Scheduler_EDF_Block(
|
||||
void _Scheduler_EDF_Schedule( void );
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Allocate
|
||||
* @brief Allocates EDF specific information of @a the_thread.
|
||||
*
|
||||
* This routine allocates EDF specific information of @a the_thread.
|
||||
*
|
||||
@@ -139,7 +146,7 @@ void *_Scheduler_EDF_Allocate(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Frees EDF information of a thread
|
||||
* @brief Frees EDF information of a thread.
|
||||
*
|
||||
* This routine frees the EDF specific information of @a the_thread.
|
||||
*
|
||||
@@ -151,7 +158,7 @@ void _Scheduler_EDF_Free(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Update
|
||||
* @brief Updates position in the ready queue of @a the_thread.
|
||||
*
|
||||
* This routine updates position in the ready queue of @a the_thread.
|
||||
*
|
||||
@@ -163,7 +170,7 @@ void _Scheduler_EDF_Update(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Unblock
|
||||
* @brief Adds @a the_thread to the scheduling decision.
|
||||
*
|
||||
* This routine adds @a the_thread to the scheduling decision, that is,
|
||||
* adds it to the ready queue and updates any appropriate scheduling
|
||||
@@ -176,7 +183,9 @@ void _Scheduler_EDF_Unblock(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Yield
|
||||
* @brief invoked when a thread wishes to voluntarily
|
||||
* transfer control of the processor to another thread
|
||||
* with equal deadline.
|
||||
*
|
||||
* This routine is invoked when a thread wishes to voluntarily
|
||||
* transfer control of the processor to another thread in the queue with
|
||||
@@ -189,7 +198,7 @@ void _Scheduler_EDF_Unblock(
|
||||
void _Scheduler_EDF_Yield( void );
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Enqueue
|
||||
* @brief Put @a the_thread to the rbtree ready queue.
|
||||
*
|
||||
* This routine puts @a the_thread to the rbtree ready queue.
|
||||
*
|
||||
@@ -200,7 +209,7 @@ void _Scheduler_EDF_Enqueue(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Enqueues a thread to the ready queue
|
||||
* @brief Enqueue a thread to the ready queue.
|
||||
*
|
||||
* This routine puts @a the_thread to the rbtree ready queue.
|
||||
* For the EDF scheduler this is the same as @a _Scheduler_EDF_Enqueue.
|
||||
@@ -212,7 +221,8 @@ void _Scheduler_EDF_Enqueue_first(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Extract
|
||||
* @brief Remove a specific thread from the scheduler's set
|
||||
* of ready threads.
|
||||
*
|
||||
* This routine removes a specific thread from the scheduler's set
|
||||
* of ready threads.
|
||||
@@ -224,12 +234,12 @@ void _Scheduler_EDF_Extract(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Priority compare
|
||||
* @brief Explicitly compare absolute dedlines (priorities) of threads.
|
||||
*
|
||||
* This routine explicitly compares absolute dedlines (priorities) of threads.
|
||||
* In case of EDF scheduling time overflow is taken into account.
|
||||
*
|
||||
* @return >0 for p1 > p2; 0 for p1 == p2; <0 for p1 < p2.
|
||||
* @retval >0 for p1 > p2; 0 for p1 == p2; <0 for p1 < p2.
|
||||
*/
|
||||
int _Scheduler_EDF_Priority_compare (
|
||||
Priority_Control p1,
|
||||
@@ -237,7 +247,7 @@ int _Scheduler_EDF_Priority_compare (
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler EDF Release job
|
||||
* @brief Called when a new job of task is released.
|
||||
*
|
||||
* This routine is called when a new job of task is released.
|
||||
* It is called only from Rate Monotonic manager in the beginning
|
||||
@@ -260,4 +270,4 @@ void _Scheduler_EDF_Release_job (
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,10 +1,13 @@
|
||||
/**
|
||||
* @file rtems/score/schedulersimple.h
|
||||
*
|
||||
* @brief Manipulation of Threads Simple-Priority-Based Ready Queue
|
||||
*
|
||||
* This include file contains all the constants and structures associated
|
||||
* with the manipulation of threads on a simple-priority-based ready queue.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -16,8 +19,11 @@
|
||||
#define _RTEMS_SCORE_SCHEDULERSIMPLE_H
|
||||
|
||||
/**
|
||||
* @addtogroup ScoreScheduler
|
||||
* @defgroup ScoreScheduler
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
* @addtogroup ScoreScheduler
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
@@ -50,7 +56,7 @@ extern "C" {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Initializes simple scheduler
|
||||
* @brief Initialize simple scheduler.
|
||||
*
|
||||
* This routine initializes the simple scheduler.
|
||||
*/
|
||||
@@ -64,7 +70,8 @@ void _Scheduler_simple_Initialize( void );
|
||||
void _Scheduler_simple_Schedule( void );
|
||||
|
||||
/**
|
||||
* @brief Simple Schedule
|
||||
* @brief Invoked when a thread wishes to voluntarily
|
||||
* transfer control of the processor to another thread in the queue.
|
||||
*
|
||||
* This routine is invoked when a thread wishes to voluntarily
|
||||
* transfer control of the processor to another thread in the queue.
|
||||
@@ -79,7 +86,7 @@ void _Scheduler_simple_Schedule( void );
|
||||
void _Scheduler_simple_Yield( void );
|
||||
|
||||
/**
|
||||
* @brief Removes a thread from the queue
|
||||
* @brief Remove a simple-priority-based thread from the queue.
|
||||
*
|
||||
* This routine removes @a the_thread from the scheduling decision,
|
||||
* that is, removes it from the ready queue. It performs
|
||||
@@ -93,7 +100,8 @@ void _Scheduler_simple_Block(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler Simple Handler / Unblock
|
||||
* @brief Unblock a simple-priority-based thread.
|
||||
*
|
||||
* This routine adds @a the_thread to the scheduling decision,
|
||||
* that is, adds it to the ready queue and
|
||||
* updates any appropriate scheduling variables, for example the heir thread.
|
||||
@@ -105,7 +113,7 @@ void _Scheduler_simple_Unblock(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Removes a thread from a simple queue
|
||||
* @brief Removes a simple-priority-based thread from a simple queue.
|
||||
*
|
||||
* This routine removes a specific thread from the specified
|
||||
* simple-based ready queue.
|
||||
@@ -117,7 +125,7 @@ void _Scheduler_simple_Extract(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Puts thread onto the ready queue
|
||||
* @brief Puts simple-priority-based thread onto the ready queue.
|
||||
*
|
||||
* This routine puts @a the_thread on to the ready queue.
|
||||
*
|
||||
@@ -128,7 +136,8 @@ void _Scheduler_simple_Enqueue(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler simple Enqueue first
|
||||
* @brief Put simple-priority-based @a the_thread to
|
||||
* the head of the ready queue.
|
||||
*
|
||||
* This routine puts @a the_thread to the head of the ready queue.
|
||||
* The thread will be the first thread at its priority level.
|
||||
@@ -140,7 +149,7 @@ void _Scheduler_simple_Enqueue_first(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Returns empty placeholder for scheduler
|
||||
* @brief Return empty placeholder for the simple scheduler.
|
||||
*
|
||||
* This routine is a place holder for any memeory allocation needed
|
||||
* by the scheduler. For the simple scheduler the routine is an empty
|
||||
@@ -149,7 +158,7 @@ void _Scheduler_simple_Enqueue_first(
|
||||
* @param[in] the_thread is the thread the scheduler is allocating
|
||||
* management memory for
|
||||
*
|
||||
* @return this routine returns -1 since this is just an empty placeholder
|
||||
* @retval this routine returns -1 since this is just an empty placeholder
|
||||
* and the return value may be defined differently by each scheduler.
|
||||
*/
|
||||
void *_Scheduler_simple_Allocate(
|
||||
@@ -157,7 +166,7 @@ void *_Scheduler_simple_Allocate(
|
||||
);
|
||||
|
||||
/**
|
||||
* @breif Stub for schedule update
|
||||
* @breif Stub for simple schedule update.
|
||||
*
|
||||
* This routine does nothing, and is used as a stub for Schedule update
|
||||
* The overhead of a function call will still be imposed.
|
||||
@@ -169,7 +178,7 @@ void _Scheduler_simple_Update(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Stub for schedule free
|
||||
* @brief Stub for simple schedule free.
|
||||
*
|
||||
* This routine does nothing, and is used as a stub for Schedule free
|
||||
* The overhead of a function call will still be imposed.
|
||||
@@ -193,7 +202,8 @@ void _Scheduler_simple_Ready_queue_enqueue(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler Simple Ready Queue Enqueue First
|
||||
* @brief Puts simple-priority-based @a the_thread on to the ready queue
|
||||
* at the beginning of its priority group.
|
||||
*
|
||||
* This routine puts @a the_thread on to the ready queue
|
||||
* at the beginning of its priority group.
|
||||
@@ -215,4 +225,4 @@ void _Scheduler_simple_Ready_queue_enqueue_first(
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/schedulersimplesmp.h
|
||||
*
|
||||
* @brief Manipulation of Threads on a Simple-Priority-Based Ready Queue
|
||||
*
|
||||
* This include file contains all the constants and structures associated
|
||||
* with the manipulation of threads on a simple-priority-based ready queue.
|
||||
* This implementation is SMP-aware and schedules across multiple cores.
|
||||
@@ -21,6 +23,10 @@
|
||||
#define _RTEMS_SCORE_SCHEDULERSIMPLE_SMP_H
|
||||
|
||||
/**
|
||||
* @defgroup ScoreScheduler
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
* @addtogroup ScoreScheduler
|
||||
*
|
||||
* The Simple SMP Scheduler attempts to faithfully implement the
|
||||
@@ -62,7 +68,7 @@ extern "C" {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Scheduler Simple SMP Schedule Method
|
||||
* @brief Allocates ready SMP threads to individual cores in an SMP system.
|
||||
*
|
||||
* This routine allocates ready threads to individual cores in an SMP
|
||||
* system. If the allocation results in a new heir which requires
|
||||
@@ -71,7 +77,7 @@ extern "C" {
|
||||
void _Scheduler_simple_smp_Schedule( void );
|
||||
|
||||
/**
|
||||
* @brief Scheduler Simple SMP Block Method
|
||||
* @brief Remove SMP @a the_thread from the ready queue.
|
||||
*
|
||||
* This routine removes @a the_thread from the scheduling decision,
|
||||
* that is, removes it from the ready queue. It performs
|
||||
@@ -85,7 +91,8 @@ void _Scheduler_simple_smp_Block(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler Simple SMP Unblock Method
|
||||
* @brief Adds SMP @a the_thread to the ready queue and updates any
|
||||
* appropriate scheduling variables, for example the heir thread.
|
||||
*
|
||||
* This routine adds @a the_thread to the scheduling decision,
|
||||
* that is, adds it to the ready queue and updates any appropriate
|
||||
@@ -98,7 +105,7 @@ void _Scheduler_simple_smp_Unblock(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Scheduler Simple SMP Tick Method
|
||||
* @brief Invoked as part of processing each SMP clock tick.
|
||||
*
|
||||
* This routine is invoked as part of processing each clock tick.
|
||||
* It is responsible for determining if the current thread allows
|
||||
@@ -113,4 +120,4 @@ void _Scheduler_simple_smp_Tick( void );
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/smplock.h
|
||||
*
|
||||
* @brief Interface for Atomic Locks
|
||||
*
|
||||
* This include file defines the interface for atomic locks
|
||||
* which can be used in multiprocessor configurations.
|
||||
*/
|
||||
@@ -54,7 +56,7 @@ typedef struct {
|
||||
} SMP_lock_spinlock_nested_Control;
|
||||
|
||||
/**
|
||||
* @brief Initialize a Lock
|
||||
* @brief Initialize a lock.
|
||||
*
|
||||
* This method is used to initialize the lock at @a lock.
|
||||
*
|
||||
@@ -65,13 +67,13 @@ void _SMP_lock_spinlock_simple_Initialize(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Obtain a Lock
|
||||
* @brief Obtain a lock.
|
||||
*
|
||||
* This method is used to obtain the lock at @a lock.
|
||||
*
|
||||
* @param [in] lock is the address of the lock to obtain.
|
||||
*
|
||||
* @return This method returns with processor interrupts disabled.
|
||||
* @retval This method returns with processor interrupts disabled.
|
||||
* The previous level is returned.
|
||||
*/
|
||||
ISR_Level _SMP_lock_spinlock_simple_Obtain(
|
||||
@@ -79,7 +81,7 @@ ISR_Level _SMP_lock_spinlock_simple_Obtain(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Release a Lock
|
||||
* @brief Release a lock.
|
||||
*
|
||||
* This method is used to release the lock at @a lock.
|
||||
*
|
||||
@@ -91,7 +93,7 @@ void _SMP_lock_spinlock_simple_Release(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Initialize a Lock
|
||||
* @brief Initialize a lock.
|
||||
*
|
||||
* This method is used to initialize the lock at @a lock.
|
||||
*
|
||||
@@ -102,7 +104,7 @@ void _SMP_lock_spinlock_nested_Initialize(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Obtain a Lock
|
||||
* @brief Obtain a lock.
|
||||
*
|
||||
* This method is used to obtain the lock at @a lock. ISR's are
|
||||
* disabled when this routine returns and it is the callers responsibility
|
||||
@@ -115,7 +117,7 @@ void _SMP_lock_spinlock_nested_Initialize(
|
||||
*
|
||||
* @param [in] lock is the address of the lock to obtain.
|
||||
*
|
||||
* @return This method returns with processor interrupts disabled.
|
||||
* @retval This method returns with processor interrupts disabled.
|
||||
* The previous level is returned.
|
||||
*/
|
||||
ISR_Level _SMP_lock_spinlock_nested_Obtain(
|
||||
@@ -123,9 +125,9 @@ ISR_Level _SMP_lock_spinlock_nested_Obtain(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Release a Lock
|
||||
* @brief Release a lock.
|
||||
*
|
||||
* This method is used to release the lock at @a lock.
|
||||
* This method is used to release the lock at @a lock.
|
||||
*
|
||||
* @note ISR's are reenabled by this method and are expected to be
|
||||
* disabled upon entry to the method.
|
||||
@@ -144,4 +146,4 @@ void _SMP_lock_spinlock_nested_Release(
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/threadmp.h
|
||||
*
|
||||
* @brief Multiprocessing Portion of the Thread Package
|
||||
*
|
||||
* This include file contains the specification for all routines
|
||||
* and data specific to the multiprocessing portion of the thread package.
|
||||
*/
|
||||
@@ -20,6 +22,8 @@
|
||||
/**
|
||||
* @defgroup ScoreThreadMP Thread Handler Multiprocessing Support
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
* This handler encapsulates functionality which is related to managing
|
||||
* threads in a multiprocessor system configuration. This handler must
|
||||
* manage proxies which represent remote threads blocking on local
|
||||
@@ -32,7 +36,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief MP Thread Handler Initialization
|
||||
* @brief Initialize MP thread handler.
|
||||
*
|
||||
* This routine initializes the multiprocessing portion of the Thread Handler.
|
||||
*/
|
||||
@@ -41,7 +45,8 @@ void _Thread_MP_Handler_initialization (
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief MP Thread Proxy Allocate
|
||||
* @brief Allocate a MP proxy control block from
|
||||
* the inactive chain of free proxy control blocks.
|
||||
*
|
||||
* This allocates a proxy control block from
|
||||
* the inactive chain of free proxy control blocks.
|
||||
@@ -54,7 +59,8 @@ Thread_Control *_Thread_MP_Allocate_proxy (
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief MP Thread Proxy Find
|
||||
* @brief Removes the MP proxy control block for the specified
|
||||
* id from the active chain of proxy control blocks.
|
||||
*
|
||||
* This function removes the proxy control block for the specified
|
||||
* id from the active chain of proxy control blocks.
|
||||
@@ -64,14 +70,14 @@ Thread_Control *_Thread_MP_Find_proxy (
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Active Proxy Set
|
||||
* @brief Manage the active set MP proxies.
|
||||
*
|
||||
* The following chain is used to manage the active set proxies.
|
||||
*/
|
||||
SCORE_EXTERN Chain_Control _Thread_MP_Active_proxies;
|
||||
|
||||
/**
|
||||
* @brief Inactive Proxy Set
|
||||
* @brief Manage the inactive set of MP proxies.
|
||||
*
|
||||
* The following chain is used to manage the inactive set of proxies.
|
||||
*/
|
||||
@@ -88,4 +94,4 @@ SCORE_EXTERN Chain_Control _Thread_MP_Inactive_proxies;
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,5 +1,7 @@
|
||||
/**
|
||||
* @file rtems/score/threadsync.h
|
||||
* @file rtems/score/threadsync.h
|
||||
*
|
||||
* @brief Synchronize Thread Blocking Operations with Actions in an ISR
|
||||
*
|
||||
* This include file contains all constants and structures associated
|
||||
* with synchronizing a thread blocking operation with potential
|
||||
@@ -55,4 +57,4 @@ typedef enum {
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/score/timestamp64.h
|
||||
*
|
||||
* @brief Helpers for Manipulating 64-bit Integer Timestamps
|
||||
*
|
||||
* This include file contains helpers for manipulating
|
||||
* 64-bit integer timestamps.
|
||||
*/
|
||||
@@ -61,7 +63,7 @@ static inline void _Timestamp64_implementation_Set(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Set Timestamp to Seconds Nanosecond
|
||||
* @brief Set 64-bit timestamp to seconds nanosecond.
|
||||
*
|
||||
* This method sets the timestamp to the specified seconds and nanoseconds
|
||||
* value.
|
||||
@@ -89,10 +91,9 @@ static inline void _Timestamp64_implementation_Set_to_zero(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Zero Timestamp
|
||||
* @brief Sets the 64-bit timestamp to zero.
|
||||
*
|
||||
* This method sets the timestamp to zero.
|
||||
* value.
|
||||
* This method sets the timestamp to zero value.
|
||||
*
|
||||
* @param[in] _time points to the timestamp instance to zero.
|
||||
*/
|
||||
@@ -106,13 +107,13 @@ static inline void _Timestamp64_implementation_Set_to_zero(
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Is Timestamp Valid
|
||||
* @brief Determines the validity of a 64-bit timestamp.
|
||||
*
|
||||
* This method determines the validity of a timestamp.
|
||||
*
|
||||
* @param[in] _time points to the timestamp instance to validate.
|
||||
*
|
||||
* @return This method returns true if @a time is valid and
|
||||
* @retval This method returns true if @a time is valid and
|
||||
* false otherwise.
|
||||
*/
|
||||
#define _Timestamp64_Is_valid( _time ) \
|
||||
@@ -127,14 +128,14 @@ static inline bool _Timestamp64_implementation_Less_than(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Timestamp Less Than Operator
|
||||
* @brief The "less than" operator for 64-bit timestamps.
|
||||
*
|
||||
* This method is the less than operator for timestamps.
|
||||
*
|
||||
* @param[in] _lhs points to the left hand side timestamp
|
||||
* @param[in] _rhs points to the right hand side timestamp
|
||||
*
|
||||
* @return This method returns true if @a _lhs is less than the @a _rhs and
|
||||
* @retval This method returns true if @a _lhs is less than the @a _rhs and
|
||||
* false otherwise.
|
||||
*/
|
||||
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
|
||||
@@ -159,14 +160,14 @@ static inline bool _Timestamp64_implementation_Equal_to(
|
||||
_Timestamp64_Less_than( _rhs, _lhs )
|
||||
|
||||
/**
|
||||
* @brief Timestamp equal to Operator
|
||||
* @brief The "equal to" operator for 64-bit timestamps.
|
||||
*
|
||||
* This method is the is equal to than operator for timestamps.
|
||||
*
|
||||
* @param[in] _lhs points to the left hand side timestamp
|
||||
* @param[in] _rhs points to the right hand side timestamp
|
||||
*
|
||||
* @return This method returns true if @a _lhs is equal to @a _rhs and
|
||||
* @retval This method returns true if @a _lhs is equal to @a _rhs and
|
||||
* false otherwise.
|
||||
*/
|
||||
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
|
||||
@@ -188,7 +189,7 @@ static inline void _Timestamp64_implementation_Add_to(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Add to a Timestamp
|
||||
* @brief Add two 64-bit timestamps.
|
||||
*
|
||||
* This routine adds two timestamps. The second argument is added
|
||||
* to the first.
|
||||
@@ -196,7 +197,7 @@ static inline void _Timestamp64_implementation_Add_to(
|
||||
* @param[in] _time points to the base time to be added to
|
||||
* @param[in] _add points to the timestamp to add to the first argument
|
||||
*
|
||||
* @return This method returns the number of seconds @a time increased by.
|
||||
* @retval This method returns the number of seconds @a time increased by.
|
||||
*/
|
||||
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
|
||||
#define _Timestamp64_Add_to( _time, _add ) \
|
||||
@@ -209,21 +210,21 @@ static inline void _Timestamp64_implementation_Add_to(
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Convert Timestamp to Number of Ticks
|
||||
* @brief Convert 64-bit timestamp to number of ticks.
|
||||
*
|
||||
* This routine convert the @a time timestamp to the corresponding number
|
||||
* of clock ticks.
|
||||
*
|
||||
* @param[in] _time points to the time to be converted
|
||||
*
|
||||
* @return This method returns the number of ticks computed.
|
||||
* @retval This method returns the number of ticks computed.
|
||||
*/
|
||||
uint32_t _Timestamp64_To_ticks(
|
||||
const Timestamp64_Control *_time
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Convert Ticks to Timestamp
|
||||
* @brief Convert ticks to 64-bit timestamp.
|
||||
*
|
||||
* This routine converts the @a _ticks value to the corresponding
|
||||
* timestamp format @a _time.
|
||||
@@ -246,7 +247,7 @@ static inline void _Timestamp64_implementation_Subtract(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Subtract Two Timestamp
|
||||
* @brief Subtract two 64-bit timestamps.
|
||||
*
|
||||
* This routine subtracts two timestamps. @a result is set to
|
||||
* @a end - @a start.
|
||||
@@ -277,7 +278,7 @@ static inline void _Timestamp64_implementation_Divide_by_integer(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Divide Timestamp By Integer
|
||||
* @brief Divide 64-bit timestamp by an integer.
|
||||
*
|
||||
* This routine divides a timestamp by an integer value. The expected
|
||||
* use is to assist in benchmark calculations where you typically
|
||||
@@ -299,7 +300,7 @@ static inline void _Timestamp64_implementation_Divide_by_integer(
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Divide Timestamp
|
||||
* @brief Divide 64-bit timestamp by another 64-bit timestamp.
|
||||
*
|
||||
* This routine divides a timestamp by another timestamp. The
|
||||
* intended use is for calculating percentages to three decimal points.
|
||||
@@ -324,13 +325,13 @@ static inline uint32_t _Timestamp64_implementation_Get_seconds(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get Seconds Portion of Timestamp
|
||||
* @brief Get seconds portion of a 64-bit timestamp.
|
||||
*
|
||||
* This method returns the seconds portion of the specified timestamp
|
||||
*
|
||||
* @param[in] _time points to the timestamp
|
||||
*
|
||||
* @return The seconds portion of @a _time.
|
||||
* @retval The seconds portion of @a _time.
|
||||
*/
|
||||
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
|
||||
#define _Timestamp64_Get_seconds( _time ) \
|
||||
@@ -349,13 +350,13 @@ static inline uint32_t _Timestamp64_implementation_Get_nanoseconds(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get Nanoseconds Portion of Timestamp
|
||||
* @brief Get nanoseconds portion of a 64-bit timestamp.
|
||||
*
|
||||
* This method returns the nanoseconds portion of the specified timestamp
|
||||
*
|
||||
* @param[in] _time points to the timestamp
|
||||
*
|
||||
* @return The nanoseconds portion of @a _time.
|
||||
* @retval The nanoseconds portion of @a _time.
|
||||
*/
|
||||
#if CPU_TIMESTAMP_USE_INT64_INLINE == TRUE
|
||||
#define _Timestamp64_Get_nanoseconds( _time ) \
|
||||
@@ -376,7 +377,7 @@ static inline void _Timestamp64_implementation_To_timespec(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Convert Timestamp to struct timespec
|
||||
* @brief Convert 64-bit timestamp to struct timespec.
|
||||
*
|
||||
* This method returns the seconds portion of the specified timestamp
|
||||
*
|
||||
@@ -403,7 +404,7 @@ static inline void _Timestamp64_implementation_To_timeval(
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Convert Timestamp to struct timeval
|
||||
* @brief Convert 64-bit timestamp to struct timeval.
|
||||
*
|
||||
* This method returns the seconds portion of the specified timestamp
|
||||
*
|
||||
@@ -427,4 +428,4 @@ static inline void _Timestamp64_implementation_To_timeval(
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,5 +1,7 @@
|
||||
/**
|
||||
* @file rtems/score/wkspace.h
|
||||
* @file rtems/score/wkspace.h
|
||||
*
|
||||
* @brief Information Related to the RAM Workspace
|
||||
*
|
||||
* This include file contains information related to the
|
||||
* RAM Workspace. This Handler provides mechanisms which can be used to
|
||||
@@ -44,7 +46,7 @@ extern "C" {
|
||||
SCORE_EXTERN Heap_Control _Workspace_Area;
|
||||
|
||||
/**
|
||||
* @brief Workspace Handler Initialization
|
||||
* @brief Initilize workspace handler.
|
||||
*
|
||||
* This routine performs the initialization necessary for this handler.
|
||||
*/
|
||||
@@ -55,7 +57,7 @@ void _Workspace_Handler_initialization(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Allocate Memory from Workspace
|
||||
* @brief Allocate memory from workspace.
|
||||
*
|
||||
* This routine returns the address of a block of memory of size
|
||||
* bytes. If a block of the appropriate size cannot be allocated
|
||||
@@ -63,14 +65,14 @@ void _Workspace_Handler_initialization(
|
||||
*
|
||||
* @param size is the requested size
|
||||
*
|
||||
* @return a pointer to the requested memory or NULL.
|
||||
* @retval a pointer to the requested memory or NULL.
|
||||
*/
|
||||
void *_Workspace_Allocate(
|
||||
size_t size
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Free Memory to the Workspace
|
||||
* @brief Free memory to the workspace.
|
||||
*
|
||||
* This function frees the specified block of memory. If the block
|
||||
* belongs to the Workspace and can be successfully freed, then
|
||||
@@ -88,27 +90,27 @@ void _Workspace_Free(
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Workspace Allocate or Fail with Fatal Error
|
||||
* @brief Workspace allocate or fail with fatal error.
|
||||
*
|
||||
* This routine returns the address of a block of memory of @a size
|
||||
* bytes. If a block of the appropriate size cannot be allocated
|
||||
* from the workspace, then the internal error handler is invoked.
|
||||
*
|
||||
* @param[in] size is the desired number of bytes to allocate
|
||||
* @return If successful, the starting address of the allocated memory
|
||||
* @retval If successful, the starting address of the allocated memory
|
||||
*/
|
||||
void *_Workspace_Allocate_or_fatal_error(
|
||||
size_t size
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Duplicates String with Memory from the Workspace
|
||||
* @brief Duplicates string with memory from the workspace.
|
||||
*
|
||||
* @param[in] string is the pointer to a zero terminated string.
|
||||
* @param[in] len is the length of the string (equal to strlen(string)).
|
||||
*
|
||||
* @return NULL Not enough memory.
|
||||
* @return other Duplicated string.
|
||||
* @retval NULL Not enough memory.
|
||||
* @retval other Duplicated string.
|
||||
*/
|
||||
char *_Workspace_String_duplicate(
|
||||
const char *string,
|
||||
@@ -126,4 +128,4 @@ char *_Workspace_String_duplicate(
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
@@ -1,6 +1,8 @@
|
||||
/**
|
||||
* @file rtems/seterr.h
|
||||
*
|
||||
* @brief Data which Ease the Burden of Consistently Setting Errno
|
||||
*
|
||||
* This file contains macros and definitions which ease the burden
|
||||
* of consistently setting errno and returning -1.
|
||||
*/
|
||||
@@ -17,6 +19,14 @@
|
||||
#ifndef _RTEMS_SETERR_H
|
||||
#define _RTEMS_SETERR_H
|
||||
|
||||
/**
|
||||
* @defgroup ScoreSetErr Set Errno
|
||||
*
|
||||
* @ingroup Score
|
||||
*
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
/**
|
||||
@@ -41,5 +51,6 @@
|
||||
#define rtems_set_errno_and_return_minus_one_cast( _error, _cast ) \
|
||||
do { errno = (_error); return (_cast) -1; } while(0)
|
||||
|
||||
/**@}*/
|
||||
#endif
|
||||
/* end of include file */
|
||||
/* end of include file */
|
||||
Reference in New Issue
Block a user