From f75e240f8cd206d92d9eeffee1ad394e5e8c059d Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 5 Jun 2020 14:40:10 +0200 Subject: rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993. --- cpukit/include/rtems/rtems/attr.h | 311 +++++++++++++++++++++++++++----------- 1 file changed, 222 insertions(+), 89 deletions(-) diff --git a/cpukit/include/rtems/rtems/attr.h b/cpukit/include/rtems/rtems/attr.h index 74ed96fdba..bf35a2c4af 100644 --- a/cpukit/include/rtems/rtems/attr.h +++ b/cpukit/include/rtems/rtems/attr.h @@ -1,188 +1,321 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + /** * @file * - * @ingroup ClassicAttributes + * @brief This header file provides Classic API directive attributes. + */ + +/* + * Copyright (C) 2014, 2020 embedded brains GmbH (http://www.embedded-brains.de) + * Copyright (C) 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. * - * This include file contains all information about the Object Attributes - * Handler. + * 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-2008. - * On-Line Applications Research Corporation (OAR). +/* + * This file 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 or patch 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/attr/if/header */ + #ifndef _RTEMS_RTEMS_ATTR_H #define _RTEMS_RTEMS_ATTR_H -#include +#include #ifdef __cplusplus extern "C" { #endif +/* Generated from spec:/rtems/attr/if/group */ + /** - * @defgroup ClassicAttributes Attributes + * @defgroup RTEMSAPIClassicAttr Directive Attributes * - * @ingroup RTEMSAPIClassic + * @ingroup RTEMSAPIClassic * - * This encapsulates functionality which defines and manages the - * set of Classic API object attributes. + * @brief This group contains the Classic API directive attributes. */ -/**@{*/ + +/* Generated from spec:/rtems/attr/if/application-task */ /** - * This defines the type used to contain Classic API attributes. These - * are primarily used when creating objects. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API task created + * by rtems_task_create() or rtems_task_construct() shall be an application + * task. */ -typedef uint32_t rtems_attribute; +#define RTEMS_APPLICATION_TASK 0x00000000 -/** This is the default value for an attribute set. */ - -#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000 +/* Generated from spec:/rtems/attr/if/attribute */ /** - * This is the attribute constant to indicate local resource. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This type represents Classic API attributes. + * + * Attributes are primarily used when creating objects. */ -#define RTEMS_LOCAL 0x00000000 +typedef uint32_t rtems_attribute; + +/* Generated from spec:/rtems/attr/if/barrier-automatic-release */ /** - * This is the attribute constant to indicate global resource. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API barrier + * created by rtems_barrier_create() shall use the automatic release + * protocol. */ -#define RTEMS_GLOBAL 0x00000002 +#define RTEMS_BARRIER_AUTOMATIC_RELEASE 0x00000200 + +/* Generated from spec:/rtems/attr/if/barrier-manual-release */ /** - * This is the attribute constant which reflects that blocking - * tasks will be managed using FIFO discipline. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API barrier + * created by rtems_barrier_create() shall use the manual release protocol. */ -#define RTEMS_FIFO 0x00000000 +#define RTEMS_BARRIER_MANUAL_RELEASE 0x00000000 + +/* Generated from spec:/rtems/attr/if/binary-semaphore */ /** - * This is the attribute constant which reflects that blocking - * tasks will be managed using task priority discipline. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() shall be a proper binary semaphore or + * mutex. */ -#define RTEMS_PRIORITY 0x00000004 +#define RTEMS_BINARY_SEMAPHORE 0x00000010 -/******************** RTEMS Task Specific Attributes *********************/ +/* Generated from spec:/rtems/attr/if/counting-semaphore */ /** - * This attribute constant indicates that the task will not use the - * floating point hardware. If the architecture permits it, then - * the FPU will be disabled when the task is executing. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() shall be a counting semaphore. */ -#define RTEMS_NO_FLOATING_POINT 0x00000000 +#define RTEMS_COUNTING_SEMAPHORE 0x00000000 + +/* Generated from spec:/rtems/attr/if/default */ /** - * This attribute constant indicates that the task will use the - * floating point hardware. There will be a floating point - * context associated with this task. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant represents the default attribute set. */ -#define RTEMS_FLOATING_POINT 0x00000001 +#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000 -/***************** RTEMS Semaphore Specific Attributes ********************/ +/* Generated from spec:/rtems/attr/if/fifo */ /** - * This is the mask for the attribute bits associated with the - * Classic API Semaphore Manager. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API object shall + * manage blocking tasks using the FIFO discipline. */ -#define RTEMS_SEMAPHORE_CLASS 0x00000030 +#define RTEMS_FIFO 0x00000000 + +/* Generated from spec:/rtems/attr/if/floating-point */ /** - * This attribute constant indicates that the Classic API Semaphore - * instance created will be a counting semaphore. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API task created + * by rtems_task_create() or rtems_task_construct() shall be able to use the + * floating point hardware. + * + * On some architectures, there will be a floating point context associated + * with this task. */ -#define RTEMS_COUNTING_SEMAPHORE 0x00000000 +#define RTEMS_FLOATING_POINT 0x00000001 + +/* Generated from spec:/rtems/attr/if/global */ /** - * This attribute constant indicates that the Classic API Semaphore - * instance created will be a proper binary semaphore or mutex. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API object shall + * be a global resource in a multiprocessing network. + * + * This attribute does not refer to SMP systems. */ -#define RTEMS_BINARY_SEMAPHORE 0x00000010 +#define RTEMS_GLOBAL 0x00000002 + +/* Generated from spec:/rtems/attr/if/inherit-priority */ /** - * This attribute constant indicates that the Classic API Semaphore - * instance created will be a simple binary semaphore. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() shall use the Priority Inheritance + * Protocol. + * + * The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE). */ -#define RTEMS_SIMPLE_BINARY_SEMAPHORE 0x00000020 +#define RTEMS_INHERIT_PRIORITY 0x00000040 + +/* Generated from spec:/rtems/attr/if/local */ /** - * This attribute constant indicates that the Classic API Semaphore - * instance created will NOT use the Priority Inheritance Protocol. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API object shall + * be a local resource in a multiprocessing network. + * + * This attribute does not refer to SMP systems. */ -#define RTEMS_NO_INHERIT_PRIORITY 0x00000000 +#define RTEMS_LOCAL 0x00000000 + +/* Generated from spec:/rtems/attr/if/multiprocessor-resource-sharing */ /** - * This attribute constant indicates that the Classic API Semaphore - * instance created will use the Priority Inheritance Protocol. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() shall use the Multiprocessor Resource + * Sharing Protocol. * - * @note The semaphore instance must be a binary semaphore. + * The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE). */ -#define RTEMS_INHERIT_PRIORITY 0x00000040 +#define RTEMS_MULTIPROCESSOR_RESOURCE_SHARING 0x00000100 + +/* Generated from spec:/rtems/attr/if/no-floating-point */ /** - * This attribute constant indicates that the Classic API Semaphore - * instance created will NOT use the Priority Ceiling Protocol. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API task created + * by rtems_task_create() or rtems_task_construct() will not use the floating + * point hardware. + * + * If the architecture permits it, then the FPU will be disabled when the task + * is executing. */ -#define RTEMS_NO_PRIORITY_CEILING 0x00000000 +#define RTEMS_NO_FLOATING_POINT 0x00000000 + +/* Generated from spec:/rtems/attr/if/no-inherit-priority */ /** - * This attribute constant indicates that the Classic API Semaphore - * instance created will use the Priority Ceiling Protocol. + * @ingroup RTEMSAPIClassicAttr * - * @note The semaphore instance must be a binary semaphore. + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() will not use the Priority Inheritance + * Protocol. */ -#define RTEMS_PRIORITY_CEILING 0x00000080 +#define RTEMS_NO_INHERIT_PRIORITY 0x00000000 + +/* Generated from spec:/rtems/attr/if/no-multiprocessor-resource-sharing */ /** - * This attribute constant indicates that the Classic API Semaphore instance - * created will NOT use the Multiprocessor Resource Sharing Protocol. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() will not use the Multiprocessor + * Resource Sharing Protocol. */ #define RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING 0x00000000 +/* Generated from spec:/rtems/attr/if/no-priority-ceiling */ + /** - * This attribute constant indicates that the Classic API Semaphore instance - * created will use the Multiprocessor Resource Sharing Protocol. + * @ingroup RTEMSAPIClassicAttr * - * @note The semaphore instance must be a binary semaphore. + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() will not use the Priority Ceiling + * Protocol. */ -#define RTEMS_MULTIPROCESSOR_RESOURCE_SHARING 0x00000100 +#define RTEMS_NO_PRIORITY_CEILING 0x00000000 -/******************** RTEMS Barrier Specific Attributes ********************/ +/* Generated from spec:/rtems/attr/if/priority */ /** - * This attribute constant indicates that the Classic API Barrier - * instance created will use an automatic release protocol. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API object shall + * manage blocking tasks using the task priority discipline. */ -#define RTEMS_BARRIER_AUTOMATIC_RELEASE 0x00000200 +#define RTEMS_PRIORITY 0x00000004 + +/* Generated from spec:/rtems/attr/if/priority-ceiling */ /** - * This attribute constant indicates that the Classic API Barrier - * instance created will use the manual release protocol. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() shall use the Priority Ceiling + * Protocol. + * + * The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE). */ -#define RTEMS_BARRIER_MANUAL_RELEASE 0x00000000 +#define RTEMS_PRIORITY_CEILING 0x00000080 -/**************** RTEMS Internal Task Specific Attributes ****************/ +/* Generated from spec:/rtems/attr/if/semaphore-class */ /** - * This attribute constant indicates that the task was created - * by the application using normal Classic API methods. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant represents the mask of bits associated with + * the Classic API semaphore classes #RTEMS_BINARY_SEMAPHORE, + * #RTEMS_COUNTING_SEMAPHORE, and #RTEMS_SIMPLE_BINARY_SEMAPHORE. */ -#define RTEMS_APPLICATION_TASK 0x00000000 +#define RTEMS_SEMAPHORE_CLASS 0x00000030 + +/* Generated from spec:/rtems/attr/if/simple-binary-semaphore */ /** - * This attribute constant indicates that the task was created - * by RTEMS as a support task. + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API semaphore + * created by rtems_semaphore_create() shall be a simple binary semaphore. */ -#define RTEMS_SYSTEM_TASK 0x00008000 +#define RTEMS_SIMPLE_BINARY_SEMAPHORE 0x00000020 -/**@}*/ +/* Generated from spec:/rtems/attr/if/system-task */ + +/** + * @ingroup RTEMSAPIClassicAttr + * + * @brief This attribute constant indicates that the Classic API task created + * by rtems_task_create() or rtems_task_construct() shall be a system task. + */ +#define RTEMS_SYSTEM_TASK 0x00008000 #ifdef __cplusplus } #endif -#endif -/* end of include file */ +#endif /* _RTEMS_RTEMS_ATTR_H */ -- cgit v1.2.3