[PATCH 07/11] rtems: Generate <rtems/rtems/types.h>
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Nov 9 14:49:35 UTC 2020
Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.
Update #3899.
Update #3993.
---
cpukit/include/rtems/rtems/types.h | 328 +++++++++++++++++++----------
1 file changed, 213 insertions(+), 115 deletions(-)
diff --git a/cpukit/include/rtems/rtems/types.h b/cpukit/include/rtems/rtems/types.h
index 5ce3eb6604..09cdb55af2 100644
--- a/cpukit/include/rtems/rtems/types.h
+++ b/cpukit/include/rtems/rtems/types.h
@@ -1,196 +1,294 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
/**
* @file
*
- * @defgroup ClassicTypes Types
+ * @brief This header file provides types used by the Classic API.
+ */
+
+/*
+ * Copyright (C) 2009, 2020 embedded brains GmbH (http://www.embedded-brains.de)
+ * Copyright (C) 2006, 2008 On-Line Applications Research Corporation (OAR)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
*
- * @ingroup RTEMSAPIClassic
- *
- * @brief Types used by Classic API.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
*/
-/* COPYRIGHT (c) 1989-2009.
- * On-Line Applications Research Corporation (OAR).
+/*
+ * Do not manually edit this file. It is part of the RTEMS quality process
+ * and was automatically generated.
+ *
+ * If you find something that needs to be fixed or worded better please
+ * post a report to an RTEMS mailing list or raise a bug report:
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
+ * https://docs.rtems.org/branches/master/user/support/bugs.html
+ *
+ * For information on updating and regenerating please refer to:
+ *
+ * https://docs.rtems.org/branches/master/eng/req/howto.html
*/
+/* Generated from spec:/rtems/type/if/header */
+
#ifndef _RTEMS_RTEMS_TYPES_H
#define _RTEMS_RTEMS_TYPES_H
-/*
- * RTEMS basic type definitions
- */
-
-#include <sys/cpuset.h>
+#include <stdint.h>
#include <sys/_timespec.h>
#include <sys/_timeval.h>
-#include <stdint.h>
-#include <rtems/score/heapinfo.h>
+#include <sys/cpuset.h>
+#include <rtems/rtems/modes.h>
+#include <rtems/score/mppkt.h>
#include <rtems/score/object.h>
#include <rtems/score/watchdogticks.h>
-#include <rtems/rtems/modes.h>
+
#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/score/mpci.h>
+ #include <rtems/score/mpci.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
-/**
- * @addtogroup ClassicTasks
- */
-/**@{**/
+/* Generated from spec:/rtems/type/if/group */
/**
- * @brief Classic API @ref ClassicRTEMSSubSecObjectNames "object name" type.
+ * @defgroup RTEMSAPIClassicTypes Basic Types
*
- * Contains the name of a Classic API object. It is an unsigned 32-bit integer
- * which can be treated as a numeric value or initialized using
- * rtems_build_name() to contain four ASCII characters.
+ * @ingroup RTEMSAPIClassic
+ *
+ * @brief This group contains basic Classic API types.
*/
-typedef uint32_t rtems_name;
-/**
- * @brief Used to manage and manipulate
- * @ref ClassicRTEMSSubSecObjectIdentifiers "RTEMS object identifiers".
- */
-typedef Objects_Id rtems_id;
+/* Generated from spec:/rtems/type/if/id */
/**
- * @brief Invalid object identifier value.
+ * @ingroup RTEMSAPIClassicTypes
*
- * No object can have this identifier value.
+ * @brief This type represents RTEMS object identifiers.
*/
-#define RTEMS_ID_NONE OBJECTS_ID_NONE
+typedef Objects_Id rtems_id;
+
+/* Generated from spec:/rtems/type/if/id-none */
-#if (CPU_ISR_PASSES_FRAME_POINTER == TRUE)
/**
- * @brief Defines the format of the interrupt stack frame as it appears to a
- * user ISR.
+ * @ingroup RTEMSAPIClassicTypes
*
- * This data structure is only provided if the interrupt stack frame is passed
- * to the ISR handler.
+ * @brief This constant represents an invalid RTEMS object identifier.
*
- * @see rtems_interrupt_catch().
+ * No RTEMS object can have this identifier.
*/
-typedef CPU_Interrupt_frame rtems_interrupt_frame;
-#endif
+#define RTEMS_ID_NONE OBJECTS_ID_NONE
-/**
- * @brief Used to manage and manipulate intervals specified by
- * @ref ClassicRTEMSSecTime "clock ticks".
- */
-typedef Watchdog_Interval rtems_interval;
+/* Generated from spec:/rtems/type/if/interval */
/**
- * @brief Constant for indefinite wait.
+ * @ingroup RTEMSAPIClassicTypes
*
- * This is actually an illegal interval value.
+ * @brief This type represents clock tick intervals.
*/
-#define RTEMS_NO_TIMEOUT ((rtems_interval) WATCHDOG_NO_TIMEOUT)
+typedef Watchdog_Interval rtems_interval;
+
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/mp-packet-classes */
-/**
- * @brief Data structure to manage and manipulate calendar
- * @ref ClassicRTEMSSecTime "time".
- */
-typedef struct {
/**
- * @brief Year, A.D.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief This enumeration defines the MPCI packet classes.
*/
- uint32_t year;
+ typedef MP_packet_Classes rtems_mp_packet_classes;
+#endif
+
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/mpci-entry */
+
/**
- * @brief Month, 1 .. 12.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief MPCI handler routines shall have this return type.
*/
- uint32_t month;
+ typedef MPCI_Entry rtems_mpci_entry;
+#endif
+
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/mpci-get-packet-entry */
+
/**
- * @brief Day, 1 .. 31.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief MPCI get packet routines shall have this type.
*/
- uint32_t day;
+ typedef MPCI_get_packet_entry rtems_mpci_get_packet_entry;
+#endif
+
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/mpci-initialization-entry */
+
/**
- * @brief Hour, 0 .. 23.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief MPCI initialization routines shall have this type.
*/
- uint32_t hour;
+ typedef MPCI_initialization_entry rtems_mpci_initialization_entry;
+#endif
+
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/mpci-receive-packet-entry */
+
/**
- * @brief Minute, 0 .. 59.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief MPCI receive packet routines shall have this type.
*/
- uint32_t minute;
+ typedef MPCI_receive_entry rtems_mpci_receive_packet_entry;
+#endif
+
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/mpci-return-packet-entry */
+
/**
- * @brief Second, 0 .. 59.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief MPCI return packet routines shall have this type.
*/
- uint32_t second;
+ typedef MPCI_return_packet_entry rtems_mpci_return_packet_entry;
+#endif
+
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/mpci-send-packet-entry */
+
/**
- * @brief Elapsed ticks between seconds.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief MPCI send packet routines shall have this type.
*/
- uint32_t ticks;
-} rtems_time_of_day;
+ typedef MPCI_send_entry rtems_mpci_send_packet_entry;
+#endif
-/*
- * MPCI related entries
- */
#if defined(RTEMS_MULTIPROCESSING)
-/**
- * @brief Set of MPCI packet classes which are internally dispatched to the
- * managers.
- */
-typedef MP_packet_Classes rtems_mp_packet_classes;
+ /* Generated from spec:/rtems/type/if/mpci-table */
-/**
- * @brief Prefix found at the beginning of each MPCI packet sent between nodes.
- */
-typedef MP_packet_Prefix rtems_packet_prefix;
+ /**
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief This type represents the user-provided MPCI control.
+ */
+ typedef MPCI_Control rtems_mpci_table;
+#endif
-/**
- * @brief Indirect pointer to the initialization entry point for an MPCI
- * handler.
- */
-typedef MPCI_initialization_entry rtems_mpci_initialization_entry;
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/multiprocessing-table */
-/**
- * @brief Indirect pointer to the get_packet entry point for an MPCI handler.
- */
-typedef MPCI_get_packet_entry rtems_mpci_get_packet_entry;
+ /**
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief This type represents the user-provided MPCI configuration.
+ */
+ typedef MPCI_Configuration rtems_multiprocessing_table;
+#endif
-/**
- * @brief Indirect pointer to the return_packet entry point for an MPCI
- * handler.
- */
-typedef MPCI_return_packet_entry rtems_mpci_return_packet_entry;
+/* Generated from spec:/rtems/type/if/name */
/**
- * @brief Indirect pointer to the send_packet entry point for an MPCI handler.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief This type represents Classic API object names.
+ *
+ * It is an unsigned 32-bit integer which can be treated as a numeric value or
+ * initialized using rtems_build_name() to encode four ASCII characters. A
+ * value of zero may have a special meaning in some directives.
*/
-typedef MPCI_send_entry rtems_mpci_send_packet_entry;
+typedef uint32_t rtems_name;
-/**
- * @brief Indirect pointer to the receive entry point for an MPCI handler.
- */
-typedef MPCI_receive_entry rtems_mpci_receive_packet_entry;
+/* Generated from spec:/rtems/type/if/no-timeout */
/**
- * @brief Return type from every MPCI handler routine.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief This clock tick interval constant indicates that the calling task is
+ * willing to wait potentially forever on a resource.
*/
-typedef MPCI_Entry rtems_mpci_entry;
+#define RTEMS_NO_TIMEOUT ( (rtems_interval) WATCHDOG_NO_TIMEOUT )
-/**
- * @brief Structure which is used to configure an MPCI handler.
- */
-typedef MPCI_Control rtems_mpci_table;
+#if defined(RTEMS_MULTIPROCESSING)
+ /* Generated from spec:/rtems/type/if/packet-prefix */
+
+ /**
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief This type represents the prefix found at the beginning of each MPCI
+ * packet sent between nodes.
+ */
+ typedef MP_packet_Prefix rtems_packet_prefix;
+#endif
+
+/* Generated from spec:/rtems/type/if/time-of-day */
/**
- * @brief Structure which is used to configure an MPCI handler.
+ * @ingroup RTEMSAPIClassicTypes
+ *
+ * @brief This type represents Classic API calendar times.
*/
-typedef MPCI_Configuration rtems_multiprocessing_table;
+typedef struct {
+ /**
+ * @brief This member contains the year A.D.
+ */
+ uint32_t year;
-#endif
+ /**
+ * @brief This member contains the month of the year with values from 1 to 12.
+ */
+ uint32_t month;
-/** @} */
+ /**
+ * @brief This member contains the day of the month with values from 1 to 31.
+ */
+ uint32_t day;
+
+ /**
+ * @brief This member contains the hour of the day with values from 0 to 23.
+ */
+ uint32_t hour;
+
+ /**
+ * @brief This member contains the minute of the hour with values from 0 to 59.
+ */
+ uint32_t minute;
+
+ /**
+ * @brief This member contains the second of the minute with values from 0 to
+ * 59.
+ */
+ uint32_t second;
+
+ /**
+ * @brief This member contains the clock tick of the second with values from 0
+ * to rtems_clock_get_ticks_per_second() minus one.
+ */
+ uint32_t ticks;
+} rtems_time_of_day;
#ifdef __cplusplus
}
#endif
-#endif
-/* end of include file */
+#endif /* _RTEMS_RTEMS_TYPES_H */
--
2.26.2
More information about the devel
mailing list