source: rtems/cpukit/include/rtems/rtems/types.h @ ccc6695

5
Last change on this file since ccc6695 was ccc6695, checked in by Sebastian Huber <sebastian.huber@…>, on 11/08/18 at 10:50:24

score: Introduce <rtems/score/watchdogticks.h>

Separate the definitions related to watchdog ticks from the watchdog
structures.

Update #3598.

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