summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/linkersets.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/include/rtems/linkersets.h')
-rw-r--r--cpukit/score/include/rtems/linkersets.h129
1 files changed, 0 insertions, 129 deletions
diff --git a/cpukit/score/include/rtems/linkersets.h b/cpukit/score/include/rtems/linkersets.h
deleted file mode 100644
index bad046999c..0000000000
--- a/cpukit/score/include/rtems/linkersets.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 2015, 2016 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * 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.
- */
-
-#ifndef _RTEMS_LINKERSET_H
-#define _RTEMS_LINKERSET_H
-
-#include <rtems/score/basedefs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#define RTEMS_LINKER_SET_BEGIN( set ) \
- _Linker_set_##set##_begin
-
-#define RTEMS_LINKER_SET_END( set ) \
- _Linker_set_##set##_end
-
-#define RTEMS_LINKER_ROSET_DECLARE( set, type ) \
- extern type const RTEMS_LINKER_SET_BEGIN( set )[0]; \
- extern type const RTEMS_LINKER_SET_END( set )[0]
-
-#define RTEMS_LINKER_ROSET( set, type ) \
- type const RTEMS_LINKER_SET_BEGIN( set )[0] \
- RTEMS_SECTION( ".rtemsroset." #set ".begin" ) RTEMS_USED; \
- type const RTEMS_LINKER_SET_END( set )[0] \
- RTEMS_SECTION( ".rtemsroset." #set ".end" ) RTEMS_USED
-
-#define RTEMS_LINKER_ROSET_ITEM_DECLARE( set, type, item ) \
- extern type const _Linker_set_##set##_##item
-
-#define RTEMS_LINKER_ROSET_ITEM_REFERENCE( set, type, item ) \
- static type const * const _Set_reference_##set##_##item \
- RTEMS_SECTION( ".rtemsroset.reference" ) RTEMS_USED = \
- &_Linker_set_##set##_##item
-
-#define RTEMS_LINKER_ROSET_ITEM_ORDERED( set, type, item, order ) \
- type const _Linker_set_##set##_##item \
- RTEMS_SECTION( ".rtemsroset." #set ".content.0." RTEMS_XSTRING( order ) ) \
- RTEMS_USED
-
-#define RTEMS_LINKER_ROSET_ITEM( set, type, item ) \
- type const _Linker_set_##set##_##item \
- RTEMS_SECTION( ".rtemsroset." #set ".content.1" ) RTEMS_USED
-
-#define RTEMS_LINKER_ROSET_CONTENT( set, decl ) \
- decl \
- RTEMS_SECTION( ".rtemsroset." #set ".content" )
-
-#define RTEMS_LINKER_RWSET_DECLARE( set, type ) \
- extern type RTEMS_LINKER_SET_BEGIN( set )[0]; \
- extern type RTEMS_LINKER_SET_END( set )[0]
-
-#define RTEMS_LINKER_RWSET( set, type ) \
- type RTEMS_LINKER_SET_BEGIN( set )[0] \
- RTEMS_SECTION( ".rtemsrwset." #set ".begin" ) RTEMS_USED; \
- type RTEMS_LINKER_SET_END( set )[0] \
- RTEMS_SECTION( ".rtemsrwset." #set ".end" ) RTEMS_USED
-
-#define RTEMS_LINKER_RWSET_ITEM_DECLARE( set, type, item ) \
- extern type _Linker_set_##set##_##item
-
-/*
- * The .rtemsroset is here not a typo. We must ensure that the references are
- * not a victim of the garbage collection of the linker. Thus, we place them
- * in a dedicated area of the RTEMS read-only linker set section.
- */
-#define RTEMS_LINKER_RWSET_ITEM_REFERENCE( set, type, item ) \
- static type * const _Set_reference_##set##_##item \
- RTEMS_SECTION( ".rtemsroset.reference" ) RTEMS_USED = \
- &_Linker_set_##set##_##item
-
-#define RTEMS_LINKER_RWSET_ITEM_ORDERED( set, type, item, order ) \
- type _Linker_set_##set##_##item \
- RTEMS_SECTION( ".rtemsrwset." #set ".content.0." RTEMS_XSTRING( order ) ) \
- RTEMS_USED
-
-#define RTEMS_LINKER_RWSET_ITEM( set, type, item ) \
- type _Linker_set_##set##_##item \
- RTEMS_SECTION( ".rtemsrwset." #set ".content.1" ) RTEMS_USED
-
-#define RTEMS_LINKER_RWSET_CONTENT( set, decl ) \
- decl \
- RTEMS_SECTION( ".rtemsrwset." #set ".content" )
-
-RTEMS_INLINE_ROUTINE uintptr_t _Linker_set_Obfuscate( const void *ptr )
-{
- uintptr_t addr;
-
- addr = (uintptr_t) ptr;
- RTEMS_OBFUSCATE_VARIABLE( addr );
-
- return addr;
-}
-
-#define RTEMS_LINKER_SET_SIZE( set ) \
- ( _Linker_set_Obfuscate( RTEMS_LINKER_SET_END( set ) ) \
- - _Linker_set_Obfuscate( RTEMS_LINKER_SET_BEGIN( set ) ) )
-
-#define RTEMS_LINKER_SET_ITEM_COUNT( set ) \
- ( RTEMS_LINKER_SET_SIZE( set ) \
- / sizeof( RTEMS_LINKER_SET_BEGIN( set )[ 0 ] ) )
-
-#define RTEMS_LINKER_SET_IS_EMPTY( set ) \
- ( RTEMS_LINKER_SET_SIZE( set ) == 0 )
-
-#define RTEMS_LINKER_SET_FOREACH( set, item ) \
- for ( \
- item = (void *) _Linker_set_Obfuscate( RTEMS_LINKER_SET_BEGIN( set ) ) ; \
- item != RTEMS_LINKER_SET_END( set ) ; \
- ++item \
- )
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _RTEMS_LINKERSET_H */