source: rtems/cpukit/include/rtems/rtems/types.h @ 7e86e00

5
Last change on this file since 7e86e00 was 7e86e00, checked in by Sebastian Huber <sebastian.huber@…>, on 11/08/18 at 06:54:03

rtems: Deprecate rtems_context_fp

The rtems_context_fp typedef as no corresponding API. A user can do
nothing with it.

Close #3589.

  • Property mode set to 100644
File size: 5.1 KB
RevLine 
[4b487363]1/**
[e4f2fe1]2 * @file
[067a96a]3 *
[61b8e9f]4 * @defgroup ClassicTypes Types
[e4f2fe1]5 *
[61b8e9f]6 * @ingroup ClassicRTEMS
7 * @brief Types used by Classic API.
[4b487363]8 */
9
[61b8e9f]10/* COPYRIGHT (c) 1989-2009.
11 * On-Line Applications Research Corporation (OAR).
[3235ad9]12 *
[61b8e9f]13 * The license and distribution terms for this file may be
14 * found in the file LICENSE in this distribution or at
[c499856]15 * http://www.rtems.org/license/LICENSE.
[3235ad9]16 */
17
[092f142a]18#ifndef _RTEMS_RTEMS_TYPES_H
19#define _RTEMS_RTEMS_TYPES_H
[3235ad9]20
[58823ff]21/*
22 *  RTEMS basic type definitions
23 */
24
[1cb54d1f]25#include <stdint.h>
[b541e1f]26#include <rtems/score/heap.h>
[5e9b32b]27#include <rtems/score/object.h>
28#include <rtems/score/priority.h>
[97e2729d]29#include <rtems/score/watchdog.h>
[3a4ae6c]30#include <rtems/rtems/modes.h>
[97e2729d]31#if defined(RTEMS_MULTIPROCESSING)
[5e9b32b]32#include <rtems/score/mpci.h>
[97e2729d]33#endif
[3235ad9]34
[a9cb0b0]35#ifdef __cplusplus
36extern "C" {
37#endif
38
[e4f2fe1]39/**
40 * @addtogroup ClassicRTEMS
41 */
[b697bc6]42/**@{**/
[e4f2fe1]43
[a9cb0b0]44#ifdef RTEMS_DEPRECATED_TYPES
[e4f2fe1]45/**
46 * @brief Single precision float type.
47 *
48 * @deprecated Use @c float instead.
49 */
[a9767a07]50typedef single_precision rtems_single RTEMS_DEPRECATED;
[3235ad9]51
[e4f2fe1]52/**
53 * @brief Double precision float type.
54 *
55 * @deprecated Use @c double instead.
56 */
[a9767a07]57typedef double_precision rtems_double RTEMS_DEPRECATED;
[8c8fd64]58
[e4f2fe1]59/**
60 * @brief RTEMS boolean type.
61 *
62 * @deprecated Use @c bool instead
63 */
[a9767a07]64typedef boolean          rtems_boolean RTEMS_DEPRECATED;
[a9cb0b0]65#endif
[3235ad9]66
[e4f2fe1]67/**
[e5a2eb4d]68 * @brief Classic API @ref ClassicRTEMSSubSecObjectNames "object name" type.
[e4f2fe1]69 *
[e5a2eb4d]70 * Contains the name of a Classic API object. It is an unsigned 32-bit integer
[e4f2fe1]71 * which can be treated as a numeric value or initialized using
72 * rtems_build_name() to contain four ASCII characters.
73 */
[f065e42]74typedef uint32_t         rtems_name;
[0868844e]75
[8c8fd64]76/**
[e5a2eb4d]77 * @brief Used to manage and manipulate
78 * @ref ClassicRTEMSSubSecObjectIdentifiers "RTEMS object identifiers".
[8c8fd64]79 */
[3235ad9]80typedef Objects_Id       rtems_id;
81
[8c8fd64]82/**
[e4f2fe1]83 * @brief Invalid object identifier value.
84 *
85 * No object can have this identifier value.
[8c8fd64]86 */
[0868844e]87#define RTEMS_ID_NONE OBJECTS_ID_NONE
88
[8c8fd64]89/**
[e4f2fe1]90 * @brief Public name for task context area.
[8c8fd64]91 */
[0ac4a77]92typedef Context_Control            rtems_context RTEMS_DEPRECATED;
[8c8fd64]93
[2cc1b43]94#if (CPU_HARDWARE_FP == TRUE) || (CPU_SOFTWARE_FP == TRUE)
[8c8fd64]95/**
[e4f2fe1]96 * @brief Public name for task floating point context area.
[8c8fd64]97 */
[7e86e00]98typedef Context_Control_fp         rtems_context_fp RTEMS_DEPRECATED;
[2cc1b43]99#endif
[8c8fd64]100
[141e16d]101#if (CPU_ISR_PASSES_FRAME_POINTER == TRUE)
[8c8fd64]102/**
[e4f2fe1]103 * @brief Defines the format of the interrupt stack frame as it appears to a
104 * user ISR.
105 *
[141e16d]106 * This data structure is only provided if the interrupt stack frame is passed
107 * to the ISR handler.
108 *
109 * @see rtems_interrupt_catch().
[8c8fd64]110 */
[3235ad9]111typedef CPU_Interrupt_frame        rtems_interrupt_frame;
[141e16d]112#endif
[3235ad9]113
[067a96a]114/**
[e4f2fe1]115 * @brief Information structure returned by the Heap Handler via the Region
116 * Manager.
[b541e1f]117 */
118typedef Heap_Information_block region_information_block;
119
[067a96a]120/**
[e5a2eb4d]121 * @brief Used to manage and manipulate intervals specified by
122 * @ref ClassicRTEMSSecTime "clock ticks".
[7f6a24ab]123 */
[3a4ae6c]124typedef Watchdog_Interval rtems_interval;
[812da54]125
[9dc2c8d]126/**
[e4f2fe1]127 * @brief Represents the CPU usage per thread.
[9dc2c8d]128 *
[d8cd045c]129 * When using nanoseconds granularity timing, RTEMS may internally use a
[c6f7e060]130 * variety of representations.
[9dc2c8d]131 */
[e6b31b27]132typedef struct timespec rtems_thread_cpu_usage_t;
[9dc2c8d]133
[812da54]134/**
[e5a2eb4d]135 * @brief Data structure to manage and manipulate calendar
136 * @ref ClassicRTEMSSecTime "time".
[812da54]137 */
138typedef struct {
[e4f2fe1]139  /**
140   * @brief Year, A.D.
141   */
[812da54]142  uint32_t   year;
[e4f2fe1]143  /**
144   * @brief Month, 1 .. 12.
145   */
[812da54]146  uint32_t   month;
[e4f2fe1]147  /**
148   * @brief Day, 1 .. 31.
149   */
[812da54]150  uint32_t   day;
[e4f2fe1]151  /**
152   * @brief Hour, 0 .. 23.
153   */
[812da54]154  uint32_t   hour;
[e4f2fe1]155  /**
156   * @brief Minute, 0 .. 59.
157   */
[812da54]158  uint32_t   minute;
[e4f2fe1]159  /**
160   * @brief Second, 0 .. 59.
161   */
[812da54]162  uint32_t   second;
[e4f2fe1]163  /**
164   * @brief Elapsed ticks between seconds.
165   */
[812da54]166  uint32_t   ticks;
167}   rtems_time_of_day;
[7f6a24ab]168
[067a96a]169/**
[e4f2fe1]170 * @brief Task mode type.
[7f6a24ab]171 */
172typedef Modes_Control rtems_mode;
173
[3a4ae6c]174/*
175 *  MPCI related entries
176 */
[97e2729d]177#if defined(RTEMS_MULTIPROCESSING)
[8c8fd64]178/**
[e4f2fe1]179 * @brief Set of MPCI packet classes which are internally dispatched to the
180 * managers.
[8c8fd64]181 */
[3a4ae6c]182typedef MP_packet_Classes          rtems_mp_packet_classes;
[8c8fd64]183
184/**
[e4f2fe1]185 * @brief Prefix found at the beginning of each MPCI packet sent between nodes.
[8c8fd64]186 */
[3a4ae6c]187typedef MP_packet_Prefix           rtems_packet_prefix;
188
[8c8fd64]189/**
[e4f2fe1]190 * @brief Indirect pointer to the initialization entry point for an MPCI
191 * handler.
[8c8fd64]192 */
[3a4ae6c]193typedef MPCI_initialization_entry  rtems_mpci_initialization_entry;
[8c8fd64]194
195/**
[e4f2fe1]196 * @brief Indirect pointer to the get_packet entry point for an MPCI handler.
[8c8fd64]197 */
[3a4ae6c]198typedef MPCI_get_packet_entry      rtems_mpci_get_packet_entry;
[8c8fd64]199
200/**
[e4f2fe1]201 * @brief Indirect pointer to the return_packet entry point for an MPCI
202 * handler.
[8c8fd64]203 */
[3a4ae6c]204typedef MPCI_return_packet_entry   rtems_mpci_return_packet_entry;
[8c8fd64]205
206/**
[e4f2fe1]207 * @brief Indirect pointer to the send_packet entry point for an MPCI handler.
[8c8fd64]208 */
[3a4ae6c]209typedef MPCI_send_entry            rtems_mpci_send_packet_entry;
[8c8fd64]210
211/**
[e4f2fe1]212 * @brief Indirect pointer to the receive entry point for an MPCI handler.
[8c8fd64]213 */
[3a4ae6c]214typedef MPCI_receive_entry         rtems_mpci_receive_packet_entry;
215
[8c8fd64]216/**
[e4f2fe1]217 * @brief Return type from every MPCI handler routine.
[8c8fd64]218 */
219typedef MPCI_Entry                 rtems_mpci_entry;
220
221/**
[e4f2fe1]222 * @brief Structure which is used to configure an MPCI handler.
[8c8fd64]223 */
224typedef MPCI_Control               rtems_mpci_table;
[3a4ae6c]225
[97e2729d]226#endif
[3a4ae6c]227
[e4f2fe1]228/** @} */
229
[3235ad9]230#ifdef __cplusplus
231}
232#endif
233
234#endif
235/* end of include file */
Note: See TracBrowser for help on using the repository browser.