forked from Imagelibrary/rtems
2001-01-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* startup/genpvec.c: #include <chain.h> instead of "chain.h", fix CVS-Id. * include/chain.h: Remove. * include/Makefile.am: Remove chain.h.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
2001-01-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
|
* startup/genpvec.c: #include <chain.h> instead of "chain.h", fix
|
||||||
|
CVS-Id.
|
||||||
|
* include/chain.h: Remove.
|
||||||
|
* include/Makefile.am: Remove chain.h.
|
||||||
|
|
||||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign 1.4
|
AUTOMAKE_OPTIONS = foreign 1.4
|
||||||
|
|
||||||
H_FILES = bsp.h ../../../shared/include/coverhd.h chain.h tod.h nvram.h \
|
H_FILES = bsp.h ../../../shared/include/coverhd.h tod.h nvram.h \
|
||||||
pci.h
|
pci.h
|
||||||
|
|
||||||
$(PROJECT_INCLUDE):
|
$(PROJECT_INCLUDE):
|
||||||
@@ -16,9 +16,6 @@ $(PROJECT_INCLUDE)/bsp.h: bsp.h
|
|||||||
$(PROJECT_INCLUDE)/coverhd.h: ../../../shared/include/coverhd.h
|
$(PROJECT_INCLUDE)/coverhd.h: ../../../shared/include/coverhd.h
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/chain.h: chain.h
|
|
||||||
$(INSTALL_DATA) $< $@
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/tod.h: tod.h
|
$(PROJECT_INCLUDE)/tod.h: tod.h
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
@@ -29,7 +26,7 @@ $(PROJECT_INCLUDE)/pci.h: pci.h
|
|||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE) $(PROJECT_INCLUDE)/bsp.h \
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE) $(PROJECT_INCLUDE)/bsp.h \
|
||||||
$(PROJECT_INCLUDE)/coverhd.h $(PROJECT_INCLUDE)/chain.h \
|
$(PROJECT_INCLUDE)/coverhd.h \
|
||||||
$(PROJECT_INCLUDE)/tod.h $(PROJECT_INCLUDE)/nvram.h \
|
$(PROJECT_INCLUDE)/tod.h $(PROJECT_INCLUDE)/nvram.h \
|
||||||
$(PROJECT_INCLUDE)/pci.h
|
$(PROJECT_INCLUDE)/pci.h
|
||||||
|
|
||||||
|
|||||||
@@ -1,362 +0,0 @@
|
|||||||
/* chain.h
|
|
||||||
*
|
|
||||||
* This include file contains all the constants and structures associated
|
|
||||||
* with doubly linked chains. This file actually just provides an
|
|
||||||
* interface to the chain object in rtems.
|
|
||||||
*
|
|
||||||
* COPYRIGHT (c) 1989-1997.
|
|
||||||
* On-Line Applications Research Corporation (OAR).
|
|
||||||
* Copyright assigned to U.S. Government, 1994.
|
|
||||||
*
|
|
||||||
* The license and distribution terms for this file may in
|
|
||||||
* the file LICENSE in this distribution or at
|
|
||||||
* http://www.OARcorp.com/rtems/license.html.
|
|
||||||
*
|
|
||||||
* $ld:
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __CHAIN_h
|
|
||||||
#define __CHAIN_h
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Initialize
|
|
||||||
*
|
|
||||||
* This routine initializes the_chain structure to manage the
|
|
||||||
* contiguous array of number_nodes nodes which starts at
|
|
||||||
* starting_address. Each node is of node_size bytes.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* void *starting_address, * IN *
|
|
||||||
* rtems_unsigned32 number_nodes, * IN *
|
|
||||||
* rtems_unsigned32 node_size * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Initialize( the_chain, starting_address, \
|
|
||||||
number_nodes, node_size ) \
|
|
||||||
_Chain_Initialize( the_chain, starting_address, \
|
|
||||||
number_nodes, node_size ) \
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Initialize_empty
|
|
||||||
*
|
|
||||||
* This routine initializes the specified chain to contain zero nodes.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Initialize_empty( the_chain ) \
|
|
||||||
_Chain_Initialize_empty( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Are_nodes_equal
|
|
||||||
*
|
|
||||||
* This function returns TRUE if LEFT and RIGHT are equal,
|
|
||||||
* and FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *left, * IN *
|
|
||||||
* Chain_Node *right * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Are_nodes_equal( left, right ) \
|
|
||||||
_Chain_Are_nodes_equal( left, right )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Extract_unprotected
|
|
||||||
*
|
|
||||||
* This routine extracts the_node from the chain on which it resides.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Extract_unprotected( the_node ) \
|
|
||||||
_Chain_Extract_unprotected( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Extract
|
|
||||||
*
|
|
||||||
* This routine extracts the_node from the chain on which it resides.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Extract( the_node ) \
|
|
||||||
_Chain_Extract( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Get_unprotected
|
|
||||||
*
|
|
||||||
* This function removes the first node from the_chain and returns
|
|
||||||
* a pointer to that node. If the_chain is empty, then NULL is returned.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* get operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Get_unprotected( the_chain ) \
|
|
||||||
_Chain_Get_unprotected( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Get
|
|
||||||
*
|
|
||||||
* This function removes the first node from the_chain and returns
|
|
||||||
* a pointer to that node. If the_chain is empty, then NULL is returned.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* get operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Get( the_chain ) \
|
|
||||||
_Chain_Get( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Get_first_unprotected
|
|
||||||
*
|
|
||||||
* This function removes the first node from the_chain and returns
|
|
||||||
* a pointer to that node. It does NOT disable interrupts to insure
|
|
||||||
* the atomicity of the get operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Get_first_unprotected( the_chain ) \
|
|
||||||
_Chain_Get_first_unprotected( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Insert_unprotected
|
|
||||||
*
|
|
||||||
* This routine inserts the_node on a chain immediately following
|
|
||||||
* after_node. It does NOT disable interrupts to insure the atomicity
|
|
||||||
* of the extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *after_node, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Insert_unprotected( after_node, the_node ) \
|
|
||||||
_Chain_Insert_unprotected( after_node, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Insert
|
|
||||||
*
|
|
||||||
* This routine inserts the_node on a chain immediately following
|
|
||||||
* after_node. It disables interrupts to insure the atomicity
|
|
||||||
* of the extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *after_node, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Insert( after_node, the_node ) \
|
|
||||||
_Chain_Insert( after_node, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Append_unprotected
|
|
||||||
*
|
|
||||||
* This routine appends the_node onto the end of the_chain.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* append operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Append_unprotected( the_chain, the_node ) \
|
|
||||||
_Chain_Append_unprotected( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Append
|
|
||||||
*
|
|
||||||
* This routine appends the_node onto the end of the_chain.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* append operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Append( the_chain, the_node ) \
|
|
||||||
_Chain_Append( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Prepend_unprotected
|
|
||||||
*
|
|
||||||
* This routine prepends the_node onto the front of the_chain.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* prepend operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Prepend_unprotected( the_chain, the_node ) \
|
|
||||||
_Chain_Prepend_unprotected( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Prepend
|
|
||||||
*
|
|
||||||
* This routine prepends the_node onto the front of the_chain.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* prepend operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Prepend( the_chain, the_node ) \
|
|
||||||
_Chain_Prepend( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Head
|
|
||||||
*
|
|
||||||
* This function returns a pointer to the first node on the chain.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Head( the_chain ) \
|
|
||||||
_Chain_Head( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Tail
|
|
||||||
*
|
|
||||||
* This function returns a pointer to the last node on the chain.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Tail( the_chain ) \
|
|
||||||
_Chain_Tail( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_head
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the head of the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_head( the_chain, the_node ) \
|
|
||||||
_Chain_Is_head( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_tail
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the tail of the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_tail( the_chain, the_node ) \
|
|
||||||
_Chain_Is_tail( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_first
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the first node on a chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_first( the_node ) \
|
|
||||||
_Chain_Is_first( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_last
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the last node on a chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_last( the_node ) \
|
|
||||||
_Chain_Is_last( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_empty
|
|
||||||
*
|
|
||||||
* This function returns TRUE if there are no nodes on the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_empty( the_chain ) \
|
|
||||||
_Chain_Is_empty( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Has_only_one_node
|
|
||||||
*
|
|
||||||
* This function returns TRUE if there is only one node on the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Has_only_one_node( the_chain ) \
|
|
||||||
_Chain_Has_only_one_node( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_null
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_chain is NULL and FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_null( the_chain ) \
|
|
||||||
_Chain_Is_null( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_null_node
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is NULL and FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_null_node( the_node ) \
|
|
||||||
_Chain_Is_null_node( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
#undef __RTEMS_APPLICATION__
|
|
||||||
#include <rtems/score/chain.inl>
|
|
||||||
#define __RTEMS_APPLICATION__
|
|
||||||
#endif
|
|
||||||
/* end of include file */
|
|
||||||
@@ -26,11 +26,11 @@
|
|||||||
* the file LICENSE in this distribution or at
|
* the file LICENSE in this distribution or at
|
||||||
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
*
|
*
|
||||||
* $Id:
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include "chain.h"
|
#include <chain.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
2001-01-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
|
* startup/genpvec.c: #include <chain.h> instead of "chain.h", fix
|
||||||
|
CVS-Id.
|
||||||
|
* include/chain.h: Remove.
|
||||||
|
* include/Makefile.am: Remove chain.h.
|
||||||
|
|
||||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||||
|
|
||||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign 1.4
|
AUTOMAKE_OPTIONS = foreign 1.4
|
||||||
|
|
||||||
H_FILES = bsp.h coverhd.h chain.h gen1.h gen2.h tod.h
|
H_FILES = bsp.h coverhd.h gen1.h gen2.h tod.h
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/bsp.h: bsp.h
|
$(PROJECT_INCLUDE)/bsp.h: bsp.h
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
@@ -12,9 +12,6 @@ $(PROJECT_INCLUDE)/bsp.h: bsp.h
|
|||||||
$(PROJECT_INCLUDE)/coverhd.h: coverhd.h
|
$(PROJECT_INCLUDE)/coverhd.h: coverhd.h
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/chain.h: chain.h
|
|
||||||
$(INSTALL_DATA) $< $@
|
|
||||||
|
|
||||||
$(PROJECT_INCLUDE)/gen1.h: gen1.h
|
$(PROJECT_INCLUDE)/gen1.h: gen1.h
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
@@ -25,7 +22,7 @@ $(PROJECT_INCLUDE)/tod.h: tod.h
|
|||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
TMPINSTALL_FILES += $(PROJECT_INCLUDE) $(PROJECT_INCLUDE)/bsp.h \
|
TMPINSTALL_FILES += $(PROJECT_INCLUDE) $(PROJECT_INCLUDE)/bsp.h \
|
||||||
$(PROJECT_INCLUDE)/coverhd.h $(PROJECT_INCLUDE)/chain.h \
|
$(PROJECT_INCLUDE)/coverhd.h \
|
||||||
$(PROJECT_INCLUDE)/gen1.h $(PROJECT_INCLUDE)/gen2.h \
|
$(PROJECT_INCLUDE)/gen1.h $(PROJECT_INCLUDE)/gen2.h \
|
||||||
$(PROJECT_INCLUDE)/tod.h
|
$(PROJECT_INCLUDE)/tod.h
|
||||||
|
|
||||||
|
|||||||
@@ -1,362 +0,0 @@
|
|||||||
/* chain.h
|
|
||||||
*
|
|
||||||
* This include file contains all the constants and structures associated
|
|
||||||
* with doubly linked chains. This file actually just provides an
|
|
||||||
* interface to the chain object in rtems.
|
|
||||||
*
|
|
||||||
* COPYRIGHT (c) 1989-1997.
|
|
||||||
* On-Line Applications Research Corporation (OAR).
|
|
||||||
* Copyright assigned to U.S. Government, 1994.
|
|
||||||
*
|
|
||||||
* The license and distribution terms for this file may in
|
|
||||||
* the file LICENSE in this distribution or at
|
|
||||||
* http://www.OARcorp.com/rtems/license.html.
|
|
||||||
*
|
|
||||||
* $ld:
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __CHAIN_h
|
|
||||||
#define __CHAIN_h
|
|
||||||
|
|
||||||
#include <rtems.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Initialize
|
|
||||||
*
|
|
||||||
* This routine initializes the_chain structure to manage the
|
|
||||||
* contiguous array of number_nodes nodes which starts at
|
|
||||||
* starting_address. Each node is of node_size bytes.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* void *starting_address, * IN *
|
|
||||||
* rtems_unsigned32 number_nodes, * IN *
|
|
||||||
* rtems_unsigned32 node_size * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Initialize( the_chain, starting_address, \
|
|
||||||
number_nodes, node_size ) \
|
|
||||||
_Chain_Initialize( the_chain, starting_address, \
|
|
||||||
number_nodes, node_size ) \
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Initialize_empty
|
|
||||||
*
|
|
||||||
* This routine initializes the specified chain to contain zero nodes.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Initialize_empty( the_chain ) \
|
|
||||||
_Chain_Initialize_empty( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Are_nodes_equal
|
|
||||||
*
|
|
||||||
* This function returns TRUE if LEFT and RIGHT are equal,
|
|
||||||
* and FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *left, * IN *
|
|
||||||
* Chain_Node *right * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Are_nodes_equal( left, right ) \
|
|
||||||
_Chain_Are_nodes_equal( left, right )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Extract_unprotected
|
|
||||||
*
|
|
||||||
* This routine extracts the_node from the chain on which it resides.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Extract_unprotected( the_node ) \
|
|
||||||
_Chain_Extract_unprotected( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Extract
|
|
||||||
*
|
|
||||||
* This routine extracts the_node from the chain on which it resides.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Extract( the_node ) \
|
|
||||||
_Chain_Extract( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Get_unprotected
|
|
||||||
*
|
|
||||||
* This function removes the first node from the_chain and returns
|
|
||||||
* a pointer to that node. If the_chain is empty, then NULL is returned.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* get operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Get_unprotected( the_chain ) \
|
|
||||||
_Chain_Get_unprotected( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Get
|
|
||||||
*
|
|
||||||
* This function removes the first node from the_chain and returns
|
|
||||||
* a pointer to that node. If the_chain is empty, then NULL is returned.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* get operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Get( the_chain ) \
|
|
||||||
_Chain_Get( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Get_first_unprotected
|
|
||||||
*
|
|
||||||
* This function removes the first node from the_chain and returns
|
|
||||||
* a pointer to that node. It does NOT disable interrupts to insure
|
|
||||||
* the atomicity of the get operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Get_first_unprotected( the_chain ) \
|
|
||||||
_Chain_Get_first_unprotected( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Insert_unprotected
|
|
||||||
*
|
|
||||||
* This routine inserts the_node on a chain immediately following
|
|
||||||
* after_node. It does NOT disable interrupts to insure the atomicity
|
|
||||||
* of the extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *after_node, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Insert_unprotected( after_node, the_node ) \
|
|
||||||
_Chain_Insert_unprotected( after_node, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Insert
|
|
||||||
*
|
|
||||||
* This routine inserts the_node on a chain immediately following
|
|
||||||
* after_node. It disables interrupts to insure the atomicity
|
|
||||||
* of the extract operation.
|
|
||||||
*
|
|
||||||
* Chain_Node *after_node, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Insert( after_node, the_node ) \
|
|
||||||
_Chain_Insert( after_node, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Append_unprotected
|
|
||||||
*
|
|
||||||
* This routine appends the_node onto the end of the_chain.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* append operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Append_unprotected( the_chain, the_node ) \
|
|
||||||
_Chain_Append_unprotected( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Append
|
|
||||||
*
|
|
||||||
* This routine appends the_node onto the end of the_chain.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* append operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Append( the_chain, the_node ) \
|
|
||||||
_Chain_Append( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Prepend_unprotected
|
|
||||||
*
|
|
||||||
* This routine prepends the_node onto the front of the_chain.
|
|
||||||
* It does NOT disable interrupts to insure the atomicity of the
|
|
||||||
* prepend operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Prepend_unprotected( the_chain, the_node ) \
|
|
||||||
_Chain_Prepend_unprotected( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Prepend
|
|
||||||
*
|
|
||||||
* This routine prepends the_node onto the front of the_chain.
|
|
||||||
* It disables interrupts to insure the atomicity of the
|
|
||||||
* prepend operation.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Prepend( the_chain, the_node ) \
|
|
||||||
_Chain_Prepend( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Head
|
|
||||||
*
|
|
||||||
* This function returns a pointer to the first node on the chain.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Head( the_chain ) \
|
|
||||||
_Chain_Head( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Tail
|
|
||||||
*
|
|
||||||
* This function returns a pointer to the last node on the chain.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Tail( the_chain ) \
|
|
||||||
_Chain_Tail( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_head
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the head of the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_head( the_chain, the_node ) \
|
|
||||||
_Chain_Is_head( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_tail
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the tail of the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain, * IN *
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_tail( the_chain, the_node ) \
|
|
||||||
_Chain_Is_tail( the_chain, the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_first
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the first node on a chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_first( the_node ) \
|
|
||||||
_Chain_Is_first( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_last
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is the last node on a chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_last( the_node ) \
|
|
||||||
_Chain_Is_last( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_empty
|
|
||||||
*
|
|
||||||
* This function returns TRUE if there are no nodes on the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_empty( the_chain ) \
|
|
||||||
_Chain_Is_empty( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Has_only_one_node
|
|
||||||
*
|
|
||||||
* This function returns TRUE if there is only one node on the_chain and
|
|
||||||
* FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Has_only_one_node( the_chain ) \
|
|
||||||
_Chain_Has_only_one_node( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_null
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_chain is NULL and FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Control *the_chain * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_null( the_chain ) \
|
|
||||||
_Chain_Is_null( the_chain )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Chain_Is_null_node
|
|
||||||
*
|
|
||||||
* This function returns TRUE if the_node is NULL and FALSE otherwise.
|
|
||||||
*
|
|
||||||
* Chain_Node *the_node * IN *
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define Chain_Is_null_node( the_node ) \
|
|
||||||
_Chain_Is_null_node( the_node )
|
|
||||||
|
|
||||||
|
|
||||||
#undef __RTEMS_APPLICATION__
|
|
||||||
#include <rtems/score/chain.inl>
|
|
||||||
#define __RTEMS_APPLICATION__
|
|
||||||
#endif
|
|
||||||
/* end of include file */
|
|
||||||
@@ -11,11 +11,11 @@
|
|||||||
* the file LICENSE in this distribution or at
|
* the file LICENSE in this distribution or at
|
||||||
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
*
|
*
|
||||||
* $Id:
|
* $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include "chain.h"
|
#include <chain.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include <stdio.h> /* for sprintf */
|
#include <stdio.h> /* for sprintf */
|
||||||
|
|||||||
Reference in New Issue
Block a user