RTEMS 4.11
Annotated Report
Sun Mar 20 22:33:54 2011

00048ebc <IMFS_Set_handlers>: { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; switch( node->type ) {
   48ebc:	7206           	moveq #6,%d1                                
#define MAXSYMLINK 5                                                  
                                                                      
int IMFS_Set_handlers(                                                
  rtems_filesystem_location_info_t   *loc                             
)                                                                     
{                                                                     
   48ebe:	4e56 0000      	linkw %fp,#0                                
   48ec2:	206e 0008      	moveal %fp@(8),%a0                          
   48ec6:	2f0a           	movel %a2,%sp@-                             
  IMFS_jnode_t    *node = loc->node_access;                           
  IMFS_fs_info_t  *fs_info;                                           
                                                                      
  fs_info = loc->mt_entry->fs_info;                                   
  switch( node->type ) {                                              
   48ec8:	2450           	moveal %a0@,%a2                             
)                                                                     
{                                                                     
  IMFS_jnode_t    *node = loc->node_access;                           
  IMFS_fs_info_t  *fs_info;                                           
                                                                      
  fs_info = loc->mt_entry->fs_info;                                   
   48eca:	2268 0010      	moveal %a0@(16),%a1                         
  switch( node->type ) {                                              
   48ece:	202a 0048      	movel %a2@(72),%d0                          
   48ed2:	5380           	subql #1,%d0                                
)                                                                     
{                                                                     
  IMFS_jnode_t    *node = loc->node_access;                           
  IMFS_fs_info_t  *fs_info;                                           
                                                                      
  fs_info = loc->mt_entry->fs_info;                                   
   48ed4:	2269 0034      	moveal %a1@(52),%a1                         
  switch( node->type ) {                                              
   48ed8:	b280           	cmpl %d0,%d1                                
   48eda:	6546           	bcss 48f22 <IMFS_Set_handlers+0x66>         <== NEVER TAKEN
   48edc:	303b 0a08      	movew %pc@(48ee6 <IMFS_Set_handlers+0x2a>,%d0:l:2),%d0
   48ee0:	48c0           	extl %d0                                    
   48ee2:	4efb 0802      	jmp %pc@(48ee6 <IMFS_Set_handlers+0x2a>,%d0:l)
   48ee6:	000e           	.short 0x000e                               <== NOT EXECUTED
   48ee8:	0016           	.short 0x0016                               <== NOT EXECUTED
   48eea:	0022           	.short 0x0022                               <== NOT EXECUTED
   48eec:	0022           	.short 0x0022                               <== NOT EXECUTED
   48eee:	002e           	.short 0x002e                               <== NOT EXECUTED
   48ef0:	002e           	.short 0x002e                               <== NOT EXECUTED
   48ef2:	0036           	.short 0x0036                               <== NOT EXECUTED
    case IMFS_DIRECTORY:                                              
      loc->handlers = fs_info->directory_handlers;                    
   48ef4:	2169 000c 0008 	movel %a1@(12),%a0@(8)                      
      break;                                                          
   48efa:	6026           	bras 48f22 <IMFS_Set_handlers+0x66>         
    case IMFS_DEVICE:                                                 
      loc->handlers = &IMFS_device_handlers;                          
   48efc:	203c 0005 c378 	movel #377720,%d0                           
   48f02:	2140 0008      	movel %d0,%a0@(8)                           
      break;                                                          
   48f06:	601a           	bras 48f22 <IMFS_Set_handlers+0x66>         
    case IMFS_SYM_LINK:                                               
    case IMFS_HARD_LINK:                                              
      loc->handlers = &IMFS_link_handlers;                            
   48f08:	223c 0005 c3e8 	movel #377832,%d1                           
   48f0e:	2141 0008      	movel %d1,%a0@(8)                           
      break;                                                          
   48f12:	600e           	bras 48f22 <IMFS_Set_handlers+0x66>         
    case IMFS_LINEAR_FILE:                                            
      loc->handlers = fs_info->memfile_handlers;                      
      break;                                                          
    case IMFS_MEMORY_FILE:                                            
      loc->handlers = fs_info->memfile_handlers;                      
   48f14:	2169 0008 0008 	movel %a1@(8),%a0@(8)                       
      break;                                                          
   48f1a:	6006           	bras 48f22 <IMFS_Set_handlers+0x66>         
    case IMFS_FIFO:                                                   
      loc->handlers = fs_info->fifo_handlers;                         
   48f1c:	2169 0010 0008 	movel %a1@(16),%a0@(8)                      
      break;                                                          
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
   48f22:	245f           	moveal %sp@+,%a2                            
   48f24:	4280           	clrl %d0                                    
   48f26:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048c88 <IMFS_chown>: int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) {
   48c88:	4e56 ffe8      	linkw %fp,#-24                              
  IMFS_jnode_t  *jnode;                                               
#if defined(RTEMS_POSIX_API)                                          
  uid_t          st_uid;                                              
#endif                                                                
                                                                      
  jnode = (IMFS_jnode_t *) pathloc->node_access;                      
   48c8c:	206e 0008      	moveal %fp@(8),%a0                          
int IMFS_chown(                                                       
  rtems_filesystem_location_info_t  *pathloc,       /* IN */          
  uid_t                              owner,         /* IN */          
  gid_t                              group          /* IN */          
)                                                                     
{                                                                     
   48c90:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
  IMFS_jnode_t  *jnode;                                               
#if defined(RTEMS_POSIX_API)                                          
  uid_t          st_uid;                                              
#endif                                                                
                                                                      
  jnode = (IMFS_jnode_t *) pathloc->node_access;                      
   48c94:	2450           	moveal %a0@,%a2                             
   */                                                                 
                                                                      
#if defined(RTEMS_POSIX_API)                                          
  st_uid = geteuid();                                                 
                                                                      
  if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) )               
   48c96:	4284           	clrl %d4                                    
int IMFS_chown(                                                       
  rtems_filesystem_location_info_t  *pathloc,       /* IN */          
  uid_t                              owner,         /* IN */          
  gid_t                              group          /* IN */          
)                                                                     
{                                                                     
   48c98:	362e 000e      	movew %fp@(14),%d3                          
   48c9c:	342e 0012      	movew %fp@(18),%d2                          
  /*                                                                  
   *  Verify I am the owner of the node or the super user.            
   */                                                                 
                                                                      
#if defined(RTEMS_POSIX_API)                                          
  st_uid = geteuid();                                                 
   48ca0:	4eb9 0004 9aa0 	jsr 49aa0 <geteuid>                         
                                                                      
  if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) )               
   48ca6:	4281           	clrl %d1                                    
   48ca8:	3800           	movew %d0,%d4                               
   48caa:	322a 0038      	movew %a2@(56),%d1                          
   48cae:	b284           	cmpl %d4,%d1                                
   48cb0:	6714           	beqs 48cc6 <IMFS_chown+0x3e>                
   48cb2:	4a40           	tstw %d0                                    
   48cb4:	6710           	beqs 48cc6 <IMFS_chown+0x3e>                <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EPERM );                    
   48cb6:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   48cbc:	2040           	moveal %d0,%a0                              
   48cbe:	7001           	moveq #1,%d0                                
   48cc0:	2080           	movel %d0,%a0@                              
   48cc2:	70ff           	moveq #-1,%d0                               
   48cc4:	601e           	bras 48ce4 <IMFS_chown+0x5c>                
#endif                                                                
                                                                      
  jnode->st_uid = owner;                                              
   48cc6:	3543 0038      	movew %d3,%a2@(56)                          
  jnode->st_gid = group;                                              
   48cca:	3542 003a      	movew %d2,%a2@(58)                          
                                                                      
  IMFS_update_ctime( jnode );                                         
   48cce:	42a7           	clrl %sp@-                                  
   48cd0:	486e fff8      	pea %fp@(-8)                                
   48cd4:	4eb9 0004 2a74 	jsr 42a74 <gettimeofday>                    
   48cda:	256e fff8 0044 	movel %fp@(-8),%a2@(68)                     
                                                                      
  return 0;                                                           
   48ce0:	508f           	addql #8,%sp                                
   48ce2:	4280           	clrl %d0                                    
}                                                                     
   48ce4:	4cee 041c ffe8 	moveml %fp@(-24),%d2-%d4/%a2                
   48cea:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00048d6e <IMFS_create_node>: IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) {
   48d6e:	4e56 ffec      	linkw %fp,#-20                              
   48d72:	206e 0008      	moveal %fp@(8),%a0                          
   48d76:	48d7 3c04      	moveml %d2/%a2-%a5,%sp@                     
   48d7a:	242e 000c      	movel %fp@(12),%d2                          
   48d7e:	246e 0018      	moveal %fp@(24),%a2                         
  IMFS_fs_info_t      *fs_info;                                       
                                                                      
  /*                                                                  
   *  MUST have a parent node to call this routine.                   
   */                                                                 
  if ( parent_loc == NULL )                                           
   48d82:	4a88           	tstl %a0                                    
   48d84:	6700 00ee      	beqw 48e74 <IMFS_create_node+0x106>         
    return NULL;                                                      
                                                                      
  parent = parent_loc->node_access;                                   
   48d88:	2850           	moveal %a0@,%a4                             
  fs_info = parent_loc->mt_entry->fs_info;                            
                                                                      
  /*                                                                  
   *  Reject creation of FIFOs if support is disabled.                
   */                                                                 
  if ( type == IMFS_FIFO &&                                           
   48d8a:	7007           	moveq #7,%d0                                
   */                                                                 
  if ( parent_loc == NULL )                                           
    return NULL;                                                      
                                                                      
  parent = parent_loc->node_access;                                   
  fs_info = parent_loc->mt_entry->fs_info;                            
   48d8c:	2068 0010      	moveal %a0@(16),%a0                         
   48d90:	2668 0034      	moveal %a0@(52),%a3                         
                                                                      
  /*                                                                  
   *  Reject creation of FIFOs if support is disabled.                
   */                                                                 
  if ( type == IMFS_FIFO &&                                           
   48d94:	b082           	cmpl %d2,%d0                                
   48d96:	660e           	bnes 48da6 <IMFS_create_node+0x38>          
   48d98:	223c 0005 c308 	movel #377608,%d1                           
   48d9e:	b2ab 0010      	cmpl %a3@(16),%d1                           
   48da2:	6700 00d0      	beqw 48e74 <IMFS_create_node+0x106>         
    return NULL;                                                      
                                                                      
  /*                                                                  
   *  Allocate filesystem node and fill in basic information          
   */                                                                 
  node  = IMFS_allocate_node( type, name, mode & ~rtems_filesystem_umask );
   48da6:	2079 0005 d244 	moveal 5d244 <rtems_current_user_env>,%a0   
   48dac:	2028 002c      	movel %a0@(44),%d0                          
   48db0:	4680           	notl %d0                                    
   48db2:	c0ae 0014      	andl %fp@(20),%d0                           
   48db6:	2f00           	movel %d0,%sp@-                             
   48db8:	2f2e 0010      	movel %fp@(16),%sp@-                        
   48dbc:	2f02           	movel %d2,%sp@-                             
   48dbe:	4eb9 0004 8cf0 	jsr 48cf0 <IMFS_allocate_node>              
  if ( !node )                                                        
   48dc4:	4fef 000c      	lea %sp@(12),%sp                            
    return NULL;                                                      
                                                                      
  /*                                                                  
   *  Allocate filesystem node and fill in basic information          
   */                                                                 
  node  = IMFS_allocate_node( type, name, mode & ~rtems_filesystem_umask );
   48dc8:	2a40           	moveal %d0,%a5                              
  if ( !node )                                                        
   48dca:	4a80           	tstl %d0                                    
   48dcc:	6700 00a8      	beqw 48e76 <IMFS_create_node+0x108>         
    return NULL;                                                      
                                                                      
  /*                                                                  
   *  Set the type specific information                               
   */                                                                 
  if ( type == IMFS_DIRECTORY ) {                                     
   48dd0:	7001           	moveq #1,%d0                                
   48dd2:	b082           	cmpl %d2,%d0                                
   48dd4:	6616           	bnes 48dec <IMFS_create_node+0x7e>          
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   48dd6:	41ed 0050      	lea %a5@(80),%a0                            
   48dda:	2b48 004c      	movel %a0,%a5@(76)                          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   48dde:	41ed 004c      	lea %a5@(76),%a0                            
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   48de2:	42ad 0050      	clrl %a5@(80)                               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   48de6:	2b48 0054      	movel %a0,%a5@(84)                          
   48dea:	6066           	bras 48e52 <IMFS_create_node+0xe4>          
    rtems_chain_initialize_empty(&node->info.directory.Entries);      
  } else if ( type == IMFS_HARD_LINK ) {                              
   48dec:	7003           	moveq #3,%d0                                
   48dee:	b082           	cmpl %d2,%d0                                
   48df0:	6706           	beqs 48df8 <IMFS_create_node+0x8a>          
    node->info.hard_link.link_node = info->hard_link.link_node;       
  } else if ( type == IMFS_SYM_LINK ) {                               
   48df2:	7204           	moveq #4,%d1                                
   48df4:	b282           	cmpl %d2,%d1                                
   48df6:	6606           	bnes 48dfe <IMFS_create_node+0x90>          
    node->info.sym_link.name = info->sym_link.name;                   
   48df8:	2b52 004c      	movel %a2@,%a5@(76)                         
   48dfc:	6054           	bras 48e52 <IMFS_create_node+0xe4>          
  } else if ( type == IMFS_DEVICE ) {                                 
   48dfe:	7002           	moveq #2,%d0                                
   48e00:	b082           	cmpl %d2,%d0                                
   48e02:	660c           	bnes 48e10 <IMFS_create_node+0xa2>          
    node->info.device.major = info->device.major;                     
   48e04:	2b52 004c      	movel %a2@,%a5@(76)                         
    node->info.device.minor = info->device.minor;                     
   48e08:	2b6a 0004 0050 	movel %a2@(4),%a5@(80)                      
   48e0e:	6042           	bras 48e52 <IMFS_create_node+0xe4>          
  } else if ( type == IMFS_LINEAR_FILE ) {                            
   48e10:	7206           	moveq #6,%d1                                
   48e12:	b282           	cmpl %d2,%d1                                
   48e14:	6612           	bnes 48e28 <IMFS_create_node+0xba>          
    node->info.linearfile.size      = 0;                              
    node->info.linearfile.direct    = 0;                              
   48e16:	42ad 0054      	clrl %a5@(84)                               
    node->info.sym_link.name = info->sym_link.name;                   
  } else if ( type == IMFS_DEVICE ) {                                 
    node->info.device.major = info->device.major;                     
    node->info.device.minor = info->device.minor;                     
  } else if ( type == IMFS_LINEAR_FILE ) {                            
    node->info.linearfile.size      = 0;                              
   48e1a:	4280           	clrl %d0                                    
   48e1c:	4281           	clrl %d1                                    
   48e1e:	2b40 004c      	movel %d0,%a5@(76)                          
   48e22:	2b41 0050      	movel %d1,%a5@(80)                          
   48e26:	602a           	bras 48e52 <IMFS_create_node+0xe4>          
    node->info.linearfile.direct    = 0;                              
  } else if ( type == IMFS_MEMORY_FILE ) {                            
   48e28:	7205           	moveq #5,%d1                                
   48e2a:	b282           	cmpl %d2,%d1                                
   48e2c:	661a           	bnes 48e48 <IMFS_create_node+0xda>          
      node->info.file.size            = 0;                            
      node->info.file.indirect        = 0;                            
   48e2e:	42ad 0054      	clrl %a5@(84)                               
    node->info.device.minor = info->device.minor;                     
  } else if ( type == IMFS_LINEAR_FILE ) {                            
    node->info.linearfile.size      = 0;                              
    node->info.linearfile.direct    = 0;                              
  } else if ( type == IMFS_MEMORY_FILE ) {                            
      node->info.file.size            = 0;                            
   48e32:	4280           	clrl %d0                                    
   48e34:	4281           	clrl %d1                                    
      node->info.file.indirect        = 0;                            
      node->info.file.doubly_indirect = 0;                            
   48e36:	42ad 0058      	clrl %a5@(88)                               
    node->info.device.minor = info->device.minor;                     
  } else if ( type == IMFS_LINEAR_FILE ) {                            
    node->info.linearfile.size      = 0;                              
    node->info.linearfile.direct    = 0;                              
  } else if ( type == IMFS_MEMORY_FILE ) {                            
      node->info.file.size            = 0;                            
   48e3a:	2b40 004c      	movel %d0,%a5@(76)                          
   48e3e:	2b41 0050      	movel %d1,%a5@(80)                          
      node->info.file.indirect        = 0;                            
      node->info.file.doubly_indirect = 0;                            
      node->info.file.triply_indirect = 0;                            
   48e42:	42ad 005c      	clrl %a5@(92)                               
   48e46:	600a           	bras 48e52 <IMFS_create_node+0xe4>          
  } else if ( type == IMFS_FIFO ) {                                   
   48e48:	7207           	moveq #7,%d1                                
   48e4a:	b282           	cmpl %d2,%d1                                
   48e4c:	6604           	bnes 48e52 <IMFS_create_node+0xe4>          <== NEVER TAKEN
    node->info.fifo.pipe = NULL;                                      
   48e4e:	42ad 004c      	clrl %a5@(76)                               
                                                                      
  /*                                                                  
   *  This node MUST have a parent, so put it in that directory list. 
   */                                                                 
  node->Parent = parent;                                              
  node->st_ino = ++fs_info->ino_count;                                
   48e52:	202b 0004      	movel %a3@(4),%d0                           
   48e56:	5280           	addql #1,%d0                                
  }                                                                   
                                                                      
  /*                                                                  
   *  This node MUST have a parent, so put it in that directory list. 
   */                                                                 
  node->Parent = parent;                                              
   48e58:	2b4c 0008      	movel %a4,%a5@(8)                           
  node->st_ino = ++fs_info->ino_count;                                
   48e5c:	2740 0004      	movel %d0,%a3@(4)                           
   48e60:	2b40 0034      	movel %d0,%a5@(52)                          
   48e64:	2f0d           	movel %a5,%sp@-                             
   48e66:	486c 004c      	pea %a4@(76)                                
   48e6a:	4eb9 0004 6208 	jsr 46208 <_Chain_Append>                   
                                                                      
  rtems_chain_append( &parent->info.directory.Entries, &node->Node ); 
                                                                      
  return node;                                                        
   48e70:	508f           	addql #8,%sp                                
   48e72:	6002           	bras 48e76 <IMFS_create_node+0x108>         
  /*                                                                  
   *  Reject creation of FIFOs if support is disabled.                
   */                                                                 
  if ( type == IMFS_FIFO &&                                           
       fs_info->fifo_handlers == &rtems_filesystem_handlers_default ) 
    return NULL;                                                      
   48e74:	9bcd           	subal %a5,%a5                               
  node->st_ino = ++fs_info->ino_count;                                
                                                                      
  rtems_chain_append( &parent->info.directory.Entries, &node->Node ); 
                                                                      
  return node;                                                        
}                                                                     
   48e76:	200d           	movel %a5,%d0                               
   48e78:	4cee 3c04 ffec 	moveml %fp@(-20),%d2/%a2-%a5                
   48e7e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048fe4 <IMFS_eval_path>: char token[ IMFS_NAME_MAX + 1 ]; rtems_filesystem_location_info_t newloc; IMFS_jnode_t *node; int result; if ( !rtems_libio_is_valid_perms( flags ) ) {
   48fe4:	70f8           	moveq #-8,%d0                               
  const char                        *pathname,     /* IN     */       
  size_t                             pathnamelen,  /* IN     */       
  int                                flags,        /* IN     */       
  rtems_filesystem_location_info_t  *pathloc       /* IN/OUT */       
                   )                                                  
{                                                                     
   48fe6:	4e56 ff9c      	linkw %fp,#-100                             
   48fea:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   48fee:	282e 0010      	movel %fp@(16),%d4                          
  char                                token[ IMFS_NAME_MAX + 1 ];     
  rtems_filesystem_location_info_t    newloc;                         
  IMFS_jnode_t                       *node;                           
  int                                 result;                         
                                                                      
  if ( !rtems_libio_is_valid_perms( flags ) ) {                       
   48ff2:	c084           	andl %d4,%d0                                
  const char                        *pathname,     /* IN     */       
  size_t                             pathnamelen,  /* IN     */       
  int                                flags,        /* IN     */       
  rtems_filesystem_location_info_t  *pathloc       /* IN/OUT */       
                   )                                                  
{                                                                     
   48ff4:	2a6e 0008      	moveal %fp@(8),%a5                          
   48ff8:	286e 000c      	moveal %fp@(12),%a4                         
   48ffc:	246e 0014      	moveal %fp@(20),%a2                         
  char                                token[ IMFS_NAME_MAX + 1 ];     
  rtems_filesystem_location_info_t    newloc;                         
  IMFS_jnode_t                       *node;                           
  int                                 result;                         
                                                                      
  if ( !rtems_libio_is_valid_perms( flags ) ) {                       
   49000:	670e           	beqs 49010 <IMFS_eval_path+0x2c>            <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( EIO );                      
   49002:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   49008:	7c05           	moveq #5,%d6                                <== NOT EXECUTED
   4900a:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4900c:	2086           	movel %d6,%a0@                              <== NOT EXECUTED
   4900e:	603e           	bras 4904e <IMFS_eval_path+0x6a>            <== NOT EXECUTED
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], pathnamelen, token, &len );  
   49010:	2a0e           	movel %fp,%d5                               
  size_t                             pathnamelen,  /* IN     */       
  int                                flags,        /* IN     */       
  rtems_filesystem_location_info_t  *pathloc       /* IN/OUT */       
                   )                                                  
{                                                                     
  int                                 i = 0;                          
   49012:	4282           	clrl %d2                                    
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], pathnamelen, token, &len );  
   49014:	0685 ffff ffc7 	addil #-57,%d5                              
        }                                                             
                                                                      
        /*                                                            
         *  Otherwise find the token name in the present location.    
         */                                                           
        node = IMFS_find_match_in_dir( node, token );                 
   4901a:	2e3c 0004 959c 	movel #300444,%d7                           
  /*                                                                  
   *  This was filled in by the caller and is valid in the            
   *  mount table.                                                    
   */                                                                 
                                                                      
  node = pathloc->node_access;                                        
   49020:	2652           	moveal %a2@,%a3                             
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], pathnamelen, token, &len );  
   49022:	486e fffc      	pea %fp@(-4)                                
   49026:	2f05           	movel %d5,%sp@-                             
   49028:	2f0c           	movel %a4,%sp@-                             
   4902a:	4875 2800      	pea %a5@(00000000,%d2:l)                    
   4902e:	4eb9 0004 9608 	jsr 49608 <IMFS_get_token>                  
    pathnamelen -= len;                                               
   49034:	2c2e fffc      	movel %fp@(-4),%d6                          
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], pathnamelen, token, &len );  
   49038:	2600           	movel %d0,%d3                               
    pathnamelen -= len;                                               
    i += len;                                                         
                                                                      
    if ( !pathloc->node_access )                                      
   4903a:	4fef 0010      	lea %sp@(16),%sp                            
   4903e:	4a92           	tstl %a2@                                   
   49040:	6612           	bnes 49054 <IMFS_eval_path+0x70>            <== ALWAYS TAKEN
      rtems_set_errno_and_return_minus_one( ENOENT );                 
   49042:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   49048:	7a02           	moveq #2,%d5                                
   4904a:	2040           	moveal %d0,%a0                              
   4904c:	2085           	movel %d5,%a0@                              
   4904e:	76ff           	moveq #-1,%d3                               
   49050:	6000 017c      	braw 491ce <IMFS_eval_path+0x1ea>           
                                                                      
    /*                                                                
     * I cannot move out of this directory without execute permission.
     */                                                               
    if ( type != IMFS_NO_MORE_PATH )                                  
   49054:	4a80           	tstl %d0                                    
   49056:	671c           	beqs 49074 <IMFS_eval_path+0x90>            
      if ( node->type == IMFS_DIRECTORY )                             
   49058:	7001           	moveq #1,%d0                                
   4905a:	b0ab 0048      	cmpl %a3@(72),%d0                           
   4905e:	6614           	bnes 49074 <IMFS_eval_path+0x90>            
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
   49060:	4878 0001      	pea 1 <ADD>                                 
   49064:	2f0a           	movel %a2,%sp@-                             
   49066:	4eb9 0004 8f2a 	jsr 48f2a <IMFS_evaluate_permission>        
   4906c:	508f           	addql #8,%sp                                
   4906e:	4a80           	tstl %d0                                    
   49070:	6700 014a      	beqw 491bc <IMFS_eval_path+0x1d8>           
          rtems_set_errno_and_return_minus_one( EACCES );             
                                                                      
    node = pathloc->node_access;                                      
   49074:	2652           	moveal %a2@,%a3                             
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], pathnamelen, token, &len );  
    pathnamelen -= len;                                               
   49076:	99c6           	subal %d6,%a4                               
    i += len;                                                         
   49078:	d486           	addl %d6,%d2                                
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
          rtems_set_errno_and_return_minus_one( EACCES );             
                                                                      
    node = pathloc->node_access;                                      
                                                                      
    switch( type ) {                                                  
   4907a:	7003           	moveq #3,%d0                                
   4907c:	b083           	cmpl %d3,%d0                                
   4907e:	6742           	beqs 490c2 <IMFS_eval_path+0xde>            
   49080:	7204           	moveq #4,%d1                                
   49082:	b283           	cmpl %d3,%d1                                
   49084:	6700 00aa      	beqw 49130 <IMFS_eval_path+0x14c>           
   49088:	103c 0002      	moveb #2,%d0                                
   4908c:	b083           	cmpl %d3,%d0                                
   4908e:	6600 00b0      	bnew 49140 <IMFS_eval_path+0x15c>           
      case IMFS_UP_DIR:                                               
        /*                                                            
         *  Am I at the root of all filesystems? (chroot'ed?)         
         */                                                           
                                                                      
        if ( pathloc->node_access == rtems_filesystem_root.node_access )
   49092:	2079 0005 d244 	moveal 5d244 <rtems_current_user_env>,%a0   
   49098:	b7e8 0018      	cmpal %a0@(24),%a3                          
   4909c:	6784           	beqs 49022 <IMFS_eval_path+0x3e>            
        /*                                                            
         *  Am I at the root of this mounted filesystem?              
         */                                                           
                                                                      
        if (pathloc->node_access ==                                   
            pathloc->mt_entry->mt_fs_root.node_access) {              
   4909e:	206a 0010      	moveal %a2@(16),%a0                         
                                                                      
        /*                                                            
         *  Am I at the root of this mounted filesystem?              
         */                                                           
                                                                      
        if (pathloc->node_access ==                                   
   490a2:	b7e8 001c      	cmpal %a0@(28),%a3                          
   490a6:	6614           	bnes 490bc <IMFS_eval_path+0xd8>            
           */                                                         
                                                                      
          if ( pathloc->node_access == rtems_filesystem_root.node_access ) {
            break;       /* Throw out the .. in this case */          
          } else {                                                    
            newloc = pathloc->mt_entry->mt_point_node;                
   490a8:	4878 0014      	pea 14 <OPER2>                              
   490ac:	260e           	movel %fp,%d3                               
   490ae:	4868 0008      	pea %a0@(8)                                 
   490b2:	0683 ffff ffe8 	addil #-24,%d3                              
   490b8:	6000 00b2      	braw 4916c <IMFS_eval_path+0x188>           
                                               pathnamelen+len,       
                                               flags,pathloc);        
          }                                                           
        } else {                                                      
                                                                      
          if ( !node->Parent )                                        
   490bc:	266b 0008      	moveal %a3@(8),%a3                          
   490c0:	6062           	bras 49124 <IMFS_eval_path+0x140>           
                                                                      
      case IMFS_NAME:                                                 
        /*                                                            
         *  If we are at a link follow it.                            
         */                                                           
        if ( node->type == IMFS_HARD_LINK ) {                         
   490c2:	202b 0048      	movel %a3@(72),%d0                          
   490c6:	7203           	moveq #3,%d1                                
   490c8:	b280           	cmpl %d0,%d1                                
   490ca:	6610           	bnes 490dc <IMFS_eval_path+0xf8>            
          IMFS_evaluate_hard_link( pathloc, 0 );                      
   490cc:	42a7           	clrl %sp@-                                  
   490ce:	2f0a           	movel %a2,%sp@-                             
   490d0:	4eb9 0004 8f9e 	jsr 48f9e <IMFS_evaluate_hard_link>         
          node = pathloc->node_access;                                
   490d6:	2652           	moveal %a2@,%a3                             
   490d8:	508f           	addql #8,%sp                                
   490da:	601c           	bras 490f8 <IMFS_eval_path+0x114>           
	   * It would be a design error if we evaluated the link and         
	   * was broken.                                                     
	   */                                                                
          IMFS_assert( node );                                        
                                                                      
        } else if ( node->type == IMFS_SYM_LINK ) {                   
   490dc:	7204           	moveq #4,%d1                                
   490de:	b280           	cmpl %d0,%d1                                
   490e0:	6616           	bnes 490f8 <IMFS_eval_path+0x114>           
          result = IMFS_evaluate_sym_link( pathloc, 0 );              
   490e2:	42a7           	clrl %sp@-                                  
   490e4:	2f0a           	movel %a2,%sp@-                             
   490e6:	4eb9 0004 91da 	jsr 491da <IMFS_evaluate_sym_link>          
                                                                      
          /*                                                          
           *  In contrast to a hard link, it is possible to have a broken
           *  symbolic link.                                          
           */                                                         
          node = pathloc->node_access;                                
   490ec:	2652           	moveal %a2@,%a3                             
          if ( result == -1 )                                         
   490ee:	508f           	addql #8,%sp                                
   490f0:	72ff           	moveq #-1,%d1                               
   490f2:	b280           	cmpl %d0,%d1                                
   490f4:	6700 00d6      	beqw 491cc <IMFS_eval_path+0x1e8>           
        }                                                             
                                                                      
        /*                                                            
         *  Only a directory can be decended into.                    
         */                                                           
        if ( node->type != IMFS_DIRECTORY )                           
   490f8:	7001           	moveq #1,%d0                                
   490fa:	b0ab 0048      	cmpl %a3@(72),%d0                           
   490fe:	6710           	beqs 49110 <IMFS_eval_path+0x12c>           
          rtems_set_errno_and_return_minus_one( ENOTDIR );            
   49100:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   49106:	7814           	moveq #20,%d4                               
   49108:	2040           	moveal %d0,%a0                              
   4910a:	2084           	movel %d4,%a0@                              
   4910c:	6000 ff40      	braw 4904e <IMFS_eval_path+0x6a>            
                                                                      
        /*                                                            
         *  If we are at a node that is a mount point. Set loc to the 
         *  new fs root node and let them finish evaluating the path. 
         */                                                           
        if ( node->info.directory.mt_fs != NULL ) {                   
   49110:	206b 0058      	moveal %a3@(88),%a0                         
   49114:	4a88           	tstl %a0                                    
   49116:	6644           	bnes 4915c <IMFS_eval_path+0x178>           
        }                                                             
                                                                      
        /*                                                            
         *  Otherwise find the token name in the present location.    
         */                                                           
        node = IMFS_find_match_in_dir( node, token );                 
   49118:	2f05           	movel %d5,%sp@-                             
   4911a:	2047           	moveal %d7,%a0                              
   4911c:	2f0b           	movel %a3,%sp@-                             
   4911e:	4e90           	jsr %a0@                                    
        if ( !node )                                                  
   49120:	508f           	addql #8,%sp                                
        }                                                             
                                                                      
        /*                                                            
         *  Otherwise find the token name in the present location.    
         */                                                           
        node = IMFS_find_match_in_dir( node, token );                 
   49122:	2640           	moveal %d0,%a3                              
        if ( !node )                                                  
   49124:	4a8b           	tstl %a3                                    
   49126:	6700 ff1a      	beqw 49042 <IMFS_eval_path+0x5e>            
                                                                      
        /*                                                            
         *  Set the node access to the point we have found.           
         */                                                           
                                                                      
        pathloc->node_access = node;                                  
   4912a:	248b           	movel %a3,%a2@                              
   4912c:	6000 fef4      	braw 49022 <IMFS_eval_path+0x3e>            
      case IMFS_NO_MORE_PATH:                                         
      case IMFS_CURRENT_DIR:                                          
        break;                                                        
                                                                      
      case IMFS_INVALID_TOKEN:                                        
        rtems_set_errno_and_return_minus_one( ENAMETOOLONG );         
   49130:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   49136:	765b           	moveq #91,%d3                               
   49138:	2040           	moveal %d0,%a0                              
   4913a:	2083           	movel %d3,%a0@                              
   4913c:	6000 ff10      	braw 4904e <IMFS_eval_path+0x6a>            
                                                                      
  /*                                                                  
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
   49140:	4a83           	tstl %d3                                    
   49142:	6708           	beqs 4914c <IMFS_eval_path+0x168>           
   49144:	7004           	moveq #4,%d0                                
   49146:	b083           	cmpl %d3,%d0                                
   49148:	6600 fed8      	bnew 49022 <IMFS_eval_path+0x3e>            
   *  new fs root node and let let the mounted filesystem set the handlers.
   *                                                                  
   *  NOTE: The behavior of stat() on a mount point appears to be questionable.
   */                                                                 
                                                                      
  if ( node->type == IMFS_DIRECTORY ) {                               
   4914c:	7201           	moveq #1,%d1                                
   4914e:	b2ab 0048      	cmpl %a3@(72),%d1                           
   49152:	664e           	bnes 491a2 <IMFS_eval_path+0x1be>           
    if ( node->info.directory.mt_fs != NULL ) {                       
   49154:	206b 0058      	moveal %a3@(88),%a0                         
   49158:	4a88           	tstl %a0                                    
   4915a:	6746           	beqs 491a2 <IMFS_eval_path+0x1be>           
      newloc   = node->info.directory.mt_fs->mt_fs_root;              
   4915c:	4878 0014      	pea 14 <OPER2>                              
   49160:	260e           	movel %fp,%d3                               
   49162:	0683 ffff ffe8 	addil #-24,%d3                              
   49168:	4868 001c      	pea %a0@(28)                                
   4916c:	2f03           	movel %d3,%sp@-                             
   4916e:	47f9 0004 d37c 	lea 4d37c <memcpy>,%a3                      
   49174:	4e93           	jsr %a3@                                    
      *pathloc = newloc;                                              
   49176:	4878 0014      	pea 14 <OPER2>                              
   4917a:	2f03           	movel %d3,%sp@-                             
   4917c:	2f0a           	movel %a2,%sp@-                             
   4917e:	4e93           	jsr %a3@                                    
      return (*pathloc->ops->evalpath_h)( &pathname[i-len],           
   49180:	226a 000c      	moveal %a2@(12),%a1                         
   49184:	2f0a           	movel %a2,%sp@-                             
   49186:	206e fffc      	moveal %fp@(-4),%a0                         
   4918a:	9488           	subl %a0,%d2                                
   4918c:	2f04           	movel %d4,%sp@-                             
   4918e:	4874 8800      	pea %a4@(00000000,%a0:l)                    
   49192:	4875 2800      	pea %a5@(00000000,%d2:l)                    
   49196:	2051           	moveal %a1@,%a0                             
   49198:	4e90           	jsr %a0@                                    
   4919a:	4fef 0028      	lea %sp@(40),%sp                            
   4919e:	2600           	movel %d0,%d3                               
   491a0:	602c           	bras 491ce <IMFS_eval_path+0x1ea>           
                                          flags, pathloc );           
    } else {                                                          
      result = IMFS_Set_handlers( pathloc );                          
    }                                                                 
  } else {                                                            
    result = IMFS_Set_handlers( pathloc );                            
   491a2:	2f0a           	movel %a2,%sp@-                             
   491a4:	4eb9 0004 8ebc 	jsr 48ebc <IMFS_Set_handlers>               
   491aa:	2600           	movel %d0,%d3                               
                                                                      
  /*                                                                  
   * Verify we have the correct permissions for this node.            
   */                                                                 
                                                                      
  if ( !IMFS_evaluate_permission( pathloc, flags ) )                  
   491ac:	2e84           	movel %d4,%sp@                              
   491ae:	2f0a           	movel %a2,%sp@-                             
   491b0:	4eb9 0004 8f2a 	jsr 48f2a <IMFS_evaluate_permission>        
   491b6:	508f           	addql #8,%sp                                
   491b8:	4a80           	tstl %d0                                    
   491ba:	6612           	bnes 491ce <IMFS_eval_path+0x1ea>           
    rtems_set_errno_and_return_minus_one( EACCES );                   
   491bc:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   491c2:	740d           	moveq #13,%d2                               
   491c4:	2040           	moveal %d0,%a0                              
   491c6:	2082           	movel %d2,%a0@                              
   491c8:	6000 fe84      	braw 4904e <IMFS_eval_path+0x6a>            
   491cc:	2600           	movel %d0,%d3                               <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
   491ce:	2003           	movel %d3,%d0                               
   491d0:	4cee 3cfc ff9c 	moveml %fp@(-100),%d2-%d7/%a2-%a5           
   491d6:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000492ee <IMFS_evaluate_for_make>: int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) {
   492ee:	4e56 ff9c      	linkw %fp,#-100                             
   492f2:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   492f6:	246e 000c      	moveal %fp@(12),%a2                         
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], pathlen, token, &len );          
   492fa:	2c0e           	movel %fp,%d6                               
   const char                         *path,       /* IN     */       
   rtems_filesystem_location_info_t   *pathloc,    /* IN/OUT */       
   const char                        **name        /* OUT    */       
)                                                                     
{                                                                     
  int                                 i = 0;                          
   492fc:	4282           	clrl %d2                                    
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], pathlen, token, &len );          
   492fe:	0686 ffff ffc7 	addil #-57,%d6                              
          if ( result == -1 )                                         
            return -1;                                                
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
                                                                      
          result = IMFS_evaluate_link( pathloc, 0 );                  
   49304:	2a3c 0004 9256 	movel #299606,%d5                           
int IMFS_evaluate_for_make(                                           
   const char                         *path,       /* IN     */       
   rtems_filesystem_location_info_t   *pathloc,    /* IN/OUT */       
   const char                        **name        /* OUT    */       
)                                                                     
{                                                                     
   4930a:	286e 0008      	moveal %fp@(8),%a4                          
                                                                      
  /*                                                                  
   * This was filled in by the caller and is valid in the             
   * mount table.                                                     
   */                                                                 
  node = pathloc->node_access;                                        
   4930e:	2652           	moveal %a2@,%a3                             
                                                                      
  /*                                                                  
   * Get the path length.                                             
   */                                                                 
  pathlen = strlen( path );                                           
   49310:	2f0c           	movel %a4,%sp@-                             
int IMFS_evaluate_for_make(                                           
   const char                         *path,       /* IN     */       
   rtems_filesystem_location_info_t   *pathloc,    /* IN/OUT */       
   const char                        **name        /* OUT    */       
)                                                                     
{                                                                     
   49312:	2a6e 0010      	moveal %fp@(16),%a5                         
  node = pathloc->node_access;                                        
                                                                      
  /*                                                                  
   * Get the path length.                                             
   */                                                                 
  pathlen = strlen( path );                                           
   49316:	4eb9 0004 df28 	jsr 4df28 <strlen>                          
   4931c:	588f           	addql #4,%sp                                
   4931e:	2800           	movel %d0,%d4                               
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], pathlen, token, &len );          
   49320:	486e fffc      	pea %fp@(-4)                                
   49324:	2f06           	movel %d6,%sp@-                             
   49326:	2f04           	movel %d4,%sp@-                             
   49328:	4874 2800      	pea %a4@(00000000,%d2:l)                    
   4932c:	4eb9 0004 9608 	jsr 49608 <IMFS_get_token>                  
    pathlen -= len;                                                   
   49332:	2e2e fffc      	movel %fp@(-4),%d7                          
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], pathlen, token, &len );          
   49336:	2600           	movel %d0,%d3                               
    pathlen -= len;                                                   
   49338:	9887           	subl %d7,%d4                                
    i +=  len;                                                        
                                                                      
    if ( !pathloc->node_access )                                      
   4933a:	4fef 0010      	lea %sp@(16),%sp                            
   4933e:	4a92           	tstl %a2@                                   
   49340:	6700 0154      	beqw 49496 <IMFS_evaluate_for_make+0x1a8>   
                                                                      
    /*                                                                
     * I cannot move out of this directory without execute permission.
     */                                                               
                                                                      
    if ( type != IMFS_NO_MORE_PATH )                                  
   49344:	4a80           	tstl %d0                                    
   49346:	671c           	beqs 49364 <IMFS_evaluate_for_make+0x76>    
      if ( node->type == IMFS_DIRECTORY )                             
   49348:	7001           	moveq #1,%d0                                
   4934a:	b0ab 0048      	cmpl %a3@(72),%d0                           
   4934e:	6614           	bnes 49364 <IMFS_evaluate_for_make+0x76>    
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
   49350:	4878 0001      	pea 1 <ADD>                                 
   49354:	2f0a           	movel %a2,%sp@-                             
   49356:	4eb9 0004 8f2a 	jsr 48f2a <IMFS_evaluate_permission>        
   4935c:	508f           	addql #8,%sp                                
   4935e:	4a80           	tstl %d0                                    
   49360:	6700 017c      	beqw 494de <IMFS_evaluate_for_make+0x1f0>   
           rtems_set_errno_and_return_minus_one( EACCES );            
                                                                      
    node = pathloc->node_access;                                      
   49364:	2652           	moveal %a2@,%a3                             
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], pathlen, token, &len );          
    pathlen -= len;                                                   
    i +=  len;                                                        
   49366:	d487           	addl %d7,%d2                                
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
           rtems_set_errno_and_return_minus_one( EACCES );            
                                                                      
    node = pathloc->node_access;                                      
                                                                      
    switch( type ) {                                                  
   49368:	7002           	moveq #2,%d0                                
   4936a:	b083           	cmpl %d3,%d0                                
   4936c:	671a           	beqs 49388 <IMFS_evaluate_for_make+0x9a>    
   4936e:	6508           	bcss 49378 <IMFS_evaluate_for_make+0x8a>    
   49370:	4a83           	tstl %d3                                    
   49372:	6700 00e4      	beqw 49458 <IMFS_evaluate_for_make+0x16a>   
   49376:	60a8           	bras 49320 <IMFS_evaluate_for_make+0x32>    
   49378:	7203           	moveq #3,%d1                                
   4937a:	b283           	cmpl %d3,%d1                                
   4937c:	6740           	beqs 493be <IMFS_evaluate_for_make+0xd0>    
   4937e:	7004           	moveq #4,%d0                                
   49380:	b083           	cmpl %d3,%d0                                
   49382:	669c           	bnes 49320 <IMFS_evaluate_for_make+0x32>    <== NEVER TAKEN
   49384:	6000 00e2      	braw 49468 <IMFS_evaluate_for_make+0x17a>   
      case IMFS_UP_DIR:                                               
       /*                                                             
        *  Am I at the root of all filesystems? (chroot'ed?)          
	*/                                                                   
                                                                      
       if ( pathloc->node_access == rtems_filesystem_root.node_access )
   49388:	2079 0005 d244 	moveal 5d244 <rtems_current_user_env>,%a0   
   4938e:	b7e8 0018      	cmpal %a0@(24),%a3                          
   49392:	678c           	beqs 49320 <IMFS_evaluate_for_make+0x32>    <== NEVER TAKEN
                                                                      
	/*                                                                   
	 * Am I at the root of this mounted filesystem?                      
	 */                                                                  
                                                                      
        if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){
   49394:	206a 0010      	moveal %a2@(16),%a0                         
   49398:	b7e8 001c      	cmpal %a0@(28),%a3                          
   4939c:	6612           	bnes 493b0 <IMFS_evaluate_for_make+0xc2>    
                                                                      
          if ( pathloc->node_access == rtems_filesystem_root.node_access ) {
            break;                                                    
                                                                      
	  } else {                                                           
            newloc = pathloc->mt_entry->mt_point_node;                
   4939e:	4878 0014      	pea 14 <OPER2>                              
   493a2:	260e           	movel %fp,%d3                               
   493a4:	4868 0008      	pea %a0@(8)                                 
   493a8:	0683 ffff ffe8 	addil #-24,%d3                              
   493ae:	605c           	bras 4940c <IMFS_evaluate_for_make+0x11e>   
            *pathloc = newloc;                                        
            return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name );
	  }                                                                  
	} else {                                                             
                                                                      
          if ( !node->Parent )                                        
   493b0:	266b 0008      	moveal %a3@(8),%a3                          
   493b4:	4a8b           	tstl %a3                                    
   493b6:	6600 009a      	bnew 49452 <IMFS_evaluate_for_make+0x164>   
   493ba:	6000 00da      	braw 49496 <IMFS_evaluate_for_make+0x1a8>   
        pathloc->node_access = node;                                  
        break;                                                        
                                                                      
      case IMFS_NAME:                                                 
                                                                      
	if ( node->type == IMFS_HARD_LINK ) {                                
   493be:	202b 0048      	movel %a3@(72),%d0                          
   493c2:	7203           	moveq #3,%d1                                
   493c4:	b280           	cmpl %d0,%d1                                
   493c6:	6706           	beqs 493ce <IMFS_evaluate_for_make+0xe0>    
                                                                      
          result = IMFS_evaluate_link( pathloc, 0 );                  
          if ( result == -1 )                                         
            return -1;                                                
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
   493c8:	7204           	moveq #4,%d1                                
   493ca:	b280           	cmpl %d0,%d1                                
   493cc:	6614           	bnes 493e2 <IMFS_evaluate_for_make+0xf4>    
                                                                      
          result = IMFS_evaluate_link( pathloc, 0 );                  
   493ce:	42a7           	clrl %sp@-                                  
   493d0:	2045           	moveal %d5,%a0                              
   493d2:	2f0a           	movel %a2,%sp@-                             
   493d4:	4e90           	jsr %a0@                                    
                                                                      
          if ( result == -1 )                                         
   493d6:	508f           	addql #8,%sp                                
          if ( result == -1 )                                         
            return -1;                                                
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
                                                                      
          result = IMFS_evaluate_link( pathloc, 0 );                  
   493d8:	2600           	movel %d0,%d3                               
                                                                      
          if ( result == -1 )                                         
   493da:	70ff           	moveq #-1,%d0                               
   493dc:	b083           	cmpl %d3,%d0                                
   493de:	6700 010c      	beqw 494ec <IMFS_evaluate_for_make+0x1fe>   
            return -1;                                                
	}                                                                    
                                                                      
        node = pathloc->node_access;                                  
   493e2:	2052           	moveal %a2@,%a0                             
        if ( !node )                                                  
   493e4:	4a88           	tstl %a0                                    
   493e6:	6700 00d6      	beqw 494be <IMFS_evaluate_for_make+0x1d0>   
                                                                      
        /*                                                            
         * Only a directory can be decended into.                     
	 */                                                                  
                                                                      
        if ( node->type != IMFS_DIRECTORY )                           
   493ea:	7001           	moveq #1,%d0                                
   493ec:	b0a8 0048      	cmpl %a0@(72),%d0                           
   493f0:	6600 00cc      	bnew 494be <IMFS_evaluate_for_make+0x1d0>   
	/*                                                                   
	 * If we are at a node that is a mount point. Set loc to the         
	 * new fs root node and let them finish evaluating the path.         
	 */                                                                  
                                                                      
        if ( node->info.directory.mt_fs != NULL ) {                   
   493f4:	2268 0058      	moveal %a0@(88),%a1                         
   493f8:	4a89           	tstl %a1                                    
   493fa:	6744           	beqs 49440 <IMFS_evaluate_for_make+0x152>   
          newloc  = node->info.directory.mt_fs->mt_fs_root;           
   493fc:	4878 0014      	pea 14 <OPER2>                              
   49400:	260e           	movel %fp,%d3                               
   49402:	0683 ffff ffe8 	addil #-24,%d3                              
   49408:	4869 001c      	pea %a1@(28)                                
   4940c:	2f03           	movel %d3,%sp@-                             
   4940e:	47f9 0004 d37c 	lea 4d37c <memcpy>,%a3                      
   49414:	4e93           	jsr %a3@                                    
          *pathloc = newloc;                                          
   49416:	4878 0014      	pea 14 <OPER2>                              
   4941a:	2f03           	movel %d3,%sp@-                             
   4941c:	2f0a           	movel %a2,%sp@-                             
   4941e:	4e93           	jsr %a3@                                    
          return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name );
   49420:	206a 000c      	moveal %a2@(12),%a0                         
   49424:	94ae fffc      	subl %fp@(-4),%d2                           
   49428:	2f0d           	movel %a5,%sp@-                             
   4942a:	2f0a           	movel %a2,%sp@-                             
   4942c:	4874 2800      	pea %a4@(00000000,%d2:l)                    
   49430:	2068 0004      	moveal %a0@(4),%a0                          
   49434:	4e90           	jsr %a0@                                    
   49436:	4fef 0024      	lea %sp@(36),%sp                            
   4943a:	2600           	movel %d0,%d3                               
   4943c:	6000 00ae      	braw 494ec <IMFS_evaluate_for_make+0x1fe>   
                                                                      
	/*                                                                   
	 * Otherwise find the token name in the present location.            
	 */                                                                  
                                                                      
        node = IMFS_find_match_in_dir( node, token );                 
   49440:	2f06           	movel %d6,%sp@-                             
   49442:	2f08           	movel %a0,%sp@-                             
   49444:	4eb9 0004 959c 	jsr 4959c <IMFS_find_match_in_dir>          
	/*                                                                   
	 * If there is no node we have found the name of the node we         
         * wish to create.                                            
	 */                                                                  
                                                                      
        if ( ! node )                                                 
   4944a:	508f           	addql #8,%sp                                
                                                                      
	/*                                                                   
	 * Otherwise find the token name in the present location.            
	 */                                                                  
                                                                      
        node = IMFS_find_match_in_dir( node, token );                 
   4944c:	2640           	moveal %d0,%a3                              
	/*                                                                   
	 * If there is no node we have found the name of the node we         
         * wish to create.                                            
	 */                                                                  
                                                                      
        if ( ! node )                                                 
   4944e:	4a80           	tstl %d0                                    
   49450:	6724           	beqs 49476 <IMFS_evaluate_for_make+0x188>   
          done = true;                                                
        else                                                          
          pathloc->node_access = node;                                
   49452:	248b           	movel %a3,%a2@                              
   49454:	6000 feca      	braw 49320 <IMFS_evaluate_for_make+0x32>    
                                                                      
        break;                                                        
                                                                      
      case IMFS_NO_MORE_PATH:                                         
        rtems_set_errno_and_return_minus_one( EEXIST );               
   49458:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4945e:	7c11           	moveq #17,%d6                               
   49460:	2040           	moveal %d0,%a0                              
   49462:	2086           	movel %d6,%a0@                              
   49464:	6000 0084      	braw 494ea <IMFS_evaluate_for_make+0x1fc>   
        break;                                                        
                                                                      
      case IMFS_INVALID_TOKEN:                                        
        rtems_set_errno_and_return_minus_one( ENAMETOOLONG );         
   49468:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4946e:	7a5b           	moveq #91,%d5                               
   49470:	2040           	moveal %d0,%a0                              
   49472:	2085           	movel %d5,%a0@                              
   49474:	6074           	bras 494ea <IMFS_evaluate_for_make+0x1fc>   
      case IMFS_CURRENT_DIR:                                          
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  *name = &path[ i - len ];                                           
   49476:	2002           	movel %d2,%d0                               
   49478:	90ae fffc      	subl %fp@(-4),%d0                           
   * We have evaluated the path as far as we can.                     
   * Verify there is not any invalid stuff at the end of the name.    
   */                                                                 
                                                                      
  for( ; path[i] != '\0'; i++) {                                      
    if ( !IMFS_is_separator( path[ i ] ) )                            
   4947c:	47f9 0004 3728 	lea 43728 <rtems_filesystem_is_separator>,%a3
      case IMFS_CURRENT_DIR:                                          
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  *name = &path[ i - len ];                                           
   49482:	d08c           	addl %a4,%d0                                
 *  pathloc is returned with a pointer to the parent of the new node. 
 *  name is returned with a pointer to the first character in the     
 *  new node name.  The parent node is verified to be a directory.    
 */                                                                   
                                                                      
int IMFS_evaluate_for_make(                                           
   49484:	d9c2           	addal %d2,%a4                               
      case IMFS_CURRENT_DIR:                                          
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  *name = &path[ i - len ];                                           
   49486:	2a80           	movel %d0,%a5@                              
  /*                                                                  
   * We have evaluated the path as far as we can.                     
   * Verify there is not any invalid stuff at the end of the name.    
   */                                                                 
                                                                      
  for( ; path[i] != '\0'; i++) {                                      
   49488:	601a           	bras 494a4 <IMFS_evaluate_for_make+0x1b6>   
    if ( !IMFS_is_separator( path[ i ] ) )                            
   4948a:	49c0           	extbl %d0                                   
   4948c:	2f00           	movel %d0,%sp@-                             
   4948e:	4e93           	jsr %a3@                                    
   49490:	588f           	addql #4,%sp                                
   49492:	4a80           	tstl %d0                                    
   49494:	660e           	bnes 494a4 <IMFS_evaluate_for_make+0x1b6>   
      rtems_set_errno_and_return_minus_one( ENOENT );                 
   49496:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4949c:	7802           	moveq #2,%d4                                
   4949e:	2040           	moveal %d0,%a0                              
   494a0:	2084           	movel %d4,%a0@                              
   494a2:	6046           	bras 494ea <IMFS_evaluate_for_make+0x1fc>   
  /*                                                                  
   * We have evaluated the path as far as we can.                     
   * Verify there is not any invalid stuff at the end of the name.    
   */                                                                 
                                                                      
  for( ; path[i] != '\0'; i++) {                                      
   494a4:	101c           	moveb %a4@+,%d0                             
   494a6:	66e2           	bnes 4948a <IMFS_evaluate_for_make+0x19c>   
                                                                      
  /*                                                                  
   * Verify we can execute and write to this directory.               
   */                                                                 
                                                                      
  result = IMFS_Set_handlers( pathloc );                              
   494a8:	2f0a           	movel %a2,%sp@-                             
   494aa:	4eb9 0004 8ebc 	jsr 48ebc <IMFS_Set_handlers>               
                                                                      
  /*                                                                  
   * The returned node must be a directory                            
   */                                                                 
  node = pathloc->node_access;                                        
  if ( node->type != IMFS_DIRECTORY )                                 
   494b0:	2052           	moveal %a2@,%a0                             
                                                                      
  /*                                                                  
   * Verify we can execute and write to this directory.               
   */                                                                 
                                                                      
  result = IMFS_Set_handlers( pathloc );                              
   494b2:	2600           	movel %d0,%d3                               
                                                                      
  /*                                                                  
   * The returned node must be a directory                            
   */                                                                 
  node = pathloc->node_access;                                        
  if ( node->type != IMFS_DIRECTORY )                                 
   494b4:	588f           	addql #4,%sp                                
   494b6:	7001           	moveq #1,%d0                                
   494b8:	b0a8 0048      	cmpl %a0@(72),%d0                           
   494bc:	670e           	beqs 494cc <IMFS_evaluate_for_make+0x1de>   <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( ENOTDIR );                  
   494be:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   494c4:	7614           	moveq #20,%d3                               
   494c6:	2040           	moveal %d0,%a0                              
   494c8:	2083           	movel %d3,%a0@                              
   494ca:	601e           	bras 494ea <IMFS_evaluate_for_make+0x1fc>   
                                                                      
  /*                                                                  
   * We must have Write and execute permission on the returned node.  
   */                                                                 
                                                                      
  if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) )   
   494cc:	4878 0003      	pea 3 <DIVIDE>                              
   494d0:	2f0a           	movel %a2,%sp@-                             
   494d2:	4eb9 0004 8f2a 	jsr 48f2a <IMFS_evaluate_permission>        
   494d8:	508f           	addql #8,%sp                                
   494da:	4a80           	tstl %d0                                    
   494dc:	660e           	bnes 494ec <IMFS_evaluate_for_make+0x1fe>   
    rtems_set_errno_and_return_minus_one( EACCES );                   
   494de:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   494e4:	740d           	moveq #13,%d2                               
   494e6:	2040           	moveal %d0,%a0                              
   494e8:	2082           	movel %d2,%a0@                              
   494ea:	76ff           	moveq #-1,%d3                               
                                                                      
  return result;                                                      
}                                                                     
   494ec:	2003           	movel %d3,%d0                               
   494ee:	4cee 3cfc ff9c 	moveml %fp@(-100),%d2-%d7/%a2-%a5           
   494f4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048f2a <IMFS_evaluate_permission>: uid_t st_uid; gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) )
   48f2a:	70f8           	moveq #-8,%d0                               
 */                                                                   
int IMFS_evaluate_permission(                                         
  rtems_filesystem_location_info_t  *node,                            
  int                                flags                            
)                                                                     
{                                                                     
   48f2c:	4e56 fff4      	linkw %fp,#-12                              
   48f30:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   48f34:	242e 000c      	movel %fp@(12),%d2                          
  uid_t         st_uid;                                               
  gid_t         st_gid;                                               
  IMFS_jnode_t *jnode;                                                
  int           flags_to_test;                                        
                                                                      
  if ( !rtems_libio_is_valid_perms( flags ) )                         
   48f38:	c082           	andl %d2,%d0                                
   48f3a:	6710           	beqs 48f4c <IMFS_evaluate_permission+0x22>  <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( EPERM );                    
   48f3c:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   48f42:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   48f44:	7001           	moveq #1,%d0                                <== NOT EXECUTED
   48f46:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   48f48:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
   48f4a:	6048           	bras 48f94 <IMFS_evaluate_permission+0x6a>  <== NOT EXECUTED
                                                                      
  jnode = node->node_access;                                          
   48f4c:	206e 0008      	moveal %fp@(8),%a0                          
   48f50:	2450           	moveal %a0@,%a2                             
                                                                      
#if defined(RTEMS_POSIX_API)                                          
  st_uid = geteuid();                                                 
   48f52:	4eb9 0004 9aa0 	jsr 49aa0 <geteuid>                         
   48f58:	3600           	movew %d0,%d3                               
  st_gid = getegid();                                                 
   48f5a:	4eb9 0004 9a8c 	jsr 49a8c <getegid>                         
   * Check if I am owner or a group member or someone else.           
   */                                                                 
                                                                      
  flags_to_test = flags;                                              
                                                                      
  if ( st_uid == jnode->st_uid )                                      
   48f60:	4281           	clrl %d1                                    
   48f62:	0283 0000 ffff 	andil #65535,%d3                            
   48f68:	322a 0038      	movew %a2@(56),%d1                          
   48f6c:	b283           	cmpl %d3,%d1                                
   48f6e:	6604           	bnes 48f74 <IMFS_evaluate_permission+0x4a>  
    flags_to_test <<= 6;                                              
   48f70:	ed8a           	lsll #6,%d2                                 
   48f72:	6012           	bras 48f86 <IMFS_evaluate_permission+0x5c>  
  else if ( st_gid == jnode->st_gid )                                 
   48f74:	4281           	clrl %d1                                    
   48f76:	0280 0000 ffff 	andil #65535,%d0                            
   48f7c:	322a 003a      	movew %a2@(58),%d1                          
   48f80:	b280           	cmpl %d0,%d1                                
   48f82:	6602           	bnes 48f86 <IMFS_evaluate_permission+0x5c>  <== NEVER TAKEN
    flags_to_test <<= 3;                                              
   48f84:	e78a           	lsll #3,%d2                                 
                                                                      
  /*                                                                  
   * If all of the flags are set we have permission                   
   * to do this.                                                      
   */                                                                 
  if ( ( flags_to_test & jnode->st_mode) == flags_to_test )           
   48f86:	2002           	movel %d2,%d0                               
   48f88:	c0aa 002e      	andl %a2@(46),%d0                           
  gid_t         st_gid;                                               
  IMFS_jnode_t *jnode;                                                
  int           flags_to_test;                                        
                                                                      
  if ( !rtems_libio_is_valid_perms( flags ) )                         
    rtems_set_errno_and_return_minus_one( EPERM );                    
   48f8c:	b480           	cmpl %d0,%d2                                
   48f8e:	57c0           	seq %d0                                     
   48f90:	49c0           	extbl %d0                                   
   48f92:	4480           	negl %d0                                    
   */                                                                 
  if ( ( flags_to_test & jnode->st_mode) == flags_to_test )           
    return 1;                                                         
                                                                      
  return 0;                                                           
}                                                                     
   48f94:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   48f9a:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004c240 <IMFS_fchmod>: int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) {
   4c240:	4e56 fff8      	linkw %fp,#-8                               
  IMFS_jnode_t  *jnode;                                               
#if defined(RTEMS_POSIX_API)                                          
  uid_t          st_uid;                                              
#endif                                                                
                                                                      
  jnode = loc->node_access;                                           
   4c244:	206e 0008      	moveal %fp@(8),%a0                          
                                                                      
int IMFS_fchmod(                                                      
  rtems_filesystem_location_info_t *loc,                              
  mode_t                            mode                              
)                                                                     
{                                                                     
   4c248:	2f0a           	movel %a2,%sp@-                             
  IMFS_jnode_t  *jnode;                                               
#if defined(RTEMS_POSIX_API)                                          
  uid_t          st_uid;                                              
#endif                                                                
                                                                      
  jnode = loc->node_access;                                           
   4c24a:	2450           	moveal %a0@,%a2                             
                                                                      
int IMFS_fchmod(                                                      
  rtems_filesystem_location_info_t *loc,                              
  mode_t                            mode                              
)                                                                     
{                                                                     
   4c24c:	2f02           	movel %d2,%sp@-                             
   *  Verify I am the owner of the node or the super user.            
   */                                                                 
#if defined(RTEMS_POSIX_API)                                          
  st_uid = geteuid();                                                 
                                                                      
  if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) )               
   4c24e:	4282           	clrl %d2                                    
                                                                      
  /*                                                                  
   *  Verify I am the owner of the node or the super user.            
   */                                                                 
#if defined(RTEMS_POSIX_API)                                          
  st_uid = geteuid();                                                 
   4c250:	4eb9 0004 9aa0 	jsr 49aa0 <geteuid>                         
                                                                      
  if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) )               
   4c256:	4281           	clrl %d1                                    
   4c258:	3400           	movew %d0,%d2                               
   4c25a:	322a 0038      	movew %a2@(56),%d1                          
   4c25e:	b282           	cmpl %d2,%d1                                
   4c260:	6714           	beqs 4c276 <IMFS_fchmod+0x36>               
   4c262:	4a40           	tstw %d0                                    
   4c264:	6710           	beqs 4c276 <IMFS_fchmod+0x36>               <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EPERM );                    
   4c266:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4c26c:	2040           	moveal %d0,%a0                              
   4c26e:	7001           	moveq #1,%d0                                
   4c270:	2080           	movel %d0,%a0@                              
   4c272:	70ff           	moveq #-1,%d0                               
   4c274:	6030           	bras 4c2a6 <IMFS_fchmod+0x66>               
                                                                      
  /*                                                                  
   * Change only the RWX permissions on the jnode to mode.            
   */                                                                 
                                                                      
  jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX);
   4c276:	202a 002e      	movel %a2@(46),%d0                          
  jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX);
   4c27a:	222e 000c      	movel %fp@(12),%d1                          
                                                                      
  /*                                                                  
   * Change only the RWX permissions on the jnode to mode.            
   */                                                                 
                                                                      
  jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX);
   4c27e:	0280 ffff f000 	andil #-4096,%d0                            
  jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX);
   4c284:	0281 0000 0fff 	andil #4095,%d1                             
   4c28a:	8280           	orl %d0,%d1                                 
   4c28c:	2541 002e      	movel %d1,%a2@(46)                          
                                                                      
  IMFS_update_ctime( jnode );                                         
   4c290:	42a7           	clrl %sp@-                                  
   4c292:	486e fff8      	pea %fp@(-8)                                
   4c296:	4eb9 0004 2a74 	jsr 42a74 <gettimeofday>                    
   4c29c:	256e fff8 0044 	movel %fp@(-8),%a2@(68)                     
                                                                      
  return 0;                                                           
   4c2a2:	508f           	addql #8,%sp                                
   4c2a4:	4280           	clrl %d0                                    
}                                                                     
   4c2a6:	242e fff0      	movel %fp@(-16),%d2                         
   4c2aa:	246e fff4      	moveal %fp@(-12),%a2                        
   4c2ae:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000430cc <IMFS_fifo_lseek>: rtems_off64_t IMFS_fifo_lseek( rtems_libio_t *iop, rtems_off64_t offset, int whence ) {
   430cc:	4e56 0000      	linkw %fp,#0                                
   430d0:	206e 0008      	moveal %fp@(8),%a0                          
   430d4:	2f03           	movel %d3,%sp@-                             
   430d6:	2f02           	movel %d2,%sp@-                             
  off_t err = pipe_lseek(LIBIO2PIPE(iop), offset, whence, iop);       
   430d8:	2f08           	movel %a0,%sp@-                             
   430da:	2f2e 0014      	movel %fp@(20),%sp@-                        
   430de:	2f2e 0010      	movel %fp@(16),%sp@-                        
   430e2:	2f2e 000c      	movel %fp@(12),%sp@-                        
   430e6:	2068 0018      	moveal %a0@(24),%a0                         
   430ea:	2f28 004c      	movel %a0@(76),%sp@-                        
   430ee:	4eb9 0004 bcaa 	jsr 4bcaa <pipe_lseek>                      
  IMFS_FIFO_RETURN(err);                                              
   430f4:	4fef 0014      	lea %sp@(20),%sp                            
  rtems_libio_t *iop,                                                 
  rtems_off64_t  offset,                                              
  int            whence                                               
)                                                                     
{                                                                     
  off_t err = pipe_lseek(LIBIO2PIPE(iop), offset, whence, iop);       
   430f8:	2600           	movel %d0,%d3                               
   430fa:	2400           	movel %d0,%d2                               
   430fc:	5bc1           	smi %d1                                     
   430fe:	49c1           	extbl %d1                                   
  IMFS_FIFO_RETURN(err);                                              
   43100:	4a81           	tstl %d1                                    
   43102:	6a10           	bpls 43114 <IMFS_fifo_lseek+0x48>           <== NEVER TAKEN
   43104:	4eb9 0004 ea4c 	jsr 4ea4c <__errno>                         
   4310a:	4483           	negl %d3                                    
   4310c:	2040           	moveal %d0,%a0                              
   4310e:	72ff           	moveq #-1,%d1                               
   43110:	74ff           	moveq #-1,%d2                               
   43112:	2083           	movel %d3,%a0@                              
}                                                                     
   43114:	2001           	movel %d1,%d0                               
   43116:	2202           	movel %d2,%d1                               
   43118:	242e fff8      	movel %fp@(-8),%d2                          
   4311c:	262e fffc      	movel %fp@(-4),%d3                          
   43120:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043190 <IMFS_fifo_write>: ssize_t IMFS_fifo_write( rtems_libio_t *iop, const void *buffer, size_t count ) {
   43190:	4e56 fff8      	linkw %fp,#-8                               
   43194:	206e 0008      	moveal %fp@(8),%a0                          
   43198:	2f0a           	movel %a2,%sp@-                             
  IMFS_jnode_t *jnode = iop->pathinfo.node_access;                    
   4319a:	2468 0018      	moveal %a0@(24),%a2                         
ssize_t IMFS_fifo_write(                                              
  rtems_libio_t *iop,                                                 
  const void    *buffer,                                              
  size_t         count                                                
)                                                                     
{                                                                     
   4319e:	2f02           	movel %d2,%sp@-                             
  IMFS_jnode_t *jnode = iop->pathinfo.node_access;                    
                                                                      
  int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop);        
   431a0:	2f08           	movel %a0,%sp@-                             
   431a2:	2f2e 0010      	movel %fp@(16),%sp@-                        
   431a6:	2f2e 000c      	movel %fp@(12),%sp@-                        
   431aa:	2f2a 004c      	movel %a2@(76),%sp@-                        
   431ae:	4eb9 0004 bab8 	jsr 4bab8 <pipe_write>                      
  if (err > 0) {                                                      
   431b4:	4fef 0010      	lea %sp@(16),%sp                            
  size_t         count                                                
)                                                                     
{                                                                     
  IMFS_jnode_t *jnode = iop->pathinfo.node_access;                    
                                                                      
  int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop);        
   431b8:	2400           	movel %d0,%d2                               
  if (err > 0) {                                                      
   431ba:	6f1e           	bles 431da <IMFS_fifo_write+0x4a>           
    IMFS_mtime_ctime_update(jnode);                                   
   431bc:	42a7           	clrl %sp@-                                  
   431be:	486e fff8      	pea %fp@(-8)                                
   431c2:	4eb9 0004 42cc 	jsr 442cc <gettimeofday>                    
   431c8:	202e fff8      	movel %fp@(-8),%d0                          
   431cc:	508f           	addql #8,%sp                                
   431ce:	2540 0040      	movel %d0,%a2@(64)                          
   431d2:	2540 0044      	movel %d0,%a2@(68)                          
   431d6:	2002           	movel %d2,%d0                               
   431d8:	6016           	bras 431f0 <IMFS_fifo_write+0x60>           
  }                                                                   
                                                                      
  IMFS_FIFO_RETURN(err);                                              
   431da:	4a80           	tstl %d0                                    
   431dc:	6710           	beqs 431ee <IMFS_fifo_write+0x5e>           <== NEVER TAKEN
   431de:	4eb9 0004 ea4c 	jsr 4ea4c <__errno>                         
   431e4:	4482           	negl %d2                                    
   431e6:	2040           	moveal %d0,%a0                              
   431e8:	70ff           	moveq #-1,%d0                               
   431ea:	2082           	movel %d2,%a0@                              
   431ec:	6002           	bras 431f0 <IMFS_fifo_write+0x60>           
   431ee:	4280           	clrl %d0                                    <== NOT EXECUTED
}                                                                     
   431f0:	242e fff0      	movel %fp@(-16),%d2                         
   431f4:	246e fff4      	moveal %fp@(-12),%a2                        
   431f8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004959c <IMFS_find_match_in_dir>: IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) {
   4959c:	4e56 fff0      	linkw %fp,#-16                              
   495a0:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
                                                                      
  /*                                                                  
   *  Check for "." and ".."                                          
   */                                                                 
                                                                      
  if ( !strcmp( name, dotname ) )                                     
   495a4:	4879 0005 c370 	pea 5c370 <dotname>                         
   495aa:	49f9 0004 d9d0 	lea 4d9d0 <strcmp>,%a4                      
                                                                      
IMFS_jnode_t *IMFS_find_match_in_dir(                                 
  IMFS_jnode_t *directory,                                            
  char         *name                                                  
)                                                                     
{                                                                     
   495b0:	242e 000c      	movel %fp@(12),%d2                          
                                                                      
  /*                                                                  
   *  Check for "." and ".."                                          
   */                                                                 
                                                                      
  if ( !strcmp( name, dotname ) )                                     
   495b4:	2f02           	movel %d2,%sp@-                             
                                                                      
IMFS_jnode_t *IMFS_find_match_in_dir(                                 
  IMFS_jnode_t *directory,                                            
  char         *name                                                  
)                                                                     
{                                                                     
   495b6:	246e 0008      	moveal %fp@(8),%a2                          
                                                                      
  /*                                                                  
   *  Check for "." and ".."                                          
   */                                                                 
                                                                      
  if ( !strcmp( name, dotname ) )                                     
   495ba:	4e94           	jsr %a4@                                    
   495bc:	508f           	addql #8,%sp                                
   495be:	4a80           	tstl %d0                                    
   495c0:	673a           	beqs 495fc <IMFS_find_match_in_dir+0x60>    <== NEVER TAKEN
    return directory;                                                 
                                                                      
  if ( !strcmp( name, dotdotname ) )                                  
   495c2:	4879 0005 c372 	pea 5c372 <dotdotname>                      
   495c8:	2f02           	movel %d2,%sp@-                             
   495ca:	4e94           	jsr %a4@                                    
   495cc:	508f           	addql #8,%sp                                
   495ce:	4a80           	tstl %d0                                    
   495d0:	6606           	bnes 495d8 <IMFS_find_match_in_dir+0x3c>    <== ALWAYS TAKEN
    return directory->Parent;                                         
   495d2:	246a 0008      	moveal %a2@(8),%a2                          <== NOT EXECUTED
   495d6:	6024           	bras 495fc <IMFS_find_match_in_dir+0x60>    <== NOT EXECUTED
    if ( !strcmp( name, the_jnode->name ) )                           
      return the_jnode;                                               
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
   495d8:	266a 004c      	moveal %a2@(76),%a3                         
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
   495dc:	45ea 0050      	lea %a2@(80),%a2                            
  if ( !strcmp( name, dotdotname ) )                                  
    return directory->Parent;                                         
                                                                      
  the_chain = &directory->info.directory.Entries;                     
                                                                      
  for ( the_node = rtems_chain_first( the_chain );                    
   495e0:	6010           	bras 495f2 <IMFS_find_match_in_dir+0x56>    
        !rtems_chain_is_tail( the_chain, the_node );                  
        the_node = the_node->next ) {                                 
                                                                      
    the_jnode = (IMFS_jnode_t *) the_node;                            
                                                                      
    if ( !strcmp( name, the_jnode->name ) )                           
   495e2:	486b 000c      	pea %a3@(12)                                
   495e6:	2f02           	movel %d2,%sp@-                             
   495e8:	4e94           	jsr %a4@                                    
   495ea:	508f           	addql #8,%sp                                
   495ec:	4a80           	tstl %d0                                    
   495ee:	670a           	beqs 495fa <IMFS_find_match_in_dir+0x5e>    
                                                                      
  the_chain = &directory->info.directory.Entries;                     
                                                                      
  for ( the_node = rtems_chain_first( the_chain );                    
        !rtems_chain_is_tail( the_chain, the_node );                  
        the_node = the_node->next ) {                                 
   495f0:	2653           	moveal %a3@,%a3                             
  if ( !strcmp( name, dotdotname ) )                                  
    return directory->Parent;                                         
                                                                      
  the_chain = &directory->info.directory.Entries;                     
                                                                      
  for ( the_node = rtems_chain_first( the_chain );                    
   495f2:	b5cb           	cmpal %a3,%a2                               
   495f4:	66ec           	bnes 495e2 <IMFS_find_match_in_dir+0x46>    
                                                                      
    if ( !strcmp( name, the_jnode->name ) )                           
      return the_jnode;                                               
  }                                                                   
                                                                      
  return 0;                                                           
   495f6:	95ca           	subal %a2,%a2                               
   495f8:	6002           	bras 495fc <IMFS_find_match_in_dir+0x60>    
                                                                      
  for ( the_node = rtems_chain_first( the_chain );                    
        !rtems_chain_is_tail( the_chain, the_node );                  
        the_node = the_node->next ) {                                 
                                                                      
    the_jnode = (IMFS_jnode_t *) the_node;                            
   495fa:	244b           	moveal %a3,%a2                              
    if ( !strcmp( name, the_jnode->name ) )                           
      return the_jnode;                                               
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
   495fc:	200a           	movel %a2,%d0                               
   495fe:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
   49604:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000494f8 <IMFS_fsunmount>: ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) {
   494f8:	4e56 ffd8      	linkw %fp,#-40                              
   494fc:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   49500:	266e 0008      	moveal %fp@(8),%a3                          
    * Traverse tree that starts at the mt_fs_root and deallocate memory
    * associated memory space                                         
    */                                                                
                                                                      
   jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access;     
   loc = temp_mt_entry->mt_fs_root;                                   
   49504:	240e           	movel %fp,%d2                               
   49506:	0682 ffff ffec 	addil #-20,%d2                              
   temp_mt_entry->mt_fs_root.node_access = NULL;                      
                                                                      
   do {                                                               
     next = jnode->Parent;                                            
     loc.node_access = (void *)jnode;                                 
     IMFS_Set_handlers( &loc );                                       
   4950c:	49f9 0004 8ebc 	lea 48ebc <IMFS_Set_handlers>,%a4           
   /*                                                                 
    * Traverse tree that starts at the mt_fs_root and deallocate memory
    * associated memory space                                         
    */                                                                
                                                                      
   jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access;     
   49512:	246b 001c      	moveal %a3@(28),%a2                         
   loc = temp_mt_entry->mt_fs_root;                                   
   49516:	4878 0014      	pea 14 <OPER2>                              
   4951a:	486b 001c      	pea %a3@(28)                                
   4951e:	2f02           	movel %d2,%sp@-                             
   49520:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
                                                                      
   /*                                                                 
    *  Set this to null to indicate that it is being unmounted.       
    */                                                                
                                                                      
   temp_mt_entry->mt_fs_root.node_access = NULL;                      
   49526:	4fef 000c      	lea %sp@(12),%sp                            
   4952a:	42ab 001c      	clrl %a3@(28)                               
     next = jnode->Parent;                                            
     loc.node_access = (void *)jnode;                                 
     IMFS_Set_handlers( &loc );                                       
                                                                      
     if ( jnode->type != IMFS_DIRECTORY ) {                           
        result = IMFS_unlink( NULL, &loc );                           
   4952e:	47f9 0004 2370 	lea 42370 <IMFS_unlink>,%a3                 
    */                                                                
                                                                      
   temp_mt_entry->mt_fs_root.node_access = NULL;                      
                                                                      
   do {                                                               
     next = jnode->Parent;                                            
   49534:	262a 0008      	movel %a2@(8),%d3                           
     loc.node_access = (void *)jnode;                                 
   49538:	2d4a ffec      	movel %a2,%fp@(-20)                         
     IMFS_Set_handlers( &loc );                                       
   4953c:	2f02           	movel %d2,%sp@-                             
   4953e:	4e94           	jsr %a4@                                    
                                                                      
     if ( jnode->type != IMFS_DIRECTORY ) {                           
   49540:	588f           	addql #4,%sp                                
   49542:	7001           	moveq #1,%d0                                
   49544:	b0aa 0048      	cmpl %a2@(72),%d0                           
   49548:	660e           	bnes 49558 <IMFS_fsunmount+0x60>            
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   4954a:	200a           	movel %a2,%d0                               
   4954c:	0680 0000 0050 	addil #80,%d0                               
        result = IMFS_unlink( NULL, &loc );                           
        if (result != 0)                                              
          return -1;                                                  
        jnode = next;                                                 
     } else if ( jnode_has_no_children( jnode ) ) {                   
   49552:	b0aa 004c      	cmpl %a2@(76),%d0                           
   49556:	660e           	bnes 49566 <IMFS_fsunmount+0x6e>            
        result = IMFS_unlink( NULL, &loc );                           
   49558:	2f02           	movel %d2,%sp@-                             
   4955a:	42a7           	clrl %sp@-                                  
   4955c:	4e93           	jsr %a3@                                    
        if (result != 0)                                              
   4955e:	508f           	addql #8,%sp                                
   49560:	4a80           	tstl %d0                                    
   49562:	6626           	bnes 4958a <IMFS_fsunmount+0x92>            <== NEVER TAKEN
          return -1;                                                  
        jnode = next;                                                 
   49564:	2443           	moveal %d3,%a2                              
     }                                                                
     if ( jnode != NULL ) {                                           
   49566:	4a8a           	tstl %a2                                    
   49568:	6724           	beqs 4958e <IMFS_fsunmount+0x96>            
       if ( jnode->type == IMFS_DIRECTORY ) {                         
   4956a:	7001           	moveq #1,%d0                                
   4956c:	b0aa 0048      	cmpl %a2@(72),%d0                           
   49570:	66c2           	bnes 49534 <IMFS_fsunmount+0x3c>            <== NEVER TAKEN
   49572:	220a           	movel %a2,%d1                               
   49574:	0681 0000 0050 	addil #80,%d1                               
       }                                                              
     }                                                                
   } while (jnode != NULL);                                           
                                                                      
   return 0;                                                          
}                                                                     
   4957a:	202a 004c      	movel %a2@(76),%d0                          
          return -1;                                                  
        jnode = next;                                                 
     }                                                                
     if ( jnode != NULL ) {                                           
       if ( jnode->type == IMFS_DIRECTORY ) {                         
         if ( jnode_has_children( jnode ) )                           
   4957e:	b280           	cmpl %d0,%d1                                
   49580:	67b2           	beqs 49534 <IMFS_fsunmount+0x3c>            
           jnode = jnode_get_first_child( jnode );                    
   49582:	2440           	moveal %d0,%a2                              
       }                                                              
     }                                                                
   } while (jnode != NULL);                                           
   49584:	4a80           	tstl %d0                                    
   49586:	66ac           	bnes 49534 <IMFS_fsunmount+0x3c>            <== ALWAYS TAKEN
   49588:	6004           	bras 4958e <IMFS_fsunmount+0x96>            <== NOT EXECUTED
          return -1;                                                  
        jnode = next;                                                 
     } else if ( jnode_has_no_children( jnode ) ) {                   
        result = IMFS_unlink( NULL, &loc );                           
        if (result != 0)                                              
          return -1;                                                  
   4958a:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
   4958c:	6002           	bras 49590 <IMFS_fsunmount+0x98>            <== NOT EXECUTED
           jnode = jnode_get_first_child( jnode );                    
       }                                                              
     }                                                                
   } while (jnode != NULL);                                           
                                                                      
   return 0;                                                          
   4958e:	4280           	clrl %d0                                    
}                                                                     
   49590:	4cee 1c0c ffd8 	moveml %fp@(-40),%d2-%d3/%a2-%a4            
   49596:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049608 <IMFS_get_token>: const char *path, int pathlen, char *token, int *token_len ) {
   49608:	4e56 ffe4      	linkw %fp,#-28                              
   4960c:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   49610:	246e 0010      	moveal %fp@(16),%a2                         
  register int i = 0;                                                 
   49614:	4283           	clrl %d3                                    
  register char c;                                                    
                                                                      
  /*                                                                  
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
   49616:	284a           	moveal %a2,%a4                              
  while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) {
   49618:	4bf9 0004 3728 	lea 43728 <rtems_filesystem_is_separator>,%a5
  register char c;                                                    
                                                                      
  /*                                                                  
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
   4961e:	266e 0008      	moveal %fp@(8),%a3                          
  const char       *path,                                             
  int               pathlen,                                          
  char             *token,                                            
  int              *token_len                                         
)                                                                     
{                                                                     
   49622:	282e 000c      	movel %fp@(12),%d4                          
  register char c;                                                    
                                                                      
  /*                                                                  
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
   49626:	141b           	moveb %a3@+,%d2                             
  while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) {
   49628:	600c           	bras 49636 <IMFS_get_token+0x2e>            
                                                                      
     token[i] = c;                                                    
                                                                      
     if ( i == IMFS_NAME_MAX )                                        
   4962a:	7020           	moveq #32,%d0                               
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
  while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) {
                                                                      
     token[i] = c;                                                    
   4962c:	18c2           	moveb %d2,%a4@+                             
                                                                      
     if ( i == IMFS_NAME_MAX )                                        
   4962e:	b083           	cmpl %d3,%d0                                
   49630:	6772           	beqs 496a4 <IMFS_get_token+0x9c>            
       return IMFS_INVALID_TOKEN;                                     
                                                                      
     if ( !IMFS_is_valid_name_char(c) )                               
       type = IMFS_INVALID_TOKEN;                                     
                                                                      
     c = path [++i];                                                  
   49632:	5283           	addql #1,%d3                                
   49634:	141b           	moveb %a3@+,%d2                             
                                                                      
  /*                                                                  
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
  while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) {
   49636:	1002           	moveb %d2,%d0                               
   49638:	49c0           	extbl %d0                                   
   4963a:	2f00           	movel %d0,%sp@-                             
   4963c:	4e95           	jsr %a5@                                    
   4963e:	588f           	addql #4,%sp                                
   49640:	4a80           	tstl %d0                                    
   49642:	6604           	bnes 49648 <IMFS_get_token+0x40>            
   49644:	b883           	cmpl %d3,%d4                                
   49646:	6ee2           	bgts 4962a <IMFS_get_token+0x22>            
                                                                      
  /*                                                                  
   *  Copy a seperator into token.                                    
   */                                                                 
                                                                      
  if ( i == 0 ) {                                                     
   49648:	4a83           	tstl %d3                                    
   4964a:	660a           	bnes 49656 <IMFS_get_token+0x4e>            
    token[i] = c;                                                     
   4964c:	1482           	moveb %d2,%a2@                              
                                                                      
    if ( (token[i] != '\0') && pathlen ) {                            
   4964e:	6714           	beqs 49664 <IMFS_get_token+0x5c>            
   49650:	4a84           	tstl %d4                                    
   49652:	6614           	bnes 49668 <IMFS_get_token+0x60>            
   49654:	600e           	bras 49664 <IMFS_get_token+0x5c>            
      i++;                                                            
      type = IMFS_CURRENT_DIR;                                        
    } else {                                                          
      type = IMFS_NO_MORE_PATH;                                       
    }                                                                 
  } else if (token[ i-1 ] != '\0') {                                  
   49656:	4a32 38ff      	tstb %a2@(ffffffff,%d3:l)                   
   4965a:	6712           	beqs 4966e <IMFS_get_token+0x66>            <== NEVER TAKEN
    token[i] = '\0';                                                  
   4965c:	4200           	clrb %d0                                    
   4965e:	1580 3800      	moveb %d0,%a2@(00000000,%d3:l)              
   49662:	600a           	bras 4966e <IMFS_get_token+0x66>            
                                                                      
    if ( (token[i] != '\0') && pathlen ) {                            
      i++;                                                            
      type = IMFS_CURRENT_DIR;                                        
    } else {                                                          
      type = IMFS_NO_MORE_PATH;                                       
   49664:	4282           	clrl %d2                                    
   49666:	6008           	bras 49670 <IMFS_get_token+0x68>            
  if ( i == 0 ) {                                                     
    token[i] = c;                                                     
                                                                      
    if ( (token[i] != '\0') && pathlen ) {                            
      i++;                                                            
      type = IMFS_CURRENT_DIR;                                        
   49668:	7401           	moveq #1,%d2                                
                                                                      
  if ( i == 0 ) {                                                     
    token[i] = c;                                                     
                                                                      
    if ( (token[i] != '\0') && pathlen ) {                            
      i++;                                                            
   4966a:	7601           	moveq #1,%d3                                
   4966c:	6002           	bras 49670 <IMFS_get_token+0x68>            
  char             *token,                                            
  int              *token_len                                         
)                                                                     
{                                                                     
  register int i = 0;                                                 
  IMFS_token_types  type = IMFS_NAME;                                 
   4966e:	7403           	moveq #3,%d2                                
                                                                      
  /*                                                                  
   *  Set token_len to the number of characters copied.               
   */                                                                 
                                                                      
  *token_len = i;                                                     
   49670:	206e 0014      	moveal %fp@(20),%a0                         
  /*                                                                  
   *  If we copied something that was not a seperator see if          
   *  it was a special name.                                          
   */                                                                 
                                                                      
  if ( type == IMFS_NAME ) {                                          
   49674:	7003           	moveq #3,%d0                                
                                                                      
  /*                                                                  
   *  Set token_len to the number of characters copied.               
   */                                                                 
                                                                      
  *token_len = i;                                                     
   49676:	2083           	movel %d3,%a0@                              
  /*                                                                  
   *  If we copied something that was not a seperator see if          
   *  it was a special name.                                          
   */                                                                 
                                                                      
  if ( type == IMFS_NAME ) {                                          
   49678:	b082           	cmpl %d2,%d0                                
   4967a:	6632           	bnes 496ae <IMFS_get_token+0xa6>            
    if ( strcmp( token, "..") == 0 )                                  
   4967c:	4879 0005 c375 	pea 5c375 <dotdotname+0x3>                  
   49682:	47f9 0004 d9d0 	lea 4d9d0 <strcmp>,%a3                      
   49688:	2f0a           	movel %a2,%sp@-                             
   4968a:	4e93           	jsr %a3@                                    
   4968c:	508f           	addql #8,%sp                                
   4968e:	4a80           	tstl %d0                                    
   49690:	6716           	beqs 496a8 <IMFS_get_token+0xa0>            
      type = IMFS_UP_DIR;                                             
    else if ( strcmp( token, "." ) == 0 )                             
   49692:	4879 0005 c376 	pea 5c376 <dotdotname+0x4>                  
   49698:	2f0a           	movel %a2,%sp@-                             
   4969a:	4e93           	jsr %a3@                                    
   4969c:	508f           	addql #8,%sp                                
   4969e:	4a80           	tstl %d0                                    
   496a0:	670a           	beqs 496ac <IMFS_get_token+0xa4>            
   496a2:	600a           	bras 496ae <IMFS_get_token+0xa6>            
  while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) {
                                                                      
     token[i] = c;                                                    
                                                                      
     if ( i == IMFS_NAME_MAX )                                        
       return IMFS_INVALID_TOKEN;                                     
   496a4:	7404           	moveq #4,%d2                                
   496a6:	6006           	bras 496ae <IMFS_get_token+0xa6>            
   *  it was a special name.                                          
   */                                                                 
                                                                      
  if ( type == IMFS_NAME ) {                                          
    if ( strcmp( token, "..") == 0 )                                  
      type = IMFS_UP_DIR;                                             
   496a8:	7402           	moveq #2,%d2                                
   496aa:	6002           	bras 496ae <IMFS_get_token+0xa6>            
    else if ( strcmp( token, "." ) == 0 )                             
      type = IMFS_CURRENT_DIR;                                        
   496ac:	7401           	moveq #1,%d2                                
  }                                                                   
                                                                      
  return type;                                                        
}                                                                     
   496ae:	2002           	movel %d2,%d0                               
   496b0:	4cee 3c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a5            
   496b6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00041fb8 <IMFS_initialize_support>: IMFS_jnode_t *jnode; /* * determine/check value for imfs_memfile_bytes_per_block */ IMFS_determine_bytes_per_block(&imfs_memfile_bytes_per_block,
   41fb8:	307c 0006      	moveaw #6,%a0                               
  int bit_mask;                                                       
                                                                      
  /*                                                                  
   * check, whether requested bytes per block is valid                
   */                                                                 
  for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) {
   41fbc:	7210           	moveq #16,%d1                               
   const rtems_filesystem_operations_table    *op_table,              
   const rtems_filesystem_file_handlers_r     *memfile_handlers,      
   const rtems_filesystem_file_handlers_r     *directory_handlers,    
   const rtems_filesystem_file_handlers_r     *fifo_handlers          
)                                                                     
{                                                                     
   41fbe:	4e56 fff4      	linkw %fp,#-12                              
  IMFS_jnode_t                          *jnode;                       
                                                                      
  /*                                                                  
   * determine/check value for imfs_memfile_bytes_per_block           
   */                                                                 
  IMFS_determine_bytes_per_block(&imfs_memfile_bytes_per_block,       
   41fc2:	2039 0005 cff8 	movel 5cff8 <imfs_rq_memfile_bytes_per_block>,%d0
   const rtems_filesystem_operations_table    *op_table,              
   const rtems_filesystem_file_handlers_r     *memfile_handlers,      
   const rtems_filesystem_file_handlers_r     *directory_handlers,    
   const rtems_filesystem_file_handlers_r     *fifo_handlers          
)                                                                     
{                                                                     
   41fc8:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   41fcc:	246e 0008      	moveal %fp@(8),%a2                          
   41fd0:	242e 0014      	movel %fp@(20),%d2                          
                                                                      
  /*                                                                  
   * check, whether requested bytes per block is valid                
   */                                                                 
  for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) {
    if (bit_mask == requested_bytes_per_block) {                      
   41fd4:	b081           	cmpl %d1,%d0                                
   41fd6:	6710           	beqs 41fe8 <IMFS_initialize_support+0x30>   
      is_valid = true;                                                
      break;                                                          
    }                                                                 
    if(bit_mask > requested_bytes_per_block)                          
   41fd8:	6d08           	blts 41fe2 <IMFS_initialize_support+0x2a>   
  int bit_mask;                                                       
                                                                      
  /*                                                                  
   * check, whether requested bytes per block is valid                
   */                                                                 
  for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) {
   41fda:	5388           	subql #1,%a0                                
   41fdc:	d281           	addl %d1,%d1                                
   41fde:	4a88           	tstl %a0                                    
   41fe0:	66f2           	bnes 41fd4 <IMFS_initialize_support+0x1c>   <== ALWAYS TAKEN
    if(bit_mask > requested_bytes_per_block)                          
      break;                                                          
  }                                                                   
  *dest_bytes_per_block = ((is_valid)                                 
			   ? requested_bytes_per_block                                     
			   : default_bytes_per_block);                                     
   41fe2:	203c 0000 0080 	movel #128,%d0                              
      break;                                                          
    }                                                                 
    if(bit_mask > requested_bytes_per_block)                          
      break;                                                          
  }                                                                   
  *dest_bytes_per_block = ((is_valid)                                 
   41fe8:	23c0 0005 e074 	movel %d0,5e074 <imfs_memfile_bytes_per_block>
  /*                                                                  
   *  Create the root node                                            
   *                                                                  
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).            
   */                                                                 
  temp_mt_entry->mt_fs_root.node_access      = IMFS_create_root_node();
   41fee:	4eb9 0004 8e82 	jsr 48e82 <IMFS_create_root_node>           
  temp_mt_entry->mt_fs_root.handlers         = directory_handlers;    
  temp_mt_entry->mt_fs_root.ops              = op_table;              
   41ff4:	256e 000c 0028 	movel %fp@(12),%a2@(40)                     
  /*                                                                  
   *  Create the root node                                            
   *                                                                  
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).            
   */                                                                 
  temp_mt_entry->mt_fs_root.node_access      = IMFS_create_root_node();
   41ffa:	2640           	moveal %d0,%a3                              
   41ffc:	2540 001c      	movel %d0,%a2@(28)                          
  temp_mt_entry->mt_fs_root.handlers         = directory_handlers;    
   42000:	2542 0024      	movel %d2,%a2@(36)                          
  temp_mt_entry->mt_fs_root.ops              = op_table;              
  temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
   42004:	4878 0030      	pea 30 <OPER2+0x1c>                         
   42008:	4879 0005 c340 	pea 5c340 <IMFS_LIMITS_AND_OPTIONS>         
   4200e:	486a 0038      	pea %a2@(56)                                
   42012:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
                                                                      
  /*                                                                  
   * Create custom file system data.                                  
   */                                                                 
  fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) );                    
   42018:	4878 0014      	pea 14 <OPER2>                              
   4201c:	4878 0001      	pea 1 <ADD>                                 
   42020:	4eb9 0004 2654 	jsr 42654 <calloc>                          
  if ( !fs_info ) {                                                   
   42026:	4fef 0014      	lea %sp@(20),%sp                            
  temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
                                                                      
  /*                                                                  
   * Create custom file system data.                                  
   */                                                                 
  fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) );                    
   4202a:	2040           	moveal %d0,%a0                              
  if ( !fs_info ) {                                                   
   4202c:	4a80           	tstl %d0                                    
   4202e:	661a           	bnes 4204a <IMFS_initialize_support+0x92>   
    free(temp_mt_entry->mt_fs_root.node_access);                      
   42030:	2f0b           	movel %a3,%sp@-                             
   42032:	4eb9 0004 29ec 	jsr 429ec <free>                            
    rtems_set_errno_and_return_minus_one(ENOMEM);                     
   42038:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4203e:	588f           	addql #4,%sp                                
   42040:	2040           	moveal %d0,%a0                              
   42042:	700c           	moveq #12,%d0                               
   42044:	2080           	movel %d0,%a0@                              
   42046:	70ff           	moveq #-1,%d0                               
   42048:	6030           	bras 4207a <IMFS_initialize_support+0xc2>   
  }                                                                   
  temp_mt_entry->fs_info = fs_info;                                   
   4204a:	2540 0034      	movel %d0,%a2@(52)                          
                                                                      
  /*                                                                  
   * Set st_ino for the root to 1.                                    
   */                                                                 
                                                                      
  fs_info->instance              = imfs_instance++;                   
   4204e:	2039 0005 e078 	movel 5e078 <imfs_instance.5975>,%d0        
   42054:	2080           	movel %d0,%a0@                              
   42056:	5280           	addql #1,%d0                                
   42058:	23c0 0005 e078 	movel %d0,5e078 <imfs_instance.5975>        
  fs_info->ino_count             = 1;                                 
   4205e:	7001           	moveq #1,%d0                                
  fs_info->memfile_handlers      = memfile_handlers;                  
   42060:	216e 0010 0008 	movel %fp@(16),%a0@(8)                      
  fs_info->directory_handlers    = directory_handlers;                
  fs_info->fifo_handlers         = fifo_handlers;                     
   42066:	216e 0018 0010 	movel %fp@(24),%a0@(16)                     
  /*                                                                  
   * Set st_ino for the root to 1.                                    
   */                                                                 
                                                                      
  fs_info->instance              = imfs_instance++;                   
  fs_info->ino_count             = 1;                                 
   4206c:	2140 0004      	movel %d0,%a0@(4)                           
  fs_info->memfile_handlers      = memfile_handlers;                  
  fs_info->directory_handlers    = directory_handlers;                
   42070:	2142 000c      	movel %d2,%a0@(12)                          
  fs_info->fifo_handlers         = fifo_handlers;                     
                                                                      
  jnode = temp_mt_entry->mt_fs_root.node_access;                      
  jnode->st_ino = fs_info->ino_count;                                 
   42074:	2740 0034      	movel %d0,%a3@(52)                          
                                                                      
  return 0;                                                           
   42078:	4200           	clrb %d0                                    
}                                                                     
   4207a:	4cee 0c04 fff4 	moveml %fp@(-12),%d2/%a2-%a3                
   42080:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b92c <IMFS_memfile_extend>: IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE )
   4b92c:	4280           	clrl %d0                                    
 */                                                                   
MEMFILE_STATIC int IMFS_memfile_extend(                               
   IMFS_jnode_t  *the_jnode,                                          
   off_t          new_length                                          
)                                                                     
{                                                                     
   4b92e:	4e56 ffdc      	linkw %fp,#-36                              
   4b932:	48d7 1cfc      	moveml %d2-%d7/%a2-%a4,%sp@                 
    IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE );               
                                                                      
  /*                                                                  
   *  Verify new file size is supported                               
   */                                                                 
  if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE )                      
   4b936:	2c39 0005 e074 	movel 5e074 <imfs_memfile_bytes_per_block>,%d6
   4b93c:	2a06           	movel %d6,%d5                               
   4b93e:	e48d           	lsrl #2,%d5                                 
   4b940:	2805           	movel %d5,%d4                               
   4b942:	5284           	addql #1,%d4                                
   4b944:	4c05 4800      	mulsl %d5,%d4                               
 */                                                                   
MEMFILE_STATIC int IMFS_memfile_extend(                               
   IMFS_jnode_t  *the_jnode,                                          
   off_t          new_length                                          
)                                                                     
{                                                                     
   4b948:	242e 000c      	movel %fp@(12),%d2                          
   4b94c:	262e 0010      	movel %fp@(16),%d3                          
   4b950:	246e 0008      	moveal %fp@(8),%a2                          
    IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE );               
                                                                      
  /*                                                                  
   *  Verify new file size is supported                               
   */                                                                 
  if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE )                      
   4b954:	5284           	addql #1,%d4                                
   4b956:	4c05 4800      	mulsl %d5,%d4                               
   4b95a:	5384           	subql #1,%d4                                
   4b95c:	4c06 4800      	mulsl %d6,%d4                               
   4b960:	2204           	movel %d4,%d1                               
   4b962:	2802           	movel %d2,%d4                               
   4b964:	2a03           	movel %d3,%d5                               
   4b966:	9a81           	subl %d1,%d5                                
   4b968:	9980           	subxl %d0,%d4                               
   4b96a:	6d0e           	blts 4b97a <IMFS_memfile_extend+0x4e>       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   4b96c:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4b972:	7216           	moveq #22,%d1                               
   4b974:	2040           	moveal %d0,%a0                              
   4b976:	2081           	movel %d1,%a0@                              
   4b978:	6078           	bras 4b9f2 <IMFS_memfile_extend+0xc6>       
                                                                      
  /*                                                                  
   *  Verify new file size is actually larger than current size       
   */                                                                 
  if ( new_length <= the_jnode->info.file.size )                      
   4b97a:	282a 004c      	movel %a2@(76),%d4                          
   4b97e:	2a2a 0050      	movel %a2@(80),%d5                          
   4b982:	2002           	movel %d2,%d0                               
   4b984:	2203           	movel %d3,%d1                               
   4b986:	9285           	subl %d5,%d1                                
   4b988:	9184           	subxl %d4,%d0                               
   4b98a:	6f78           	bles 4ba04 <IMFS_memfile_extend+0xd8>       
    return 0;                                                         
                                                                      
  /*                                                                  
   *  Calculate the number of range of blocks to allocate             
   */                                                                 
  new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK;             
   4b98c:	47f9 0005 9398 	lea 59398 <__divdi3>,%a3                    
   4b992:	2e06           	movel %d6,%d7                               
   4b994:	5bc6           	smi %d6                                     
   4b996:	49c6           	extbl %d6                                   
   4b998:	2f07           	movel %d7,%sp@-                             
   4b99a:	2f06           	movel %d6,%sp@-                             
   4b99c:	2f03           	movel %d3,%sp@-                             
   4b99e:	2f02           	movel %d2,%sp@-                             
   4b9a0:	4e93           	jsr %a3@                                    
   4b9a2:	4fef 0010      	lea %sp@(16),%sp                            
   4b9a6:	2841           	moveal %d1,%a4                              
  old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK;
   4b9a8:	2f07           	movel %d7,%sp@-                             
   4b9aa:	2f06           	movel %d6,%sp@-                             
   4b9ac:	2f05           	movel %d5,%sp@-                             
   4b9ae:	2f04           	movel %d4,%sp@-                             
   4b9b0:	4e93           	jsr %a3@                                    
   4b9b2:	4fef 0010      	lea %sp@(16),%sp                            
                                                                      
  /*                                                                  
   *  Now allocate each of those blocks.                              
   */                                                                 
  for ( block=old_blocks ; block<=new_blocks ; block++ ) {            
    if ( IMFS_memfile_addblock( the_jnode, block ) ) {                
   4b9b6:	47f9 0004 b788 	lea 4b788 <IMFS_memfile_addblock>,%a3       
                                                                      
  /*                                                                  
   *  Calculate the number of range of blocks to allocate             
   */                                                                 
  new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK;             
  old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK;
   4b9bc:	2c01           	movel %d1,%d6                               
                                                                      
  /*                                                                  
   *  Now allocate each of those blocks.                              
   */                                                                 
  for ( block=old_blocks ; block<=new_blocks ; block++ ) {            
   4b9be:	2801           	movel %d1,%d4                               
   4b9c0:	6036           	bras 4b9f8 <IMFS_memfile_extend+0xcc>       
    if ( IMFS_memfile_addblock( the_jnode, block ) ) {                
   4b9c2:	2f04           	movel %d4,%sp@-                             
   4b9c4:	2f0a           	movel %a2,%sp@-                             
   4b9c6:	4e93           	jsr %a3@                                    
   4b9c8:	508f           	addql #8,%sp                                
   4b9ca:	4a80           	tstl %d0                                    
   4b9cc:	6728           	beqs 4b9f6 <IMFS_memfile_extend+0xca>       
   4b9ce:	600c           	bras 4b9dc <IMFS_memfile_extend+0xb0>       
       for ( ; block>=old_blocks ; block-- ) {                        
         IMFS_memfile_remove_block( the_jnode, block );               
   4b9d0:	2f04           	movel %d4,%sp@-                             
  /*                                                                  
   *  Now allocate each of those blocks.                              
   */                                                                 
  for ( block=old_blocks ; block<=new_blocks ; block++ ) {            
    if ( IMFS_memfile_addblock( the_jnode, block ) ) {                
       for ( ; block>=old_blocks ; block-- ) {                        
   4b9d2:	5384           	subql #1,%d4                                
         IMFS_memfile_remove_block( the_jnode, block );               
   4b9d4:	2f0a           	movel %a2,%sp@-                             
   4b9d6:	4e93           	jsr %a3@                                    
  /*                                                                  
   *  Now allocate each of those blocks.                              
   */                                                                 
  for ( block=old_blocks ; block<=new_blocks ; block++ ) {            
    if ( IMFS_memfile_addblock( the_jnode, block ) ) {                
       for ( ; block>=old_blocks ; block-- ) {                        
   4b9d8:	508f           	addql #8,%sp                                
   4b9da:	6006           	bras 4b9e2 <IMFS_memfile_extend+0xb6>       
         IMFS_memfile_remove_block( the_jnode, block );               
   4b9dc:	47f9 0004 b904 	lea 4b904 <IMFS_memfile_remove_block>,%a3   
  /*                                                                  
   *  Now allocate each of those blocks.                              
   */                                                                 
  for ( block=old_blocks ; block<=new_blocks ; block++ ) {            
    if ( IMFS_memfile_addblock( the_jnode, block ) ) {                
       for ( ; block>=old_blocks ; block-- ) {                        
   4b9e2:	bc84           	cmpl %d4,%d6                                
   4b9e4:	63ea           	blss 4b9d0 <IMFS_memfile_extend+0xa4>       <== NEVER TAKEN
         IMFS_memfile_remove_block( the_jnode, block );               
       }                                                              
       rtems_set_errno_and_return_minus_one( ENOSPC );                
   4b9e6:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4b9ec:	2040           	moveal %d0,%a0                              
   4b9ee:	701c           	moveq #28,%d0                               
   4b9f0:	2080           	movel %d0,%a0@                              
   4b9f2:	70ff           	moveq #-1,%d0                               
   4b9f4:	6010           	bras 4ba06 <IMFS_memfile_extend+0xda>       
  old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK;
                                                                      
  /*                                                                  
   *  Now allocate each of those blocks.                              
   */                                                                 
  for ( block=old_blocks ; block<=new_blocks ; block++ ) {            
   4b9f6:	5284           	addql #1,%d4                                
   4b9f8:	b9c4           	cmpal %d4,%a4                               
   4b9fa:	64c6           	bccs 4b9c2 <IMFS_memfile_extend+0x96>       
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new length of the file.                                 
   */                                                                 
  the_jnode->info.file.size = new_length;                             
   4b9fc:	2542 004c      	movel %d2,%a2@(76)                          
   4ba00:	2543 0050      	movel %d3,%a2@(80)                          
                                                                      
  /*                                                                  
   *  Verify new file size is actually larger than current size       
   */                                                                 
  if ( new_length <= the_jnode->info.file.size )                      
    return 0;                                                         
   4ba04:	4280           	clrl %d0                                    
  /*                                                                  
   *  Set the new length of the file.                                 
   */                                                                 
  the_jnode->info.file.size = new_length;                             
  return 0;                                                           
}                                                                     
   4ba06:	4cee 1cfc ffdc 	moveml %fp@(-36),%d2-%d7/%a2-%a4            
   4ba0c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b480 <IMFS_memfile_get_block_pointer>: #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) {
   4b480:	4e56 fff0      	linkw %fp,#-16                              
  my_block = block;                                                   
                                                                      
  /*                                                                  
   *  Is the block number in the simple indirect portion?             
   */                                                                 
  if ( my_block <= LAST_INDIRECT ) {                                  
   4b484:	2039 0005 e074 	movel 5e074 <imfs_memfile_bytes_per_block>,%d0
   4b48a:	e488           	lsrl #2,%d0                                 
   4b48c:	2200           	movel %d0,%d1                               
   4b48e:	5381           	subql #1,%d1                                
#endif                                                                
   IMFS_jnode_t   *the_jnode,                                         
   unsigned int    block,                                             
   int             malloc_it                                          
)                                                                     
{                                                                     
   4b490:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   4b494:	246e 0008      	moveal %fp@(8),%a2                          
   4b498:	242e 000c      	movel %fp@(12),%d2                          
   4b49c:	206e 0010      	moveal %fp@(16),%a0                         
  my_block = block;                                                   
                                                                      
  /*                                                                  
   *  Is the block number in the simple indirect portion?             
   */                                                                 
  if ( my_block <= LAST_INDIRECT ) {                                  
   4b4a0:	b282           	cmpl %d2,%d1                                
   4b4a2:	6536           	bcss 4b4da <IMFS_memfile_get_block_pointer+0x5a>
    p = info->indirect;                                               
   4b4a4:	226a 0054      	moveal %a2@(84),%a1                         
                                                                      
    if ( malloc_it ) {                                                
   4b4a8:	4a88           	tstl %a0                                    
   4b4aa:	6720           	beqs 4b4cc <IMFS_memfile_get_block_pointer+0x4c>
                                                                      
      if ( !p ) {                                                     
   4b4ac:	4a89           	tstl %a1                                    
   4b4ae:	6610           	bnes 4b4c0 <IMFS_memfile_get_block_pointer+0x40>
        p = memfile_alloc_block();                                    
   4b4b0:	4eb9 0004 b45c 	jsr 4b45c <memfile_alloc_block>             
        if ( !p )                                                     
   4b4b6:	4a80           	tstl %d0                                    
   4b4b8:	6700 00f8      	beqw 4b5b2 <IMFS_memfile_get_block_pointer+0x132>
           return 0;                                                  
        info->indirect = p;                                           
   4b4bc:	2540 0054      	movel %d0,%a2@(84)                          
      }                                                               
      return &info->indirect[ my_block ];                             
   4b4c0:	206a 0054      	moveal %a2@(84),%a0                         
   4b4c4:	e58a           	lsll #2,%d2                                 
   4b4c6:	d1c2           	addal %d2,%a0                               
   4b4c8:	6000 00ea      	braw 4b5b4 <IMFS_memfile_get_block_pointer+0x134>
    }                                                                 
                                                                      
    if ( !p )                                                         
   4b4cc:	4a89           	tstl %a1                                    
   4b4ce:	6700 00e2      	beqw 4b5b2 <IMFS_memfile_get_block_pointer+0x132>
      return 0;                                                       
                                                                      
    return &info->indirect[ my_block ];                               
   4b4d2:	41f1 2c00      	lea %a1@(00000000,%d2:l:4),%a0              
   4b4d6:	6000 00dc      	braw 4b5b4 <IMFS_memfile_get_block_pointer+0x134>
                                                                      
  /*                                                                  
   *  Is the block number in the doubly indirect portion?             
   */                                                                 
                                                                      
  if ( my_block <= LAST_DOUBLY_INDIRECT ) {                           
   4b4da:	2200           	movel %d0,%d1                               
   4b4dc:	5281           	addql #1,%d1                                
   4b4de:	4c00 1800      	mulsl %d0,%d1                               
   4b4e2:	2241           	moveal %d1,%a1                              
   4b4e4:	5389           	subql #1,%a1                                
   4b4e6:	b3c2           	cmpal %d2,%a1                               
   4b4e8:	653e           	bcss 4b528 <IMFS_memfile_get_block_pointer+0xa8>
    my_block -= FIRST_DOUBLY_INDIRECT;                                
   4b4ea:	9480           	subl %d0,%d2                                
                                                                      
    singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS;                     
   4b4ec:	4c40 2003      	remul %d0,%d3,%d2                           
   4b4f0:	4c40 2002      	remul %d0,%d2,%d2                           
    doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS;                     
                                                                      
    p = info->doubly_indirect;                                        
   4b4f4:	202a 0058      	movel %a2@(88),%d0                          
    if ( malloc_it ) {                                                
   4b4f8:	4a88           	tstl %a0                                    
   4b4fa:	671c           	beqs 4b518 <IMFS_memfile_get_block_pointer+0x98>
                                                                      
      if ( !p ) {                                                     
   4b4fc:	4a80           	tstl %d0                                    
   4b4fe:	6610           	bnes 4b510 <IMFS_memfile_get_block_pointer+0x90>
        p = memfile_alloc_block();                                    
   4b500:	4eb9 0004 b45c 	jsr 4b45c <memfile_alloc_block>             
        if ( !p )                                                     
   4b506:	4a80           	tstl %d0                                    
   4b508:	6700 00a8      	beqw 4b5b2 <IMFS_memfile_get_block_pointer+0x132>
           return 0;                                                  
        info->doubly_indirect = p;                                    
   4b50c:	2540 0058      	movel %d0,%a2@(88)                          
      }                                                               
                                                                      
      p1 = (block_p *)p[ doubly ];                                    
   4b510:	2040           	moveal %d0,%a0                              
   4b512:	45f0 2c00      	lea %a0@(00000000,%d2:l:4),%a2              
   4b516:	6066           	bras 4b57e <IMFS_memfile_get_block_pointer+0xfe>
      }                                                               
                                                                      
      return (block_p *)&p1[ singly ];                                
    }                                                                 
                                                                      
    if ( !p )                                                         
   4b518:	4a80           	tstl %d0                                    
   4b51a:	6700 0096      	beqw 4b5b2 <IMFS_memfile_get_block_pointer+0x132>
      return 0;                                                       
                                                                      
    p = (block_p *)p[ doubly ];                                       
   4b51e:	2240           	moveal %d0,%a1                              
   4b520:	2071 2c00      	moveal %a1@(00000000,%d2:l:4),%a0           
   4b524:	6000 0082      	braw 4b5a8 <IMFS_memfile_get_block_pointer+0x128>
  }                                                                   
                                                                      
  /*                                                                  
   *  Is the block number in the triply indirect portion?             
   */                                                                 
  if ( my_block <= LAST_TRIPLY_INDIRECT ) {                           
   4b528:	2601           	movel %d1,%d3                               
   4b52a:	5283           	addql #1,%d3                                
   4b52c:	4c00 3800      	mulsl %d0,%d3                               
   4b530:	5383           	subql #1,%d3                                
   4b532:	b682           	cmpl %d2,%d3                                
   4b534:	657c           	bcss 4b5b2 <IMFS_memfile_get_block_pointer+0x132><== NEVER TAKEN
    my_block -= FIRST_TRIPLY_INDIRECT;                                
   4b536:	9481           	subl %d1,%d2                                
                                                                      
    singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS;                     
   4b538:	4c40 2003      	remul %d0,%d3,%d2                           
   4b53c:	4c40 2002      	remul %d0,%d2,%d2                           
    doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS;                     
    triply = doubly / IMFS_MEMFILE_BLOCK_SLOTS;                       
   4b540:	4c40 2004      	remul %d0,%d4,%d2                           
   4b544:	4c40 2002      	remul %d0,%d2,%d2                           
    doubly %= IMFS_MEMFILE_BLOCK_SLOTS;                               
                                                                      
    p = info->triply_indirect;                                        
   4b548:	202a 005c      	movel %a2@(92),%d0                          
                                                                      
    if ( malloc_it ) {                                                
   4b54c:	4a88           	tstl %a0                                    
   4b54e:	6746           	beqs 4b596 <IMFS_memfile_get_block_pointer+0x116>
      if ( !p ) {                                                     
   4b550:	4a80           	tstl %d0                                    
   4b552:	660e           	bnes 4b562 <IMFS_memfile_get_block_pointer+0xe2>
        p = memfile_alloc_block();                                    
   4b554:	4eb9 0004 b45c 	jsr 4b45c <memfile_alloc_block>             
        if ( !p )                                                     
   4b55a:	4a80           	tstl %d0                                    
   4b55c:	6754           	beqs 4b5b2 <IMFS_memfile_get_block_pointer+0x132><== NEVER TAKEN
           return 0;                                                  
        info->triply_indirect = p;                                    
   4b55e:	2540 005c      	movel %d0,%a2@(92)                          
      }                                                               
                                                                      
      p1 = (block_p *) p[ triply ];                                   
   4b562:	2040           	moveal %d0,%a0                              
   4b564:	45f0 2c00      	lea %a0@(00000000,%d2:l:4),%a2              
   4b568:	2012           	movel %a2@,%d0                              
      if ( !p1 ) {                                                    
   4b56a:	660c           	bnes 4b578 <IMFS_memfile_get_block_pointer+0xf8>
        p1 = memfile_alloc_block();                                   
   4b56c:	4eb9 0004 b45c 	jsr 4b45c <memfile_alloc_block>             
        if ( !p1 )                                                    
   4b572:	4a80           	tstl %d0                                    
   4b574:	673c           	beqs 4b5b2 <IMFS_memfile_get_block_pointer+0x132><== NEVER TAKEN
           return 0;                                                  
        p[ triply ] = (block_p) p1;                                   
   4b576:	2480           	movel %d0,%a2@                              
      }                                                               
                                                                      
      p2 = (block_p *)p1[ doubly ];                                   
   4b578:	2240           	moveal %d0,%a1                              
   4b57a:	45f1 4c00      	lea %a1@(00000000,%d4:l:4),%a2              
   4b57e:	2012           	movel %a2@,%d0                              
      if ( !p2 ) {                                                    
   4b580:	660c           	bnes 4b58e <IMFS_memfile_get_block_pointer+0x10e>
        p2 = memfile_alloc_block();                                   
   4b582:	4eb9 0004 b45c 	jsr 4b45c <memfile_alloc_block>             
        if ( !p2 )                                                    
   4b588:	4a80           	tstl %d0                                    
   4b58a:	6726           	beqs 4b5b2 <IMFS_memfile_get_block_pointer+0x132><== NEVER TAKEN
           return 0;                                                  
        p1[ doubly ] = (block_p) p2;                                  
   4b58c:	2480           	movel %d0,%a2@                              
      }                                                               
      return (block_p *)&p2[ singly ];                                
   4b58e:	2240           	moveal %d0,%a1                              
   4b590:	41f1 3c00      	lea %a1@(00000000,%d3:l:4),%a0              
   4b594:	601e           	bras 4b5b4 <IMFS_memfile_get_block_pointer+0x134>
    }                                                                 
                                                                      
    if ( !p )                                                         
   4b596:	4a80           	tstl %d0                                    
   4b598:	6718           	beqs 4b5b2 <IMFS_memfile_get_block_pointer+0x132><== NEVER TAKEN
      return 0;                                                       
                                                                      
    p1 = (block_p *) p[ triply ];                                     
   4b59a:	2240           	moveal %d0,%a1                              
   4b59c:	2071 2c00      	moveal %a1@(00000000,%d2:l:4),%a0           
    if ( !p1 )                                                        
   4b5a0:	4a88           	tstl %a0                                    
   4b5a2:	670e           	beqs 4b5b2 <IMFS_memfile_get_block_pointer+0x132><== NEVER TAKEN
      return 0;                                                       
                                                                      
    p2 = (block_p *)p1[ doubly ];                                     
   4b5a4:	2070 4c00      	moveal %a0@(00000000,%d4:l:4),%a0           
    if ( !p2 )                                                        
   4b5a8:	4a88           	tstl %a0                                    
   4b5aa:	6706           	beqs 4b5b2 <IMFS_memfile_get_block_pointer+0x132><== NEVER TAKEN
      return 0;                                                       
                                                                      
    return (block_p *)&p2[ singly ];                                  
   4b5ac:	41f0 3c00      	lea %a0@(00000000,%d3:l:4),%a0              
   4b5b0:	6002           	bras 4b5b4 <IMFS_memfile_get_block_pointer+0x134>
    if ( !p1 )                                                        
      return 0;                                                       
                                                                      
    p2 = (block_p *)p1[ doubly ];                                     
    if ( !p2 )                                                        
      return 0;                                                       
   4b5b2:	91c8           	subal %a0,%a0                               <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  This means the requested block number is out of range.          
   */                                                                 
  return 0;                                                           
}                                                                     
   4b5b4:	2008           	movel %a0,%d0                               
   4b5b6:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   4b5bc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b5c0 <IMFS_memfile_read>: * Linear files (as created from a tar file are easier to handle * than block files). */ my_length = length; if (the_jnode->type == IMFS_LINEAR_FILE) {
   4b5c0:	7006           	moveq #6,%d0                                
   IMFS_jnode_t    *the_jnode,                                        
   off_t            start,                                            
   unsigned char   *destination,                                      
   unsigned int     length                                            
)                                                                     
{                                                                     
   4b5c2:	4e56 ffc8      	linkw %fp,#-56                              
   4b5c6:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4b5ca:	246e 0008      	moveal %fp@(8),%a2                          
   4b5ce:	2e2e 0014      	movel %fp@(20),%d7                          
   4b5d2:	2c2e 0018      	movel %fp@(24),%d6                          
   4b5d6:	242e 000c      	movel %fp@(12),%d2                          
   4b5da:	262e 0010      	movel %fp@(16),%d3                          
   *  Linear files (as created from a tar file are easier to handle   
   *  than block files).                                              
   */                                                                 
  my_length = length;                                                 
                                                                      
  if (the_jnode->type == IMFS_LINEAR_FILE) {                          
   4b5de:	b0aa 0048      	cmpl %a2@(72),%d0                           
   4b5e2:	6656           	bnes 4b63a <IMFS_memfile_read+0x7a>         
    unsigned char  *file_ptr;                                         
                                                                      
    file_ptr = (unsigned char *)the_jnode->info.linearfile.direct;    
                                                                      
    if (my_length > (the_jnode->info.linearfile.size - start))        
   4b5e4:	2246           	moveal %d6,%a1                              
   4b5e6:	91c8           	subal %a0,%a0                               
   4b5e8:	282a 004c      	movel %a2@(76),%d4                          
   4b5ec:	2a2a 0050      	movel %a2@(80),%d5                          
  my_length = length;                                                 
                                                                      
  if (the_jnode->type == IMFS_LINEAR_FILE) {                          
    unsigned char  *file_ptr;                                         
                                                                      
    file_ptr = (unsigned char *)the_jnode->info.linearfile.direct;    
   4b5f0:	266a 0054      	moveal %a2@(84),%a3                         
                                                                      
    if (my_length > (the_jnode->info.linearfile.size - start))        
   4b5f4:	2d44 fff0      	movel %d4,%fp@(-16)                         
   4b5f8:	2d45 fff4      	movel %d5,%fp@(-12)                         
   4b5fc:	9a83           	subl %d3,%d5                                
   4b5fe:	9982           	subxl %d2,%d4                               
   4b600:	2008           	movel %a0,%d0                               
   4b602:	2209           	movel %a1,%d1                               
   4b604:	9285           	subl %d5,%d1                                
   4b606:	9184           	subxl %d4,%d0                               
   4b608:	6f06           	bles 4b610 <IMFS_memfile_read+0x50>         <== NEVER TAKEN
      my_length = the_jnode->info.linearfile.size - start;            
   4b60a:	2c2e fff4      	movel %fp@(-12),%d6                         
   4b60e:	9c83           	subl %d3,%d6                                
                                                                      
    memcpy(dest, &file_ptr[start], my_length);                        
   4b610:	2f06           	movel %d6,%sp@-                             
   4b612:	4873 3800      	pea %a3@(00000000,%d3:l)                    
                                                                      
    IMFS_update_atime( the_jnode );                                   
                                                                      
    return my_length;                                                 
   4b616:	2406           	movel %d6,%d2                               
    file_ptr = (unsigned char *)the_jnode->info.linearfile.direct;    
                                                                      
    if (my_length > (the_jnode->info.linearfile.size - start))        
      my_length = the_jnode->info.linearfile.size - start;            
                                                                      
    memcpy(dest, &file_ptr[start], my_length);                        
   4b618:	2f07           	movel %d7,%sp@-                             
   4b61a:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
                                                                      
    IMFS_update_atime( the_jnode );                                   
   4b620:	42a7           	clrl %sp@-                                  
   4b622:	486e fff8      	pea %fp@(-8)                                
   4b626:	4eb9 0004 2a74 	jsr 42a74 <gettimeofday>                    
   4b62c:	256e fff8 003c 	movel %fp@(-8),%a2@(60)                     
                                                                      
    return my_length;                                                 
   4b632:	4fef 0014      	lea %sp@(20),%sp                            
   4b636:	6000 011e      	braw 4b756 <IMFS_memfile_read+0x196>        
                                                                      
  /*                                                                  
   *  If the last byte we are supposed to read is past the end of this
   *  in memory file, then shorten the length to read.                
   */                                                                 
  last_byte = start + length;                                         
   4b63a:	2043           	moveal %d3,%a0                              
   4b63c:	43f0 6800      	lea %a0@(00000000,%d6:l),%a1                
  if ( last_byte > the_jnode->info.file.size )                        
   4b640:	97cb           	subal %a3,%a3                               
   4b642:	2849           	moveal %a1,%a4                              
   4b644:	202a 004c      	movel %a2@(76),%d0                          
   4b648:	222a 0050      	movel %a2@(80),%d1                          
   4b64c:	280b           	movel %a3,%d4                               
   4b64e:	2a0c           	movel %a4,%d5                               
   4b650:	9a81           	subl %d1,%d5                                
   4b652:	9980           	subxl %d0,%d4                               
   4b654:	6f04           	bles 4b65a <IMFS_memfile_read+0x9a>         
    my_length = the_jnode->info.file.size - start;                    
   4b656:	2c01           	movel %d1,%d6                               
   4b658:	9c83           	subl %d3,%d6                                
   */                                                                 
                                                                      
  /*                                                                  
   *  Phase 1: possibly the last part of one block                    
   */                                                                 
  start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK;                
   4b65a:	2879 0005 e074 	moveal 5e074 <imfs_memfile_bytes_per_block>,%a4
   4b660:	2a0c           	movel %a4,%d5                               
   4b662:	5bc4           	smi %d4                                     
   4b664:	49c4           	extbl %d4                                   
   4b666:	2f05           	movel %d5,%sp@-                             
   4b668:	2f04           	movel %d4,%sp@-                             
   4b66a:	2f03           	movel %d3,%sp@-                             
   4b66c:	2f02           	movel %d2,%sp@-                             
   4b66e:	4eb9 0005 974c 	jsr 5974c <__moddi3>                        
   4b674:	4fef 0010      	lea %sp@(16),%sp                            
   4b678:	2641           	moveal %d1,%a3                              
  block = start / IMFS_MEMFILE_BYTES_PER_BLOCK;                       
   4b67a:	2f05           	movel %d5,%sp@-                             
   4b67c:	2f04           	movel %d4,%sp@-                             
   4b67e:	2f03           	movel %d3,%sp@-                             
   4b680:	2f02           	movel %d2,%sp@-                             
   4b682:	4eb9 0005 9398 	jsr 59398 <__divdi3>                        
   4b688:	4fef 0010      	lea %sp@(16),%sp                            
   4b68c:	2801           	movel %d1,%d4                               
  if ( start_offset )  {                                              
   4b68e:	4a8b           	tstl %a3                                    
   4b690:	673c           	beqs 4b6ce <IMFS_memfile_read+0x10e>        
    to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset;            
    if ( to_copy > my_length )                                        
      to_copy = my_length;                                            
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4b692:	42a7           	clrl %sp@-                                  
   4b694:	2f01           	movel %d1,%sp@-                             
   4b696:	2f0a           	movel %a2,%sp@-                             
   4b698:	4eb9 0004 b480 	jsr 4b480 <IMFS_memfile_get_block_pointer>  
    if ( !block_ptr )                                                 
   4b69e:	4fef 000c      	lea %sp@(12),%sp                            
   4b6a2:	4a80           	tstl %d0                                    
   4b6a4:	6700 00ae      	beqw 4b754 <IMFS_memfile_read+0x194>        
   *  Phase 1: possibly the last part of one block                    
   */                                                                 
  start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK;                
  block = start / IMFS_MEMFILE_BYTES_PER_BLOCK;                       
  if ( start_offset )  {                                              
    to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset;            
   4b6a8:	99cb           	subal %a3,%a4                               
   4b6aa:	2406           	movel %d6,%d2                               
   4b6ac:	b9c6           	cmpal %d6,%a4                               
   4b6ae:	6402           	bccs 4b6b2 <IMFS_memfile_read+0xf2>         
   4b6b0:	240c           	movel %a4,%d2                               
    if ( to_copy > my_length )                                        
      to_copy = my_length;                                            
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ start_offset ], to_copy );           
   4b6b2:	2f02           	movel %d2,%sp@-                             
   4b6b4:	2040           	moveal %d0,%a0                              
   4b6b6:	d7d0           	addal %a0@,%a3                              
    dest += to_copy;                                                  
    block++;                                                          
   4b6b8:	5284           	addql #1,%d4                                
    my_length -= to_copy;                                             
   4b6ba:	9c82           	subl %d2,%d6                                
    if ( to_copy > my_length )                                        
      to_copy = my_length;                                            
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ start_offset ], to_copy );           
   4b6bc:	2f0b           	movel %a3,%sp@-                             
   4b6be:	2f07           	movel %d7,%sp@-                             
    dest += to_copy;                                                  
   4b6c0:	de82           	addl %d2,%d7                                
    if ( to_copy > my_length )                                        
      to_copy = my_length;                                            
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ start_offset ], to_copy );           
   4b6c2:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
    dest += to_copy;                                                  
    block++;                                                          
    my_length -= to_copy;                                             
   4b6c8:	4fef 000c      	lea %sp@(12),%sp                            
   4b6cc:	6002           	bras 4b6d0 <IMFS_memfile_read+0x110>        
   */                                                                 
  last_byte = start + length;                                         
  if ( last_byte > the_jnode->info.file.size )                        
    my_length = the_jnode->info.file.size - start;                    
                                                                      
  copied = 0;                                                         
   4b6ce:	4282           	clrl %d2                                    
  }                                                                   
                                                                      
  /*                                                                  
   *  Phase 2: all of zero of more blocks                             
   */                                                                 
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
   4b6d0:	2679 0005 e074 	moveal 5e074 <imfs_memfile_bytes_per_block>,%a3
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4b6d6:	4bf9 0004 b480 	lea 4b480 <IMFS_memfile_get_block_pointer>,%a5
    if ( !block_ptr )                                                 
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ 0 ], to_copy );                      
   4b6dc:	49f9 0004 d37c 	lea 4d37c <memcpy>,%a4                      
                                                                      
  /*                                                                  
   *  Phase 2: all of zero of more blocks                             
   */                                                                 
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
   4b6e2:	6026           	bras 4b70a <IMFS_memfile_read+0x14a>        
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4b6e4:	42a7           	clrl %sp@-                                  
   4b6e6:	2f04           	movel %d4,%sp@-                             
   4b6e8:	2f0a           	movel %a2,%sp@-                             
   4b6ea:	4e95           	jsr %a5@                                    
    if ( !block_ptr )                                                 
   4b6ec:	4fef 000c      	lea %sp@(12),%sp                            
   4b6f0:	4a80           	tstl %d0                                    
   4b6f2:	6762           	beqs 4b756 <IMFS_memfile_read+0x196>        <== NEVER TAKEN
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ 0 ], to_copy );                      
   4b6f4:	2040           	moveal %d0,%a0                              
    dest += to_copy;                                                  
    block++;                                                          
   4b6f6:	5284           	addql #1,%d4                                
    my_length -= to_copy;                                             
   4b6f8:	9c8b           	subl %a3,%d6                                
    copied += to_copy;                                                
   4b6fa:	d48b           	addl %a3,%d2                                
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ 0 ], to_copy );                      
   4b6fc:	2f0b           	movel %a3,%sp@-                             
   4b6fe:	2f10           	movel %a0@,%sp@-                            
   4b700:	2f07           	movel %d7,%sp@-                             
    dest += to_copy;                                                  
   4b702:	de8b           	addl %a3,%d7                                
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ 0 ], to_copy );                      
   4b704:	4e94           	jsr %a4@                                    
    dest += to_copy;                                                  
    block++;                                                          
    my_length -= to_copy;                                             
    copied += to_copy;                                                
   4b706:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
  /*                                                                  
   *  Phase 2: all of zero of more blocks                             
   */                                                                 
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
   4b70a:	bcb9 0005 e074 	cmpl 5e074 <imfs_memfile_bytes_per_block>,%d6
   4b710:	64d2           	bccs 4b6e4 <IMFS_memfile_read+0x124>        
  /*                                                                  
   *  Phase 3: possibly the first part of one block                   
   */                                                                 
  IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK );            
                                                                      
  if ( my_length ) {                                                  
   4b712:	4a86           	tstl %d6                                    
   4b714:	6728           	beqs 4b73e <IMFS_memfile_read+0x17e>        
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4b716:	42a7           	clrl %sp@-                                  
   4b718:	2f04           	movel %d4,%sp@-                             
   4b71a:	2f0a           	movel %a2,%sp@-                             
   4b71c:	4eb9 0004 b480 	jsr 4b480 <IMFS_memfile_get_block_pointer>  
    if ( !block_ptr )                                                 
   4b722:	4fef 000c      	lea %sp@(12),%sp                            
   4b726:	4a80           	tstl %d0                                    
   4b728:	672c           	beqs 4b756 <IMFS_memfile_read+0x196>        <== NEVER TAKEN
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ 0 ], my_length );                    
   4b72a:	2040           	moveal %d0,%a0                              
    copied += my_length;                                              
   4b72c:	d486           	addl %d6,%d2                                
                                                                      
  if ( my_length ) {                                                  
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
    memcpy( dest, &(*block_ptr)[ 0 ], my_length );                    
   4b72e:	2f06           	movel %d6,%sp@-                             
   4b730:	2f10           	movel %a0@,%sp@-                            
   4b732:	2f07           	movel %d7,%sp@-                             
   4b734:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
    copied += my_length;                                              
   4b73a:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
                                                                      
  IMFS_update_atime( the_jnode );                                     
   4b73e:	42a7           	clrl %sp@-                                  
   4b740:	486e fff8      	pea %fp@(-8)                                
   4b744:	4eb9 0004 2a74 	jsr 42a74 <gettimeofday>                    
   4b74a:	256e fff8 003c 	movel %fp@(-8),%a2@(60)                     
                                                                      
  return copied;                                                      
   4b750:	508f           	addql #8,%sp                                
   4b752:	6002           	bras 4b756 <IMFS_memfile_read+0x196>        
    to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset;            
    if ( to_copy > my_length )                                        
      to_copy = my_length;                                            
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
   4b754:	4282           	clrl %d2                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  IMFS_update_atime( the_jnode );                                     
                                                                      
  return copied;                                                      
}                                                                     
   4b756:	2002           	movel %d2,%d0                               
   4b758:	4cee 3cfc ffc8 	moveml %fp@(-56),%d2-%d7/%a2-%a5            
   4b75e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b824 <IMFS_memfile_remove>: * is better to stick to simple, easy to understand algorithms. */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) {
   4b824:	4e56 ffe4      	linkw %fp,#-28                              
   4b828:	48d7 1c3c      	moveml %d2-%d5/%a2-%a4,%sp@                 
                                                                      
  /*                                                                  
   *  Eventually this could be set smarter at each call to            
   *  memfile_free_blocks_in_table to greatly speed this up.          
   */                                                                 
  to_free = IMFS_MEMFILE_BLOCK_SLOTS;                                 
   4b82c:	2439 0005 e074 	movel 5e074 <imfs_memfile_bytes_per_block>,%d2
   4b832:	e48a           	lsrl #2,%d2                                 
 *         is better to stick to simple, easy to understand algorithms.
 */                                                                   
int IMFS_memfile_remove(                                              
 IMFS_jnode_t  *the_jnode                                             
)                                                                     
{                                                                     
   4b834:	246e 0008      	moveal %fp@(8),%a2                          
   *    + doubly indirect                                             
   *    + triply indirect                                             
   */                                                                 
  info = &the_jnode->info.file;                                       
                                                                      
  if ( info->indirect ) {                                             
   4b838:	4aaa 0054      	tstl %a2@(84)                               
   4b83c:	670e           	beqs 4b84c <IMFS_memfile_remove+0x28>       
    memfile_free_blocks_in_table( &info->indirect, to_free );         
   4b83e:	2f02           	movel %d2,%sp@-                             
   4b840:	486a 0054      	pea %a2@(84)                                
   4b844:	4eb9 0004 b7de 	jsr 4b7de <memfile_free_blocks_in_table>    
   4b84a:	508f           	addql #8,%sp                                
  }                                                                   
                                                                      
  if ( info->doubly_indirect ) {                                      
   4b84c:	4aaa 0058      	tstl %a2@(88)                               
   4b850:	673e           	beqs 4b890 <IMFS_memfile_remove+0x6c>       
   4b852:	4283           	clrl %d3                                    
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
      if ( info->doubly_indirect[i] ) {                               
        memfile_free_blocks_in_table(                                 
   4b854:	47f9 0004 b7de 	lea 4b7de <memfile_free_blocks_in_table>,%a3
   4b85a:	601a           	bras 4b876 <IMFS_memfile_remove+0x52>       
    memfile_free_blocks_in_table( &info->indirect, to_free );         
  }                                                                   
                                                                      
  if ( info->doubly_indirect ) {                                      
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
      if ( info->doubly_indirect[i] ) {                               
   4b85c:	2003           	movel %d3,%d0                               
   4b85e:	206a 0058      	moveal %a2@(88),%a0                         
   4b862:	e588           	lsll #2,%d0                                 
   4b864:	4ab0 0800      	tstl %a0@(00000000,%d0:l)                   
   4b868:	670a           	beqs 4b874 <IMFS_memfile_remove+0x50>       <== NEVER TAKEN
        memfile_free_blocks_in_table(                                 
   4b86a:	2f02           	movel %d2,%sp@-                             
   4b86c:	4870 0800      	pea %a0@(00000000,%d0:l)                    
   4b870:	4e93           	jsr %a3@                                    
   4b872:	508f           	addql #8,%sp                                
  if ( info->indirect ) {                                             
    memfile_free_blocks_in_table( &info->indirect, to_free );         
  }                                                                   
                                                                      
  if ( info->doubly_indirect ) {                                      
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
   4b874:	5283           	addql #1,%d3                                
   4b876:	2039 0005 e074 	movel 5e074 <imfs_memfile_bytes_per_block>,%d0
   4b87c:	e488           	lsrl #2,%d0                                 
   4b87e:	b083           	cmpl %d3,%d0                                
   4b880:	62da           	bhis 4b85c <IMFS_memfile_remove+0x38>       
      if ( info->doubly_indirect[i] ) {                               
        memfile_free_blocks_in_table(                                 
         (block_p **)&info->doubly_indirect[i], to_free );            
      }                                                               
    }                                                                 
    memfile_free_blocks_in_table( &info->doubly_indirect, to_free );  
   4b882:	2f02           	movel %d2,%sp@-                             
   4b884:	486a 0058      	pea %a2@(88)                                
   4b888:	4eb9 0004 b7de 	jsr 4b7de <memfile_free_blocks_in_table>    
   4b88e:	508f           	addql #8,%sp                                
                                                                      
  }                                                                   
                                                                      
  if ( info->triply_indirect ) {                                      
   4b890:	4aaa 005c      	tstl %a2@(92)                               
   4b894:	6762           	beqs 4b8f8 <IMFS_memfile_remove+0xd4>       
   4b896:	4283           	clrl %d3                                    
      p = (block_p *) info->triply_indirect[i];                       
      if ( !p )  /* ensure we have a valid pointer */                 
         break;                                                       
      for ( j=0 ; j<IMFS_MEMFILE_BLOCK_SLOTS ; j++ ) {                
        if ( p[j] ) {                                                 
          memfile_free_blocks_in_table( (block_p **)&p[j], to_free);  
   4b898:	49f9 0004 b7de 	lea 4b7de <memfile_free_blocks_in_table>,%a4
   4b89e:	603e           	bras 4b8de <IMFS_memfile_remove+0xba>       
    }                                                                 
    memfile_free_blocks_in_table( &info->doubly_indirect, to_free );  
                                                                      
  }                                                                   
                                                                      
  if ( info->triply_indirect ) {                                      
   4b8a0:	2a03           	movel %d3,%d5                               
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
      p = (block_p *) info->triply_indirect[i];                       
   4b8a2:	206a 005c      	moveal %a2@(92),%a0                         
    }                                                                 
    memfile_free_blocks_in_table( &info->doubly_indirect, to_free );  
                                                                      
  }                                                                   
                                                                      
  if ( info->triply_indirect ) {                                      
   4b8a6:	e58d           	lsll #2,%d5                                 
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
      p = (block_p *) info->triply_indirect[i];                       
   4b8a8:	2670 5800      	moveal %a0@(00000000,%d5:l),%a3             
      if ( !p )  /* ensure we have a valid pointer */                 
   4b8ac:	4a8b           	tstl %a3                                    
   4b8ae:	673a           	beqs 4b8ea <IMFS_memfile_remove+0xc6>       <== NEVER TAKEN
   4b8b0:	4284           	clrl %d4                                    
   4b8b2:	6010           	bras 4b8c4 <IMFS_memfile_remove+0xa0>       
         break;                                                       
      for ( j=0 ; j<IMFS_MEMFILE_BLOCK_SLOTS ; j++ ) {                
        if ( p[j] ) {                                                 
   4b8b4:	4a93           	tstl %a3@                                   
   4b8b6:	6708           	beqs 4b8c0 <IMFS_memfile_remove+0x9c>       <== NEVER TAKEN
          memfile_free_blocks_in_table( (block_p **)&p[j], to_free);  
   4b8b8:	2f02           	movel %d2,%sp@-                             
   4b8ba:	2f0b           	movel %a3,%sp@-                             
   4b8bc:	4e94           	jsr %a4@                                    
   4b8be:	508f           	addql #8,%sp                                
  if ( info->triply_indirect ) {                                      
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
      p = (block_p *) info->triply_indirect[i];                       
      if ( !p )  /* ensure we have a valid pointer */                 
         break;                                                       
      for ( j=0 ; j<IMFS_MEMFILE_BLOCK_SLOTS ; j++ ) {                
   4b8c0:	5284           	addql #1,%d4                                
   4b8c2:	588b           	addql #4,%a3                                
   4b8c4:	2039 0005 e074 	movel 5e074 <imfs_memfile_bytes_per_block>,%d0
   4b8ca:	e488           	lsrl #2,%d0                                 
   4b8cc:	b084           	cmpl %d4,%d0                                
   4b8ce:	62e4           	bhis 4b8b4 <IMFS_memfile_remove+0x90>       
        if ( p[j] ) {                                                 
          memfile_free_blocks_in_table( (block_p **)&p[j], to_free);  
        }                                                             
      }                                                               
      memfile_free_blocks_in_table(                                   
   4b8d0:	2f02           	movel %d2,%sp@-                             
   4b8d2:	daaa 005c      	addl %a2@(92),%d5                           
    memfile_free_blocks_in_table( &info->doubly_indirect, to_free );  
                                                                      
  }                                                                   
                                                                      
  if ( info->triply_indirect ) {                                      
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
   4b8d6:	5283           	addql #1,%d3                                
      for ( j=0 ; j<IMFS_MEMFILE_BLOCK_SLOTS ; j++ ) {                
        if ( p[j] ) {                                                 
          memfile_free_blocks_in_table( (block_p **)&p[j], to_free);  
        }                                                             
      }                                                               
      memfile_free_blocks_in_table(                                   
   4b8d8:	2f05           	movel %d5,%sp@-                             
   4b8da:	4e94           	jsr %a4@                                    
    memfile_free_blocks_in_table( &info->doubly_indirect, to_free );  
                                                                      
  }                                                                   
                                                                      
  if ( info->triply_indirect ) {                                      
    for ( i=0 ; i<IMFS_MEMFILE_BLOCK_SLOTS ; i++ ) {                  
   4b8dc:	508f           	addql #8,%sp                                
   4b8de:	2039 0005 e074 	movel 5e074 <imfs_memfile_bytes_per_block>,%d0
   4b8e4:	e488           	lsrl #2,%d0                                 
   4b8e6:	b083           	cmpl %d3,%d0                                
   4b8e8:	62b6           	bhis 4b8a0 <IMFS_memfile_remove+0x7c>       
        }                                                             
      }                                                               
      memfile_free_blocks_in_table(                                   
        (block_p **)&info->triply_indirect[i], to_free );             
    }                                                                 
    memfile_free_blocks_in_table(                                     
   4b8ea:	2f02           	movel %d2,%sp@-                             
   4b8ec:	486a 005c      	pea %a2@(92)                                
   4b8f0:	4eb9 0004 b7de 	jsr 4b7de <memfile_free_blocks_in_table>    
   4b8f6:	508f           	addql #8,%sp                                
        (block_p **)&info->triply_indirect, to_free );                
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
   4b8f8:	4280           	clrl %d0                                    
   4b8fa:	4cee 1c3c ffe4 	moveml %fp@(-28),%d2-%d5/%a2-%a4            
   4b900:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004ba10 <IMFS_memfile_write>: * If the last byte we are supposed to write is past the end of this * in memory file, then extend the length. */ last_byte = start + my_length; if ( last_byte > the_jnode->info.file.size ) {
   4ba10:	4280           	clrl %d0                                    
   IMFS_jnode_t          *the_jnode,                                  
   off_t                  start,                                      
   const unsigned char   *source,                                     
   unsigned int           length                                      
)                                                                     
{                                                                     
   4ba12:	4e56 ffd0      	linkw %fp,#-48                              
   4ba16:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4ba1a:	246e 0008      	moveal %fp@(8),%a2                          
   4ba1e:	242e 000c      	movel %fp@(12),%d2                          
   4ba22:	262e 0010      	movel %fp@(16),%d3                          
   4ba26:	2c2e 0018      	movel %fp@(24),%d6                          
  /*                                                                  
   *  If the last byte we are supposed to write is past the end of this
   *  in memory file, then extend the length.                         
   */                                                                 
                                                                      
  last_byte = start + my_length;                                      
   4ba2a:	2046           	moveal %d6,%a0                              
   4ba2c:	d1c3           	addal %d3,%a0                               
  if ( last_byte > the_jnode->info.file.size ) {                      
   4ba2e:	2208           	movel %a0,%d1                               
   IMFS_jnode_t          *the_jnode,                                  
   off_t                  start,                                      
   const unsigned char   *source,                                     
   unsigned int           length                                      
)                                                                     
{                                                                     
   4ba30:	2e2e 0014      	movel %fp@(20),%d7                          
   *  If the last byte we are supposed to write is past the end of this
   *  in memory file, then extend the length.                         
   */                                                                 
                                                                      
  last_byte = start + my_length;                                      
  if ( last_byte > the_jnode->info.file.size ) {                      
   4ba34:	282a 004c      	movel %a2@(76),%d4                          
   4ba38:	2a2a 0050      	movel %a2@(80),%d5                          
   4ba3c:	9a81           	subl %d1,%d5                                
   4ba3e:	9980           	subxl %d0,%d4                               
   4ba40:	6c28           	bges 4ba6a <IMFS_memfile_write+0x5a>        <== NEVER TAKEN
    status = IMFS_memfile_extend( the_jnode, last_byte );             
   4ba42:	2f08           	movel %a0,%sp@-                             
   4ba44:	2f00           	movel %d0,%sp@-                             
   4ba46:	2f0a           	movel %a2,%sp@-                             
   4ba48:	4eb9 0004 b92c 	jsr 4b92c <IMFS_memfile_extend>             
    if ( status )                                                     
   4ba4e:	4fef 000c      	lea %sp@(12),%sp                            
   4ba52:	4a80           	tstl %d0                                    
   4ba54:	6714           	beqs 4ba6a <IMFS_memfile_write+0x5a>        
      rtems_set_errno_and_return_minus_one( ENOSPC );                 
   4ba56:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4ba5c:	741c           	moveq #28,%d2                               
   4ba5e:	2040           	moveal %d0,%a0                              
   4ba60:	387c ffff      	moveaw #-1,%a4                              
   4ba64:	2082           	movel %d2,%a0@                              
   4ba66:	6000 0102      	braw 4bb6a <IMFS_memfile_write+0x15a>       
   */                                                                 
                                                                      
  /*                                                                  
   *  Phase 1: possibly the last part of one block                    
   */                                                                 
  start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK;                
   4ba6a:	2879 0005 e074 	moveal 5e074 <imfs_memfile_bytes_per_block>,%a4
   4ba70:	2a0c           	movel %a4,%d5                               
   4ba72:	5bc4           	smi %d4                                     
   4ba74:	49c4           	extbl %d4                                   
   4ba76:	2f05           	movel %d5,%sp@-                             
   4ba78:	2f04           	movel %d4,%sp@-                             
   4ba7a:	2f03           	movel %d3,%sp@-                             
   4ba7c:	2f02           	movel %d2,%sp@-                             
   4ba7e:	4eb9 0005 974c 	jsr 5974c <__moddi3>                        
   4ba84:	4fef 0010      	lea %sp@(16),%sp                            
   4ba88:	2641           	moveal %d1,%a3                              
  block = start / IMFS_MEMFILE_BYTES_PER_BLOCK;                       
   4ba8a:	2f05           	movel %d5,%sp@-                             
   4ba8c:	2f04           	movel %d4,%sp@-                             
   4ba8e:	2f03           	movel %d3,%sp@-                             
   4ba90:	2f02           	movel %d2,%sp@-                             
   4ba92:	4eb9 0005 9398 	jsr 59398 <__divdi3>                        
   4ba98:	4fef 0010      	lea %sp@(16),%sp                            
   4ba9c:	2401           	movel %d1,%d2                               
  if ( start_offset )  {                                              
   4ba9e:	4a8b           	tstl %a3                                    
   4baa0:	673a           	beqs 4badc <IMFS_memfile_write+0xcc>        
    to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset;            
    if ( to_copy > my_length )                                        
      to_copy = my_length;                                            
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4baa2:	42a7           	clrl %sp@-                                  
   4baa4:	2f01           	movel %d1,%sp@-                             
   4baa6:	2f0a           	movel %a2,%sp@-                             
   4baa8:	4eb9 0004 b480 	jsr 4b480 <IMFS_memfile_get_block_pointer>  
    if ( !block_ptr )                                                 
   4baae:	4fef 000c      	lea %sp@(12),%sp                            
   4bab2:	4a80           	tstl %d0                                    
   4bab4:	6700 00b2      	beqw 4bb68 <IMFS_memfile_write+0x158>       
   *  Phase 1: possibly the last part of one block                    
   */                                                                 
  start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK;                
  block = start / IMFS_MEMFILE_BYTES_PER_BLOCK;                       
  if ( start_offset )  {                                              
    to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset;            
   4bab8:	99cb           	subal %a3,%a4                               
   4baba:	bc8c           	cmpl %a4,%d6                                
   4babc:	6402           	bccs 4bac0 <IMFS_memfile_write+0xb0>        
   4babe:	2846           	moveal %d6,%a4                              
        block,                                                        
        to_copy,                                                      
        src                                                           
      );                                                              
    #endif                                                            
    memcpy( &(*block_ptr)[ start_offset ], src, to_copy );            
   4bac0:	2f0c           	movel %a4,%sp@-                             
   4bac2:	2040           	moveal %d0,%a0                              
    src += to_copy;                                                   
    block++;                                                          
   4bac4:	5282           	addql #1,%d2                                
    my_length -= to_copy;                                             
   4bac6:	9c8c           	subl %a4,%d6                                
        block,                                                        
        to_copy,                                                      
        src                                                           
      );                                                              
    #endif                                                            
    memcpy( &(*block_ptr)[ start_offset ], src, to_copy );            
   4bac8:	2f07           	movel %d7,%sp@-                             
   4baca:	d7d0           	addal %a0@,%a3                              
    src += to_copy;                                                   
   4bacc:	de8c           	addl %a4,%d7                                
        block,                                                        
        to_copy,                                                      
        src                                                           
      );                                                              
    #endif                                                            
    memcpy( &(*block_ptr)[ start_offset ], src, to_copy );            
   4bace:	2f0b           	movel %a3,%sp@-                             
   4bad0:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
    src += to_copy;                                                   
    block++;                                                          
    my_length -= to_copy;                                             
    copied += to_copy;                                                
   4bad6:	4fef 000c      	lea %sp@(12),%sp                            
   4bada:	6002           	bras 4bade <IMFS_memfile_write+0xce>        
    status = IMFS_memfile_extend( the_jnode, last_byte );             
    if ( status )                                                     
      rtems_set_errno_and_return_minus_one( ENOSPC );                 
  }                                                                   
                                                                      
  copied = 0;                                                         
   4badc:	99cc           	subal %a4,%a4                               
                                                                      
  /*                                                                  
   *  Phase 2: all of zero of more blocks                             
   */                                                                 
                                                                      
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
   4bade:	2839 0005 e074 	movel 5e074 <imfs_memfile_bytes_per_block>,%d4
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4bae4:	4bf9 0004 b480 	lea 4b480 <IMFS_memfile_get_block_pointer>,%a5
    if ( !block_ptr )                                                 
      return copied;                                                  
    #if 0                                                             
      fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src );
    #endif                                                            
    memcpy( &(*block_ptr)[ 0 ], src, to_copy );                       
   4baea:	47f9 0004 d37c 	lea 4d37c <memcpy>,%a3                      
  /*                                                                  
   *  Phase 2: all of zero of more blocks                             
   */                                                                 
                                                                      
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
   4baf0:	6026           	bras 4bb18 <IMFS_memfile_write+0x108>       
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4baf2:	42a7           	clrl %sp@-                                  
   4baf4:	2f02           	movel %d2,%sp@-                             
   4baf6:	2f0a           	movel %a2,%sp@-                             
   4baf8:	4e95           	jsr %a5@                                    
    if ( !block_ptr )                                                 
   4bafa:	4fef 000c      	lea %sp@(12),%sp                            
   4bafe:	4a80           	tstl %d0                                    
   4bb00:	6768           	beqs 4bb6a <IMFS_memfile_write+0x15a>       <== NEVER TAKEN
      return copied;                                                  
    #if 0                                                             
      fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src );
    #endif                                                            
    memcpy( &(*block_ptr)[ 0 ], src, to_copy );                       
   4bb02:	2f04           	movel %d4,%sp@-                             
   4bb04:	2040           	moveal %d0,%a0                              
    src += to_copy;                                                   
    block++;                                                          
   4bb06:	5282           	addql #1,%d2                                
    my_length -= to_copy;                                             
   4bb08:	9c84           	subl %d4,%d6                                
 *  IMFS_memfile_write                                                
 *                                                                    
 *  This routine writes the specified data buffer into the in memory  
 *  file pointed to by the_jnode.  The file is extended as needed.    
 */                                                                   
MEMFILE_STATIC ssize_t IMFS_memfile_write(                            
   4bb0a:	d9c4           	addal %d4,%a4                               
    if ( !block_ptr )                                                 
      return copied;                                                  
    #if 0                                                             
      fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src );
    #endif                                                            
    memcpy( &(*block_ptr)[ 0 ], src, to_copy );                       
   4bb0c:	2f07           	movel %d7,%sp@-                             
   4bb0e:	2f10           	movel %a0@,%sp@-                            
    src += to_copy;                                                   
   4bb10:	de84           	addl %d4,%d7                                
    if ( !block_ptr )                                                 
      return copied;                                                  
    #if 0                                                             
      fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src );
    #endif                                                            
    memcpy( &(*block_ptr)[ 0 ], src, to_copy );                       
   4bb12:	4e93           	jsr %a3@                                    
 *  IMFS_memfile_write                                                
 *                                                                    
 *  This routine writes the specified data buffer into the in memory  
 *  file pointed to by the_jnode.  The file is extended as needed.    
 */                                                                   
MEMFILE_STATIC ssize_t IMFS_memfile_write(                            
   4bb14:	4fef 000c      	lea %sp@(12),%sp                            
  /*                                                                  
   *  Phase 2: all of zero of more blocks                             
   */                                                                 
                                                                      
  to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK;                             
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {               
   4bb18:	bcb9 0005 e074 	cmpl 5e074 <imfs_memfile_bytes_per_block>,%d6
   4bb1e:	64d2           	bccs 4baf2 <IMFS_memfile_write+0xe2>        
   *  Phase 3: possibly the first part of one block                   
   */                                                                 
  IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK );            
                                                                      
  to_copy = my_length;                                                
  if ( my_length ) {                                                  
   4bb20:	4a86           	tstl %d6                                    
   4bb22:	6728           	beqs 4bb4c <IMFS_memfile_write+0x13c>       
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
   4bb24:	42a7           	clrl %sp@-                                  
   4bb26:	2f02           	movel %d2,%sp@-                             
   4bb28:	2f0a           	movel %a2,%sp@-                             
   4bb2a:	4eb9 0004 b480 	jsr 4b480 <IMFS_memfile_get_block_pointer>  
    if ( !block_ptr )                                                 
   4bb30:	4fef 000c      	lea %sp@(12),%sp                            
   4bb34:	4a80           	tstl %d0                                    
   4bb36:	6732           	beqs 4bb6a <IMFS_memfile_write+0x15a>       <== NEVER TAKEN
      return copied;                                                  
    #if 0                                                             
    fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src );
    #endif                                                            
    memcpy( &(*block_ptr)[ 0 ], src, my_length );                     
   4bb38:	2f06           	movel %d6,%sp@-                             
   4bb3a:	2040           	moveal %d0,%a0                              
    my_length = 0;                                                    
    copied += to_copy;                                                
   4bb3c:	d9c6           	addal %d6,%a4                               
    if ( !block_ptr )                                                 
      return copied;                                                  
    #if 0                                                             
    fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src );
    #endif                                                            
    memcpy( &(*block_ptr)[ 0 ], src, my_length );                     
   4bb3e:	2f07           	movel %d7,%sp@-                             
   4bb40:	2f10           	movel %a0@,%sp@-                            
   4bb42:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
    my_length = 0;                                                    
    copied += to_copy;                                                
   4bb48:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
                                                                      
  IMFS_mtime_ctime_update( the_jnode );                               
   4bb4c:	42a7           	clrl %sp@-                                  
   4bb4e:	486e fff8      	pea %fp@(-8)                                
   4bb52:	4eb9 0004 2a74 	jsr 42a74 <gettimeofday>                    
   4bb58:	202e fff8      	movel %fp@(-8),%d0                          
                                                                      
  return copied;                                                      
   4bb5c:	508f           	addql #8,%sp                                
    memcpy( &(*block_ptr)[ 0 ], src, my_length );                     
    my_length = 0;                                                    
    copied += to_copy;                                                
  }                                                                   
                                                                      
  IMFS_mtime_ctime_update( the_jnode );                               
   4bb5e:	2540 0040      	movel %d0,%a2@(64)                          
   4bb62:	2540 0044      	movel %d0,%a2@(68)                          
                                                                      
  return copied;                                                      
   4bb66:	6002           	bras 4bb6a <IMFS_memfile_write+0x15a>       
    to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset;            
    if ( to_copy > my_length )                                        
      to_copy = my_length;                                            
    block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 );
    if ( !block_ptr )                                                 
      return copied;                                                  
   4bb68:	99cc           	subal %a4,%a4                               <== NOT EXECUTED
  }                                                                   
                                                                      
  IMFS_mtime_ctime_update( the_jnode );                               
                                                                      
  return copied;                                                      
}                                                                     
   4bb6a:	200c           	movel %a4,%d0                               
   4bb6c:	4cee 3cfc ffd0 	moveml %fp@(-48),%d2-%d7/%a2-%a5            
   4bb72:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004213c <IMFS_mknod>: const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) {
   4213c:	4e56 ffb4      	linkw %fp,#-76                              
   42140:	48d7 003c      	moveml %d2-%d5,%sp@                         
   42144:	262e 0008      	movel %fp@(8),%d3                           
  IMFS_jnode_t      *new_node;                                        
  int                result;                                          
  char               new_name[ IMFS_NAME_MAX + 1 ];                   
  IMFS_types_union   info;                                            
                                                                      
  IMFS_get_token( token, strlen( token ), new_name, &result );        
   42148:	2f03           	movel %d3,%sp@-                             
  const char                        *token,      /* IN */             
  mode_t                             mode,       /* IN */             
  dev_t                              dev,        /* IN */             
  rtems_filesystem_location_info_t  *pathloc     /* IN/OUT */         
)                                                                     
{                                                                     
   4214a:	242e 000c      	movel %fp@(12),%d2                          
  IMFS_jnode_t      *new_node;                                        
  int                result;                                          
  char               new_name[ IMFS_NAME_MAX + 1 ];                   
  IMFS_types_union   info;                                            
                                                                      
  IMFS_get_token( token, strlen( token ), new_name, &result );        
   4214e:	4eb9 0004 df28 	jsr 4df28 <strlen>                          
   42154:	588f           	addql #4,%sp                                
   42156:	486e fffc      	pea %fp@(-4)                                
   4215a:	486e ffc7      	pea %fp@(-57)                               
  const char                        *token,      /* IN */             
  mode_t                             mode,       /* IN */             
  dev_t                              dev,        /* IN */             
  rtems_filesystem_location_info_t  *pathloc     /* IN/OUT */         
)                                                                     
{                                                                     
   4215e:	2a2e 0010      	movel %fp@(16),%d5                          
  IMFS_jnode_t      *new_node;                                        
  int                result;                                          
  char               new_name[ IMFS_NAME_MAX + 1 ];                   
  IMFS_types_union   info;                                            
                                                                      
  IMFS_get_token( token, strlen( token ), new_name, &result );        
   42162:	2f00           	movel %d0,%sp@-                             
  const char                        *token,      /* IN */             
  mode_t                             mode,       /* IN */             
  dev_t                              dev,        /* IN */             
  rtems_filesystem_location_info_t  *pathloc     /* IN/OUT */         
)                                                                     
{                                                                     
   42164:	282e 0014      	movel %fp@(20),%d4                          
  IMFS_jnode_t      *new_node;                                        
  int                result;                                          
  char               new_name[ IMFS_NAME_MAX + 1 ];                   
  IMFS_types_union   info;                                            
                                                                      
  IMFS_get_token( token, strlen( token ), new_name, &result );        
   42168:	2f03           	movel %d3,%sp@-                             
   4216a:	4eb9 0004 9608 	jsr 49608 <IMFS_get_token>                  
                                                                      
  /*                                                                  
   *  Figure out what type of IMFS node this is.                      
   */                                                                 
  if ( S_ISDIR(mode) )                                                
   42170:	4fef 0010      	lea %sp@(16),%sp                            
   42174:	2002           	movel %d2,%d0                               
   42176:	0280 0000 f000 	andil #61440,%d0                            
   4217c:	0c80 0000 4000 	cmpil #16384,%d0                            
   42182:	6730           	beqs 421b4 <IMFS_mknod+0x78>                
    type = IMFS_DIRECTORY;                                            
  else if ( S_ISREG(mode) )                                           
   42184:	0c80 0000 8000 	cmpil #32768,%d0                            
   4218a:	672c           	beqs 421b8 <IMFS_mknod+0x7c>                
    type = IMFS_MEMORY_FILE;                                          
  else if ( S_ISBLK(mode) || S_ISCHR(mode) ) {                        
   4218c:	0c80 0000 6000 	cmpil #24576,%d0                            
   42192:	6708           	beqs 4219c <IMFS_mknod+0x60>                
   42194:	0c80 0000 2000 	cmpil #8192,%d0                             
   4219a:	660c           	bnes 421a8 <IMFS_mknod+0x6c>                
    type = IMFS_DEVICE;                                               
    rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor );
   4219c:	2d45 ffe8      	movel %d5,%fp@(-24)                         
  if ( S_ISDIR(mode) )                                                
    type = IMFS_DIRECTORY;                                            
  else if ( S_ISREG(mode) )                                           
    type = IMFS_MEMORY_FILE;                                          
  else if ( S_ISBLK(mode) || S_ISCHR(mode) ) {                        
    type = IMFS_DEVICE;                                               
   421a0:	7002           	moveq #2,%d0                                
    rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor );
   421a2:	2d44 ffec      	movel %d4,%fp@(-20)                         
   421a6:	6016           	bras 421be <IMFS_mknod+0x82>                
  } else if (S_ISFIFO(mode))                                          
   421a8:	0c80 0000 1000 	cmpil #4096,%d0                             
   421ae:	670c           	beqs 421bc <IMFS_mknod+0x80>                <== ALWAYS TAKEN
  mode_t                             mode,       /* IN */             
  dev_t                              dev,        /* IN */             
  rtems_filesystem_location_info_t  *pathloc     /* IN/OUT */         
)                                                                     
{                                                                     
  IMFS_token_types   type = 0;                                        
   421b0:	4280           	clrl %d0                                    <== NOT EXECUTED
   421b2:	600a           	bras 421be <IMFS_mknod+0x82>                <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Figure out what type of IMFS node this is.                      
   */                                                                 
  if ( S_ISDIR(mode) )                                                
    type = IMFS_DIRECTORY;                                            
   421b4:	7001           	moveq #1,%d0                                
   421b6:	6006           	bras 421be <IMFS_mknod+0x82>                
  else if ( S_ISREG(mode) )                                           
    type = IMFS_MEMORY_FILE;                                          
   421b8:	7005           	moveq #5,%d0                                
   421ba:	6002           	bras 421be <IMFS_mknod+0x82>                
  else if ( S_ISBLK(mode) || S_ISCHR(mode) ) {                        
    type = IMFS_DEVICE;                                               
    rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor );
  } else if (S_ISFIFO(mode))                                          
    type = IMFS_FIFO;                                                 
   421bc:	7007           	moveq #7,%d0                                
   *        was ONLY passed a NULL when we created the root node.  We 
   *        added a new IMFS_create_root_node() so this path no longer
   *        existed.  The result was simpler code which should not have
   *        this path.                                                
   */                                                                 
  new_node = IMFS_create_node( pathloc, type, new_name, mode, &info );
   421be:	486e ffe8      	pea %fp@(-24)                               
   421c2:	2f02           	movel %d2,%sp@-                             
   421c4:	486e ffc7      	pea %fp@(-57)                               
   421c8:	2f00           	movel %d0,%sp@-                             
   421ca:	2f2e 0018      	movel %fp@(24),%sp@-                        
   421ce:	4eb9 0004 8d6e 	jsr 48d6e <IMFS_create_node>                
  if ( !new_node )                                                    
   421d4:	4fef 0014      	lea %sp@(20),%sp                            
   421d8:	4a80           	tstl %d0                                    
   421da:	6610           	bnes 421ec <IMFS_mknod+0xb0>                
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
   421dc:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   421e2:	2040           	moveal %d0,%a0                              
   421e4:	700c           	moveq #12,%d0                               
   421e6:	2080           	movel %d0,%a0@                              
   421e8:	70ff           	moveq #-1,%d0                               
   421ea:	6002           	bras 421ee <IMFS_mknod+0xb2>                
                                                                      
  return 0;                                                           
   421ec:	4280           	clrl %d0                                    
}                                                                     
   421ee:	4cee 003c ffb4 	moveml %fp@(-76),%d2-%d5                    
   421f4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000421f8 <IMFS_mount>: /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY )
   421f8:	7001           	moveq #1,%d0                                
#include <rtems/seterr.h>                                             
                                                                      
int IMFS_mount(                                                       
  rtems_filesystem_mount_table_entry_t *mt_entry                      
)                                                                     
{                                                                     
   421fa:	4e56 0000      	linkw %fp,#0                                
   421fe:	226e 0008      	moveal %fp@(8),%a1                          
  IMFS_jnode_t  *node;                                                
                                                                      
  node = mt_entry->mt_point_node.node_access;                         
   42202:	2069 0008      	moveal %a1@(8),%a0                          
                                                                      
  /*                                                                  
   *  Is the node that we are mounting onto a directory node ?        
   */                                                                 
                                                                      
  if ( node->type != IMFS_DIRECTORY )                                 
   42206:	b0a8 0048      	cmpl %a0@(72),%d0                           
   4220a:	6710           	beqs 4221c <IMFS_mount+0x24>                <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( ENOTDIR );                  
   4220c:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   42212:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   42214:	7014           	moveq #20,%d0                               <== NOT EXECUTED
   42216:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   42218:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
   4221a:	6006           	bras 42222 <IMFS_mount+0x2a>                <== NOT EXECUTED
  /*                                                                  
   *  Set mt_fs pointer to point to the mount table entry for         
   *  the mounted file system.                                        
   */                                                                 
                                                                      
  node->info.directory.mt_fs = mt_entry;                              
   4221c:	2149 0058      	movel %a1,%a0@(88)                          
  return 0;                                                           
   42220:	4280           	clrl %d0                                    
}                                                                     
   42222:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00044898 <IMFS_print_jnode>: * This routine prints the contents of the specified jnode. */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) {
   44898:	4e56 0000      	linkw %fp,#0                                
  IMFS_assert( the_jnode );                                           
                                                                      
  fprintf(stdout, "%s", the_jnode->name );                            
   4489c:	2079 0006 2dec 	moveal 62dec <_impure_ptr>,%a0              
 *  This routine prints the contents of the specified jnode.          
 */                                                                   
void IMFS_print_jnode(                                                
  IMFS_jnode_t *the_jnode                                             
)                                                                     
{                                                                     
   448a2:	2f0a           	movel %a2,%sp@-                             
   448a4:	246e 0008      	moveal %fp@(8),%a2                          
   448a8:	2f02           	movel %d2,%sp@-                             
  IMFS_assert( the_jnode );                                           
                                                                      
  fprintf(stdout, "%s", the_jnode->name );                            
   448aa:	2f28 0008      	movel %a0@(8),%sp@-                         
  switch( the_jnode->type ) {                                         
   448ae:	7406           	moveq #6,%d2                                
  IMFS_jnode_t *the_jnode                                             
)                                                                     
{                                                                     
  IMFS_assert( the_jnode );                                           
                                                                      
  fprintf(stdout, "%s", the_jnode->name );                            
   448b0:	486a 000c      	pea %a2@(12)                                
   448b4:	4eb9 0005 0df4 	jsr 50df4 <fputs>                           
  switch( the_jnode->type ) {                                         
   448ba:	202a 0048      	movel %a2@(72),%d0                          
   448be:	2200           	movel %d0,%d1                               
   448c0:	508f           	addql #8,%sp                                
   448c2:	5381           	subql #1,%d1                                
   448c4:	b481           	cmpl %d1,%d2                                
   448c6:	6500 009c      	bcsw 44964 <IMFS_print_jnode+0xcc>          
   448ca:	2079 0006 2dec 	moveal 62dec <_impure_ptr>,%a0              
   448d0:	303b 1a08      	movew %pc@(448da <IMFS_print_jnode+0x42>,%d1:l:2),%d0
   448d4:	48c0           	extl %d0                                    
   448d6:	4efb 0802      	jmp %pc@(448da <IMFS_print_jnode+0x42>,%d0:l)
   448da:	000e           	.short 0x000e                               <== NOT EXECUTED
   448dc:	0022           	.short 0x0022                               <== NOT EXECUTED
   448de:	006a           	.short 0x006a                               <== NOT EXECUTED
   448e0:	006a           	.short 0x006a                               <== NOT EXECUTED
   448e2:	0050           	.short 0x0050                               <== NOT EXECUTED
   448e4:	0032           	.short 0x0032                               <== NOT EXECUTED
   448e6:	0076           	.short 0x0076                               <== NOT EXECUTED
    case IMFS_DIRECTORY:                                              
      fprintf(stdout, "/" );                                          
   448e8:	2f28 0008      	movel %a0@(8),%sp@-                         
   448ec:	4878 002f      	pea 2f <OPER2+0x1b>                         
   448f0:	4eb9 0005 0d24 	jsr 50d24 <fputc>                           
      break;                                                          
   448f6:	508f           	addql #8,%sp                                
   448f8:	6000 0088      	braw 44982 <IMFS_print_jnode+0xea>          
                                                                      
    case IMFS_DEVICE:                                                 
      fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")",           
   448fc:	2f2a 0050      	movel %a2@(80),%sp@-                        
   44900:	2f2a 004c      	movel %a2@(76),%sp@-                        
   44904:	4879 0006 1454 	pea 61454 <IntUartPollCallbacks.6374+0x20>  
   4490a:	600e           	bras 4491a <IMFS_print_jnode+0x82>          
        the_jnode->info.device.major, the_jnode->info.device.minor ); 
      break;                                                          
                                                                      
    case IMFS_LINEAR_FILE:                                            
      fprintf(stdout, " (file %" PRId32 " %p)",                       
   4490c:	2f2a 0054      	movel %a2@(84),%sp@-                        
   44910:	2f2a 0050      	movel %a2@(80),%sp@-                        
   44914:	4879 0006 1467 	pea 61467 <IntUartPollCallbacks.6374+0x33>  
   4491a:	2f28 0008      	movel %a0@(8),%sp@-                         
   4491e:	4eb9 0005 0ca6 	jsr 50ca6 <fprintf>                         
        (uint32_t)the_jnode->info.linearfile.size,                    
        the_jnode->info.linearfile.direct                             
      );                                                              
      break;                                                          
   44924:	4fef 0010      	lea %sp@(16),%sp                            
   44928:	6058           	bras 44982 <IMFS_print_jnode+0xea>          
        the_jnode->info.file.indirect,                                
        the_jnode->info.file.doubly_indirect,                         
        the_jnode->info.file.triply_indirect                          
      );                                                              
#else                                                                 
      fprintf(stdout, " (file %" PRId32 ")",                          
   4492a:	2f2a 0050      	movel %a2@(80),%sp@-                        
   4492e:	4879 0006 1476 	pea 61476 <IntUartPollCallbacks.6374+0x42>  
   44934:	2f28 0008      	movel %a0@(8),%sp@-                         
   44938:	4eb9 0005 0ca6 	jsr 50ca6 <fprintf>                         
        (uint32_t)the_jnode->info.file.size );                        
#endif                                                                
      break;                                                          
   4493e:	4fef 000c      	lea %sp@(12),%sp                            
   44942:	603e           	bras 44982 <IMFS_print_jnode+0xea>          
    case IMFS_HARD_LINK:                                              
      fprintf(stdout, " links not printed\n" );                       
      return;                                                         
                                                                      
    case IMFS_SYM_LINK:                                               
      fprintf(stdout, " links not printed\n" );                       
   44944:	2f28 0008      	movel %a0@(8),%sp@-                         
   44948:	4879 0006 1482 	pea 61482 <IntUartPollCallbacks.6374+0x4e>  
   4494e:	600a           	bras 4495a <IMFS_print_jnode+0xc2>          
      return;                                                         
                                                                      
    case IMFS_FIFO:                                                   
      fprintf(stdout, " FIFO not printed\n" );                        
   44950:	2f28 0008      	movel %a0@(8),%sp@-                         
   44954:	4879 0006 1496 	pea 61496 <IntUartPollCallbacks.6374+0x62>  
   4495a:	4eb9 0005 0df4 	jsr 50df4 <fputs>                           
      return;                                                         
   44960:	508f           	addql #8,%sp                                
   44962:	6038           	bras 4499c <IMFS_print_jnode+0x104>         
                                                                      
    default:                                                          
      fprintf(stdout, " bad type %d\n", the_jnode->type );            
   44964:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   44966:	4879 0006 14a9 	pea 614a9 <IntUartPollCallbacks.6374+0x75>  <== NOT EXECUTED
   4496c:	2079 0006 2dec 	moveal 62dec <_impure_ptr>,%a0              <== NOT EXECUTED
   44972:	2f28 0008      	movel %a0@(8),%sp@-                         <== NOT EXECUTED
   44976:	4eb9 0005 0ca6 	jsr 50ca6 <fprintf>                         <== NOT EXECUTED
      return;                                                         
   4497c:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   44980:	601a           	bras 4499c <IMFS_print_jnode+0x104>         <== NOT EXECUTED
  }                                                                   
  puts("");                                                           
}                                                                     
   44982:	242e fff8      	movel %fp@(-8),%d2                          
                                                                      
    default:                                                          
      fprintf(stdout, " bad type %d\n", the_jnode->type );            
      return;                                                         
  }                                                                   
  puts("");                                                           
   44986:	203c 0006 1b5c 	movel #400220,%d0                           
}                                                                     
   4498c:	246e fffc      	moveal %fp@(-4),%a2                         
                                                                      
    default:                                                          
      fprintf(stdout, " bad type %d\n", the_jnode->type );            
      return;                                                         
  }                                                                   
  puts("");                                                           
   44990:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   44994:	4e5e           	unlk %fp                                    
                                                                      
    default:                                                          
      fprintf(stdout, " bad type %d\n", the_jnode->type );            
      return;                                                         
  }                                                                   
  puts("");                                                           
   44996:	4ef9 0005 25c2 	jmp 525c2 <puts>                            
}                                                                     
   4499c:	242e fff8      	movel %fp@(-8),%d2                          
   449a0:	246e fffc      	moveal %fp@(-4),%a2                         
   449a4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00042270 <IMFS_rename>: rtems_filesystem_location_info_t *old_parent_loc, /* IN */ rtems_filesystem_location_info_t *old_loc, /* IN */ rtems_filesystem_location_info_t *new_parent_loc, /* IN */ const char *new_name /* IN */ ) {
   42270:	4e56 fff8      	linkw %fp,#-8                               
  IMFS_jnode_t *the_jnode;                                            
  IMFS_jnode_t *new_parent;                                           
                                                                      
  the_jnode = old_loc->node_access;                                   
   42274:	206e 000c      	moveal %fp@(12),%a0                         
  rtems_filesystem_location_info_t  *old_parent_loc,  /* IN */        
  rtems_filesystem_location_info_t  *old_loc,         /* IN */        
  rtems_filesystem_location_info_t  *new_parent_loc,  /* IN */        
  const char                        *new_name         /* IN */        
)                                                                     
{                                                                     
   42278:	2f0a           	movel %a2,%sp@-                             
  IMFS_jnode_t *the_jnode;                                            
  IMFS_jnode_t *new_parent;                                           
                                                                      
  the_jnode = old_loc->node_access;                                   
   4227a:	2450           	moveal %a0@,%a2                             
                                                                      
  strncpy( the_jnode->name, new_name, IMFS_NAME_MAX );                
   4227c:	4878 0020      	pea 20 <OPER2+0xc>                          
   42280:	2f2e 0014      	movel %fp@(20),%sp@-                        
   42284:	486a 000c      	pea %a2@(12)                                
   42288:	4eb9 0004 df40 	jsr 4df40 <strncpy>                         
                                                                      
  if ( the_jnode->Parent != NULL )                                    
   4228e:	4fef 000c      	lea %sp@(12),%sp                            
   42292:	4aaa 0008      	tstl %a2@(8)                                
   42296:	670a           	beqs 422a2 <IMFS_rename+0x32>               <== NEVER TAKEN
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
   42298:	2f0a           	movel %a2,%sp@-                             
   4229a:	4eb9 0004 6240 	jsr 46240 <_Chain_Extract>                  
   422a0:	588f           	addql #4,%sp                                
    rtems_chain_extract( (rtems_chain_node *) the_jnode );            
                                                                      
  new_parent = new_parent_loc->node_access;                           
   422a2:	206e 0010      	moveal %fp@(16),%a0                         
   422a6:	2050           	moveal %a0@,%a0                             
  the_jnode->Parent = new_parent;                                     
   422a8:	2548 0008      	movel %a0,%a2@(8)                           
RTEMS_INLINE_ROUTINE void rtems_chain_append(                         
  rtems_chain_control *the_chain,                                     
  rtems_chain_node    *the_node                                       
)                                                                     
{                                                                     
  _Chain_Append( the_chain, the_node );                               
   422ac:	2f0a           	movel %a2,%sp@-                             
   422ae:	4868 004c      	pea %a0@(76)                                
   422b2:	4eb9 0004 6208 	jsr 46208 <_Chain_Append>                   
  rtems_chain_append( &new_parent->info.directory.Entries, &the_jnode->Node );
                                                                      
  /*                                                                  
   * Update the time.                                                 
   */                                                                 
  IMFS_update_ctime( the_jnode );                                     
   422b8:	42a7           	clrl %sp@-                                  
   422ba:	486e fff8      	pea %fp@(-8)                                
   422be:	4eb9 0004 2a74 	jsr 42a74 <gettimeofday>                    
   422c4:	256e fff8 0044 	movel %fp@(-8),%a2@(68)                     
                                                                      
  return 0;                                                           
}                                                                     
   422ca:	4280           	clrl %d0                                    
   422cc:	246e fff4      	moveal %fp@(-12),%a2                        
   422d0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00049794 <IMFS_stat>: IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) {
   49794:	7205           	moveq #5,%d1                                
                                                                      
int IMFS_stat(                                                        
  rtems_filesystem_location_info_t *loc,                              
  struct stat                      *buf                               
)                                                                     
{                                                                     
   49796:	4e56 0000      	linkw %fp,#0                                
   4979a:	206e 000c      	moveal %fp@(12),%a0                         
   4979e:	2f0a           	movel %a2,%sp@-                             
   497a0:	246e 0008      	moveal %fp@(8),%a2                          
  IMFS_fs_info_t *fs_info;                                            
  IMFS_jnode_t   *the_jnode;                                          
  IMFS_device_t  *io;                                                 
                                                                      
  the_jnode = loc->node_access;                                       
   497a4:	2252           	moveal %a2@,%a1                             
                                                                      
                                                                      
  switch ( the_jnode->type ) {                                        
   497a6:	2029 0048      	movel %a1@(72),%d0                          
   497aa:	5580           	subql #2,%d0                                
   497ac:	b280           	cmpl %d0,%d1                                
   497ae:	653e           	bcss 497ee <IMFS_stat+0x5a>                 <== NEVER TAKEN
   497b0:	303b 0a08      	movew %pc@(497ba <IMFS_stat+0x26>,%d0:l:2),%d0
   497b4:	48c0           	extl %d0                                    
   497b6:	4efb 0802      	jmp %pc@(497ba <IMFS_stat+0x26>,%d0:l)      
   497ba:	000c           	.short 0x000c                               <== NOT EXECUTED
   497bc:	0034           	.short 0x0034                               <== NOT EXECUTED
   497be:	0026           	.short 0x0026                               <== NOT EXECUTED
   497c0:	001c           	.short 0x001c                               <== NOT EXECUTED
   497c2:	001c           	.short 0x001c                               <== NOT EXECUTED
   497c4:	0026           	.short 0x0026                               <== NOT EXECUTED
                                                                      
    case IMFS_DEVICE:                                                 
      io           = &the_jnode->info.device;                         
      buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor );
   497c6:	2029 0050      	movel %a1@(80),%d0                          
   497ca:	2169 004c 0016 	movel %a1@(76),%a0@(22)                     
   497d0:	2140 001a      	movel %d0,%a0@(26)                          
      break;                                                          
   497d4:	602a           	bras 49800 <IMFS_stat+0x6c>                 
                                                                      
    case IMFS_LINEAR_FILE:                                            
    case IMFS_MEMORY_FILE:                                            
      buf->st_size = the_jnode->info.file.size;                       
   497d6:	2029 004c      	movel %a1@(76),%d0                          
   497da:	2229 0050      	movel %a1@(80),%d1                          
   497de:	6004           	bras 497e4 <IMFS_stat+0x50>                 
    case IMFS_SYM_LINK:                                               
      buf->st_size = 0;                                               
      break;                                                          
                                                                      
    case IMFS_FIFO:                                                   
      buf->st_size = 0;                                               
   497e0:	4280           	clrl %d0                                    
   497e2:	4281           	clrl %d1                                    
   497e4:	2140 001e      	movel %d0,%a0@(30)                          
   497e8:	2141 0022      	movel %d1,%a0@(34)                          
      break;                                                          
   497ec:	6012           	bras 49800 <IMFS_stat+0x6c>                 
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( ENOTSUP );                
   497ee:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   497f4:	2040           	moveal %d0,%a0                              
   497f6:	70ff           	moveq #-1,%d0                               
   497f8:	20bc 0000 0086 	movel #134,%a0@                             
   497fe:	6046           	bras 49846 <IMFS_stat+0xb2>                 
                                                                      
  /*                                                                  
   * The device number of the IMFS is the major number and the minor is the
   * instance.                                                        
   */                                                                 
  fs_info = loc->mt_entry->fs_info;                                   
   49800:	246a 0010      	moveal %a2@(16),%a2                         
  buf->st_dev =                                                       
    rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance );
   49804:	246a 0034      	moveal %a2@(52),%a2                         
   49808:	2012           	movel %a2@,%d0                              
                                                                      
  buf->st_mode  = the_jnode->st_mode;                                 
   4980a:	2169 002e 000c 	movel %a1@(46),%a0@(12)                     
  buf->st_nlink = the_jnode->st_nlink;                                
   49810:	3169 0032 0010 	movew %a1@(50),%a0@(16)                     
  buf->st_ino   = the_jnode->st_ino;                                  
   49816:	2169 0034 0008 	movel %a1@(52),%a0@(8)                      
  buf->st_uid   = the_jnode->st_uid;                                  
   4981c:	3169 0038 0012 	movew %a1@(56),%a0@(18)                     
  buf->st_gid   = the_jnode->st_gid;                                  
   49822:	3169 003a 0014 	movew %a1@(58),%a0@(20)                     
                                                                      
  buf->st_atime = the_jnode->stat_atime;                              
   49828:	2169 003c 0026 	movel %a1@(60),%a0@(38)                     
  buf->st_mtime = the_jnode->stat_mtime;                              
   4982e:	2169 0040 002e 	movel %a1@(64),%a0@(46)                     
  buf->st_ctime = the_jnode->stat_ctime;                              
   49834:	2169 0044 0036 	movel %a1@(68),%a0@(54)                     
  /*                                                                  
   * The device number of the IMFS is the major number and the minor is the
   * instance.                                                        
   */                                                                 
  fs_info = loc->mt_entry->fs_info;                                   
  buf->st_dev =                                                       
   4983a:	2140 0004      	movel %d0,%a0@(4)                           
                                                                      
  buf->st_atime = the_jnode->stat_atime;                              
  buf->st_mtime = the_jnode->stat_mtime;                              
  buf->st_ctime = the_jnode->stat_ctime;                              
                                                                      
  return 0;                                                           
   4983e:	4280           	clrl %d0                                    
  /*                                                                  
   * The device number of the IMFS is the major number and the minor is the
   * instance.                                                        
   */                                                                 
  fs_info = loc->mt_entry->fs_info;                                   
  buf->st_dev =                                                       
   49840:	20bc 0000 fffe 	movel #65534,%a0@                           
  buf->st_atime = the_jnode->stat_atime;                              
  buf->st_mtime = the_jnode->stat_mtime;                              
  buf->st_ctime = the_jnode->stat_ctime;                              
                                                                      
  return 0;                                                           
}                                                                     
   49846:	246e fffc      	moveal %fp@(-4),%a2                         
   4984a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00042370 <IMFS_unlink>: /* * If this is the last last pointer to the node * free the node. */ if ( node->type == IMFS_HARD_LINK ) {
   42370:	7003           	moveq #3,%d0                                
                                                                      
int IMFS_unlink(                                                      
  rtems_filesystem_location_info_t  *parentloc, /* IN */              
  rtems_filesystem_location_info_t  *loc        /* IN */              
)                                                                     
{                                                                     
   42372:	4e56 ffd0      	linkw %fp,#-48                              
   42376:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   4237a:	246e 000c      	moveal %fp@(12),%a2                         
   4237e:	262e 0008      	movel %fp@(8),%d3                           
  IMFS_jnode_t                      *node;                            
  rtems_filesystem_location_info_t   the_link;                        
  int                                result = 0;                      
                                                                      
  node = loc->node_access;                                            
   42382:	2652           	moveal %a2@,%a3                             
  /*                                                                  
   * If this is the last last pointer to the node                     
   * free the node.                                                   
   */                                                                 
                                                                      
  if ( node->type == IMFS_HARD_LINK ) {                               
   42384:	b0ab 0048      	cmpl %a3@(72),%d0                           
   42388:	6600 0082      	bnew 4240c <IMFS_unlink+0x9c>               
                                                                      
    if ( !node->info.hard_link.link_node )                            
   4238c:	282b 004c      	movel %a3@(76),%d4                          
   42390:	660e           	bnes 423a0 <IMFS_unlink+0x30>               <== ALWAYS TAKEN
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   42392:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   42398:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4239a:	7016           	moveq #22,%d0                               <== NOT EXECUTED
   4239c:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   4239e:	607e           	bras 4241e <IMFS_unlink+0xae>               <== NOT EXECUTED
                                                                      
    the_link = *loc;                                                  
   423a0:	4878 0014      	pea 14 <OPER2>                              
   423a4:	240e           	movel %fp,%d2                               
   423a6:	0682 ffff ffe4 	addil #-28,%d2                              
   423ac:	2f0a           	movel %a2,%sp@-                             
   423ae:	2f02           	movel %d2,%sp@-                             
   423b0:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
    the_link.node_access = node->info.hard_link.link_node;            
   423b6:	2d44 ffe4      	movel %d4,%fp@(-28)                         
    /*                                                                
     *  If removing the last hard link to a node, then we need        
     *  to remove the node that is a link and the node itself.        
     */                                                               
                                                                      
    if ( node->info.hard_link.link_node->st_nlink == 1)               
   423ba:	7801           	moveq #1,%d4                                
    if ( !node->info.hard_link.link_node )                            
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    the_link = *loc;                                                  
    the_link.node_access = node->info.hard_link.link_node;            
    IMFS_Set_handlers( &the_link );                                   
   423bc:	2f02           	movel %d2,%sp@-                             
   423be:	4eb9 0004 8ebc 	jsr 48ebc <IMFS_Set_handlers>               
    /*                                                                
     *  If removing the last hard link to a node, then we need        
     *  to remove the node that is a link and the node itself.        
     */                                                               
                                                                      
    if ( node->info.hard_link.link_node->st_nlink == 1)               
   423c4:	206b 004c      	moveal %a3@(76),%a0                         
   423c8:	4281           	clrl %d1                                    
   423ca:	4fef 0010      	lea %sp@(16),%sp                            
   423ce:	3028 0032      	movew %a0@(50),%d0                          
   423d2:	3200           	movew %d0,%d1                               
   423d4:	b881           	cmpl %d1,%d4                                
   423d6:	6616           	bnes 423ee <IMFS_unlink+0x7e>               
    {                                                                 
        result = (*the_link.handlers->rmnod_h)( parentloc, &the_link );
   423d8:	2f02           	movel %d2,%sp@-                             
   423da:	206e ffec      	moveal %fp@(-20),%a0                        
   423de:	2f03           	movel %d3,%sp@-                             
   423e0:	2068 0034      	moveal %a0@(52),%a0                         
   423e4:	4e90           	jsr %a0@                                    
        if ( result != 0 )                                            
   423e6:	508f           	addql #8,%sp                                
   423e8:	4a80           	tstl %d0                                    
   423ea:	6720           	beqs 4240c <IMFS_unlink+0x9c>               
   423ec:	6030           	bras 4241e <IMFS_unlink+0xae>               
            return -1;                                                
    }                                                                 
    else                                                              
    {                                                                 
        node->info.hard_link.link_node->st_nlink --;                  
   423ee:	5380           	subql #1,%d0                                
   423f0:	3140 0032      	movew %d0,%a0@(50)                          
        IMFS_update_ctime( node->info.hard_link.link_node );          
   423f4:	42a7           	clrl %sp@-                                  
   423f6:	486e fff8      	pea %fp@(-8)                                
   423fa:	4eb9 0004 2a74 	jsr 42a74 <gettimeofday>                    
   42400:	206b 004c      	moveal %a3@(76),%a0                         
   42404:	508f           	addql #8,%sp                                
   42406:	216e fff8 0044 	movel %fp@(-8),%a0@(68)                     
                                                                      
  /*                                                                  
   *  Now actually free the node we were asked to free.               
   */                                                                 
                                                                      
  result = (*loc->handlers->rmnod_h)( parentloc, loc );               
   4240c:	206a 0008      	moveal %a2@(8),%a0                          
   42410:	2f0a           	movel %a2,%sp@-                             
   42412:	2f03           	movel %d3,%sp@-                             
   42414:	2068 0034      	moveal %a0@(52),%a0                         
   42418:	4e90           	jsr %a0@                                    
                                                                      
  return result;                                                      
   4241a:	508f           	addql #8,%sp                                
   4241c:	6002           	bras 42420 <IMFS_unlink+0xb0>               
                                                                      
    if ( node->info.hard_link.link_node->st_nlink == 1)               
    {                                                                 
        result = (*the_link.handlers->rmnod_h)( parentloc, &the_link );
        if ( result != 0 )                                            
            return -1;                                                
   4241e:	70ff           	moveq #-1,%d0                               
   */                                                                 
                                                                      
  result = (*loc->handlers->rmnod_h)( parentloc, loc );               
                                                                      
  return result;                                                      
}                                                                     
   42420:	4cee 0c1c ffd0 	moveml %fp@(-48),%d2-%d4/%a2-%a3            
   42426:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004242c <IMFS_unmount>: /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY )
   4242c:	7001           	moveq #1,%d0                                
#include <rtems/seterr.h>                                             
                                                                      
int IMFS_unmount(                                                     
  rtems_filesystem_mount_table_entry_t *mt_entry                      
)                                                                     
{                                                                     
   4242e:	4e56 0000      	linkw %fp,#0                                
  IMFS_jnode_t  *node;                                                
                                                                      
  node = mt_entry->mt_point_node.node_access;                         
   42432:	206e 0008      	moveal %fp@(8),%a0                          
   42436:	2068 0008      	moveal %a0@(8),%a0                          
                                                                      
  /*                                                                  
   * Is the node that we are mounting onto a directory node ?         
   */                                                                 
                                                                      
  if ( node->type != IMFS_DIRECTORY )                                 
   4243a:	b0a8 0048      	cmpl %a0@(72),%d0                           
   4243e:	670e           	beqs 4244e <IMFS_unmount+0x22>              <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( ENOTDIR );                  
   42440:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   42446:	7214           	moveq #20,%d1                               <== NOT EXECUTED
   42448:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4244a:	2081           	movel %d1,%a0@                              <== NOT EXECUTED
   4244c:	6012           	bras 42460 <IMFS_unmount+0x34>              <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Did the node indicate that there was a directory mounted here?   
   */                                                                 
                                                                      
  if ( node->info.directory.mt_fs == NULL )                           
   4244e:	4aa8 0058      	tstl %a0@(88)                               
   42452:	6610           	bnes 42464 <IMFS_unmount+0x38>              <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );  /* XXX */        
   42454:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   4245a:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4245c:	7016           	moveq #22,%d0                               <== NOT EXECUTED
   4245e:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   42460:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
   42462:	6006           	bras 4246a <IMFS_unmount+0x3e>              <== NOT EXECUTED
  /*                                                                  
   * Set the mt_fs pointer to indicate that there is no longer        
   * a file system mounted to this point.                             
   */                                                                 
                                                                      
  node->info.directory.mt_fs = NULL;                                  
   42464:	42a8 0058      	clrl %a0@(88)                               
                                                                      
  return 0;                                                           
   42468:	4280           	clrl %d0                                    
}                                                                     
   4246a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00042554 <Stack_check_Dump_threads_usage>: /* * Obtain interrupt stack information */ #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE) if (the_thread == (Thread_Control *) -1) {
   42554:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
static rtems_printk_plugin_t   print_handler;                         
                                                                      
void Stack_check_Dump_threads_usage(                                  
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
   42556:	4e56 ffe0      	linkw %fp,#-32                              <== NOT EXECUTED
   4255a:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 <== NOT EXECUTED
   4255e:	246e 0008      	moveal %fp@(8),%a2                          <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Obtain interrupt stack information                              
   */                                                                 
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    if (the_thread == (Thread_Control *) -1) {                        
   42562:	b08a           	cmpl %a2,%d0                                <== NOT EXECUTED
   42564:	6616           	bnes 4257c <Stack_check_Dump_threads_usage+0x28><== NOT EXECUTED
      if (!Stack_check_Interrupt_stack.area)                          
   42566:	4ab9 0006 12d8 	tstl 612d8 <Stack_check_Interrupt_stack+0x4><== NOT EXECUTED
   4256c:	6700 00fe      	beqw 4266c <Stack_check_Dump_threads_usage+0x118><== NOT EXECUTED
        return;                                                       
      stack = &Stack_check_Interrupt_stack;                           
   42570:	49f9 0006 12d4 	lea 612d4 <Stack_check_Interrupt_stack>,%a4 <== NOT EXECUTED
      the_thread = 0;                                                 
      current = 0;                                                    
   42576:	4284           	clrl %d4                                    <== NOT EXECUTED
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    if (the_thread == (Thread_Control *) -1) {                        
      if (!Stack_check_Interrupt_stack.area)                          
        return;                                                       
      stack = &Stack_check_Interrupt_stack;                           
      the_thread = 0;                                                 
   42578:	95ca           	subal %a2,%a2                               <== NOT EXECUTED
   4257a:	6008           	bras 42584 <Stack_check_Dump_threads_usage+0x30><== NOT EXECUTED
      current = 0;                                                    
    } else                                                            
  #endif                                                              
    {                                                                 
      stack  = &the_thread->Start.Initial_stack;                      
      current = (void *)_CPU_Context_Get_SP( &the_thread->Registers );
   4257c:	282a 00f2      	movel %a2@(242),%d4                         <== NOT EXECUTED
      the_thread = 0;                                                 
      current = 0;                                                    
    } else                                                            
  #endif                                                              
    {                                                                 
      stack  = &the_thread->Start.Initial_stack;                      
   42580:	49ea 00b2      	lea %a2@(178),%a4                           <== NOT EXECUTED
      current = (void *)_CPU_Context_Get_SP( &the_thread->Registers );
    }                                                                 
                                                                      
  low  = Stack_check_usable_stack_start(stack);                       
  size = Stack_check_usable_stack_size(stack);                        
   42584:	2614           	movel %a4@,%d3                              <== NOT EXECUTED
     * start at lower memory and find first word that does not        
     * match pattern                                                  
     */                                                               
                                                                      
    base += PATTERN_SIZE_WORDS;                                       
    for (ebase = base + length; base < ebase; base++)                 
   42586:	70fc           	moveq #-4,%d0                               <== NOT EXECUTED
      stack  = &the_thread->Start.Initial_stack;                      
      current = (void *)_CPU_Context_Get_SP( &the_thread->Registers );
    }                                                                 
                                                                      
  low  = Stack_check_usable_stack_start(stack);                       
  size = Stack_check_usable_stack_size(stack);                        
   42588:	0683 ffff fff0 	addil #-16,%d3                              <== NOT EXECUTED
    {                                                                 
      stack  = &the_thread->Start.Initial_stack;                      
      current = (void *)_CPU_Context_Get_SP( &the_thread->Registers );
    }                                                                 
                                                                      
  low  = Stack_check_usable_stack_start(stack);                       
   4258e:	206c 0004      	moveal %a4@(4),%a0                          <== NOT EXECUTED
   42592:	43e8 0010      	lea %a0@(16),%a1                            <== NOT EXECUTED
 *  Try to print out how much stack was actually used by the task.    
 */                                                                   
static void                   *print_context;                         
static rtems_printk_plugin_t   print_handler;                         
                                                                      
void Stack_check_Dump_threads_usage(                                  
   42596:	41e8 0020      	lea %a0@(32),%a0                            <== NOT EXECUTED
     * start at lower memory and find first word that does not        
     * match pattern                                                  
     */                                                               
                                                                      
    base += PATTERN_SIZE_WORDS;                                       
    for (ebase = base + length; base < ebase; base++)                 
   4259a:	c083           	andl %d3,%d0                                <== NOT EXECUTED
   4259c:	47f1 0810      	lea %a1@(00000010,%d0:l),%a3                <== NOT EXECUTED
   425a0:	600a           	bras 425ac <Stack_check_Dump_threads_usage+0x58><== NOT EXECUTED
      if (*base != U32_PATTERN)                                       
   425a2:	223c a5a5 a5a5 	movel #-1515870811,%d1                      <== NOT EXECUTED
   425a8:	b298           	cmpl %a0@+,%d1                              <== NOT EXECUTED
   425aa:	6608           	bnes 425b4 <Stack_check_Dump_threads_usage+0x60><== NOT EXECUTED
   425ac:	2008           	movel %a0,%d0                               <== NOT EXECUTED
     * start at lower memory and find first word that does not        
     * match pattern                                                  
     */                                                               
                                                                      
    base += PATTERN_SIZE_WORDS;                                       
    for (ebase = base + length; base < ebase; base++)                 
   425ae:	b7c8           	cmpal %a0,%a3                               <== NOT EXECUTED
   425b0:	62f0           	bhis 425a2 <Stack_check_Dump_threads_usage+0x4e><== NOT EXECUTED
   425b2:	600c           	bras 425c0 <Stack_check_Dump_threads_usage+0x6c><== NOT EXECUTED
  low  = Stack_check_usable_stack_start(stack);                       
  size = Stack_check_usable_stack_size(stack);                        
                                                                      
  high_water_mark = Stack_check_find_high_water_mark(low, size);      
                                                                      
  if ( high_water_mark )                                              
   425b4:	4a80           	tstl %d0                                    <== NOT EXECUTED
   425b6:	6708           	beqs 425c0 <Stack_check_Dump_threads_usage+0x6c><== NOT EXECUTED
    used = Stack_check_Calculate_used( low, size, high_water_mark );  
   425b8:	2409           	movel %a1,%d2                               <== NOT EXECUTED
   425ba:	d483           	addl %d3,%d2                                <== NOT EXECUTED
   425bc:	9480           	subl %d0,%d2                                <== NOT EXECUTED
   425be:	6002           	bras 425c2 <Stack_check_Dump_threads_usage+0x6e><== NOT EXECUTED
  else                                                                
    used = 0;                                                         
   425c0:	4282           	clrl %d2                                    <== NOT EXECUTED
   425c2:	2679 0006 0abc 	moveal 60abc <print_handler>,%a3            <== NOT EXECUTED
                                                                      
                                                                      
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    if ( the_thread )                                                 
   425c8:	4a8a           	tstl %a2                                    <== NOT EXECUTED
   425ca:	672c           	beqs 425f8 <Stack_check_Dump_threads_usage+0xa4><== NOT EXECUTED
  #endif                                                              
    {                                                                 
      (*print_handler)(                                               
   425cc:	486e fffb      	pea %fp@(-5)                                <== NOT EXECUTED
   425d0:	4878 0005      	pea 5 <COMPARE>                             <== NOT EXECUTED
   425d4:	2f2a 0008      	movel %a2@(8),%sp@-                         <== NOT EXECUTED
   425d8:	4eb9 0004 7d58 	jsr 47d58 <rtems_object_get_name>           <== NOT EXECUTED
   425de:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   425e0:	2f2a 0008      	movel %a2@(8),%sp@-                         <== NOT EXECUTED
   425e4:	4879 0005 e440 	pea 5e440 <IntUartPollCallbacks.6374+0x20>  <== NOT EXECUTED
   425ea:	2f39 0006 0ab8 	movel 60ab8 <print_context>,%sp@-           <== NOT EXECUTED
   425f0:	4e93           	jsr %a3@                                    <== NOT EXECUTED
   425f2:	4fef 001c      	lea %sp@(28),%sp                            <== NOT EXECUTED
   425f6:	6016           	bras 4260e <Stack_check_Dump_threads_usage+0xba><== NOT EXECUTED
        rtems_object_get_name( the_thread->Object.id, sizeof(name), name )
      );                                                              
    }                                                                 
    #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                        
      else {                                                          
        (*print_handler)( print_context, "0x%08" PRIx32 "  INTR", ~0 );
   425f8:	4878 ffff      	pea ffffffff <LESS>                         <== NOT EXECUTED
   425fc:	4879 0005 e44d 	pea 5e44d <IntUartPollCallbacks.6374+0x2d>  <== NOT EXECUTED
   42602:	2f39 0006 0ab8 	movel 60ab8 <print_context>,%sp@-           <== NOT EXECUTED
   42608:	4e93           	jsr %a3@                                    <== NOT EXECUTED
   4260a:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
                                                                      
  (*print_handler)(                                                   
    print_context,                                                    
    " %010p - %010p %010p  %8" PRId32 "   ",                          
    stack->area,                                                      
    stack->area + stack->size - 1,                                    
   4260e:	206c 0004      	moveal %a4@(4),%a0                          <== NOT EXECUTED
      else {                                                          
        (*print_handler)( print_context, "0x%08" PRIx32 "  INTR", ~0 );
      }                                                               
    #endif                                                            
                                                                      
  (*print_handler)(                                                   
   42612:	2f03           	movel %d3,%sp@-                             <== NOT EXECUTED
   42614:	2f04           	movel %d4,%sp@-                             <== NOT EXECUTED
    print_context,                                                    
    " %010p - %010p %010p  %8" PRId32 "   ",                          
    stack->area,                                                      
    stack->area + stack->size - 1,                                    
   42616:	2014           	movel %a4@,%d0                              <== NOT EXECUTED
   42618:	5380           	subql #1,%d0                                <== NOT EXECUTED
      else {                                                          
        (*print_handler)( print_context, "0x%08" PRIx32 "  INTR", ~0 );
      }                                                               
    #endif                                                            
                                                                      
  (*print_handler)(                                                   
   4261a:	4870 0800      	pea %a0@(00000000,%d0:l)                    <== NOT EXECUTED
   4261e:	2f08           	movel %a0,%sp@-                             <== NOT EXECUTED
   42620:	4879 0005 e45b 	pea 5e45b <IntUartPollCallbacks.6374+0x3b>  <== NOT EXECUTED
   42626:	2f39 0006 0ab8 	movel 60ab8 <print_context>,%sp@-           <== NOT EXECUTED
   4262c:	2079 0006 0abc 	moveal 60abc <print_handler>,%a0            <== NOT EXECUTED
   42632:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   42634:	2679 0006 0abc 	moveal 60abc <print_handler>,%a3            <== NOT EXECUTED
    stack->area + stack->size - 1,                                    
    current,                                                          
    size                                                              
  );                                                                  
                                                                      
  if (Stack_check_Initialized == 0) {                                 
   4263a:	4fef 0018      	lea %sp@(24),%sp                            <== NOT EXECUTED
   4263e:	4ab9 0006 0ac0 	tstl 60ac0 <Stack_check_Initialized>        <== NOT EXECUTED
   42644:	6612           	bnes 42658 <Stack_check_Dump_threads_usage+0x104><== NOT EXECUTED
    (*print_handler)( print_context, "Unavailable\n" );               
   42646:	4879 0005 e479 	pea 5e479 <IntUartPollCallbacks.6374+0x59>  <== NOT EXECUTED
   4264c:	2f39 0006 0ab8 	movel 60ab8 <print_context>,%sp@-           <== NOT EXECUTED
   42652:	4e93           	jsr %a3@                                    <== NOT EXECUTED
   42654:	508f           	addql #8,%sp                                <== NOT EXECUTED
   42656:	6014           	bras 4266c <Stack_check_Dump_threads_usage+0x118><== NOT EXECUTED
  } else {                                                            
    (*print_handler)( print_context, "%8" PRId32 "\n", used );        
   42658:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   4265a:	4879 0005 e486 	pea 5e486 <IntUartPollCallbacks.6374+0x66>  <== NOT EXECUTED
   42660:	2f39 0006 0ab8 	movel 60ab8 <print_context>,%sp@-           <== NOT EXECUTED
   42666:	4e93           	jsr %a3@                                    <== NOT EXECUTED
   42668:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
  }                                                                   
                                                                      
                                                                      
}                                                                     
   4266c:	4cee 1c1c ffe0 	moveml %fp@(-32),%d2-%d4/%a2-%a4            <== NOT EXECUTED
   42672:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00042676 <Stack_check_Initialize>: /* * Stack_check_Initialize */ void Stack_check_Initialize( void ) {
   42676:	4e56 0000      	linkw %fp,#0                                
  static    uint32_t pattern[ 4 ] = {                                 
    0xFEEDF00D, 0x0BAD0D06,  /* FEED FOOD to  BAD DOG */              
    0xDEADF00D, 0x600D0D06   /* DEAD FOOD but GOOD DOG */             
  };                                                                  
                                                                      
  if ( Stack_check_Initialized )                                      
   4267a:	4ab9 0006 0ac0 	tstl 60ac0 <Stack_check_Initialized>        
   42680:	6668           	bnes 426ea <Stack_check_Initialize+0x74>    
  /*                                                                  
   * Dope the pattern and fill areas                                  
   */                                                                 
  p = Stack_check_Pattern.pattern;                                    
  for ( i = 0; i < PATTERN_SIZE_WORDS; i++ ) {                        
      p[i] = pattern[ i%4 ];                                          
   42682:	203c feed f00d 	movel #-17960947,%d0                        
   42688:	23c0 0006 12c4 	movel %d0,612c4 <Stack_check_Pattern>       
   4268e:	203c 0bad 0d06 	movel #195890438,%d0                        
   42694:	23c0 0006 12c8 	movel %d0,612c8 <Stack_check_Pattern+0x4>   
   4269a:	203c dead f00d 	movel #-559026163,%d0                       
   426a0:	23c0 0006 12cc 	movel %d0,612cc <Stack_check_Pattern+0x8>   
   426a6:	203c 600d 0d06 	movel #1611468038,%d0                       
   426ac:	23c0 0006 12d0 	movel %d0,612d0 <Stack_check_Pattern+0xc>   
  /*                                                                  
   * If appropriate, setup the interrupt stack for high water testing 
   * also.                                                            
   */                                                                 
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) {      
   426b2:	2039 0006 18fe 	movel 618fe <_Per_CPU_Information>,%d0      
   426b8:	6728           	beqs 426e2 <Stack_check_Initialize+0x6c>    <== NEVER TAKEN
   426ba:	2239 0006 1902 	movel 61902 <_Per_CPU_Information+0x4>,%d1  
   426c0:	6720           	beqs 426e2 <Stack_check_Initialize+0x6c>    <== NEVER TAKEN
      Stack_check_Interrupt_stack.area = _CPU_Interrupt_stack_low;    
      Stack_check_Interrupt_stack.size = (char *) _CPU_Interrupt_stack_high -
   426c2:	9280           	subl %d0,%d1                                
                                  (char *) _CPU_Interrupt_stack_low;  
      Stack_check_Dope_stack(&Stack_check_Interrupt_stack);           
   426c4:	2f01           	movel %d1,%sp@-                             
   426c6:	4878 00a5      	pea a5 <DBL_MANT_DIG+0x70>                  
   * If appropriate, setup the interrupt stack for high water testing 
   * also.                                                            
   */                                                                 
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) {      
      Stack_check_Interrupt_stack.area = _CPU_Interrupt_stack_low;    
   426ca:	23c0 0006 12d8 	movel %d0,612d8 <Stack_check_Interrupt_stack+0x4>
      Stack_check_Interrupt_stack.size = (char *) _CPU_Interrupt_stack_high -
                                  (char *) _CPU_Interrupt_stack_low;  
      Stack_check_Dope_stack(&Stack_check_Interrupt_stack);           
   426d0:	2f00           	movel %d0,%sp@-                             
   * also.                                                            
   */                                                                 
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    if (_CPU_Interrupt_stack_low && _CPU_Interrupt_stack_high) {      
      Stack_check_Interrupt_stack.area = _CPU_Interrupt_stack_low;    
      Stack_check_Interrupt_stack.size = (char *) _CPU_Interrupt_stack_high -
   426d2:	23c1 0006 12d4 	movel %d1,612d4 <Stack_check_Interrupt_stack>
                                  (char *) _CPU_Interrupt_stack_low;  
      Stack_check_Dope_stack(&Stack_check_Interrupt_stack);           
   426d8:	4eb9 0004 faec 	jsr 4faec <memset>                          
   426de:	4fef 000c      	lea %sp@(12),%sp                            
   }                                                                  
  #endif                                                              
                                                                      
  Stack_check_Initialized = 1;                                        
   426e2:	7001           	moveq #1,%d0                                
   426e4:	23c0 0006 0ac0 	movel %d0,60ac0 <Stack_check_Initialized>   
}                                                                     
   426ea:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00042750 <Stack_check_report_blown_task>: Thread_Control *running, bool pattern_ok ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; void Stack_check_report_blown_task(Thread_Control *running, bool pattern_ok) {
   42750:	4e56 ffd0      	linkw %fp,#-48                              <== NOT EXECUTED
   42754:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     <== NOT EXECUTED
   42758:	266e 0008      	moveal %fp@(8),%a3                          <== NOT EXECUTED
  Stack_Control *stack = &running->Start.Initial_stack;               
  void          *pattern_area = Stack_check_Get_pattern(stack);       
  char           name[32];                                            
                                                                      
  printk("BLOWN STACK!!!\n");                                         
   4275c:	45f9 0004 4408 	lea 44408 <printk>,%a2                      <== NOT EXECUTED
) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;                                 
                                                                      
void Stack_check_report_blown_task(Thread_Control *running, bool pattern_ok)
{                                                                     
  Stack_Control *stack = &running->Start.Initial_stack;               
  void          *pattern_area = Stack_check_Get_pattern(stack);       
   42762:	286b 00b6      	moveal %a3@(182),%a4                        <== NOT EXECUTED
  char           name[32];                                            
                                                                      
  printk("BLOWN STACK!!!\n");                                         
   42766:	4879 0005 e48c 	pea 5e48c <IntUartPollCallbacks.6374+0x6c>  <== NOT EXECUTED
  Thread_Control *running,                                            
  bool pattern_ok                                                     
) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;                                 
                                                                      
void Stack_check_report_blown_task(Thread_Control *running, bool pattern_ok)
{                                                                     
   4276c:	142e 000f      	moveb %fp@(15),%d2                          <== NOT EXECUTED
  Stack_Control *stack = &running->Start.Initial_stack;               
  void          *pattern_area = Stack_check_Get_pattern(stack);       
  char           name[32];                                            
                                                                      
  printk("BLOWN STACK!!!\n");                                         
   42770:	4e92           	jsr %a2@                                    <== NOT EXECUTED
  printk("task control block: 0x%08" PRIxPTR "\n", running);          
   42772:	2f0b           	movel %a3,%sp@-                             <== NOT EXECUTED
   42774:	4879 0005 e49c 	pea 5e49c <IntUartPollCallbacks.6374+0x7c>  <== NOT EXECUTED
   4277a:	4e92           	jsr %a2@                                    <== NOT EXECUTED
  printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);   
   4277c:	2f2b 0008      	movel %a3@(8),%sp@-                         <== NOT EXECUTED
   42780:	4879 0005 e4b9 	pea 5e4b9 <IntUartPollCallbacks.6374+0x99>  <== NOT EXECUTED
   42786:	4e92           	jsr %a2@                                    <== NOT EXECUTED
  printk(                                                             
   42788:	2f2b 000c      	movel %a3@(12),%sp@-                        <== NOT EXECUTED
   4278c:	4879 0005 e4cb 	pea 5e4cb <IntUartPollCallbacks.6374+0xab>  <== NOT EXECUTED
   42792:	4e92           	jsr %a2@                                    <== NOT EXECUTED
    "task name: 0x%08" PRIx32 "\n",                                   
    running->Object.name.name_u32                                     
  );                                                                  
  printk(                                                             
   42794:	486e ffe0      	pea %fp@(-32)                               <== NOT EXECUTED
   42798:	4878 0020      	pea 20 <OPER2+0xc>                          <== NOT EXECUTED
   4279c:	2f2b 0008      	movel %a3@(8),%sp@-                         <== NOT EXECUTED
   427a0:	4eb9 0004 7d58 	jsr 47d58 <rtems_object_get_name>           <== NOT EXECUTED
   427a6:	4fef 0024      	lea %sp@(36),%sp                            <== NOT EXECUTED
   427aa:	2e80           	movel %d0,%sp@                              <== NOT EXECUTED
   427ac:	4879 0005 e4df 	pea 5e4df <IntUartPollCallbacks.6374+0xbf>  <== NOT EXECUTED
   427b2:	4e92           	jsr %a2@                                    <== NOT EXECUTED
  );                                                                  
  printk(                                                             
    "task stack area (%lu Bytes): 0x%08" PRIxPTR " .. 0x%08" PRIxPTR "\n",
    (unsigned long) stack->size,                                      
    stack->area,                                                      
    ((char *) stack->area + stack->size)                              
   427b4:	206b 00b6      	moveal %a3@(182),%a0                        <== NOT EXECUTED
   427b8:	202b 00b2      	movel %a3@(178),%d0                         <== NOT EXECUTED
  );                                                                  
  printk(                                                             
    "task name string: %s\n",                                         
    rtems_object_get_name(running->Object.id, sizeof(name), name)     
  );                                                                  
  printk(                                                             
   427bc:	4870 0800      	pea %a0@(00000000,%d0:l)                    <== NOT EXECUTED
   427c0:	2f08           	movel %a0,%sp@-                             <== NOT EXECUTED
   427c2:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   427c4:	4879 0005 e4f5 	pea 5e4f5 <IntUartPollCallbacks.6374+0xd5>  <== NOT EXECUTED
   427ca:	4e92           	jsr %a2@                                    <== NOT EXECUTED
    "task stack area (%lu Bytes): 0x%08" PRIxPTR " .. 0x%08" PRIxPTR "\n",
    (unsigned long) stack->size,                                      
    stack->area,                                                      
    ((char *) stack->area + stack->size)                              
  );                                                                  
  if (!pattern_ok) {                                                  
   427cc:	4fef 0018      	lea %sp@(24),%sp                            <== NOT EXECUTED
   427d0:	4a02           	tstb %d2                                    <== NOT EXECUTED
   427d2:	6618           	bnes 427ec <Stack_check_report_blown_task+0x9c><== NOT EXECUTED
    printk(                                                           
   427d4:	486c 0018      	pea %a4@(24)                                <== NOT EXECUTED
   427d8:	486c 0008      	pea %a4@(8)                                 <== NOT EXECUTED
   427dc:	4878 0010      	pea 10 <INVALID_OPERATION>                  <== NOT EXECUTED
   427e0:	4879 0005 e526 	pea 5e526 <IntUartPollCallbacks.6374+0x106> <== NOT EXECUTED
   427e6:	4e92           	jsr %a2@                                    <== NOT EXECUTED
   427e8:	4fef 0010      	lea %sp@(16),%sp                            <== NOT EXECUTED
          rtems_configuration_get_user_multiprocessing_table()->node  
      );                                                              
    }                                                                 
  #endif                                                              
                                                                      
  rtems_fatal_error_occurred(0x81);                                   
   427ec:	4878 0081      	pea 81 <DBL_MANT_DIG+0x4c>                  <== NOT EXECUTED
   427f0:	4eb9 0004 8574 	jsr 48574 <rtems_fatal_error_occurred>      <== NOT EXECUTED
                                                                      

000461d4 <_API_Mutex_Unlock>: #include <rtems/score/apimutex.h> void _API_Mutex_Unlock( API_Mutex_Control *the_mutex ) {
   461d4:	4e56 0000      	linkw %fp,#0                                
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   461d8:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
   461de:	5280           	addql #1,%d0                                
   461e0:	206e 0008      	moveal %fp@(8),%a0                          
   461e4:	23c0 0005 e9c8 	movel %d0,5e9c8 <_Thread_Dispatch_disable_level>
  _Thread_Disable_dispatch();                                         
    _CORE_mutex_Surrender(                                            
   461ea:	42a7           	clrl %sp@-                                  
   461ec:	2f28 0008      	movel %a0@(8),%sp@-                         
   461f0:	4868 0010      	pea %a0@(16)                                
   461f4:	4eb9 0004 6458 	jsr 46458 <_CORE_mutex_Surrender>           
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   461fa:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   461fe:	4e5e           	unlk %fp                                    
    _CORE_mutex_Surrender(                                            
      &the_mutex->Mutex,                                              
      the_mutex->Object.id,                                           
      NULL                                                            
   );                                                                 
  _Thread_Enable_dispatch();                                          
   46200:	4ef9 0004 7ac2 	jmp 47ac2 <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      

000483b0 <_CORE_RWLock_Obtain_for_reading>: * If unlocked, then OK to read. * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level );
   483b0:	203c 0000 0700 	movel #1792,%d0                             
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_RWLock_API_mp_support_callout   api_rwlock_mp_support          
)                                                                     
{                                                                     
   483b6:	4e56 ffe8      	linkw %fp,#-24                              
   483ba:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   483be:	246e 0008      	moveal %fp@(8),%a2                          
   483c2:	282e 000c      	movel %fp@(12),%d4                          
   483c6:	262e 0014      	movel %fp@(20),%d3                          
   483ca:	1a2e 0013      	moveb %fp@(19),%d5                          
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
   483ce:	2679 0006 1a86 	moveal 61a86 <_Per_CPU_Information+0xc>,%a3 
   *  If unlocked, then OK to read.                                   
   *  If locked for reading and no waiters, then OK to read.          
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
   483d4:	40c2           	movew %sr,%d2                               
   483d6:	8082           	orl %d2,%d0                                 
   483d8:	46c0           	movew %d0,%sr                               
    switch ( the_rwlock->current_state ) {                            
   483da:	202a 0044      	movel %a2@(68),%d0                          
   483de:	6708           	beqs 483e8 <_CORE_RWLock_Obtain_for_reading+0x38>
   483e0:	7201           	moveq #1,%d1                                
   483e2:	b280           	cmpl %d0,%d1                                
   483e4:	662a           	bnes 48410 <_CORE_RWLock_Obtain_for_reading+0x60><== NEVER TAKEN
   483e6:	600e           	bras 483f6 <_CORE_RWLock_Obtain_for_reading+0x46>
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;          
   483e8:	7001           	moveq #1,%d0                                
	the_rwlock->number_of_readers += 1;                                  
   483ea:	52aa 0048      	addql #1,%a2@(72)                           
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    switch ( the_rwlock->current_state ) {                            
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;          
   483ee:	2540 0044      	movel %d0,%a2@(68)                          
	the_rwlock->number_of_readers += 1;                                  
	_ISR_Enable( level );                                                
   483f2:	46c2           	movew %d2,%sr                               
   483f4:	6014           	bras 4840a <_CORE_RWLock_Obtain_for_reading+0x5a>
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
	return;                                                              
                                                                      
      case CORE_RWLOCK_LOCKED_FOR_READING: {                          
        Thread_Control *waiter;                                       
        waiter = _Thread_queue_First( &the_rwlock->Wait_queue );      
   483f6:	2f0a           	movel %a2,%sp@-                             
   483f8:	4eb9 0004 a254 	jsr 4a254 <_Thread_queue_First>             
        if ( !waiter ) {                                              
   483fe:	588f           	addql #4,%sp                                
   48400:	4a80           	tstl %d0                                    
   48402:	660c           	bnes 48410 <_CORE_RWLock_Obtain_for_reading+0x60>
	  the_rwlock->number_of_readers += 1;                                
   48404:	52aa 0048      	addql #1,%a2@(72)                           
	  _ISR_Enable( level );                                              
   48408:	46c2           	movew %d2,%sr                               
	  executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;              
   4840a:	42ab 0034      	clrl %a3@(52)                               
          return;                                                     
   4840e:	6046           	bras 48456 <_CORE_RWLock_Obtain_for_reading+0xa6>
                                                                      
    /*                                                                
     *  If the thread is not willing to wait, then return immediately.
     */                                                               
                                                                      
    if ( !wait ) {                                                    
   48410:	4a05           	tstb %d5                                    
   48412:	660a           	bnes 4841e <_CORE_RWLock_Obtain_for_reading+0x6e>
      _ISR_Enable( level );                                           
   48414:	46c2           	movew %d2,%sr                               
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
   48416:	7202           	moveq #2,%d1                                
   48418:	2741 0034      	movel %d1,%a3@(52)                          
   4841c:	6038           	bras 48456 <_CORE_RWLock_Obtain_for_reading+0xa6>
   4841e:	7001           	moveq #1,%d0                                
   48420:	2540 0030      	movel %d0,%a2@(48)                          
    /*                                                                
     *  We need to wait to enter this critical section                
     */                                                               
                                                                      
    _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue );  
    executing->Wait.queue       = &the_rwlock->Wait_queue;            
   48424:	274a 0044      	movel %a2,%a3@(68)                          
    executing->Wait.id          = id;                                 
   48428:	2744 0020      	movel %d4,%a3@(32)                          
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
   4842c:	42ab 0030      	clrl %a3@(48)                               
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
   48430:	42ab 0034      	clrl %a3@(52)                               
    _ISR_Enable( level );                                             
   48434:	46c2           	movew %d2,%sr                               
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
   48436:	2d43 000c      	movel %d3,%fp@(12)                          
   4843a:	223c 0004 85a0 	movel #296352,%d1                           
   48440:	2d4a 0008      	movel %a2,%fp@(8)                           
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
   48444:	4cee 0c3c ffe8 	moveml %fp@(-24),%d2-%d5/%a2-%a3            
    executing->Wait.id          = id;                                 
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
    _ISR_Enable( level );                                             
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
   4844a:	2d41 0010      	movel %d1,%fp@(16)                          
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
   4844e:	4e5e           	unlk %fp                                    
    executing->Wait.id          = id;                                 
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
    _ISR_Enable( level );                                             
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
   48450:	4ef9 0004 9f40 	jmp 49f40 <_Thread_queue_Enqueue_with_handler>
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
   48456:	4cee 0c3c ffe8 	moveml %fp@(-24),%d2-%d5/%a2-%a3            
   4845c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000484ec <_CORE_RWLock_Release>: * Otherwise, we have to block. * If locked for reading and no waiters, then OK to read. * If any thread is waiting, then we wait. */ _ISR_Disable( level );
   484ec:	223c 0000 0700 	movel #1792,%d1                             
 */                                                                   
                                                                      
CORE_RWLock_Status _CORE_RWLock_Release(                              
  CORE_RWLock_Control  *the_rwlock                                    
)                                                                     
{                                                                     
   484f2:	4e56 fff0      	linkw %fp,#-16                              
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
   484f6:	2079 0006 1a86 	moveal 61a86 <_Per_CPU_Information+0xc>,%a0 
 */                                                                   
                                                                      
CORE_RWLock_Status _CORE_RWLock_Release(                              
  CORE_RWLock_Control  *the_rwlock                                    
)                                                                     
{                                                                     
   484fc:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
   48500:	246e 0008      	moveal %fp@(8),%a2                          
   *  Otherwise, we have to block.                                    
   *  If locked for reading and no waiters, then OK to read.          
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
   48504:	40c0           	movew %sr,%d0                               
   48506:	8280           	orl %d0,%d1                                 
   48508:	46c1           	movew %d1,%sr                               
    if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){          
   4850a:	222a 0044      	movel %a2@(68),%d1                          
   4850e:	660a           	bnes 4851a <_CORE_RWLock_Release+0x2e>      
      _ISR_Enable( level );                                           
   48510:	46c0           	movew %d0,%sr                               
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
   48512:	7002           	moveq #2,%d0                                
   48514:	2140 0034      	movel %d0,%a0@(52)                          
      return CORE_RWLOCK_SUCCESSFUL;                                  
   48518:	6078           	bras 48592 <_CORE_RWLock_Release+0xa6>      
    }                                                                 
    if ( the_rwlock->current_state == CORE_RWLOCK_LOCKED_FOR_READING ) {
   4851a:	7401           	moveq #1,%d2                                
   4851c:	b481           	cmpl %d1,%d2                                
   4851e:	6610           	bnes 48530 <_CORE_RWLock_Release+0x44>      
	the_rwlock->number_of_readers -= 1;                                  
   48520:	222a 0048      	movel %a2@(72),%d1                          
   48524:	5381           	subql #1,%d1                                
   48526:	2541 0048      	movel %d1,%a2@(72)                          
	if ( the_rwlock->number_of_readers != 0 ) {                          
   4852a:	6704           	beqs 48530 <_CORE_RWLock_Release+0x44>      
          /* must be unlocked again */                                
	  _ISR_Enable( level );                                              
   4852c:	46c0           	movew %d0,%sr                               
          return CORE_RWLOCK_SUCCESSFUL;                              
   4852e:	6062           	bras 48592 <_CORE_RWLock_Release+0xa6>      
        }                                                             
    }                                                                 
                                                                      
    /* CORE_RWLOCK_LOCKED_FOR_WRITING or READING with readers */      
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
   48530:	42a8 0034      	clrl %a0@(52)                               
                                                                      
    /*                                                                
     * Implicitly transition to "unlocked" and find another thread interested
     * in obtaining this rwlock.                                      
     */                                                               
    the_rwlock->current_state = CORE_RWLOCK_UNLOCKED;                 
   48534:	42aa 0044      	clrl %a2@(68)                               
  _ISR_Enable( level );                                               
   48538:	46c0           	movew %d0,%sr                               
                                                                      
  next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue );            
   4853a:	2f0a           	movel %a2,%sp@-                             
   4853c:	4eb9 0004 9e00 	jsr 49e00 <_Thread_queue_Dequeue>           
                                                                      
  if ( next ) {                                                       
   48542:	588f           	addql #4,%sp                                
   48544:	4a80           	tstl %d0                                    
   48546:	674a           	beqs 48592 <_CORE_RWLock_Release+0xa6>      
    if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) {
   48548:	7201           	moveq #1,%d1                                
   4854a:	2040           	moveal %d0,%a0                              
   4854c:	b2a8 0030      	cmpl %a0@(48),%d1                           
   48550:	6608           	bnes 4855a <_CORE_RWLock_Release+0x6e>      
      the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING;     
   48552:	7002           	moveq #2,%d0                                
   48554:	2540 0044      	movel %d0,%a2@(68)                          
      return CORE_RWLOCK_SUCCESSFUL;                                  
   48558:	6038           	bras 48592 <_CORE_RWLock_Release+0xa6>      
                                                                      
    /*                                                                
     * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING                 
     */                                                               
    the_rwlock->number_of_readers += 1;                               
    the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;       
   4855a:	7201           	moveq #1,%d1                                
    }                                                                 
                                                                      
    /*                                                                
     * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING                 
     */                                                               
    the_rwlock->number_of_readers += 1;                               
   4855c:	52aa 0048      	addql #1,%a2@(72)                           
                                                                      
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
   48560:	49f9 0004 a254 	lea 4a254 <_Thread_queue_First>,%a4         
      if ( !next ||                                                   
           next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE )
        return CORE_RWLOCK_SUCCESSFUL;                                
      the_rwlock->number_of_readers += 1;                             
      _Thread_queue_Extract( &the_rwlock->Wait_queue, next );         
   48566:	47f9 0004 a124 	lea 4a124 <_Thread_queue_Extract>,%a3       
                                                                      
    /*                                                                
     * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING                 
     */                                                               
    the_rwlock->number_of_readers += 1;                               
    the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;       
   4856c:	2541 0044      	movel %d1,%a2@(68)                          
                                                                      
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
   48570:	2f0a           	movel %a2,%sp@-                             
   48572:	4e94           	jsr %a4@                                    
      if ( !next ||                                                   
   48574:	588f           	addql #4,%sp                                
   48576:	4a80           	tstl %d0                                    
   48578:	6718           	beqs 48592 <_CORE_RWLock_Release+0xa6>      
   4857a:	7401           	moveq #1,%d2                                
   4857c:	2040           	moveal %d0,%a0                              
   4857e:	b4a8 0030      	cmpl %a0@(48),%d2                           
   48582:	670e           	beqs 48592 <_CORE_RWLock_Release+0xa6>      <== NEVER TAKEN
           next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE )
        return CORE_RWLOCK_SUCCESSFUL;                                
      the_rwlock->number_of_readers += 1;                             
   48584:	52aa 0048      	addql #1,%a2@(72)                           
      _Thread_queue_Extract( &the_rwlock->Wait_queue, next );         
   48588:	2f00           	movel %d0,%sp@-                             
   4858a:	2f0a           	movel %a2,%sp@-                             
   4858c:	4e93           	jsr %a3@                                    
    }                                                                 
   4858e:	508f           	addql #8,%sp                                
   48590:	60de           	bras 48570 <_CORE_RWLock_Release+0x84>      
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
   48592:	4280           	clrl %d0                                    
   48594:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
   4859a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000485a0 <_CORE_RWLock_Timeout>: void _CORE_RWLock_Timeout( Objects_Id id, void *ignored ) {
   485a0:	4e56 fffc      	linkw %fp,#-4                               
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   485a4:	486e fffc      	pea %fp@(-4)                                
   485a8:	2f2e 0008      	movel %fp@(8),%sp@-                         
   485ac:	4eb9 0004 9b38 	jsr 49b38 <_Thread_Get>                     
  switch ( location ) {                                               
   485b2:	508f           	addql #8,%sp                                
   485b4:	4aae fffc      	tstl %fp@(-4)                               
   485b8:	6618           	bnes 485d2 <_CORE_RWLock_Timeout+0x32>      <== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_queue_Process_timeout( the_thread );                    
   485ba:	2f00           	movel %d0,%sp@-                             
   485bc:	4eb9 0004 a354 	jsr 4a354 <_Thread_queue_Process_timeout>   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   485c2:	588f           	addql #4,%sp                                
   485c4:	2039 0006 161c 	movel 6161c <_Thread_Dispatch_disable_level>,%d0
   485ca:	5380           	subql #1,%d0                                
   485cc:	23c0 0006 161c 	movel %d0,6161c <_Thread_Dispatch_disable_level>
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
   485d2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004726c <_CORE_barrier_Wait>: Thread_Control *executing; ISR_Level level; executing = _Thread_Executing; executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL; _ISR_Disable( level );
   4726c:	203c 0000 0700 	movel #1792,%d0                             
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   47272:	4e56 fff4      	linkw %fp,#-12                              
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
   47276:	2279 0006 0416 	moveal 60416 <_Per_CPU_Information+0xc>,%a1 
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   4727c:	48d7 001c      	moveml %d2-%d4,%sp@                         
   47280:	206e 0008      	moveal %fp@(8),%a0                          
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
   47284:	42a9 0034      	clrl %a1@(52)                               
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
   47288:	242e 000c      	movel %fp@(12),%d2                          
   4728c:	262e 0014      	movel %fp@(20),%d3                          
   47290:	282e 0018      	movel %fp@(24),%d4                          
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
  _ISR_Disable( level );                                              
   47294:	40c1           	movew %sr,%d1                               
   47296:	8081           	orl %d1,%d0                                 
   47298:	46c0           	movew %d0,%sr                               
  the_barrier->number_of_waiting_threads++;                           
   4729a:	2028 0048      	movel %a0@(72),%d0                          
   4729e:	5280           	addql #1,%d0                                
   472a0:	2140 0048      	movel %d0,%a0@(72)                          
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
   472a4:	4aa8 0040      	tstl %a0@(64)                               
   472a8:	6626           	bnes 472d0 <_CORE_barrier_Wait+0x64>        
    if ( the_barrier->number_of_waiting_threads ==                    
   472aa:	b0a8 0044      	cmpl %a0@(68),%d0                           
   472ae:	6620           	bnes 472d0 <_CORE_barrier_Wait+0x64>        
	 the_barrier->Attributes.maximum_count) {                            
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
   472b0:	7001           	moveq #1,%d0                                
   472b2:	2340 0034      	movel %d0,%a1@(52)                          
      _ISR_Enable( level );                                           
   472b6:	46c1           	movew %d1,%sr                               
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   472b8:	2d44 0010      	movel %d4,%fp@(16)                          
   472bc:	2d42 000c      	movel %d2,%fp@(12)                          
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
}                                                                     
   472c0:	4cd7 001c      	moveml %sp@,%d2-%d4                         
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
      _ISR_Enable( level );                                           
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   472c4:	2d48 0008      	movel %a0,%fp@(8)                           
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
}                                                                     
   472c8:	4e5e           	unlk %fp                                    
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
      _ISR_Enable( level );                                           
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
   472ca:	4ef9 0004 bc58 	jmp 4bc58 <_CORE_barrier_Release>           
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (      
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
   472d0:	7001           	moveq #1,%d0                                
   472d2:	2140 0030      	movel %d0,%a0@(48)                          
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
   472d6:	2348 0044      	movel %a0,%a1@(68)                          
  executing->Wait.id             = id;                                
   472da:	2342 0020      	movel %d2,%a1@(32)                          
  _ISR_Enable( level );                                               
   472de:	46c1           	movew %d1,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   472e0:	2d43 000c      	movel %d3,%fp@(12)                          
   472e4:	203c 0004 91f4 	movel #299508,%d0                           
   472ea:	2d48 0008      	movel %a0,%fp@(8)                           
}                                                                     
   472ee:	4cd7 001c      	moveml %sp@,%d2-%d4                         
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   472f2:	2d40 0010      	movel %d0,%fp@(16)                          
}                                                                     
   472f6:	4e5e           	unlk %fp                                    
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
   472f8:	4ef9 0004 8ee0 	jmp 48ee0 <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      

0004e084 <_CORE_message_queue_Initialize>: /* * Round size up to multiple of a pointer for chain init and * check for overflow on adding overhead to each message. */ allocated_message_size = maximum_message_size; if (allocated_message_size & (sizeof(uint32_t) - 1)) {
   4e084:	7003           	moveq #3,%d0                                
  CORE_message_queue_Control    *the_message_queue,                   
  CORE_message_queue_Attributes *the_message_queue_attributes,        
  uint32_t                       maximum_pending_messages,            
  size_t                         maximum_message_size                 
)                                                                     
{                                                                     
   4e086:	4e56 fff4      	linkw %fp,#-12                              
   4e08a:	222e 0014      	movel %fp@(20),%d1                          
   4e08e:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   4e092:	246e 0008      	moveal %fp@(8),%a2                          
   4e096:	242e 0010      	movel %fp@(16),%d2                          
  /*                                                                  
   *  Round size up to multiple of a pointer for chain init and       
   *  check for overflow on adding overhead to each message.          
   */                                                                 
  allocated_message_size = maximum_message_size;                      
  if (allocated_message_size & (sizeof(uint32_t) - 1)) {              
   4e09a:	c081           	andl %d1,%d0                                
)                                                                     
{                                                                     
  size_t message_buffering_required;                                  
  size_t allocated_message_size;                                      
                                                                      
  the_message_queue->maximum_pending_messages   = maximum_pending_messages;
   4e09c:	2542 0044      	movel %d2,%a2@(68)                          
  the_message_queue->number_of_pending_messages = 0;                  
   4e0a0:	42aa 0048      	clrl %a2@(72)                               
  the_message_queue->maximum_message_size       = maximum_message_size;
   4e0a4:	2541 004c      	movel %d1,%a2@(76)                          
    CORE_message_queue_Control        *the_message_queue,             
    CORE_message_queue_Notify_Handler  the_handler,                   
    void                              *the_argument                   
  )                                                                   
  {                                                                   
    the_message_queue->notify_handler  = the_handler;                 
   4e0a8:	42aa 0060      	clrl %a2@(96)                               
    the_message_queue->notify_argument = the_argument;                
   4e0ac:	42aa 0064      	clrl %a2@(100)                              
  /*                                                                  
   *  Round size up to multiple of a pointer for chain init and       
   *  check for overflow on adding overhead to each message.          
   */                                                                 
  allocated_message_size = maximum_message_size;                      
  if (allocated_message_size & (sizeof(uint32_t) - 1)) {              
   4e0b0:	4a80           	tstl %d0                                    
   4e0b2:	670e           	beqs 4e0c2 <_CORE_message_queue_Initialize+0x3e>
    allocated_message_size += sizeof(uint32_t);                       
   4e0b4:	2001           	movel %d1,%d0                               
   4e0b6:	5880           	addql #4,%d0                                
    allocated_message_size &= ~(sizeof(uint32_t) - 1);                
   4e0b8:	76fc           	moveq #-4,%d3                               
   4e0ba:	c083           	andl %d3,%d0                                
  }                                                                   
                                                                      
  if (allocated_message_size < maximum_message_size)                  
   4e0bc:	b280           	cmpl %d0,%d1                                
   4e0be:	6272           	bhis 4e132 <_CORE_message_queue_Initialize+0xae><== NEVER TAKEN
   4e0c0:	6002           	bras 4e0c4 <_CORE_message_queue_Initialize+0x40>
  /*                                                                  
   *  Round size up to multiple of a pointer for chain init and       
   *  check for overflow on adding overhead to each message.          
   */                                                                 
  allocated_message_size = maximum_message_size;                      
  if (allocated_message_size & (sizeof(uint32_t) - 1)) {              
   4e0c2:	2001           	movel %d1,%d0                               
  /*                                                                  
   *  Calculate how much total memory is required for message buffering and
   *  check for overflow on the multiplication.                       
   */                                                                 
  message_buffering_required = (size_t) maximum_pending_messages *    
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
   4e0c4:	2600           	movel %d0,%d3                               
   4e0c6:	0683 0000 0014 	addil #20,%d3                               
                                                                      
  /*                                                                  
   *  Calculate how much total memory is required for message buffering and
   *  check for overflow on the multiplication.                       
   */                                                                 
  message_buffering_required = (size_t) maximum_pending_messages *    
   4e0cc:	2203           	movel %d3,%d1                               
   4e0ce:	4c02 1800      	mulsl %d2,%d1                               
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
                                                                      
  if (message_buffering_required < allocated_message_size)            
   4e0d2:	b081           	cmpl %d1,%d0                                
   4e0d4:	625c           	bhis 4e132 <_CORE_message_queue_Initialize+0xae><== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
   4e0d6:	2f01           	movel %d1,%sp@-                             
   4e0d8:	4eb9 0005 0b44 	jsr 50b44 <_Workspace_Allocate>             
                                                                      
  if (the_message_queue->message_buffers == 0)                        
   4e0de:	588f           	addql #4,%sp                                
    return false;                                                     
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
   4e0e0:	2540 005c      	movel %d0,%a2@(92)                          
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
   4e0e4:	674c           	beqs 4e132 <_CORE_message_queue_Initialize+0xae>
                                                                      
  /*                                                                  
   *  Initialize the pool of inactive messages, pending messages,     
   *  and set of waiting threads.                                     
   */                                                                 
  _Chain_Initialize (                                                 
   4e0e6:	2f03           	movel %d3,%sp@-                             
   4e0e8:	2f02           	movel %d2,%sp@-                             
   4e0ea:	2f00           	movel %d0,%sp@-                             
   4e0ec:	486a 0068      	pea %a2@(104)                               
   4e0f0:	4eb9 0005 2d8c 	jsr 52d8c <_Chain_Initialize>               
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   4e0f6:	41ea 0054      	lea %a2@(84),%a0                            
    allocated_message_size + sizeof( CORE_message_queue_Buffer_control )
  );                                                                  
                                                                      
  _Chain_Initialize_empty( &the_message_queue->Pending_messages );    
                                                                      
  _Thread_queue_Initialize(                                           
   4e0fa:	7001           	moveq #1,%d0                                
   4e0fc:	2548 0050      	movel %a0,%a2@(80)                          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e100:	41ea 0050      	lea %a2@(80),%a0                            
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   4e104:	42aa 0054      	clrl %a2@(84)                               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e108:	2548 0058      	movel %a0,%a2@(88)                          
   4e10c:	4878 0006      	pea 6 <EXTENDSFDF>                          
   4e110:	206e 000c      	moveal %fp@(12),%a0                         
   4e114:	4878 0080      	pea 80 <DBL_MANT_DIG+0x4b>                  
   4e118:	b090           	cmpl %a0@,%d0                               
   4e11a:	57c0           	seq %d0                                     
   4e11c:	49c0           	extbl %d0                                   
   4e11e:	4480           	negl %d0                                    
   4e120:	2f00           	movel %d0,%sp@-                             
   4e122:	2f0a           	movel %a2,%sp@-                             
   4e124:	4eb9 0005 02a0 	jsr 502a0 <_Thread_queue_Initialize>        
       THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
   4e12a:	4fef 0020      	lea %sp@(32),%sp                            
   4e12e:	7001           	moveq #1,%d0                                
   4e130:	6002           	bras 4e134 <_CORE_message_queue_Initialize+0xb0>
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
    return false;                                                     
   4e132:	4200           	clrb %d0                                    
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
}                                                                     
   4e134:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   4e13a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004e140 <_CORE_message_queue_Seize>: CORE_message_queue_Buffer_control *the_message; Thread_Control *executing; executing = _Thread_Executing; executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; _ISR_Disable( level );
   4e140:	223c 0000 0700 	movel #1792,%d1                             
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4e146:	4e56 ffe0      	linkw %fp,#-32                              
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
   4e14a:	2079 0006 7a3a 	moveal 67a3a <_Per_CPU_Information+0xc>,%a0 
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   4e150:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   4e154:	246e 0008      	moveal %fp@(8),%a2                          
   4e158:	262e 000c      	movel %fp@(12),%d3                          
   4e15c:	2a2e 0010      	movel %fp@(16),%d5                          
   4e160:	226e 0014      	moveal %fp@(20),%a1                         
   4e164:	242e 001c      	movel %fp@(28),%d2                          
   4e168:	182e 001b      	moveb %fp@(27),%d4                          
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
   4e16c:	42a8 0034      	clrl %a0@(52)                               
  _ISR_Disable( level );                                              
   4e170:	40c0           	movew %sr,%d0                               
   4e172:	8280           	orl %d0,%d1                                 
   4e174:	46c1           	movew %d1,%sr                               
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   4e176:	220a           	movel %a2,%d1                               
   4e178:	0681 0000 0054 	addil #84,%d1                               
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4e17e:	266a 0050      	moveal %a2@(80),%a3                         
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
   4e182:	b28b           	cmpl %a3,%d1                                
   4e184:	6700 00a6      	beqw 4e22c <_CORE_message_queue_Seize+0xec> 
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
   4e188:	2a53           	moveal %a3@,%a5                             
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(        
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e18a:	49ea 0050      	lea %a2@(80),%a4                            
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
                                                                      
  head->next = new_first;                                             
   4e18e:	254d 0050      	movel %a5,%a2@(80)                          
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_first_unprotected(        
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
   4e192:	2b4c 0004      	movel %a4,%a5@(4)                           
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  _ISR_Disable( level );                                              
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
   4e196:	4a8b           	tstl %a3                                    
   4e198:	6700 0092      	beqw 4e22c <_CORE_message_queue_Seize+0xec> 
    the_message_queue->number_of_pending_messages -= 1;               
   4e19c:	53aa 0048      	subql #1,%a2@(72)                           
    _ISR_Enable( level );                                             
   4e1a0:	46c0           	movew %d0,%sr                               
                                                                      
    *size_p = the_message->Contents.size;                             
    _Thread_Executing->Wait.count =                                   
   4e1a2:	2079 0006 7a3a 	moveal 67a3a <_Per_CPU_Information+0xc>,%a0 
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
    the_message_queue->number_of_pending_messages -= 1;               
    _ISR_Enable( level );                                             
                                                                      
    *size_p = the_message->Contents.size;                             
   4e1a8:	22ab 000c      	movel %a3@(12),%a1@                         
    _Thread_Executing->Wait.count =                                   
      _CORE_message_queue_Get_message_priority( the_message );        
    _CORE_message_queue_Copy_buffer(                                  
      the_message->Contents.buffer,                                   
   4e1ac:	240b           	movel %a3,%d2                               
   4e1ae:	0682 0000 0010 	addil #16,%d2                               
  if ( the_message != NULL ) {                                        
    the_message_queue->number_of_pending_messages -= 1;               
    _ISR_Enable( level );                                             
                                                                      
    *size_p = the_message->Contents.size;                             
    _Thread_Executing->Wait.count =                                   
   4e1b4:	216b 0008 0024 	movel %a3@(8),%a0@(36)                      
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4e1ba:	49f9 0005 55dc 	lea 555dc <memcpy>,%a4                      
   4e1c0:	2f11           	movel %a1@,%sp@-                            
   4e1c2:	2f02           	movel %d2,%sp@-                             
   4e1c4:	2f05           	movel %d5,%sp@-                             
   4e1c6:	4e94           	jsr %a4@                                    
       *  is not, then we can go ahead and free the buffer.           
       *                                                              
       *  NOTE: If we note that the queue was not full before this receive,
       *  then we can avoid this dequeue.                             
       */                                                             
      the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
   4e1c8:	2f0a           	movel %a2,%sp@-                             
   4e1ca:	4eb9 0004 ff1c 	jsr 4ff1c <_Thread_queue_Dequeue>           
      if ( !the_thread ) {                                            
   4e1d0:	4fef 0010      	lea %sp@(16),%sp                            
       *  is not, then we can go ahead and free the buffer.           
       *                                                              
       *  NOTE: If we note that the queue was not full before this receive,
       *  then we can avoid this dequeue.                             
       */                                                             
      the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
   4e1d4:	2040           	moveal %d0,%a0                              
      if ( !the_thread ) {                                            
   4e1d6:	4a80           	tstl %d0                                    
   4e1d8:	661a           	bnes 4e1f4 <_CORE_message_queue_Seize+0xb4> 
RTEMS_INLINE_ROUTINE void _CORE_message_queue_Free_message_buffer (   
  CORE_message_queue_Control        *the_message_queue,               
  CORE_message_queue_Buffer_control *the_message                      
)                                                                     
{                                                                     
  _Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
   4e1da:	45ea 0068      	lea %a2@(104),%a2                           
   4e1de:	2d4b 000c      	movel %a3,%fp@(12)                          
   4e1e2:	2d4a 0008      	movel %a2,%fp@(8)                           
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4e1e6:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4e1ec:	4e5e           	unlk %fp                                    
   4e1ee:	4ef9 0004 dfc0 	jmp 4dfc0 <_Chain_Append>                   
       */                                                             
      _CORE_message_queue_Set_message_priority(                       
        the_message,                                                  
        the_thread->Wait.count                                        
      );                                                              
      the_message->Contents.size = (size_t) the_thread->Wait.option;  
   4e1f4:	2028 0030      	movel %a0@(48),%d0                          
  CORE_message_queue_Buffer_control *the_message,                     
  int                                priority                         
)                                                                     
{                                                                     
  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)            
    the_message->priority = priority;                                 
   4e1f8:	2768 0024 0008 	movel %a0@(36),%a3@(8)                      
   4e1fe:	2740 000c      	movel %d0,%a3@(12)                          
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   4e202:	2f00           	movel %d0,%sp@-                             
   4e204:	2f28 002c      	movel %a0@(44),%sp@-                        
   4e208:	2f02           	movel %d2,%sp@-                             
   4e20a:	4e94           	jsr %a4@                                    
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
   4e20c:	2d6b 0008 0010 	movel %a3@(8),%fp@(16)                      
   4e212:	4fef 000c      	lea %sp@(12),%sp                            
   4e216:	2d4b 000c      	movel %a3,%fp@(12)                          
   4e21a:	2d4a 0008      	movel %a2,%fp@(8)                           
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4e21e:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4e224:	4e5e           	unlk %fp                                    
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
   4e226:	4ef9 0005 2dd0 	jmp 52dd0 <_CORE_message_queue_Insert_message>
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
   4e22c:	4a04           	tstb %d4                                    
   4e22e:	6612           	bnes 4e242 <_CORE_message_queue_Seize+0x102>
    _ISR_Enable( level );                                             
   4e230:	46c0           	movew %d0,%sr                               
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   4e232:	7004           	moveq #4,%d0                                
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4e234:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
    _ISR_Enable( level );                                             
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   4e23a:	2140 0034      	movel %d0,%a0@(52)                          
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   4e23e:	4e5e           	unlk %fp                                    
   4e240:	4e75           	rts                                         
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (      
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
   4e242:	7201           	moveq #1,%d1                                
   4e244:	2541 0030      	movel %d1,%a2@(48)                          
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
   4e248:	2145 002c      	movel %d5,%a0@(44)                          
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
    return;                                                           
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
   4e24c:	214a 0044      	movel %a2,%a0@(68)                          
  executing->Wait.id = id;                                            
   4e250:	2143 0020      	movel %d3,%a0@(32)                          
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
   4e254:	2149 0028      	movel %a1,%a0@(40)                          
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
   4e258:	46c0           	movew %d0,%sr                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   4e25a:	49f9 0005 0370 	lea 50370 <_Thread_queue_Timeout>,%a4       
   4e260:	2d42 000c      	movel %d2,%fp@(12)                          
   4e264:	2d4c 0010      	movel %a4,%fp@(16)                          
   4e268:	2d4a 0008      	movel %a2,%fp@(8)                           
}                                                                     
   4e26c:	4cee 3c3c ffe0 	moveml %fp@(-32),%d2-%d5/%a2-%a5            
   4e272:	4e5e           	unlk %fp                                    
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   4e274:	4ef9 0005 005c 	jmp 5005c <_Thread_queue_Enqueue_with_handler>
	...                                                                  
                                                                      

000463b4 <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) {
   463b4:	4e56 0000      	linkw %fp,#0                                
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
   463b8:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
  Objects_Id           _id,                                           
  bool                 _wait,                                         
  Watchdog_Interval    _timeout,                                      
  ISR_Level            _level                                         
)                                                                     
{                                                                     
   463be:	2f0a           	movel %a2,%sp@-                             
   463c0:	246e 0008      	moveal %fp@(8),%a2                          
   463c4:	2f02           	movel %d2,%sp@-                             
   463c6:	142e 0013      	moveb %fp@(19),%d2                          
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
   463ca:	4a80           	tstl %d0                                    
   463cc:	671c           	beqs 463ea <_CORE_mutex_Seize+0x36>         
   463ce:	4a02           	tstb %d2                                    
   463d0:	6718           	beqs 463ea <_CORE_mutex_Seize+0x36>         <== NEVER TAKEN
   463d2:	7001           	moveq #1,%d0                                
   463d4:	b0b9 0005 eb14 	cmpl 5eb14 <_System_state_Current>,%d0      
   463da:	640e           	bccs 463ea <_CORE_mutex_Seize+0x36>         
   463dc:	4878 0012      	pea 12 <INVALID_OPERATION+0x2>              
   463e0:	42a7           	clrl %sp@-                                  
   463e2:	42a7           	clrl %sp@-                                  
   463e4:	4eb9 0004 6a08 	jsr 46a08 <_Internal_error_Occurred>        
   463ea:	486e 0018      	pea %fp@(24)                                
   463ee:	2f0a           	movel %a2,%sp@-                             
   463f0:	4eb9 0004 ac50 	jsr 4ac50 <_CORE_mutex_Seize_interrupt_trylock>
   463f6:	508f           	addql #8,%sp                                
   463f8:	4a80           	tstl %d0                                    
   463fa:	6750           	beqs 4644c <_CORE_mutex_Seize+0x98>         
   463fc:	4a02           	tstb %d2                                    
   463fe:	6614           	bnes 46414 <_CORE_mutex_Seize+0x60>         
   46400:	202e 0018      	movel %fp@(24),%d0                          
   46404:	46c0           	movew %d0,%sr                               
   46406:	2079 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a0 
   4640c:	7001           	moveq #1,%d0                                
   4640e:	2140 0034      	movel %d0,%a0@(52)                          
   46412:	6038           	bras 4644c <_CORE_mutex_Seize+0x98>         
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (      
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
   46414:	7001           	moveq #1,%d0                                
   46416:	2079 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a0 
   4641c:	2540 0030      	movel %d0,%a2@(48)                          
   46420:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
   46426:	5280           	addql #1,%d0                                
   46428:	216e 000c 0020 	movel %fp@(12),%a0@(32)                     
   4642e:	214a 0044      	movel %a2,%a0@(68)                          
   46432:	23c0 0005 e9c8 	movel %d0,5e9c8 <_Thread_Dispatch_disable_level>
   46438:	202e 0018      	movel %fp@(24),%d0                          
   4643c:	46c0           	movew %d0,%sr                               
   4643e:	2f2e 0014      	movel %fp@(20),%sp@-                        
   46442:	2f0a           	movel %a2,%sp@-                             
   46444:	4eb9 0004 6350 	jsr 46350 <_CORE_mutex_Seize_interrupt_blocking>
   4644a:	508f           	addql #8,%sp                                
}                                                                     
   4644c:	242e fff8      	movel %fp@(-8),%d2                          
   46450:	246e fffc      	moveal %fp@(-4),%a2                         
   46454:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046590 <_CORE_semaphore_Surrender>: CORE_semaphore_Status _CORE_semaphore_Surrender( CORE_semaphore_Control *the_semaphore, Objects_Id id, CORE_semaphore_API_mp_support_callout api_semaphore_mp_support ) {
   46590:	4e56 0000      	linkw %fp,#0                                
   46594:	2f0a           	movel %a2,%sp@-                             
   46596:	246e 0008      	moveal %fp@(8),%a2                          
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
                                                                      
  if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) {
   4659a:	2f0a           	movel %a2,%sp@-                             
   4659c:	4eb9 0004 7db0 	jsr 47db0 <_Thread_queue_Dequeue>           
   465a2:	588f           	addql #4,%sp                                
   465a4:	4a80           	tstl %d0                                    
   465a6:	6624           	bnes 465cc <_CORE_semaphore_Surrender+0x3c> 
    if ( !_Objects_Is_local_id( the_thread->Object.id ) )             
      (*api_semaphore_mp_support) ( the_thread, id );                 
#endif                                                                
                                                                      
  } else {                                                            
    _ISR_Disable( level );                                            
   465a8:	303c 0700      	movew #1792,%d0                             
   465ac:	40c1           	movew %sr,%d1                               
   465ae:	8081           	orl %d1,%d0                                 
   465b0:	46c0           	movew %d0,%sr                               
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
   465b2:	202a 0048      	movel %a2@(72),%d0                          
   465b6:	b0aa 0040      	cmpl %a2@(64),%d0                           
   465ba:	640a           	bccs 465c6 <_CORE_semaphore_Surrender+0x36> <== NEVER TAKEN
        the_semaphore->count += 1;                                    
   465bc:	5280           	addql #1,%d0                                
   465be:	2540 0048      	movel %d0,%a2@(72)                          
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
   465c2:	4280           	clrl %d0                                    
   465c4:	6002           	bras 465c8 <_CORE_semaphore_Surrender+0x38> 
  } else {                                                            
    _ISR_Disable( level );                                            
      if ( the_semaphore->count < the_semaphore->Attributes.maximum_count )
        the_semaphore->count += 1;                                    
      else                                                            
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
   465c6:	7004           	moveq #4,%d0                                <== NOT EXECUTED
    _ISR_Enable( level );                                             
   465c8:	46c1           	movew %d1,%sr                               
   465ca:	6002           	bras 465ce <_CORE_semaphore_Surrender+0x3e> 
{                                                                     
  Thread_Control *the_thread;                                         
  ISR_Level       level;                                              
  CORE_semaphore_Status status;                                       
                                                                      
  status = CORE_SEMAPHORE_STATUS_SUCCESSFUL;                          
   465cc:	4280           	clrl %d0                                    
        status = CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED;               
    _ISR_Enable( level );                                             
  }                                                                   
                                                                      
  return status;                                                      
}                                                                     
   465ce:	246e fffc      	moveal %fp@(-4),%a2                         
   465d2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045458 <_Event_Surrender>: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; option_set = (rtems_option) the_thread->Wait.option; _ISR_Disable( level );
   45458:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
void _Event_Surrender(                                                
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
   4545e:	4e56 ffe8      	linkw %fp,#-24                              
   45462:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   45466:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_event_set     event_condition;                                
  rtems_event_set     seized_events;                                  
  rtems_option        option_set;                                     
  RTEMS_API_Control  *api;                                            
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
   4546a:	206a 00fe      	moveal %a2@(254),%a0                        
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
   4546e:	282a 0030      	movel %a2@(48),%d4                          
                                                                      
  _ISR_Disable( level );                                              
   45472:	40c1           	movew %sr,%d1                               
   45474:	8081           	orl %d1,%d0                                 
   45476:	46c0           	movew %d0,%sr                               
  pending_events  = api->pending_events;                              
  event_condition = (rtems_event_set) the_thread->Wait.count;         
   45478:	262a 0024      	movel %a2@(36),%d3                          
RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Get(                 
  rtems_event_set the_event_set,                                      
  rtems_event_set the_event_condition                                 
)                                                                     
{                                                                     
   return ( the_event_set & the_event_condition );                    
   4547c:	2003           	movel %d3,%d0                               
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
                                                                      
  _ISR_Disable( level );                                              
  pending_events  = api->pending_events;                              
   4547e:	2410           	movel %a0@,%d2                              
   45480:	c082           	andl %d2,%d0                                
  seized_events = _Event_sets_Get( pending_events, event_condition ); 
                                                                      
  /*                                                                  
   *  No events were seized in this operation                         
   */                                                                 
  if ( _Event_sets_Is_empty( seized_events ) ) {                      
   45482:	6606           	bnes 4548a <_Event_Surrender+0x32>          
    _ISR_Enable( level );                                             
   45484:	46c1           	movew %d1,%sr                               
    return;                                                           
   45486:	6000 00ca      	braw 45552 <_Event_Surrender+0xfa>          
                                                                      
  /*                                                                  
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
   4548a:	4ab9 0005 ee2e 	tstl 5ee2e <_Per_CPU_Information+0x8>       
   45490:	674a           	beqs 454dc <_Event_Surrender+0x84>          
   45492:	b5f9 0005 ee32 	cmpal 5ee32 <_Per_CPU_Information+0xc>,%a2  
   45498:	6642           	bnes 454dc <_Event_Surrender+0x84>          
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
   4549a:	2279 0005 f204 	moveal 5f204 <_Event_Sync_state>,%a1        
  /*                                                                  
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
   454a0:	7a02           	moveq #2,%d5                                
   454a2:	ba89           	cmpl %a1,%d5                                
   454a4:	670e           	beqs 454b4 <_Event_Surrender+0x5c>          <== NEVER TAKEN
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
   454a6:	2279 0005 f204 	moveal 5f204 <_Event_Sync_state>,%a1        
   *  If we are in an ISR and sending to the current thread, then     
   *  we have a critical section issue to deal with.                  
   */                                                                 
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
   454ac:	1a3c 0001      	moveb #1,%d5                                
   454b0:	ba89           	cmpl %a1,%d5                                
   454b2:	6628           	bnes 454dc <_Event_Surrender+0x84>          
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
   454b4:	b680           	cmpl %d0,%d3                                
   454b6:	6706           	beqs 454be <_Event_Surrender+0x66>          
   454b8:	0804 0001      	btst #1,%d4                                 
   454bc:	671a           	beqs 454d8 <_Event_Surrender+0x80>          <== NEVER TAKEN
RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Clear(               
 rtems_event_set the_event_set,                                       
 rtems_event_set the_mask                                             
)                                                                     
{                                                                     
   return ( the_event_set & ~(the_mask) );                            
   454be:	2600           	movel %d0,%d3                               
   454c0:	4683           	notl %d3                                    
   454c2:	c682           	andl %d2,%d3                                
   454c4:	2083           	movel %d3,%a0@                              
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   454c6:	206a 0028      	moveal %a2@(40),%a0                         
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
   454ca:	42aa 0024      	clrl %a2@(36)                               
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   454ce:	2080           	movel %d0,%a0@                              
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
   454d0:	7003           	moveq #3,%d0                                
   454d2:	23c0 0005 f204 	movel %d0,5f204 <_Event_Sync_state>         
    }                                                                 
    _ISR_Enable( level );                                             
   454d8:	46c1           	movew %d1,%sr                               
    return;                                                           
   454da:	6076           	bras 45552 <_Event_Surrender+0xfa>          
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_event (              
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_FOR_EVENT);                    
   454dc:	2a2a 0010      	movel %a2@(16),%d5                          
   454e0:	0285 0000 0100 	andil #256,%d5                              
  }                                                                   
                                                                      
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
   454e6:	6768           	beqs 45550 <_Event_Surrender+0xf8>          
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
   454e8:	b680           	cmpl %d0,%d3                                
   454ea:	6706           	beqs 454f2 <_Event_Surrender+0x9a>          
   454ec:	0804 0001      	btst #1,%d4                                 
   454f0:	675e           	beqs 45550 <_Event_Surrender+0xf8>          <== NEVER TAKEN
   454f2:	2600           	movel %d0,%d3                               
   454f4:	4683           	notl %d3                                    
   454f6:	c682           	andl %d2,%d3                                
   454f8:	2083           	movel %d3,%a0@                              
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   454fa:	206a 0028      	moveal %a2@(40),%a0                         
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
      the_thread->Wait.count = 0;                                     
   454fe:	42aa 0024      	clrl %a2@(36)                               
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
   45502:	2080           	movel %d0,%a0@                              
                                                                      
      _ISR_Flash( level );                                            
   45504:	203c 0000 0700 	movel #1792,%d0                             
   4550a:	46c1           	movew %d1,%sr                               
   4550c:	8081           	orl %d1,%d0                                 
   4550e:	46c0           	movew %d0,%sr                               
   45510:	47f9 0004 7780 	lea 47780 <_Thread_Clear_state>,%a3         
                                                                      
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
   45516:	7a02           	moveq #2,%d5                                
   45518:	baaa 0050      	cmpl %a2@(80),%d5                           
   4551c:	6710           	beqs 4552e <_Event_Surrender+0xd6>          
        _ISR_Enable( level );                                         
   4551e:	46c1           	movew %d1,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   45520:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   45526:	2f0a           	movel %a2,%sp@-                             
   45528:	4e93           	jsr %a3@                                    
   4552a:	508f           	addql #8,%sp                                
   4552c:	6024           	bras 45552 <_Event_Surrender+0xfa>          
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   4552e:	7003           	moveq #3,%d0                                
   45530:	2540 0050      	movel %d0,%a2@(80)                          
        _Thread_Unblock( the_thread );                                
      } else {                                                        
        _Watchdog_Deactivate( &the_thread->Timer );                   
        _ISR_Enable( level );                                         
   45534:	46c1           	movew %d1,%sr                               
        (void) _Watchdog_Remove( &the_thread->Timer );                
   45536:	486a 0048      	pea %a2@(72)                                
   4553a:	4eb9 0004 8880 	jsr 48880 <_Watchdog_Remove>                
   45540:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   45546:	2f0a           	movel %a2,%sp@-                             
   45548:	4e93           	jsr %a3@                                    
   4554a:	4fef 000c      	lea %sp@(12),%sp                            
   4554e:	6002           	bras 45552 <_Event_Surrender+0xfa>          
        _Thread_Unblock( the_thread );                                
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
   45550:	46c1           	movew %d1,%sr                               
}                                                                     
   45552:	4cee 0c3c ffe8 	moveml %fp@(-24),%d2-%d5/%a2-%a3            
   45558:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004555c <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) {
   4555c:	4e56 fffc      	linkw %fp,#-4                               
   45560:	2f03           	movel %d3,%sp@-                             
   45562:	2f02           	movel %d2,%sp@-                             
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
  ISR_Level          level;                                           
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   45564:	486e fffc      	pea %fp@(-4)                                
   45568:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4556c:	4eb9 0004 7ae8 	jsr 47ae8 <_Thread_Get>                     
  switch ( location ) {                                               
   45572:	508f           	addql #8,%sp                                
   45574:	4aae fffc      	tstl %fp@(-4)                               
   45578:	6656           	bnes 455d0 <_Event_Timeout+0x74>            <== NEVER TAKEN
       *                                                              
       *  If it is not satisfied, then it is "nothing happened" and   
       *  this is the "timeout" transition.  After a request is satisfied,
       *  a timeout is not allowed to occur.                          
       */                                                             
      _ISR_Disable( level );                                          
   4557a:	223c 0000 0700 	movel #1792,%d1                             
   45580:	40c2           	movew %sr,%d2                               
   45582:	8282           	orl %d2,%d1                                 
   45584:	46c1           	movew %d1,%sr                               
            _ISR_Enable( level );                                     
            return;                                                   
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
   45586:	2040           	moveal %d0,%a0                              
   45588:	42a8 0024      	clrl %a0@(36)                               
        if ( _Thread_Is_executing( the_thread ) ) {                   
   4558c:	b0b9 0005 ee32 	cmpl 5ee32 <_Per_CPU_Information+0xc>,%d0   
   45592:	6614           	bnes 455a8 <_Event_Timeout+0x4c>            
          if ( _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )
   45594:	2239 0005 f204 	movel 5f204 <_Event_Sync_state>,%d1         
   4559a:	7601           	moveq #1,%d3                                
   4559c:	b681           	cmpl %d1,%d3                                
   4559e:	6608           	bnes 455a8 <_Event_Timeout+0x4c>            
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
   455a0:	7202           	moveq #2,%d1                                
   455a2:	23c1 0005 f204 	movel %d1,5f204 <_Event_Sync_state>         
        }                                                             
                                                                      
        the_thread->Wait.return_code = RTEMS_TIMEOUT;                 
   455a8:	7606           	moveq #6,%d3                                
   455aa:	2040           	moveal %d0,%a0                              
   455ac:	2143 0034      	movel %d3,%a0@(52)                          
      _ISR_Enable( level );                                           
   455b0:	46c2           	movew %d2,%sr                               
   455b2:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   455b8:	2f00           	movel %d0,%sp@-                             
   455ba:	4eb9 0004 7780 	jsr 47780 <_Thread_Clear_state>             
      _Thread_Unblock( the_thread );                                  
      _Thread_Unnest_dispatch();                                      
      break;                                                          
   455c0:	508f           	addql #8,%sp                                
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   455c2:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
   455c8:	5380           	subql #1,%d0                                
   455ca:	23c0 0005 e9c8 	movel %d0,5e9c8 <_Thread_Dispatch_disable_level>
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
   455d0:	242e fff4      	movel %fp@(-12),%d2                         
   455d4:	262e fff8      	movel %fp@(-8),%d3                          
   455d8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b228 <_Heap_Extend>: Heap_Control *heap, void *extend_area_begin_ptr, uintptr_t extend_area_size, uintptr_t *extended_size_ptr ) {
   4b228:	4e56 ffcc      	linkw %fp,#-52                              
   4b22c:	202e 0010      	movel %fp@(16),%d0                          
   4b230:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4b234:	246e 0008      	moveal %fp@(8),%a2                          
   4b238:	262e 000c      	movel %fp@(12),%d3                          
  Heap_Block *extend_first_block = NULL;                              
  Heap_Block *extend_last_block = NULL;                               
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
  uintptr_t const extend_area_begin = (uintptr_t) extend_area_begin_ptr;
  uintptr_t const extend_area_end = extend_area_begin + extend_area_size;
   4b23c:	2403           	movel %d3,%d2                               
   4b23e:	d480           	addl %d0,%d2                                
  uintptr_t const free_size = stats->free_size;                       
   4b240:	206a 0030      	moveal %a2@(48),%a0                         
  uintptr_t extend_area_size,                                         
  uintptr_t *extended_size_ptr                                        
)                                                                     
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
  Heap_Block *const first_block = heap->first_block;                  
   4b244:	282a 0020      	movel %a2@(32),%d4                          
  Heap_Block *merge_above_block = NULL;                               
  Heap_Block *link_below_block = NULL;                                
  Heap_Block *link_above_block = NULL;                                
  Heap_Block *extend_first_block = NULL;                              
  Heap_Block *extend_last_block = NULL;                               
  uintptr_t const page_size = heap->page_size;                        
   4b248:	2a2a 0010      	movel %a2@(16),%d5                          
  uintptr_t const min_block_size = heap->min_block_size;              
   4b24c:	222a 0014      	movel %a2@(20),%d1                          
  Heap_Block *start_block = first_block;                              
  Heap_Block *merge_below_block = NULL;                               
  Heap_Block *merge_above_block = NULL;                               
  Heap_Block *link_below_block = NULL;                                
  Heap_Block *link_above_block = NULL;                                
  Heap_Block *extend_first_block = NULL;                              
   4b250:	42ae fffc      	clrl %fp@(-4)                               
  Heap_Block *extend_last_block = NULL;                               
   4b254:	42ae fff8      	clrl %fp@(-8)                               
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
  uintptr_t const extend_area_begin = (uintptr_t) extend_area_begin_ptr;
  uintptr_t const extend_area_end = extend_area_begin + extend_area_size;
  uintptr_t const free_size = stats->free_size;                       
   4b258:	2d48 fff4      	movel %a0,%fp@(-12)                         
  uintptr_t extend_first_block_size = 0;                              
  uintptr_t extended_size = 0;                                        
  bool extend_area_ok = false;                                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
   4b25c:	b682           	cmpl %d2,%d3                                
   4b25e:	6200 01aa      	bhiw 4b40a <_Heap_Extend+0x1e2>             
    return false;                                                     
  }                                                                   
                                                                      
  extend_area_ok = _Heap_Get_first_and_last_block(                    
   4b262:	486e fff8      	pea %fp@(-8)                                
   4b266:	486e fffc      	pea %fp@(-4)                                
   4b26a:	2f01           	movel %d1,%sp@-                             
   4b26c:	2f05           	movel %d5,%sp@-                             
   4b26e:	2f00           	movel %d0,%sp@-                             
   4b270:	2f03           	movel %d3,%sp@-                             
   4b272:	4eb9 0004 6ac6 	jsr 46ac6 <_Heap_Get_first_and_last_block>  
    page_size,                                                        
    min_block_size,                                                   
    &extend_first_block,                                              
    &extend_last_block                                                
  );                                                                  
  if (!extend_area_ok ) {                                             
   4b278:	4fef 0018      	lea %sp@(24),%sp                            
   4b27c:	4a00           	tstb %d0                                    
   4b27e:	6700 018a      	beqw 4b40a <_Heap_Extend+0x1e2>             
   4b282:	2044           	moveal %d4,%a0                              
   4b284:	9bcd           	subal %a5,%a5                               
   4b286:	4281           	clrl %d1                                    
   4b288:	97cb           	subal %a3,%a3                               
   4b28a:	99cc           	subal %a4,%a4                               
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
   4b28c:	b888           	cmpl %a0,%d4                                
   4b28e:	6704           	beqs 4b294 <_Heap_Extend+0x6c>              
   4b290:	2248           	moveal %a0,%a1                              
   4b292:	6004           	bras 4b298 <_Heap_Extend+0x70>              
   4b294:	226a 0018      	moveal %a2@(24),%a1                         
    uintptr_t const sub_area_end = start_block->prev_size;            
   4b298:	2010           	movel %a0@,%d0                              
    Heap_Block *const end_block =                                     
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
   4b29a:	b680           	cmpl %d0,%d3                                
   4b29c:	6406           	bccs 4b2a4 <_Heap_Extend+0x7c>              
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
   4b29e:	b3c2           	cmpal %d2,%a1                               
   4b2a0:	6500 0168      	bcsw 4b40a <_Heap_Extend+0x1e2>             
    ) {                                                               
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
   4b2a4:	b3c2           	cmpal %d2,%a1                               
   4b2a6:	6706           	beqs 4b2ae <_Heap_Extend+0x86>              
      merge_below_block = start_block;                                
    } else if ( extend_area_end < sub_area_end ) {                    
   4b2a8:	b082           	cmpl %d2,%d0                                
   4b2aa:	6206           	bhis 4b2b2 <_Heap_Extend+0x8a>              
   4b2ac:	6006           	bras 4b2b4 <_Heap_Extend+0x8c>              
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
    ) {                                                               
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
   4b2ae:	2848           	moveal %a0,%a4                              
   4b2b0:	6002           	bras 4b2b4 <_Heap_Extend+0x8c>              
      merge_below_block = start_block;                                
    } else if ( extend_area_end < sub_area_end ) {                    
   4b2b2:	2208           	movel %a0,%d1                               
   4b2b4:	2e00           	movel %d0,%d7                               
   4b2b6:	2240           	moveal %d0,%a1                              
   4b2b8:	5189           	subql #8,%a1                                
   4b2ba:	4c45 7006      	remul %d5,%d6,%d7                           
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
   4b2be:	93c6           	subal %d6,%a1                               
      link_below_block = start_block;                                 
    }                                                                 
                                                                      
    if ( sub_area_end == extend_area_begin ) {                        
   4b2c0:	b680           	cmpl %d0,%d3                                
   4b2c2:	6606           	bnes 4b2ca <_Heap_Extend+0xa2>              
      start_block->prev_size = extend_area_end;                       
   4b2c4:	2082           	movel %d2,%a0@                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_of_alloc_area(           
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
   4b2c6:	2649           	moveal %a1,%a3                              
   4b2c8:	6006           	bras 4b2d0 <_Heap_Extend+0xa8>              
                                                                      
      merge_above_block = end_block;                                  
    } else if ( sub_area_end < extend_area_begin ) {                  
   4b2ca:	b680           	cmpl %d0,%d3                                
   4b2cc:	6302           	blss 4b2d0 <_Heap_Extend+0xa8>              
   4b2ce:	2a49           	moveal %a1,%a5                              
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4b2d0:	70fe           	moveq #-2,%d0                               
   4b2d2:	c0a9 0004      	andl %a1@(4),%d0                            
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4b2d6:	41f1 0800      	lea %a1@(00000000,%d0:l),%a0                
      link_above_block = end_block;                                   
    }                                                                 
                                                                      
    start_block = _Heap_Block_at( end_block, _Heap_Block_size( end_block ) );
  } while ( start_block != first_block );                             
   4b2da:	b888           	cmpl %a0,%d4                                
   4b2dc:	66ae           	bnes 4b28c <_Heap_Extend+0x64>              
                                                                      
  if ( extend_area_begin < heap->area_begin ) {                       
   4b2de:	b6aa 0018      	cmpl %a2@(24),%d3                           
   4b2e2:	6406           	bccs 4b2ea <_Heap_Extend+0xc2>              
    heap->area_begin = extend_area_begin;                             
   4b2e4:	2543 0018      	movel %d3,%a2@(24)                          
   4b2e8:	600a           	bras 4b2f4 <_Heap_Extend+0xcc>              
  } else if ( heap->area_end < extend_area_end ) {                    
   4b2ea:	b4aa 001c      	cmpl %a2@(28),%d2                           
   4b2ee:	6304           	blss 4b2f4 <_Heap_Extend+0xcc>              
    heap->area_end = extend_area_end;                                 
   4b2f0:	2542 001c      	movel %d2,%a2@(28)                          
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
   4b2f4:	206e fff8      	moveal %fp@(-8),%a0                         
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
   4b2f8:	2008           	movel %a0,%d0                               
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
   4b2fa:	7801           	moveq #1,%d4                                
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
   4b2fc:	226e fffc      	moveal %fp@(-4),%a1                         
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
   4b300:	9089           	subl %a1,%d0                                
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
   4b302:	8880           	orl %d0,%d4                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
   4b304:	2282           	movel %d2,%a1@                              
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
   4b306:	2344 0004      	movel %d4,%a1@(4)                           
  _Heap_Protection_block_initialize( heap, extend_first_block );      
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
   4b30a:	2080           	movel %d0,%a0@                              
  extend_last_block->size_and_flag = 0;                               
   4b30c:	42a8 0004      	clrl %a0@(4)                                
  _Heap_Protection_block_initialize( heap, extend_last_block );       
                                                                      
  if ( (uintptr_t) extend_first_block < (uintptr_t) heap->first_block ) {
   4b310:	b3ea 0020      	cmpal %a2@(32),%a1                          
   4b314:	6406           	bccs 4b31c <_Heap_Extend+0xf4>              
    heap->first_block = extend_first_block;                           
   4b316:	2549 0020      	movel %a1,%a2@(32)                          
   4b31a:	600a           	bras 4b326 <_Heap_Extend+0xfe>              
  } else if ( (uintptr_t) extend_last_block > (uintptr_t) heap->last_block ) {
   4b31c:	b1ea 0024      	cmpal %a2@(36),%a0                          
   4b320:	6304           	blss 4b326 <_Heap_Extend+0xfe>              
    heap->last_block = extend_last_block;                             
   4b322:	2548 0024      	movel %a0,%a2@(36)                          
  }                                                                   
                                                                      
  if ( merge_below_block != NULL ) {                                  
   4b326:	4a8c           	tstl %a4                                    
   4b328:	6732           	beqs 4b35c <_Heap_Extend+0x134>             
  Heap_Control *heap,                                                 
  uintptr_t extend_area_begin,                                        
  Heap_Block *first_block                                             
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
   4b32a:	202a 0010      	movel %a2@(16),%d0                          
  uintptr_t const new_first_block_alloc_begin =                       
    _Heap_Align_up( extend_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
   4b32e:	5083           	addql #8,%d3                                
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_up(                        
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
   4b330:	2803           	movel %d3,%d4                               
   4b332:	4c40 4001      	remul %d0,%d1,%d4                           
                                                                      
  if ( remainder != 0 ) {                                             
   4b336:	4a81           	tstl %d1                                    
   4b338:	6704           	beqs 4b33e <_Heap_Extend+0x116>             
    return value - remainder + alignment;                             
   4b33a:	d680           	addl %d0,%d3                                
   4b33c:	9681           	subl %d1,%d3                                
  uintptr_t const new_first_block_begin =                             
   4b33e:	2043           	moveal %d3,%a0                              
   4b340:	5188           	subql #8,%a0                                
    new_first_block_alloc_begin - HEAP_BLOCK_HEADER_SIZE;             
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
  uintptr_t const new_first_block_size =                              
   4b342:	200c           	movel %a4,%d0                               
   4b344:	9088           	subl %a0,%d0                                
    first_block_begin - new_first_block_begin;                        
  Heap_Block *const new_first_block = (Heap_Block *) new_first_block_begin;
                                                                      
  new_first_block->prev_size = first_block->prev_size;                
  new_first_block->size_and_flag = new_first_block_size | HEAP_PREV_BLOCK_USED;
   4b346:	7201           	moveq #1,%d1                                
   4b348:	8280           	orl %d0,%d1                                 
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
  uintptr_t const new_first_block_size =                              
    first_block_begin - new_first_block_begin;                        
  Heap_Block *const new_first_block = (Heap_Block *) new_first_block_begin;
                                                                      
  new_first_block->prev_size = first_block->prev_size;                
   4b34a:	2094           	movel %a4@,%a0@                             
  new_first_block->size_and_flag = new_first_block_size | HEAP_PREV_BLOCK_USED;
   4b34c:	2141 0004      	movel %d1,%a0@(4)                           
                                                                      
  _Heap_Free_block( heap, new_first_block );                          
   4b350:	2f08           	movel %a0,%sp@-                             
   4b352:	2f0a           	movel %a2,%sp@-                             
   4b354:	4eba feb6      	jsr %pc@(4b20c <_Heap_Free_block>)          
   4b358:	508f           	addql #8,%sp                                
   4b35a:	6012           	bras 4b36e <_Heap_Extend+0x146>             
    heap->last_block = extend_last_block;                             
  }                                                                   
                                                                      
  if ( merge_below_block != NULL ) {                                  
    _Heap_Merge_below( heap, extend_area_begin, merge_below_block );  
  } else if ( link_below_block != NULL ) {                            
   4b35c:	4a81           	tstl %d1                                    
   4b35e:	670e           	beqs 4b36e <_Heap_Extend+0x146>             
    _Heap_Link_below(                                                 
   4b360:	206e fff8      	moveal %fp@(-8),%a0                         
{                                                                     
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const link_begin = (uintptr_t) link;                      
                                                                      
  last_block->size_and_flag =                                         
    (link_begin - last_block_begin) | HEAP_PREV_BLOCK_USED;           
   4b364:	7801           	moveq #1,%d4                                
   4b366:	9288           	subl %a0,%d1                                
   4b368:	8881           	orl %d1,%d4                                 
   4b36a:	2144 0004      	movel %d4,%a0@(4)                           
      link_below_block,                                               
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
   4b36e:	4a8b           	tstl %a3                                    
   4b370:	6734           	beqs 4b3a6 <_Heap_Extend+0x17e>             
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const last_block_new_size = _Heap_Align_down(             
    extend_area_end - last_block_begin - HEAP_BLOCK_HEADER_SIZE,      
   4b372:	5182           	subql #8,%d2                                
  uintptr_t extend_area_end                                           
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const last_block_new_size = _Heap_Align_down(             
   4b374:	948b           	subl %a3,%d2                                
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
   4b376:	2202           	movel %d2,%d1                               
   4b378:	4c6a 1000 0010 	remul %a2@(16),%d0,%d1                      
  Heap_Block *const new_last_block =                                  
    _Heap_Block_at( last_block, last_block_new_size );                
                                                                      
  new_last_block->size_and_flag =                                     
    (last_block->size_and_flag - last_block_new_size)                 
      | HEAP_PREV_BLOCK_USED;                                         
   4b37e:	7201           	moveq #1,%d1                                
   4b380:	9480           	subl %d0,%d2                                
  );                                                                  
  Heap_Block *const new_last_block =                                  
    _Heap_Block_at( last_block, last_block_new_size );                
                                                                      
  new_last_block->size_and_flag =                                     
    (last_block->size_and_flag - last_block_new_size)                 
   4b382:	202b 0004      	movel %a3@(4),%d0                           
   4b386:	9082           	subl %d2,%d0                                
      | HEAP_PREV_BLOCK_USED;                                         
   4b388:	8280           	orl %d0,%d1                                 
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4b38a:	7001           	moveq #1,%d0                                
   4b38c:	2781 2804      	movel %d1,%a3@(00000004,%d2:l)              
   4b390:	c0ab 0004      	andl %a3@(4),%d0                            
                                                                      
  block->size_and_flag = size | flag;                                 
   4b394:	8480           	orl %d0,%d2                                 
   4b396:	2742 0004      	movel %d2,%a3@(4)                           
                                                                      
  _Heap_Block_set_size( last_block, last_block_new_size );            
                                                                      
  _Heap_Free_block( heap, last_block );                               
   4b39a:	2f0b           	movel %a3,%sp@-                             
   4b39c:	2f0a           	movel %a2,%sp@-                             
   4b39e:	4eba fe6c      	jsr %pc@(4b20c <_Heap_Free_block>)          
   4b3a2:	508f           	addql #8,%sp                                
   4b3a4:	6020           	bras 4b3c6 <_Heap_Extend+0x19e>             
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
   4b3a6:	4a8d           	tstl %a5                                    
   4b3a8:	671c           	beqs 4b3c6 <_Heap_Extend+0x19e>             
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4b3aa:	7001           	moveq #1,%d0                                
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
                                                                      
  last_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                  
   4b3ac:	7801           	moveq #1,%d4                                
)                                                                     
{                                                                     
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
   4b3ae:	222e fffc      	movel %fp@(-4),%d1                          
   4b3b2:	928d           	subl %a5,%d1                                
   4b3b4:	c0ad 0004      	andl %a5@(4),%d0                            
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
    _Heap_Link_above(                                                 
   4b3b8:	206e fff8      	moveal %fp@(-8),%a0                         
                                                                      
  block->size_and_flag = size | flag;                                 
   4b3bc:	8280           	orl %d0,%d1                                 
   4b3be:	2b41 0004      	movel %d1,%a5@(4)                           
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
                                                                      
  last_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                  
   4b3c2:	89a8 0004      	orl %d4,%a0@(4)                             
      extend_first_block,                                             
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
   4b3c6:	4a8c           	tstl %a4                                    
   4b3c8:	6610           	bnes 4b3da <_Heap_Extend+0x1b2>             
   4b3ca:	4a8b           	tstl %a3                                    
   4b3cc:	660c           	bnes 4b3da <_Heap_Extend+0x1b2>             
    _Heap_Free_block( heap, extend_first_block );                     
   4b3ce:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   4b3d2:	2f0a           	movel %a2,%sp@-                             
   4b3d4:	4eba fe36      	jsr %pc@(4b20c <_Heap_Free_block>)          
   4b3d8:	508f           	addql #8,%sp                                
 */                                                                   
RTEMS_INLINE_ROUTINE void _Heap_Set_last_block_size( Heap_Control *heap )
{                                                                     
  _Heap_Block_set_size(                                               
    heap->last_block,                                                 
    (uintptr_t) heap->first_block - (uintptr_t) heap->last_block      
   4b3da:	206a 0024      	moveal %a2@(36),%a0                         
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4b3de:	7001           	moveq #1,%d0                                
 * This feature will be used to terminate the scattered heap area list.  See
 * also _Heap_Extend().                                               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Heap_Set_last_block_size( Heap_Control *heap )
{                                                                     
  _Heap_Block_set_size(                                               
   4b3e0:	222a 0020      	movel %a2@(32),%d1                          
   4b3e4:	9288           	subl %a0,%d1                                
RTEMS_INLINE_ROUTINE void _Heap_Block_set_size(                       
  Heap_Block *block,                                                  
  uintptr_t size                                                      
)                                                                     
{                                                                     
  uintptr_t flag = block->size_and_flag & HEAP_PREV_BLOCK_USED;       
   4b3e6:	c0a8 0004      	andl %a0@(4),%d0                            
                                                                      
  block->size_and_flag = size | flag;                                 
   4b3ea:	8280           	orl %d0,%d1                                 
  }                                                                   
                                                                      
  _Heap_Set_last_block_size( heap );                                  
                                                                      
  extended_size = stats->free_size - free_size;                       
   4b3ec:	202a 0030      	movel %a2@(48),%d0                          
   4b3f0:	90ae fff4      	subl %fp@(-12),%d0                          
   4b3f4:	2141 0004      	movel %d1,%a0@(4)                           
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
   4b3f8:	d1aa 002c      	addl %d0,%a2@(44)                           
                                                                      
  if ( extended_size_ptr != NULL )                                    
   4b3fc:	4aae 0014      	tstl %fp@(20)                               
   4b400:	670c           	beqs 4b40e <_Heap_Extend+0x1e6>             <== NEVER TAKEN
    *extended_size_ptr = extended_size;                               
   4b402:	206e 0014      	moveal %fp@(20),%a0                         
   4b406:	2080           	movel %d0,%a0@                              
   4b408:	6004           	bras 4b40e <_Heap_Extend+0x1e6>             
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
    ) {                                                               
      return false;                                                   
   4b40a:	4200           	clrb %d0                                    
   4b40c:	6002           	bras 4b410 <_Heap_Extend+0x1e8>             
  stats->size += extended_size;                                       
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
   4b40e:	7001           	moveq #1,%d0                                
}                                                                     
   4b410:	4cee 3cfc ffcc 	moveml %fp@(-52),%d2-%d7/%a2-%a5            
   4b416:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004af2c <_Heap_Free>: return do_free; } #endif bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr ) {
   4af2c:	4e56 ffe8      	linkw %fp,#-24                              
   4af30:	206e 0008      	moveal %fp@(8),%a0                          
   4af34:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   4af38:	202e 000c      	movel %fp@(12),%d0                          
  /*                                                                  
   * If NULL return true so a free on NULL is considered a valid release. This
   * is a special case that could be handled by the in heap check how-ever that
   * would result in false being returned which is wrong.             
   */                                                                 
  if ( alloc_begin_ptr == NULL ) {                                    
   4af3c:	6700 0150      	beqw 4b08e <_Heap_Free+0x162>               
   4af40:	2240           	moveal %d0,%a1                              
   4af42:	5189           	subql #8,%a1                                
   4af44:	4c68 0001 0010 	remul %a0@(16),%d1,%d0                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in_heap(                     
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
   4af4a:	2828 0020      	movel %a0@(32),%d4                          
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
   4af4e:	93c1           	subal %d1,%a1                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   4af50:	b889           	cmpl %a1,%d4                                
   4af52:	620c           	bhis 4af60 <_Heap_Free+0x34>                
   4af54:	b3e8 0024      	cmpal %a0@(36),%a1                          
   4af58:	53c0           	sls %d0                                     
   4af5a:	49c0           	extbl %d0                                   
   4af5c:	4480           	negl %d0                                    
   4af5e:	6002           	bras 4af62 <_Heap_Free+0x36>                
   4af60:	4280           	clrl %d0                                    
  }                                                                   
                                                                      
  alloc_begin = (uintptr_t) alloc_begin_ptr;                          
  block = _Heap_Block_of_alloc_area( alloc_begin, heap->page_size );  
                                                                      
  if ( !_Heap_Is_block_in_heap( heap, block ) ) {                     
   4af62:	4a00           	tstb %d0                                    
   4af64:	6700 012c      	beqw 4b092 <_Heap_Free+0x166>               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
   4af68:	2629 0004      	movel %a1@(4),%d3                           
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4af6c:	70fe           	moveq #-2,%d0                               
   4af6e:	c083           	andl %d3,%d0                                
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4af70:	45f1 0800      	lea %a1@(00000000,%d0:l),%a2                
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   4af74:	b88a           	cmpl %a2,%d4                                
   4af76:	620c           	bhis 4af84 <_Heap_Free+0x58>                <== NEVER TAKEN
   4af78:	b5e8 0024      	cmpal %a0@(36),%a2                          
   4af7c:	53c1           	sls %d1                                     
   4af7e:	49c1           	extbl %d1                                   
   4af80:	4481           	negl %d1                                    
   4af82:	6002           	bras 4af86 <_Heap_Free+0x5a>                
   4af84:	4281           	clrl %d1                                    <== NOT EXECUTED
  _Heap_Protection_block_check( heap, block );                        
                                                                      
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
                                                                      
  if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {                
   4af86:	4a01           	tstb %d1                                    
   4af88:	6700 0108      	beqw 4b092 <_Heap_Free+0x166>               
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
   4af8c:	242a 0004      	movel %a2@(4),%d2                           
    return false;                                                     
  }                                                                   
                                                                      
  _Heap_Protection_block_check( heap, next_block );                   
                                                                      
  if ( !_Heap_Is_prev_used( next_block ) ) {                          
   4af90:	0802 0000      	btst #0,%d2                                 
   4af94:	6700 00fc      	beqw 4b092 <_Heap_Free+0x166>               
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   4af98:	72fe           	moveq #-2,%d1                               
  if ( !_Heap_Protection_determine_block_free( heap, block ) ) {      
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
   4af9a:	2668 0024      	moveal %a0@(36),%a3                         
   4af9e:	c481           	andl %d1,%d2                                
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
   4afa0:	b7ca           	cmpal %a2,%a3                               
   4afa2:	670c           	beqs 4afb0 <_Heap_Free+0x84>                
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4afa4:	7201           	moveq #1,%d1                                
   4afa6:	c2b2 2804      	andl %a2@(00000004,%d2:l),%d1               
                                                                      
    return do_free;                                                   
  }                                                                   
#endif                                                                
                                                                      
bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr )          
   4afaa:	5381           	subql #1,%d1                                
   4afac:	4481           	negl %d1                                    
   4afae:	6002           	bras 4afb2 <_Heap_Free+0x86>                
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
   4afb0:	4281           	clrl %d1                                    
  if ( !_Heap_Protection_determine_block_free( heap, block ) ) {      
    return true;                                                      
  }                                                                   
                                                                      
  next_block_size = _Heap_Block_size( next_block );                   
  next_is_free = next_block != heap->last_block                       
   4afb2:	1a01           	moveb %d1,%d5                               
    && !_Heap_Is_prev_used( _Heap_Block_at( next_block, next_block_size ));
                                                                      
  if ( !_Heap_Is_prev_used( block ) ) {                               
   4afb4:	0803 0000      	btst #0,%d3                                 
   4afb8:	6662           	bnes 4b01c <_Heap_Free+0xf0>                
    uintptr_t const prev_size = block->prev_size;                     
   4afba:	2611           	movel %a1@,%d3                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   4afbc:	93c3           	subal %d3,%a1                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   4afbe:	b889           	cmpl %a1,%d4                                
   4afc0:	620a           	bhis 4afcc <_Heap_Free+0xa0>                <== NEVER TAKEN
   4afc2:	b3cb           	cmpal %a3,%a1                               
   4afc4:	53c1           	sls %d1                                     
   4afc6:	49c1           	extbl %d1                                   
   4afc8:	4481           	negl %d1                                    
   4afca:	6002           	bras 4afce <_Heap_Free+0xa2>                
   4afcc:	4281           	clrl %d1                                    <== NOT EXECUTED
    Heap_Block * const prev_block = _Heap_Block_at( block, -prev_size );
                                                                      
    if ( !_Heap_Is_block_in_heap( heap, prev_block ) ) {              
   4afce:	4a01           	tstb %d1                                    
   4afd0:	6700 00c0      	beqw 4b092 <_Heap_Free+0x166>               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4afd4:	7201           	moveq #1,%d1                                
   4afd6:	c2a9 0004      	andl %a1@(4),%d1                            
      return( false );                                                
    }                                                                 
                                                                      
    /* As we always coalesce free blocks, the block that preceedes prev_block
       must have been used. */                                        
    if ( !_Heap_Is_prev_used ( prev_block) ) {                        
   4afda:	6700 00b6      	beqw 4b092 <_Heap_Free+0x166>               
      _HAssert( false );                                              
      return( false );                                                
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
   4afde:	4a05           	tstb %d5                                    
   4afe0:	6726           	beqs 4b008 <_Heap_Free+0xdc>                
  return _Heap_Free_list_tail(heap)->prev;                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE void _Heap_Free_list_remove( Heap_Block *block ) 
{                                                                     
  Heap_Block *next = block->next;                                     
   4afe2:	266a 0008      	moveal %a2@(8),%a3                          
      uintptr_t const size = block_size + prev_size + next_block_size;
   4afe6:	d480           	addl %d0,%d2                                
   4afe8:	d682           	addl %d2,%d3                                
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4afea:	7401           	moveq #1,%d2                                
  Heap_Block *prev = block->prev;                                     
   4afec:	246a 000c      	moveal %a2@(12),%a2                         
                                                                      
  prev->next = next;                                                  
   4aff0:	254b 0008      	movel %a3,%a2@(8)                           
   4aff4:	8483           	orl %d3,%d2                                 
  next->prev = prev;                                                  
   4aff6:	274a 000c      	movel %a2,%a3@(12)                          
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
   4affa:	53a8 0038      	subql #1,%a0@(56)                           
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
   4affe:	2383 3800      	movel %d3,%a1@(00000000,%d3:l)              
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4b002:	2342 0004      	movel %d2,%a1@(4)                           
   4b006:	607a           	bras 4b082 <_Heap_Free+0x156>               
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
   4b008:	d680           	addl %d0,%d3                                
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4b00a:	7201           	moveq #1,%d1                                
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
   4b00c:	74fe           	moveq #-2,%d2                               
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4b00e:	8283           	orl %d3,%d1                                 
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
      next_block->prev_size = size;                                   
   4b010:	2483           	movel %d3,%a2@                              
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
   4b012:	2341 0004      	movel %d1,%a1@(4)                           
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
   4b016:	c5aa 0004      	andl %d2,%a2@(4)                            
   4b01a:	6066           	bras 4b082 <_Heap_Free+0x156>               
      next_block->prev_size = size;                                   
    }                                                                 
  } else if ( next_is_free ) {    /* coalesce next */                 
   4b01c:	4a01           	tstb %d1                                    
   4b01e:	672a           	beqs 4b04a <_Heap_Free+0x11e>               
RTEMS_INLINE_ROUTINE void _Heap_Free_list_replace(                    
  Heap_Block *old_block,                                              
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = old_block->next;                                 
   4b020:	266a 0008      	moveal %a2@(8),%a3                          
    uintptr_t const size = block_size + next_block_size;              
   4b024:	2202           	movel %d2,%d1                               
   4b026:	d280           	addl %d0,%d1                                
    _Heap_Free_list_replace( next_block, block );                     
    block->size_and_flag = size | HEAP_PREV_BLOCK_USED;               
   4b028:	7401           	moveq #1,%d2                                
  Heap_Block *prev = old_block->prev;                                 
   4b02a:	246a 000c      	moveal %a2@(12),%a2                         
                                                                      
  new_block->next = next;                                             
   4b02e:	234b 0008      	movel %a3,%a1@(8)                           
   4b032:	8481           	orl %d1,%d2                                 
  new_block->prev = prev;                                             
   4b034:	234a 000c      	movel %a2,%a1@(12)                          
    next_block  = _Heap_Block_at( block, size );                      
    next_block->prev_size = size;                                     
   4b038:	2381 1800      	movel %d1,%a1@(00000000,%d1:l)              
                                                                      
  next->prev = new_block;                                             
   4b03c:	2749 000c      	movel %a1,%a3@(12)                          
  prev->next = new_block;                                             
   4b040:	2549 0008      	movel %a1,%a2@(8)                           
      next_block->prev_size = size;                                   
    }                                                                 
  } else if ( next_is_free ) {    /* coalesce next */                 
    uintptr_t const size = block_size + next_block_size;              
    _Heap_Free_list_replace( next_block, block );                     
    block->size_and_flag = size | HEAP_PREV_BLOCK_USED;               
   4b044:	2342 0004      	movel %d2,%a1@(4)                           
   4b048:	6038           	bras 4b082 <_Heap_Free+0x156>               
    next_block->prev_size = size;                                     
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
   4b04a:	7201           	moveq #1,%d1                                
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
   4b04c:	74fe           	moveq #-2,%d2                               
    next_block->prev_size = size;                                     
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
   4b04e:	8280           	orl %d0,%d1                                 
RTEMS_INLINE_ROUTINE void _Heap_Free_list_insert_after(               
  Heap_Block *block_before,                                           
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
   4b050:	2668 0008      	moveal %a0@(8),%a3                          
                                                                      
  new_block->next = next;                                             
  new_block->prev = block_before;                                     
   4b054:	2348 000c      	movel %a0,%a1@(12)                          
   4b058:	2341 0004      	movel %d1,%a1@(4)                           
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
    next_block->prev_size = block_size;                               
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
   4b05c:	2228 0038      	movel %a0@(56),%d1                          
   4b060:	5281           	addql #1,%d1                                
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
                                                                      
  new_block->next = next;                                             
   4b062:	234b 0008      	movel %a3,%a1@(8)                           
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
   4b066:	c5aa 0004      	andl %d2,%a2@(4)                            
  new_block->prev = block_before;                                     
  block_before->next = new_block;                                     
  next->prev = new_block;                                             
   4b06a:	2749 000c      	movel %a1,%a3@(12)                          
    next_block->prev_size = block_size;                               
   4b06e:	2480           	movel %d0,%a2@                              
{                                                                     
  Heap_Block *next = block_before->next;                              
                                                                      
  new_block->next = next;                                             
  new_block->prev = block_before;                                     
  block_before->next = new_block;                                     
   4b070:	2149 0008      	movel %a1,%a0@(8)                           
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
   4b074:	2141 0038      	movel %d1,%a0@(56)                          
    if ( stats->max_free_blocks < stats->free_blocks ) {              
   4b078:	b2a8 003c      	cmpl %a0@(60),%d1                           
   4b07c:	6304           	blss 4b082 <_Heap_Free+0x156>               
      stats->max_free_blocks = stats->free_blocks;                    
   4b07e:	2141 003c      	movel %d1,%a0@(60)                          
    }                                                                 
  }                                                                   
                                                                      
  /* Statistics */                                                    
  --stats->used_blocks;                                               
   4b082:	53a8 0040      	subql #1,%a0@(64)                           
  ++stats->frees;                                                     
   4b086:	52a8 0050      	addql #1,%a0@(80)                           
  stats->free_size += block_size;                                     
   4b08a:	d1a8 0030      	addl %d0,%a0@(48)                           
   * If NULL return true so a free on NULL is considered a valid release. This
   * is a special case that could be handled by the in heap check how-ever that
   * would result in false being returned which is wrong.             
   */                                                                 
  if ( alloc_begin_ptr == NULL ) {                                    
    return true;                                                      
   4b08e:	7001           	moveq #1,%d0                                
   4b090:	6002           	bras 4b094 <_Heap_Free+0x168>               
                                                                      
    /* As we always coalesce free blocks, the block that preceedes prev_block
       must have been used. */                                        
    if ( !_Heap_Is_prev_used ( prev_block) ) {                        
      _HAssert( false );                                              
      return( false );                                                
   4b092:	4200           	clrb %d0                                    
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
   4b094:	4cd7 0c3c      	moveml %sp@,%d2-%d5/%a2-%a3                 
   4b098:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005b188 <_Heap_Size_of_alloc_area>: bool _Heap_Size_of_alloc_area( Heap_Control *heap, void *alloc_begin_ptr, uintptr_t *alloc_size ) {
   5b188:	4e56 0000      	linkw %fp,#0                                
   5b18c:	202e 000c      	movel %fp@(12),%d0                          
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
   5b190:	2040           	moveal %d0,%a0                              
   5b192:	5188           	subql #8,%a0                                
   5b194:	226e 0008      	moveal %fp@(8),%a1                          
   5b198:	2f02           	movel %d2,%sp@-                             
   5b19a:	2400           	movel %d0,%d2                               
   5b19c:	4c69 2001 0010 	remul %a1@(16),%d1,%d2                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in_heap(                     
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
   5b1a2:	2429 0020      	movel %a1@(32),%d2                          
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
   5b1a6:	91c1           	subal %d1,%a0                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   5b1a8:	b488           	cmpl %a0,%d2                                
   5b1aa:	620c           	bhis 5b1b8 <_Heap_Size_of_alloc_area+0x30>  
   5b1ac:	b1e9 0024      	cmpal %a1@(36),%a0                          
   5b1b0:	53c1           	sls %d1                                     
   5b1b2:	49c1           	extbl %d1                                   
   5b1b4:	4481           	negl %d1                                    
   5b1b6:	6002           	bras 5b1ba <_Heap_Size_of_alloc_area+0x32>  
   5b1b8:	4281           	clrl %d1                                    
  uintptr_t const alloc_begin = (uintptr_t) alloc_begin_ptr;          
  Heap_Block *block = _Heap_Block_of_alloc_area( alloc_begin, page_size );
  Heap_Block *next_block = NULL;                                      
  uintptr_t block_size = 0;                                           
                                                                      
  if ( !_Heap_Is_block_in_heap( heap, block ) ) {                     
   5b1ba:	4a01           	tstb %d1                                    
   5b1bc:	6738           	beqs 5b1f6 <_Heap_Size_of_alloc_area+0x6e>  
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   5b1be:	72fe           	moveq #-2,%d1                               
   5b1c0:	c2a8 0004      	andl %a0@(4),%d1                            
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   5b1c4:	d1c1           	addal %d1,%a0                               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   5b1c6:	b488           	cmpl %a0,%d2                                
   5b1c8:	620c           	bhis 5b1d6 <_Heap_Size_of_alloc_area+0x4e>  <== NEVER TAKEN
   5b1ca:	b1e9 0024      	cmpal %a1@(36),%a0                          
   5b1ce:	53c1           	sls %d1                                     
   5b1d0:	49c1           	extbl %d1                                   
   5b1d2:	4481           	negl %d1                                    
   5b1d4:	6002           	bras 5b1d8 <_Heap_Size_of_alloc_area+0x50>  
   5b1d6:	4281           	clrl %d1                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
                                                                      
  if (                                                                
   5b1d8:	4a01           	tstb %d1                                    
   5b1da:	671a           	beqs 5b1f6 <_Heap_Size_of_alloc_area+0x6e>  <== NEVER TAKEN
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   5b1dc:	7201           	moveq #1,%d1                                
   5b1de:	c2a8 0004      	andl %a0@(4),%d1                            
    !_Heap_Is_block_in_heap( heap, next_block )                       
      || !_Heap_Is_prev_used( next_block )                            
   5b1e2:	6712           	beqs 5b1f6 <_Heap_Size_of_alloc_area+0x6e>  <== NEVER TAKEN
  ) {                                                                 
    return false;                                                     
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
   5b1e4:	7204           	moveq #4,%d1                                
   5b1e6:	9280           	subl %d0,%d1                                
   5b1e8:	2001           	movel %d1,%d0                               
   5b1ea:	d088           	addl %a0,%d0                                
   5b1ec:	226e 0010      	moveal %fp@(16),%a1                         
   5b1f0:	2280           	movel %d0,%a1@                              
                                                                      
  return true;                                                        
   5b1f2:	7001           	moveq #1,%d0                                
   5b1f4:	6002           	bras 5b1f8 <_Heap_Size_of_alloc_area+0x70>  
                                                                      
  if (                                                                
    !_Heap_Is_block_in_heap( heap, next_block )                       
      || !_Heap_Is_prev_used( next_block )                            
  ) {                                                                 
    return false;                                                     
   5b1f6:	4200           	clrb %d0                                    
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
                                                                      
  return true;                                                        
}                                                                     
   5b1f8:	241f           	movel %sp@+,%d2                             
   5b1fa:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047426 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *heap, int source, bool dump ) {
   47426:	4e56 ffd0      	linkw %fp,#-48                              
   4742a:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4742e:	266e 0008      	moveal %fp@(8),%a3                          
  uintptr_t const min_block_size = heap->min_block_size;              
  Heap_Block *const first_block = heap->first_block;                  
  Heap_Block *const last_block = heap->last_block;                    
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
   47432:	45fa ffac      	lea %pc@(473e0 <_Heap_Walk_print_nothing>),%a2
bool _Heap_Walk(                                                      
  Heap_Control *heap,                                                 
  int source,                                                         
  bool dump                                                           
)                                                                     
{                                                                     
   47436:	242e 000c      	movel %fp@(12),%d2                          
  uintptr_t const page_size = heap->page_size;                        
   4743a:	282b 0010      	movel %a3@(16),%d4                          
  uintptr_t const min_block_size = heap->min_block_size;              
   4743e:	2a2b 0014      	movel %a3@(20),%d5                          
  Heap_Block *const first_block = heap->first_block;                  
   47442:	2c2b 0020      	movel %a3@(32),%d6                          
  Heap_Block *const last_block = heap->last_block;                    
   47446:	2e2b 0024      	movel %a3@(36),%d7                          
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
   4744a:	4a2e 0013      	tstb %fp@(19)                               
   4744e:	6704           	beqs 47454 <_Heap_Walk+0x2e>                
   47450:	45fa ff96      	lea %pc@(473e8 <_Heap_Walk_print>),%a2      
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
   47454:	7003           	moveq #3,%d0                                
   47456:	b0b9 0006 0ebc 	cmpl 60ebc <_System_state_Current>,%d0      
   4745c:	6600 02fc      	bnew 4775a <_Heap_Walk+0x334>               
  Heap_Block *const first_free_block = _Heap_Free_list_first( heap ); 
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  Heap_Block *const first_block = heap->first_block;                  
  Heap_Block *const last_block = heap->last_block;                    
                                                                      
  (*printer)(                                                         
   47460:	2f2b 000c      	movel %a3@(12),%sp@-                        
   47464:	2f2b 0008      	movel %a3@(8),%sp@-                         
   47468:	2f07           	movel %d7,%sp@-                             
   4746a:	2f06           	movel %d6,%sp@-                             
   4746c:	2f2b 001c      	movel %a3@(28),%sp@-                        
   47470:	2f2b 0018      	movel %a3@(24),%sp@-                        
   47474:	2f05           	movel %d5,%sp@-                             
   47476:	2f04           	movel %d4,%sp@-                             
   47478:	4879 0005 d139 	pea 5d139 <_Status_Object_name_errors_to_status+0x5d>
   4747e:	42a7           	clrl %sp@-                                  
   47480:	2f02           	movel %d2,%sp@-                             
   47482:	4e92           	jsr %a2@                                    
    heap->area_begin, heap->area_end,                                 
    first_block, last_block,                                          
    first_free_block, last_free_block                                 
  );                                                                  
                                                                      
  if ( page_size == 0 ) {                                             
   47484:	4fef 002c      	lea %sp@(44),%sp                            
   47488:	4a84           	tstl %d4                                    
   4748a:	6608           	bnes 47494 <_Heap_Walk+0x6e>                
    (*printer)( source, true, "page size is zero\n" );                
   4748c:	4879 0005 d1ca 	pea 5d1ca <_Status_Object_name_errors_to_status+0xee>
   47492:	6050           	bras 474e4 <_Heap_Walk+0xbe>                
)                                                                     
{                                                                     
#if (CPU_ALIGNMENT == 0)                                              
    return true;                                                      
#else                                                                 
    return (((uintptr_t)address % CPU_ALIGNMENT) == 0);               
   47494:	7003           	moveq #3,%d0                                
   47496:	c084           	andl %d4,%d0                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
   47498:	670c           	beqs 474a6 <_Heap_Walk+0x80>                
    (*printer)(                                                       
   4749a:	2f04           	movel %d4,%sp@-                             
   4749c:	4879 0005 d1dd 	pea 5d1dd <_Status_Object_name_errors_to_status+0x101>
   474a2:	6000 02ca      	braw 4776e <_Heap_Walk+0x348>               
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   474a6:	2205           	movel %d5,%d1                               
   474a8:	4c44 1000      	remul %d4,%d0,%d1                           
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
   474ac:	4a80           	tstl %d0                                    
   474ae:	670c           	beqs 474bc <_Heap_Walk+0x96>                
    (*printer)(                                                       
   474b0:	2f05           	movel %d5,%sp@-                             
   474b2:	4879 0005 d1fb 	pea 5d1fb <_Status_Object_name_errors_to_status+0x11f>
   474b8:	6000 02b4      	braw 4776e <_Heap_Walk+0x348>               
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
   474bc:	2006           	movel %d6,%d0                               
   474be:	5080           	addql #8,%d0                                
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   474c0:	4c44 0001      	remul %d4,%d1,%d0                           
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
   474c4:	4a81           	tstl %d1                                    
   474c6:	670c           	beqs 474d4 <_Heap_Walk+0xae>                
    !_Heap_Is_aligned( _Heap_Alloc_area_of_block( first_block ), page_size )
  ) {                                                                 
    (*printer)(                                                       
   474c8:	2f06           	movel %d6,%sp@-                             
   474ca:	4879 0005 d21f 	pea 5d21f <_Status_Object_name_errors_to_status+0x143>
   474d0:	6000 029c      	braw 4776e <_Heap_Walk+0x348>               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   474d4:	7001           	moveq #1,%d0                                
   474d6:	2046           	moveal %d6,%a0                              
   474d8:	c0a8 0004      	andl %a0@(4),%d0                            
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
   474dc:	6616           	bnes 474f4 <_Heap_Walk+0xce>                
    (*printer)(                                                       
   474de:	4879 0005 d250 	pea 5d250 <_Status_Object_name_errors_to_status+0x174>
   474e4:	4878 0001      	pea 1 <ADD>                                 
   474e8:	2f02           	movel %d2,%sp@-                             
   474ea:	4e92           	jsr %a2@                                    
   474ec:	4fef 000c      	lea %sp@(12),%sp                            
   474f0:	6000 00ba      	braw 475ac <_Heap_Walk+0x186>               
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   474f4:	70fe           	moveq #-2,%d0                               
   474f6:	2047           	moveal %d7,%a0                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   474f8:	2847           	moveal %d7,%a4                              
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   474fa:	c0a8 0004      	andl %a0@(4),%d0                            
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   474fe:	d9c0           	addal %d0,%a4                               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   47500:	7001           	moveq #1,%d0                                
   47502:	c0ac 0004      	andl %a4@(4),%d0                            
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
   47506:	6608           	bnes 47510 <_Heap_Walk+0xea>                
    (*printer)(                                                       
   47508:	4879 0005 d27e 	pea 5d27e <_Status_Object_name_errors_to_status+0x1a2>
   4750e:	60d4           	bras 474e4 <_Heap_Walk+0xbe>                
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
   47510:	bc8c           	cmpl %a4,%d6                                
   47512:	6708           	beqs 4751c <_Heap_Walk+0xf6>                
    _Heap_Block_at( last_block, _Heap_Block_size( last_block ) ) != first_block
  ) {                                                                 
    (*printer)(                                                       
   47514:	4879 0005 d293 	pea 5d293 <_Status_Object_name_errors_to_status+0x1b7>
   4751a:	60c8           	bras 474e4 <_Heap_Walk+0xbe>                
  int source,                                                         
  Heap_Walk_printer printer,                                          
  Heap_Control *heap                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
   4751c:	262b 0010      	movel %a3@(16),%d3                          
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
   47520:	220b           	movel %a3,%d1                               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   47522:	206b 0008      	moveal %a3@(8),%a0                          
   47526:	2d44 fff8      	movel %d4,%fp@(-8)                          
   4752a:	2d43 fffc      	movel %d3,%fp@(-4)                          
   4752e:	6000 0088      	braw 475b8 <_Heap_Walk+0x192>               
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   47532:	b1eb 0020      	cmpal %a3@(32),%a0                          
   47536:	650c           	bcss 47544 <_Heap_Walk+0x11e>               
   47538:	b1eb 0024      	cmpal %a3@(36),%a0                          
   4753c:	53c0           	sls %d0                                     
   4753e:	49c0           	extbl %d0                                   
   47540:	4480           	negl %d0                                    
   47542:	6002           	bras 47546 <_Heap_Walk+0x120>               
   47544:	4280           	clrl %d0                                    
  const Heap_Block *const first_free_block = _Heap_Free_list_first( heap );
  const Heap_Block *prev_block = free_list_tail;                      
  const Heap_Block *free_block = first_free_block;                    
                                                                      
  while ( free_block != free_list_tail ) {                            
    if ( !_Heap_Is_block_in_heap( heap, free_block ) ) {              
   47546:	4a00           	tstb %d0                                    
   47548:	660c           	bnes 47556 <_Heap_Walk+0x130>               
      (*printer)(                                                     
   4754a:	2f08           	movel %a0,%sp@-                             
   4754c:	4879 0005 d2c2 	pea 5d2c2 <_Status_Object_name_errors_to_status+0x1e6>
   47552:	6000 021a      	braw 4776e <_Heap_Walk+0x348>               
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
   47556:	4be8 0008      	lea %a0@(8),%a5                             
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   4755a:	200d           	movel %a5,%d0                               
   4755c:	262e fffc      	movel %fp@(-4),%d3                          
   47560:	4c43 0004      	remul %d3,%d4,%d0                           
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
   47564:	4a84           	tstl %d4                                    
   47566:	670c           	beqs 47574 <_Heap_Walk+0x14e>               
      !_Heap_Is_aligned( _Heap_Alloc_area_of_block( free_block ), page_size )
    ) {                                                               
      (*printer)(                                                     
   47568:	2f08           	movel %a0,%sp@-                             
   4756a:	4879 0005 d2e2 	pea 5d2e2 <_Status_Object_name_errors_to_status+0x206>
   47570:	6000 01fc      	braw 4776e <_Heap_Walk+0x348>               
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   47574:	70fe           	moveq #-2,%d0                               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   47576:	7601           	moveq #1,%d3                                
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   47578:	c0a8 0004      	andl %a0@(4),%d0                            
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   4757c:	c6b0 0804      	andl %a0@(00000004,%d0:l),%d3               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
   47580:	670c           	beqs 4758e <_Heap_Walk+0x168>               
      (*printer)(                                                     
   47582:	2f08           	movel %a0,%sp@-                             
   47584:	4879 0005 d312 	pea 5d312 <_Status_Object_name_errors_to_status+0x236>
   4758a:	6000 01e2      	braw 4776e <_Heap_Walk+0x348>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
   4758e:	2028 000c      	movel %a0@(12),%d0                          
   47592:	b280           	cmpl %d0,%d1                                
   47594:	671c           	beqs 475b2 <_Heap_Walk+0x18c>               
      (*printer)(                                                     
   47596:	2f00           	movel %d0,%sp@-                             
   47598:	2f08           	movel %a0,%sp@-                             
   4759a:	4879 0005 d32e 	pea 5d32e <_Status_Object_name_errors_to_status+0x252>
   475a0:	4878 0001      	pea 1 <ADD>                                 
   475a4:	2f02           	movel %d2,%sp@-                             
   475a6:	4e92           	jsr %a2@                                    
   475a8:	4fef 0014      	lea %sp@(20),%sp                            
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
   475ac:	4200           	clrb %d0                                    
   475ae:	6000 01ac      	braw 4775c <_Heap_Walk+0x336>               
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    prev_block = free_block;                                          
    free_block = free_block->next;                                    
   475b2:	2208           	movel %a0,%d1                               
   475b4:	2068 0008      	moveal %a0@(8),%a0                          
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
  const Heap_Block *const first_free_block = _Heap_Free_list_first( heap );
  const Heap_Block *prev_block = free_list_tail;                      
  const Heap_Block *free_block = first_free_block;                    
                                                                      
  while ( free_block != free_list_tail ) {                            
   475b8:	b7c8           	cmpal %a0,%a3                               
   475ba:	6600 ff76      	bnew 47532 <_Heap_Walk+0x10c>               
   475be:	282e fff8      	movel %fp@(-8),%d4                          
   475c2:	6002           	bras 475c6 <_Heap_Walk+0x1a0>               
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
   475c4:	284d           	moveal %a5,%a4                              
                                                                      
  return true;                                                        
}                                                                     
   475c6:	202c 0004      	movel %a4@(4),%d0                           
    - HEAP_BLOCK_HEADER_SIZE);                                        
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Block_size( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & ~HEAP_PREV_BLOCK_USED;                
   475ca:	76fe           	moveq #-2,%d3                               
   475cc:	c680           	andl %d0,%d3                                
   475ce:	2d40 fffc      	movel %d0,%fp@(-4)                          
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
   475d2:	4bf4 3800      	lea %a4@(00000000,%d3:l),%a5                
  const Heap_Control *heap,                                           
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block >= (uintptr_t) heap->first_block           
    && (uintptr_t) block <= (uintptr_t) heap->last_block;             
   475d6:	bbeb 0020      	cmpal %a3@(32),%a5                          
   475da:	650c           	bcss 475e8 <_Heap_Walk+0x1c2>               <== NEVER TAKEN
   475dc:	bbeb 0024      	cmpal %a3@(36),%a5                          
   475e0:	53c0           	sls %d0                                     
   475e2:	49c0           	extbl %d0                                   
   475e4:	4480           	negl %d0                                    
   475e6:	6002           	bras 475ea <_Heap_Walk+0x1c4>               
   475e8:	4280           	clrl %d0                                    <== NOT EXECUTED
    bool const prev_used = _Heap_Is_prev_used( block );               
    Heap_Block *const next_block = _Heap_Block_at( block, block_size );
    uintptr_t const next_block_begin = (uintptr_t) next_block;        
    bool const is_not_last_block = block != last_block;               
                                                                      
    if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {              
   475ea:	4a00           	tstb %d0                                    
   475ec:	660c           	bnes 475fa <_Heap_Walk+0x1d4>               
      (*printer)(                                                     
   475ee:	2f0d           	movel %a5,%sp@-                             
   475f0:	2f0c           	movel %a4,%sp@-                             
   475f2:	4879 0005 d360 	pea 5d360 <_Status_Object_name_errors_to_status+0x284>
   475f8:	60a6           	bras 475a0 <_Heap_Walk+0x17a>               
    uintptr_t const block_begin = (uintptr_t) block;                  
    uintptr_t const block_size = _Heap_Block_size( block );           
    bool const prev_used = _Heap_Is_prev_used( block );               
    Heap_Block *const next_block = _Heap_Block_at( block, block_size );
    uintptr_t const next_block_begin = (uintptr_t) next_block;        
    bool const is_not_last_block = block != last_block;               
   475fa:	be8c           	cmpl %a4,%d7                                
   475fc:	56c0           	sne %d0                                     
   475fe:	2200           	movel %d0,%d1                               
   47600:	4481           	negl %d1                                    
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
   47602:	2003           	movel %d3,%d0                               
   47604:	1d41 fffb      	moveb %d1,%fp@(-5)                          
   47608:	4c44 0001      	remul %d4,%d1,%d0                           
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
   4760c:	4a81           	tstl %d1                                    
   4760e:	6714           	beqs 47624 <_Heap_Walk+0x1fe>               
   47610:	4a2e fffb      	tstb %fp@(-5)                               
   47614:	670e           	beqs 47624 <_Heap_Walk+0x1fe>               
      (*printer)(                                                     
   47616:	2f03           	movel %d3,%sp@-                             
   47618:	2f0c           	movel %a4,%sp@-                             
   4761a:	4879 0005 d38d 	pea 5d38d <_Status_Object_name_errors_to_status+0x2b1>
   47620:	6000 ff7e      	braw 475a0 <_Heap_Walk+0x17a>               
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
   47624:	ba83           	cmpl %d3,%d5                                
   47626:	6322           	blss 4764a <_Heap_Walk+0x224>               
   47628:	4a2e fffb      	tstb %fp@(-5)                               
   4762c:	671c           	beqs 4764a <_Heap_Walk+0x224>               <== NEVER TAKEN
      (*printer)(                                                     
   4762e:	2f05           	movel %d5,%sp@-                             
   47630:	2f03           	movel %d3,%sp@-                             
   47632:	2f0c           	movel %a4,%sp@-                             
   47634:	4879 0005 d3bb 	pea 5d3bb <_Status_Object_name_errors_to_status+0x2df>
   4763a:	4878 0001      	pea 1 <ADD>                                 
   4763e:	2f02           	movel %d2,%sp@-                             
   47640:	4e92           	jsr %a2@                                    
        block,                                                        
        block_size,                                                   
        min_block_size                                                
      );                                                              
                                                                      
      return false;                                                   
   47642:	4fef 0018      	lea %sp@(24),%sp                            
   47646:	6000 ff64      	braw 475ac <_Heap_Walk+0x186>               
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
   4764a:	b9cd           	cmpal %a5,%a4                               
   4764c:	6514           	bcss 47662 <_Heap_Walk+0x23c>               
   4764e:	4a2e fffb      	tstb %fp@(-5)                               
   47652:	670e           	beqs 47662 <_Heap_Walk+0x23c>               
      (*printer)(                                                     
   47654:	2f0d           	movel %a5,%sp@-                             
   47656:	2f0c           	movel %a4,%sp@-                             
   47658:	4879 0005 d3e6 	pea 5d3e6 <_Status_Object_name_errors_to_status+0x30a>
   4765e:	6000 ff40      	braw 475a0 <_Heap_Walk+0x17a>               
  block->size_and_flag = size | flag;                                 
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used( const Heap_Block *block )
{                                                                     
  return block->size_and_flag & HEAP_PREV_BLOCK_USED;                 
   47662:	7001           	moveq #1,%d0                                
   47664:	c0ae fffc      	andl %fp@(-4),%d0                           
   47668:	2d40 fffc      	movel %d0,%fp@(-4)                          
   4766c:	7001           	moveq #1,%d0                                
   4766e:	c0ad 0004      	andl %a5@(4),%d0                            
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
   47672:	6600 00ae      	bnew 47722 <_Heap_Walk+0x2fc>               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   47676:	222b 0008      	movel %a3@(8),%d1                           
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   4767a:	43f9 0005 d106 	lea 5d106 <_Status_Object_name_errors_to_status+0x2a>,%a1
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
   47680:	206c 0008      	moveal %a4@(8),%a0                          
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   47684:	2d41 fff8      	movel %d1,%fp@(-8)                          
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   47688:	b1eb 000c      	cmpal %a3@(12),%a0                          
   4768c:	6710           	beqs 4769e <_Heap_Walk+0x278>               
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
   4768e:	43f9 0005 d04e 	lea 5d04e <rtems_filesystem_default_pathconf+0xb4>,%a1
   47694:	b7c8           	cmpal %a0,%a3                               
   47696:	6606           	bnes 4769e <_Heap_Walk+0x278>               
   47698:	43f9 0005 d115 	lea 5d115 <_Status_Object_name_errors_to_status+0x39>,%a1
    false,                                                            
    "block 0x%08x: size %u, prev 0x%08x%s, next 0x%08x%s\n",          
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
   4769e:	202c 000c      	movel %a4@(12),%d0                          
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   476a2:	223c 0005 d11f 	movel #381215,%d1                           
   476a8:	b0ae fff8      	cmpl %fp@(-8),%d0                           
   476ac:	6710           	beqs 476be <_Heap_Walk+0x298>               
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
   476ae:	223c 0005 d04e 	movel #381006,%d1                           
   476b4:	b7c0           	cmpal %d0,%a3                               
   476b6:	6606           	bnes 476be <_Heap_Walk+0x298>               
   476b8:	223c 0005 d12f 	movel #381231,%d1                           
  Heap_Block *const last_free_block = _Heap_Free_list_last( heap );   
  bool const prev_used = _Heap_Is_prev_used( block );                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  Heap_Block *const next_block = _Heap_Block_at( block, block_size ); 
                                                                      
  (*printer)(                                                         
   476be:	2f09           	movel %a1,%sp@-                             
   476c0:	2f08           	movel %a0,%sp@-                             
   476c2:	2f01           	movel %d1,%sp@-                             
   476c4:	2f00           	movel %d0,%sp@-                             
   476c6:	2f03           	movel %d3,%sp@-                             
   476c8:	2f0c           	movel %a4,%sp@-                             
   476ca:	4879 0005 d41a 	pea 5d41a <_Status_Object_name_errors_to_status+0x33e>
   476d0:	42a7           	clrl %sp@-                                  
   476d2:	2f02           	movel %d2,%sp@-                             
   476d4:	4e92           	jsr %a2@                                    
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
   476d6:	2015           	movel %a5@,%d0                              
   476d8:	4fef 0024      	lea %sp@(36),%sp                            
   476dc:	b083           	cmpl %d3,%d0                                
   476de:	671e           	beqs 476fe <_Heap_Walk+0x2d8>               
    (*printer)(                                                       
   476e0:	2f0d           	movel %a5,%sp@-                             
   476e2:	2f00           	movel %d0,%sp@-                             
   476e4:	2f03           	movel %d3,%sp@-                             
   476e6:	2f0c           	movel %a4,%sp@-                             
   476e8:	4879 0005 d44f 	pea 5d44f <_Status_Object_name_errors_to_status+0x373>
   476ee:	4878 0001      	pea 1 <ADD>                                 
   476f2:	2f02           	movel %d2,%sp@-                             
   476f4:	4e92           	jsr %a2@                                    
   476f6:	4fef 001c      	lea %sp@(28),%sp                            
   476fa:	6000 feb0      	braw 475ac <_Heap_Walk+0x186>               
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
   476fe:	4aae fffc      	tstl %fp@(-4)                               
   47702:	660a           	bnes 4770e <_Heap_Walk+0x2e8>               
    (*printer)(                                                       
   47704:	2f0c           	movel %a4,%sp@-                             
   47706:	4879 0005 d488 	pea 5d488 <_Status_Object_name_errors_to_status+0x3ac>
   4770c:	6060           	bras 4776e <_Heap_Walk+0x348>               
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   4770e:	206b 0008      	moveal %a3@(8),%a0                          
   47712:	6008           	bras 4771c <_Heap_Walk+0x2f6>               
{                                                                     
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
  const Heap_Block *free_block = _Heap_Free_list_first( heap );       
                                                                      
  while ( free_block != free_list_tail ) {                            
    if ( free_block == block ) {                                      
   47714:	b9c8           	cmpal %a0,%a4                               
   47716:	673c           	beqs 47754 <_Heap_Walk+0x32e>               
      return true;                                                    
    }                                                                 
    free_block = free_block->next;                                    
   47718:	2068 0008      	moveal %a0@(8),%a0                          
)                                                                     
{                                                                     
  const Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );
  const Heap_Block *free_block = _Heap_Free_list_first( heap );       
                                                                      
  while ( free_block != free_list_tail ) {                            
   4771c:	b7c8           	cmpal %a0,%a3                               
   4771e:	66f4           	bnes 47714 <_Heap_Walk+0x2ee>               
   47720:	6044           	bras 47766 <_Heap_Walk+0x340>               
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
      }                                                               
    } else if (prev_used) {                                           
   47722:	4aae fffc      	tstl %fp@(-4)                               
   47726:	6716           	beqs 4773e <_Heap_Walk+0x318>               
      (*printer)(                                                     
   47728:	2f03           	movel %d3,%sp@-                             
   4772a:	2f0c           	movel %a4,%sp@-                             
   4772c:	4879 0005 d4b7 	pea 5d4b7 <_Status_Object_name_errors_to_status+0x3db>
   47732:	42a7           	clrl %sp@-                                  
   47734:	2f02           	movel %d2,%sp@-                             
   47736:	4e92           	jsr %a2@                                    
   47738:	4fef 0014      	lea %sp@(20),%sp                            
   4773c:	6016           	bras 47754 <_Heap_Walk+0x32e>               
        "block 0x%08x: size %u\n",                                    
        block,                                                        
        block_size                                                    
      );                                                              
    } else {                                                          
      (*printer)(                                                     
   4773e:	2f14           	movel %a4@,%sp@-                            
   47740:	2f03           	movel %d3,%sp@-                             
   47742:	2f0c           	movel %a4,%sp@-                             
   47744:	4879 0005 d4ce 	pea 5d4ce <_Status_Object_name_errors_to_status+0x3f2>
   4774a:	42a7           	clrl %sp@-                                  
   4774c:	2f02           	movel %d2,%sp@-                             
   4774e:	4e92           	jsr %a2@                                    
   47750:	4fef 0018      	lea %sp@(24),%sp                            
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
   47754:	bc8d           	cmpl %a5,%d6                                
   47756:	6600 fe6c      	bnew 475c4 <_Heap_Walk+0x19e>               
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
   4775a:	7001           	moveq #1,%d0                                
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
   4775c:	4cee 3cfc ffd0 	moveml %fp@(-48),%d2-%d7/%a2-%a5            
   47762:	4e5e           	unlk %fp                                    
   47764:	4e75           	rts                                         
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
   47766:	2f0c           	movel %a4,%sp@-                             
   47768:	4879 0005 d4f3 	pea 5d4f3 <_Status_Object_name_errors_to_status+0x417>
   4776e:	4878 0001      	pea 1 <ADD>                                 
   47772:	2f02           	movel %d2,%sp@-                             
   47774:	4e92           	jsr %a2@                                    
   47776:	4fef 0010      	lea %sp@(16),%sp                            
   4777a:	6000 fe30      	braw 475ac <_Heap_Walk+0x186>               
	...                                                                  
                                                                      

000473e8 <_Heap_Walk_print>: static void _Heap_Walk_print( int source, bool error, const char *fmt, ... ) {
   473e8:	41f9 0004 3de0 	lea 43de0 <printk>,%a0                      
   473ee:	4e56 0000      	linkw %fp,#0                                
   473f2:	202e 0008      	movel %fp@(8),%d0                           
  va_list ap;                                                         
                                                                      
  if ( error ) {                                                      
   473f6:	4a2e 000f      	tstb %fp@(15)                               
   473fa:	670a           	beqs 47406 <_Heap_Walk_print+0x1e>          <== NEVER TAKEN
    printk( "FAIL[%d]: ", source );                                   
   473fc:	2f00           	movel %d0,%sp@-                             
   473fe:	4879 0005 d0f0 	pea 5d0f0 <_Status_Object_name_errors_to_status+0x14>
   47404:	6008           	bras 4740e <_Heap_Walk_print+0x26>          
  } else {                                                            
    printk( "PASS[%d]: ", source );                                   
   47406:	2f00           	movel %d0,%sp@-                             
   47408:	4879 0005 d0fb 	pea 5d0fb <_Status_Object_name_errors_to_status+0x1f>
   4740e:	4e90           	jsr %a0@                                    
   47410:	508f           	addql #8,%sp                                
  }                                                                   
                                                                      
  va_start( ap, fmt );                                                
  vprintk( fmt, ap );                                                 
   47412:	486e 0014      	pea %fp@(20)                                
   47416:	2f2e 0010      	movel %fp@(16),%sp@-                        
   4741a:	4eb9 0004 56f8 	jsr 456f8 <vprintk>                         
  va_end( ap );                                                       
   47420:	508f           	addql #8,%sp                                
}                                                                     
   47422:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046a08 <_Internal_error_Occurred>: void _Internal_error_Occurred( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
   46a08:	4e56 0000      	linkw %fp,#0                                
   46a0c:	222e 000c      	movel %fp@(12),%d1                          
   46a10:	2f02           	movel %d2,%sp@-                             
   46a12:	242e 0010      	movel %fp@(16),%d2                          
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
   46a16:	13c1 0005 ea62 	moveb %d1,5ea62 <_Internal_errors_What_happened+0x4>
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   46a1c:	2f02           	movel %d2,%sp@-                             
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   46a1e:	202e 0008      	movel %fp@(8),%d0                           
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   46a22:	0281 0000 00ff 	andil #255,%d1                              
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
   46a28:	23c0 0005 ea5e 	movel %d0,5ea5e <_Internal_errors_What_happened>
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   46a2e:	2f01           	movel %d1,%sp@-                             
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
   46a30:	23c2 0005 ea64 	movel %d2,5ea64 <_Internal_errors_What_happened+0x6>
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
   46a36:	2f00           	movel %d0,%sp@-                             
   46a38:	4eb9 0004 860e 	jsr 4860e <_User_extensions_Fatal>          
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
   46a3e:	7005           	moveq #5,%d0                                <== NOT EXECUTED
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
   46a40:	2042           	moveal %d2,%a0                              <== NOT EXECUTED
   46a42:	243c 0000 0700 	movel #1792,%d2                             <== NOT EXECUTED
   46a48:	23c0 0005 eb14 	movel %d0,5eb14 <_System_state_Current>     <== NOT EXECUTED
   46a4e:	40c0           	movew %sr,%d0                               <== NOT EXECUTED
   46a50:	8082           	orl %d2,%d0                                 <== NOT EXECUTED
   46a52:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
   46a54:	2008           	movel %a0,%d0                               <== NOT EXECUTED
   46a56:	223c dead beef 	movel #-559038737,%d1                       <== NOT EXECUTED
   46a5c:	4ac8           	halt                                        <== NOT EXECUTED
   46a5e:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   46a62:	60fe           	bras 46a62 <_Internal_error_Occurred+0x5a>  <== NOT EXECUTED
                                                                      

00046ac4 <_Objects_Allocate>: */ Objects_Control *_Objects_Allocate( Objects_Information *information ) {
   46ac4:	4e56 fff0      	linkw %fp,#-16                              
   46ac8:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   46acc:	246e 0008      	moveal %fp@(8),%a2                          
   *  If the application is using the optional manager stubs and      
   *  still attempts to create the object, the information block      
   *  should be all zeroed out because it is in the BSS.  So let's    
   *  check that code for this manager is even present.               
   */                                                                 
  if ( information->size == 0 )                                       
   46ad0:	4aaa 0014      	tstl %a2@(20)                               
   46ad4:	675e           	beqs 46b34 <_Objects_Allocate+0x70>         <== NEVER TAKEN
                                                                      
  /*                                                                  
   *  OK.  The manager should be initialized and configured to have objects.
   *  With any luck, it is safe to attempt to allocate an object.     
   */                                                                 
  the_object = (Objects_Control *) _Chain_Get( &information->Inactive );
   46ad6:	240a           	movel %a2,%d2                               
   46ad8:	0682 0000 001c 	addil #28,%d2                               
   46ade:	47f9 0004 6268 	lea 46268 <_Chain_Get>,%a3                  
   46ae4:	2f02           	movel %d2,%sp@-                             
   46ae6:	4e93           	jsr %a3@                                    
                                                                      
  if ( information->auto_extend ) {                                   
   46ae8:	588f           	addql #4,%sp                                
   46aea:	4a2a 0010      	tstb %a2@(16)                               
   46aee:	6746           	beqs 46b36 <_Objects_Allocate+0x72>         
    /*                                                                
     *  If the list is empty then we are out of objects and need to   
     *  extend information base.                                      
     */                                                               
                                                                      
    if ( !the_object ) {                                              
   46af0:	4a80           	tstl %d0                                    
   46af2:	6612           	bnes 46b06 <_Objects_Allocate+0x42>         
      _Objects_Extend_information( information );                     
   46af4:	2f0a           	movel %a2,%sp@-                             
   46af6:	4eb9 0004 6b6c 	jsr 46b6c <_Objects_Extend_information>     
      the_object =  (Objects_Control *) _Chain_Get( &information->Inactive );
   46afc:	2f02           	movel %d2,%sp@-                             
   46afe:	4e93           	jsr %a3@                                    
    }                                                                 
                                                                      
    if ( the_object ) {                                               
   46b00:	508f           	addql #8,%sp                                
   46b02:	4a80           	tstl %d0                                    
   46b04:	6730           	beqs 46b36 <_Objects_Allocate+0x72>         
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   46b06:	2040           	moveal %d0,%a0                              
   46b08:	4281           	clrl %d1                                    
   46b0a:	4282           	clrl %d2                                    
   46b0c:	3228 000a      	movew %a0@(10),%d1                          
   46b10:	342a 0008      	movew %a2@(8),%d2                           
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
                                                                      
      information->inactive_per_block[ block ]--;                     
   46b14:	206a 002a      	moveal %a2@(42),%a0                         
    }                                                                 
                                                                      
    if ( the_object ) {                                               
      uint32_t   block;                                               
                                                                      
      block = (uint32_t) _Objects_Get_index( the_object->id ) -       
   46b18:	9282           	subl %d2,%d1                                
              _Objects_Get_index( information->minimum_id );          
      block /= information->allocation_size;                          
   46b1a:	342a 0012      	movew %a2@(18),%d2                          
   46b1e:	4c42 1001      	remul %d2,%d1,%d1                           
                                                                      
      information->inactive_per_block[ block ]--;                     
   46b22:	e589           	lsll #2,%d1                                 
   46b24:	d1c1           	addal %d1,%a0                               
   46b26:	5390           	subql #1,%a0@                               
      information->inactive--;                                        
   46b28:	322a 0028      	movew %a2@(40),%d1                          
   46b2c:	5381           	subql #1,%d1                                
   46b2e:	3541 0028      	movew %d1,%a2@(40)                          
   46b32:	6002           	bras 46b36 <_Objects_Allocate+0x72>         
   *  still attempts to create the object, the information block      
   *  should be all zeroed out because it is in the BSS.  So let's    
   *  check that code for this manager is even present.               
   */                                                                 
  if ( information->size == 0 )                                       
    return NULL;                                                      
   46b34:	4280           	clrl %d0                                    <== NOT EXECUTED
    );                                                                
  }                                                                   
#endif                                                                
                                                                      
  return the_object;                                                  
}                                                                     
   46b36:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   46b3c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046b40 <_Objects_Close>: RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id( Objects_Information *information, Objects_Control *the_object ) { _Objects_Set_local_object(
   46b40:	4280           	clrl %d0                                    
                                                                      
void _Objects_Close(                                                  
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
   46b42:	4e56 0000      	linkw %fp,#0                                
   46b46:	226e 000c      	moveal %fp@(12),%a1                         
   46b4a:	206e 0008      	moveal %fp@(8),%a0                          
   46b4e:	2f0a           	movel %a2,%sp@-                             
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46b50:	2468 0018      	moveal %a0@(24),%a2                         
RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id(                     
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   46b54:	3029 000a      	movew %a1@(10),%d0                          
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   46b58:	42b2 0c00      	clrl %a2@(00000000,%d0:l:4)                 
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
}                                                                     
   46b5c:	245f           	moveal %sp@+,%a2                            
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46b5e:	2d49 000c      	movel %a1,%fp@(12)                          
}                                                                     
   46b62:	4e5e           	unlk %fp                                    
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
  _Objects_Invalidate_Id( information, the_object );                  
                                                                      
  _Objects_Namespace_remove( information, the_object );               
   46b64:	4ef9 0004 7074 	jmp 47074 <_Objects_Namespace_remove>       
	...                                                                  
                                                                      

00046e64 <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint16_t the_class ) {
   46e64:	4e56 0000      	linkw %fp,#0                                
   46e68:	2f03           	movel %d3,%sp@-                             
   46e6a:	362e 000e      	movew %fp@(14),%d3                          
   46e6e:	2f02           	movel %d2,%sp@-                             
   46e70:	242e 0008      	movel %fp@(8),%d2                           
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
   46e74:	4a43           	tstw %d3                                    
   46e76:	673a           	beqs 46eb2 <_Objects_Get_information+0x4e>  
                                                                      
  /*                                                                  
   *  This call implicitly validates the_api so we do not call        
   *  _Objects_Is_api_valid above here.                               
   */                                                                 
  the_class_api_maximum = _Objects_API_maximum_class( the_api );      
   46e78:	2f02           	movel %d2,%sp@-                             
   46e7a:	4eb9 0004 b09c 	jsr 4b09c <_Objects_API_maximum_class>      
  if ( the_class_api_maximum == 0 )                                   
   46e80:	588f           	addql #4,%sp                                
   46e82:	4a80           	tstl %d0                                    
   46e84:	672c           	beqs 46eb2 <_Objects_Get_information+0x4e>  
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
   46e86:	0283 0000 ffff 	andil #65535,%d3                            
   46e8c:	b083           	cmpl %d3,%d0                                
   46e8e:	6522           	bcss 46eb2 <_Objects_Get_information+0x4e>  
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
   46e90:	41f9 0005 e984 	lea 5e984 <_Objects_Information_table>,%a0  
   46e96:	2070 2c00      	moveal %a0@(00000000,%d2:l:4),%a0           
   46e9a:	4a88           	tstl %a0                                    
   46e9c:	6714           	beqs 46eb2 <_Objects_Get_information+0x4e>  <== NEVER TAKEN
    return NULL;                                                      
                                                                      
  info = _Objects_Information_table[ the_api ][ the_class ];          
   46e9e:	2030 3c00      	movel %a0@(00000000,%d3:l:4),%d0            
  if ( !info )                                                        
   46ea2:	6710           	beqs 46eb4 <_Objects_Get_information+0x50>  <== NEVER TAKEN
   *  Thus we may have 0 local instances and still have a valid object
   *  pointer.                                                        
   */                                                                 
  #if !defined(RTEMS_MULTIPROCESSING)                                 
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
   46ea4:	2040           	moveal %d0,%a0                              
   46ea6:	4a68 000e      	tstw %a0@(14)                               
   46eaa:	56c1           	sne %d1                                     
   46eac:	49c1           	extbl %d1                                   
   46eae:	c081           	andl %d1,%d0                                
   46eb0:	6002           	bras 46eb4 <_Objects_Get_information+0x50>  
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
    return NULL;                                                      
   46eb2:	4280           	clrl %d0                                    
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
  #endif                                                              
                                                                      
  return info;                                                        
}                                                                     
   46eb4:	242e fff8      	movel %fp@(-8),%d2                          
   46eb8:	262e fffc      	movel %fp@(-4),%d3                          
   46ebc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005468c <_Objects_Get_no_protection>: /* * You can't just extract the index portion or you can get tricked * by a value between 1 and maximum. */ index = id - information->minimum_id + 1;
   5468c:	7001           	moveq #1,%d0                                
                                                                      
  if ( information->maximum >= index ) {                              
   5468e:	4281           	clrl %d1                                    
Objects_Control *_Objects_Get_no_protection(                          
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
   54690:	4e56 0000      	linkw %fp,#0                                
   54694:	206e 0008      	moveal %fp@(8),%a0                          
                                                                      
  /*                                                                  
   * You can't just extract the index portion or you can get tricked  
   * by a value between 1 and maximum.                                
   */                                                                 
  index = id - information->minimum_id + 1;                           
   54698:	90a8 0006      	subl %a0@(6),%d0                            
   5469c:	d0ae 000c      	addl %fp@(12),%d0                           
                                                                      
  if ( information->maximum >= index ) {                              
   546a0:	3228 000e      	movew %a0@(14),%d1                          
Objects_Control *_Objects_Get_no_protection(                          
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
   546a4:	226e 0010      	moveal %fp@(16),%a1                         
   * You can't just extract the index portion or you can get tricked  
   * by a value between 1 and maximum.                                
   */                                                                 
  index = id - information->minimum_id + 1;                           
                                                                      
  if ( information->maximum >= index ) {                              
   546a8:	b081           	cmpl %d1,%d0                                
   546aa:	620e           	bhis 546ba <_Objects_Get_no_protection+0x2e>
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
   546ac:	2068 0018      	moveal %a0@(24),%a0                         
   546b0:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
   546b4:	6704           	beqs 546ba <_Objects_Get_no_protection+0x2e><== NEVER TAKEN
      *location = OBJECTS_LOCAL;                                      
   546b6:	4291           	clrl %a1@                                   
      return the_object;                                              
   546b8:	6006           	bras 546c0 <_Objects_Get_no_protection+0x34>
                                                                      
  /*                                                                  
   *  This isn't supported or required yet for Global objects so      
   *  if it isn't local, we don't find it.                            
   */                                                                 
  *location = OBJECTS_ERROR;                                          
   546ba:	7001           	moveq #1,%d0                                
   546bc:	2280           	movel %d0,%a1@                              
  return NULL;                                                        
   546be:	4280           	clrl %d0                                    
}                                                                     
   546c0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047e44 <_Objects_Id_to_name>: */ Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) {
   47e44:	4e56 fffc      	linkw %fp,#-4                               
   47e48:	222e 0008      	movel %fp@(8),%d1                           
   47e4c:	2f02           	movel %d2,%sp@-                             
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
   47e4e:	4a81           	tstl %d1                                    
   47e50:	660a           	bnes 47e5c <_Objects_Id_to_name+0x18>       
   47e52:	2079 0006 02ea 	moveal 602ea <_Per_CPU_Information+0xc>,%a0 
   47e58:	2228 0008      	movel %a0@(8),%d1                           
   47e5c:	7418           	moveq #24,%d2                               
   47e5e:	2001           	movel %d1,%d0                               
   47e60:	e4a8           	lsrl %d2,%d0                                
   47e62:	143c 0007      	moveb #7,%d2                                
   47e66:	c082           	andl %d2,%d0                                
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
   47e68:	143c 0002      	moveb #2,%d2                                
   47e6c:	2040           	moveal %d0,%a0                              
   47e6e:	5388           	subql #1,%a0                                
   47e70:	b488           	cmpl %a0,%d2                                
   47e72:	6540           	bcss 47eb4 <_Objects_Id_to_name+0x70>       
   47e74:	6048           	bras 47ebe <_Objects_Id_to_name+0x7a>       
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
   47e76:	2001           	movel %d1,%d0                               
   47e78:	741b           	moveq #27,%d2                               
   47e7a:	e4a8           	lsrl %d2,%d0                                
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
   47e7c:	2070 0c00      	moveal %a0@(00000000,%d0:l:4),%a0           
  if ( !information )                                                 
   47e80:	4a88           	tstl %a0                                    
   47e82:	6730           	beqs 47eb4 <_Objects_Id_to_name+0x70>       <== NEVER TAKEN
    return OBJECTS_INVALID_ID;                                        
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    if ( information->is_string )                                     
   47e84:	4a28 0032      	tstb %a0@(50)                               
   47e88:	662a           	bnes 47eb4 <_Objects_Id_to_name+0x70>       <== NEVER TAKEN
      return OBJECTS_INVALID_ID;                                      
  #endif                                                              
                                                                      
  the_object = _Objects_Get( information, tmpId, &ignored_location ); 
   47e8a:	486e fffc      	pea %fp@(-4)                                
   47e8e:	2f01           	movel %d1,%sp@-                             
   47e90:	2f08           	movel %a0,%sp@-                             
   47e92:	4eb9 0004 7de4 	jsr 47de4 <_Objects_Get>                    
  if ( !the_object )                                                  
   47e98:	4fef 000c      	lea %sp@(12),%sp                            
   47e9c:	4a80           	tstl %d0                                    
   47e9e:	6714           	beqs 47eb4 <_Objects_Id_to_name+0x70>       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
   47ea0:	206e 000c      	moveal %fp@(12),%a0                         
   47ea4:	2240           	moveal %d0,%a1                              
   47ea6:	20a9 000c      	movel %a1@(12),%a0@                         
  _Thread_Enable_dispatch();                                          
   47eaa:	4eb9 0004 8a1a 	jsr 48a1a <_Thread_Enable_dispatch>         
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
   47eb0:	4280           	clrl %d0                                    
   47eb2:	6002           	bras 47eb6 <_Objects_Id_to_name+0x72>       
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
   47eb4:	7003           	moveq #3,%d0                                
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
  _Thread_Enable_dispatch();                                          
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
}                                                                     
   47eb6:	242e fff8      	movel %fp@(-8),%d2                          
   47eba:	4e5e           	unlk %fp                                    
   47ebc:	4e75           	rts                                         
                                                                      
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
   47ebe:	41f9 0005 fe3c 	lea 5fe3c <_Objects_Information_table>,%a0  
   47ec4:	2070 0c00      	moveal %a0@(00000000,%d0:l:4),%a0           
   47ec8:	4a88           	tstl %a0                                    
   47eca:	66aa           	bnes 47e76 <_Objects_Id_to_name+0x32>       
   47ecc:	60e6           	bras 47eb4 <_Objects_Id_to_name+0x70>       
	...                                                                  
                                                                      

0004748c <_Objects_Set_name>: { size_t length; const char *s; s = name; length = strnlen( name, information->name_length );
   4748c:	4280           	clrl %d0                                    
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   4748e:	4e56 ffec      	linkw %fp,#-20                              
   47492:	48d7 3c04      	moveml %d2/%a2-%a5,%sp@                     
   47496:	2a6e 0008      	moveal %fp@(8),%a5                          
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   4749a:	302d 0034      	movew %a5@(52),%d0                          
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   4749e:	246e 0010      	moveal %fp@(16),%a2                         
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   474a2:	2f00           	movel %d0,%sp@-                             
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
   474a4:	286e 000c      	moveal %fp@(12),%a4                         
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   474a8:	2f0a           	movel %a2,%sp@-                             
   474aa:	4eb9 0004 e69c 	jsr 4e69c <strnlen>                         
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
   474b0:	508f           	addql #8,%sp                                
{                                                                     
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
   474b2:	2640           	moveal %d0,%a3                              
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
   474b4:	4a2d 0032      	tstb %a5@(50)                               
   474b8:	673c           	beqs 474f6 <_Objects_Set_name+0x6a>         
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
   474ba:	486b 0001      	pea %a3@(1)                                 
   474be:	4eb9 0004 8e18 	jsr 48e18 <_Workspace_Allocate>             
    if ( !d )                                                         
   474c4:	588f           	addql #4,%sp                                
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
   474c6:	2a40           	moveal %d0,%a5                              
    if ( !d )                                                         
   474c8:	4a80           	tstl %d0                                    
   474ca:	677a           	beqs 47546 <_Objects_Set_name+0xba>         <== NEVER TAKEN
      return false;                                                   
                                                                      
    _Workspace_Free( (void *)the_object->name.name_p );               
   474cc:	2f2c 000c      	movel %a4@(12),%sp@-                        
   474d0:	4eb9 0004 8e34 	jsr 48e34 <_Workspace_Free>                 
    the_object->name.name_p = NULL;                                   
   474d6:	42ac 000c      	clrl %a4@(12)                               
                                                                      
    strncpy( d, name, length );                                       
   474da:	2f0b           	movel %a3,%sp@-                             
   474dc:	2f0a           	movel %a2,%sp@-                             
   474de:	2f0d           	movel %a5,%sp@-                             
   474e0:	4eb9 0004 e618 	jsr 4e618 <strncpy>                         
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
   474e6:	4fef 0010      	lea %sp@(16),%sp                            
                                                                      
    _Workspace_Free( (void *)the_object->name.name_p );               
    the_object->name.name_p = NULL;                                   
                                                                      
    strncpy( d, name, length );                                       
    d[length] = '\0';                                                 
   474ea:	4200           	clrb %d0                                    
   474ec:	1b80 b800      	moveb %d0,%a5@(00000000,%a3:l)              
    the_object->name.name_p = d;                                      
   474f0:	294d 000c      	movel %a5,%a4@(12)                          
   474f4:	604c           	bras 47542 <_Objects_Set_name+0xb6>         
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
   474f6:	7418           	moveq #24,%d2                               
   474f8:	1212           	moveb %a2@,%d1                              
   474fa:	7020           	moveq #32,%d0                               
   474fc:	4840           	swap %d0                                    
   474fe:	49c1           	extbl %d1                                   
   47500:	e5a9           	lsll %d2,%d1                                
   47502:	143c 0001      	moveb #1,%d2                                
   47506:	b48b           	cmpl %a3,%d2                                
   47508:	640a           	bccs 47514 <_Objects_Set_name+0x88>         
   4750a:	102a 0001      	moveb %a2@(1),%d0                           
   4750e:	49c0           	extbl %d0                                   
   47510:	4840           	swap %d0                                    
   47512:	4240           	clrw %d0                                    
   47514:	7402           	moveq #2,%d2                                
   47516:	8280           	orl %d0,%d1                                 
   47518:	203c 0000 2000 	movel #8192,%d0                             
   4751e:	b48b           	cmpl %a3,%d2                                
   47520:	6408           	bccs 4752a <_Objects_Set_name+0x9e>         
   47522:	102a 0002      	moveb %a2@(2),%d0                           
   47526:	49c0           	extbl %d0                                   
   47528:	e188           	lsll #8,%d0                                 
   4752a:	8081           	orl %d1,%d0                                 
   4752c:	7203           	moveq #3,%d1                                
   4752e:	b28b           	cmpl %a3,%d1                                
   47530:	6408           	bccs 4753a <_Objects_Set_name+0xae>         
   47532:	142a 0003      	moveb %a2@(3),%d2                           
   47536:	49c2           	extbl %d2                                   
   47538:	6002           	bras 4753c <_Objects_Set_name+0xb0>         
   4753a:	7420           	moveq #32,%d2                               
   4753c:	8082           	orl %d2,%d0                                 
   4753e:	2940 000c      	movel %d0,%a4@(12)                          
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
   47542:	7001           	moveq #1,%d0                                
   47544:	6002           	bras 47548 <_Objects_Set_name+0xbc>         
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
    if ( !d )                                                         
      return false;                                                   
   47546:	4200           	clrb %d0                                    
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
   47548:	4cee 3c04 ffec 	moveml %fp@(-20),%d2/%a2-%a5                
   4754e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045924 <_POSIX_Keys_Free_memory>: #include <rtems/posix/key.h> void _POSIX_Keys_Free_memory( POSIX_Keys_Control *the_key ) {
   45924:	4e56 0000      	linkw %fp,#0                                
   45928:	2f0b           	movel %a3,%sp@-                             
  uint32_t            the_api;                                        
                                                                      
  for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ )        
    _Workspace_Free( the_key->Values[ the_api ] );                    
   4592a:	47f9 0004 983c 	lea 4983c <_Workspace_Free>,%a3             
#include <rtems/posix/key.h>                                          
                                                                      
void _POSIX_Keys_Free_memory(                                         
  POSIX_Keys_Control *the_key                                         
)                                                                     
{                                                                     
   45930:	2f0a           	movel %a2,%sp@-                             
   45932:	246e 0008      	moveal %fp@(8),%a2                          
  uint32_t            the_api;                                        
                                                                      
  for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ )        
    _Workspace_Free( the_key->Values[ the_api ] );                    
   45936:	2f2a 0018      	movel %a2@(24),%sp@-                        
   4593a:	4e93           	jsr %a3@                                    
   4593c:	2f2a 001c      	movel %a2@(28),%sp@-                        
   45940:	4e93           	jsr %a3@                                    
   45942:	2d6a 0020 0008 	movel %a2@(32),%fp@(8)                      
   45948:	508f           	addql #8,%sp                                
}                                                                     
   4594a:	246e fff8      	moveal %fp@(-8),%a2                         
   4594e:	266e fffc      	moveal %fp@(-4),%a3                         
   45952:	4e5e           	unlk %fp                                    
)                                                                     
{                                                                     
  uint32_t            the_api;                                        
                                                                      
  for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ )        
    _Workspace_Free( the_key->Values[ the_api ] );                    
   45954:	4ef9 0004 983c 	jmp 4983c <_Workspace_Free>                 
	...                                                                  
                                                                      

00049bc4 <_POSIX_Message_queue_Delete>: */ void _POSIX_Message_queue_Delete( POSIX_Message_queue_Control *the_mq ) {
   49bc4:	4e56 0000      	linkw %fp,#0                                
   49bc8:	2f0a           	movel %a2,%sp@-                             
   49bca:	246e 0008      	moveal %fp@(8),%a2                          
  if ( !the_mq->linked && !the_mq->open_count ) {                     
   49bce:	4a2a 0015      	tstb %a2@(21)                               
   49bd2:	6636           	bnes 49c0a <_POSIX_Message_queue_Delete+0x46><== NEVER TAKEN
   49bd4:	4aaa 0016      	tstl %a2@(22)                               
   49bd8:	6630           	bnes 49c0a <_POSIX_Message_queue_Delete+0x46>
          );                                                          
	  _Workspace_Free( (void *)the_object->name.name_p );                
        }                                                             
      #endif                                                          
                                                                      
      _Objects_Close( &_POSIX_Message_queue_Information, the_object );
   49bda:	2f0a           	movel %a2,%sp@-                             
   49bdc:	4879 0006 6e8e 	pea 66e8e <_POSIX_Message_queue_Information>
   49be2:	4eb9 0004 c8a4 	jsr 4c8a4 <_Objects_Close>                  
                                                                      
      _CORE_message_queue_Close(                                      
   49be8:	4878 0005      	pea 5 <COMPARE>                             
   49bec:	42a7           	clrl %sp@-                                  
   49bee:	486a 001a      	pea %a2@(26)                                
   49bf2:	4eb9 0004 bcfc 	jsr 4bcfc <_CORE_message_queue_Close>       
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (                 
  POSIX_Message_queue_Control *the_mq                                 
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object );
   49bf8:	2f0a           	movel %a2,%sp@-                             
   49bfa:	4879 0006 6e8e 	pea 66e8e <_POSIX_Message_queue_Information>
   49c00:	4eb9 0004 cb18 	jsr 4cb18 <_Objects_Free>                   
   49c06:	4fef 001c      	lea %sp@(28),%sp                            
      );                                                              
                                                                      
    _POSIX_Message_queue_Free( the_mq );                              
                                                                      
  }                                                                   
}                                                                     
   49c0a:	246e fffc      	moveal %fp@(-4),%a2                         
   49c0e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049f00 <_POSIX_Message_queue_Receive_support>: size_t msg_len, unsigned int *msg_prio, bool wait, Watchdog_Interval timeout ) {
   49f00:	4e56 ffe4      	linkw %fp,#-28                              
   49f04:	48d7 043c      	moveml %d2-%d5/%a2,%sp@                     
RTEMS_INLINE_ROUTINE POSIX_Message_queue_Control_fd *_POSIX_Message_queue_Get_fd (
  mqd_t              id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Message_queue_Control_fd *) _Objects_Get(             
   49f08:	486e fffc      	pea %fp@(-4)                                
   49f0c:	242e 0008      	movel %fp@(8),%d2                           
   49f10:	2f02           	movel %d2,%sp@-                             
   49f12:	4879 0006 6ffc 	pea 66ffc <_POSIX_Message_queue_Information_fds>
   49f18:	162e 001b      	moveb %fp@(27),%d3                          
   49f1c:	4eb9 0004 cc7c 	jsr 4cc7c <_Objects_Get>                    
  Objects_Locations                location;                          
  size_t                           length_out;                        
  bool                             do_wait;                           
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
   49f22:	4fef 000c      	lea %sp@(12),%sp                            
   49f26:	4aae fffc      	tstl %fp@(-4)                               
   49f2a:	6600 00c0      	bnew 49fec <_POSIX_Message_queue_Receive_support+0xec>
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) {             
   49f2e:	2040           	moveal %d0,%a0                              
   49f30:	7803           	moveq #3,%d4                                
   49f32:	7a01           	moveq #1,%d5                                
   49f34:	2228 0014      	movel %a0@(20),%d1                          
   49f38:	c881           	andl %d1,%d4                                
   49f3a:	ba84           	cmpl %d4,%d5                                
   49f3c:	660a           	bnes 49f48 <_POSIX_Message_queue_Receive_support+0x48>
        _Thread_Enable_dispatch();                                    
   49f3e:	4eb9 0004 d832 	jsr 4d832 <_Thread_Enable_dispatch>         
   49f44:	6000 00a6      	braw 49fec <_POSIX_Message_queue_Receive_support+0xec>
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
   49f48:	2240           	moveal %d0,%a1                              
   49f4a:	2069 0010      	moveal %a1@(16),%a0                         
                                                                      
      if ( msg_len < the_mq->Message_queue.maximum_message_size ) {   
   49f4e:	2028 0066      	movel %a0@(102),%d0                         
   49f52:	b0ae 0010      	cmpl %fp@(16),%d0                           
   49f56:	6316           	blss 49f6e <_POSIX_Message_queue_Receive_support+0x6e>
        _Thread_Enable_dispatch();                                    
   49f58:	4eb9 0004 d832 	jsr 4d832 <_Thread_Enable_dispatch>         
        rtems_set_errno_and_return_minus_one( EMSGSIZE );             
   49f5e:	4eb9 0005 2f48 	jsr 52f48 <__errno>                         
   49f64:	727a           	moveq #122,%d1                              
   49f66:	2040           	moveal %d0,%a0                              
   49f68:	2081           	movel %d1,%a0@                              
   49f6a:	6000 008c      	braw 49ff8 <_POSIX_Message_queue_Receive_support+0xf8>
      /*                                                              
       *  Now if something goes wrong, we return a "length" of -1     
       *  to indicate an error.                                       
       */                                                             
                                                                      
      length_out = -1;                                                
   49f6e:	70ff           	moveq #-1,%d0                               
   49f70:	2d40 fff8      	movel %d0,%fp@(-8)                          
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
   49f74:	4a03           	tstb %d3                                    
   49f76:	670a           	beqs 49f82 <_POSIX_Message_queue_Receive_support+0x82><== NEVER TAKEN
        do_wait = (the_mq_fd->oflag & O_NONBLOCK) ? false : true;     
   49f78:	0801 000e      	btst #14,%d1                                
   49f7c:	57c0           	seq %d0                                     
   49f7e:	4480           	negl %d0                                    
   49f80:	6002           	bras 49f84 <_POSIX_Message_queue_Receive_support+0x84>
      length_out = -1;                                                
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
   49f82:	4200           	clrb %d0                                    <== NOT EXECUTED
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
   49f84:	2f2e 001c      	movel %fp@(28),%sp@-                        
   49f88:	0280 0000 00ff 	andil #255,%d0                              
   49f8e:	2f00           	movel %d0,%sp@-                             
   49f90:	486e fff8      	pea %fp@(-8)                                
   49f94:	2f2e 000c      	movel %fp@(12),%sp@-                        
   49f98:	2f02           	movel %d2,%sp@-                             
   49f9a:	4868 001a      	pea %a0@(26)                                
   49f9e:	4eb9 0004 bd98 	jsr 4bd98 <_CORE_message_queue_Seize>       
        &length_out,                                                  
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
   49fa4:	4eb9 0004 d832 	jsr 4d832 <_Thread_Enable_dispatch>         
      *msg_prio =                                                     
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
   49faa:	2079 0006 706e 	moveal 6706e <_Per_CPU_Information+0xc>,%a0 
RTEMS_INLINE_ROUTINE unsigned int _POSIX_Message_queue_Priority_from_core(
  CORE_message_queue_Submit_types priority                            
)                                                                     
{                                                                     
  /* absolute value without a library dependency */                   
  return ((priority >= 0) ? priority : -priority);                    
   49fb0:	2028 0024      	movel %a0@(36),%d0                          
   49fb4:	6c02           	bges 49fb8 <_POSIX_Message_queue_Receive_support+0xb8>
   49fb6:	4480           	negl %d0                                    
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
   49fb8:	226e 0014      	moveal %fp@(20),%a1                         
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
   49fbc:	4fef 0018      	lea %sp@(24),%sp                            
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
   49fc0:	2280           	movel %d0,%a1@                              
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
   49fc2:	4aa8 0034      	tstl %a0@(52)                               
   49fc6:	6606           	bnes 49fce <_POSIX_Message_queue_Receive_support+0xce>
        return length_out;                                            
   49fc8:	202e fff8      	movel %fp@(-8),%d0                          
   49fcc:	602c           	bras 49ffa <_POSIX_Message_queue_Receive_support+0xfa>
                                                                      
      rtems_set_errno_and_return_minus_one(                           
   49fce:	4eb9 0005 2f48 	jsr 52f48 <__errno>                         
   49fd4:	2079 0006 706e 	moveal 6706e <_Per_CPU_Information+0xc>,%a0 
   49fda:	2440           	moveal %d0,%a2                              
   49fdc:	2f28 0034      	movel %a0@(52),%sp@-                        
   49fe0:	4eb9 0004 a214 	jsr 4a214 <_POSIX_Message_queue_Translate_core_message_queue_return_code>
   49fe6:	588f           	addql #4,%sp                                
   49fe8:	2480           	movel %d0,%a2@                              
   49fea:	600c           	bras 49ff8 <_POSIX_Message_queue_Receive_support+0xf8>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
   49fec:	4eb9 0005 2f48 	jsr 52f48 <__errno>                         
   49ff2:	2040           	moveal %d0,%a0                              
   49ff4:	7009           	moveq #9,%d0                                
   49ff6:	2080           	movel %d0,%a0@                              
   49ff8:	70ff           	moveq #-1,%d0                               
}                                                                     
   49ffa:	4cee 043c ffe4 	moveml %fp@(-28),%d2-%d5/%a2                
   4a000:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004a280 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>: #include <rtems/posix/pthread.h> void _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch( Thread_Control *the_thread ) {
   4a280:	4e56 0000      	linkw %fp,#0                                
   4a284:	226e 0008      	moveal %fp@(8),%a1                          
  POSIX_API_Control *thread_support;                                  
                                                                      
  thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];    
   4a288:	2069 0102      	moveal %a1@(258),%a0                        
                                                                      
  if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
   4a28c:	4aa8 00d8      	tstl %a0@(216)                              
   4a290:	662e           	bnes 4a2c0 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x40><== NEVER TAKEN
   4a292:	7001           	moveq #1,%d0                                
   4a294:	b0a8 00dc      	cmpl %a0@(220),%d0                          
   4a298:	6626           	bnes 4a2c0 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x40>
       thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS &&
   4a29a:	4aa8 00e0      	tstl %a0@(224)                              
   4a29e:	6720           	beqs 4a2c0 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x40>
       thread_support->cancelation_requested ) {                      
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
   4a2a0:	4878 ffff      	pea ffffffff <LESS>                         
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   4a2a4:	2039 0005 f03c 	movel 5f03c <_Thread_Dispatch_disable_level>,%d0
   4a2aa:	5380           	subql #1,%d0                                
   4a2ac:	2f09           	movel %a1,%sp@-                             
   4a2ae:	23c0 0005 f03c 	movel %d0,5f03c <_Thread_Dispatch_disable_level>
   4a2b4:	4eb9 0004 aa58 	jsr 4aa58 <_POSIX_Thread_Exit>              
   4a2ba:	508f           	addql #8,%sp                                
  } else                                                              
    _Thread_Enable_dispatch();                                        
                                                                      
}                                                                     
   4a2bc:	4e5e           	unlk %fp                                    
   4a2be:	4e75           	rts                                         
   4a2c0:	4e5e           	unlk %fp                                    
       thread_support->cancelability_type == PTHREAD_CANCEL_ASYNCHRONOUS &&
       thread_support->cancelation_requested ) {                      
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
  } else                                                              
    _Thread_Enable_dispatch();                                        
   4a2c2:	4ef9 0004 7dde 	jmp 47dde <_Thread_Enable_dispatch>         
                                                                      

0004b4d4 <_POSIX_Thread_Translate_sched_param>: int policy, struct sched_param *param, Thread_CPU_budget_algorithms *budget_algorithm, Thread_CPU_budget_algorithm_callout *budget_callout ) {
   4b4d4:	4e56 ffec      	linkw %fp,#-20                              
   4b4d8:	48d7 3c04      	moveml %d2/%a2-%a5,%sp@                     
   4b4dc:	246e 000c      	moveal %fp@(12),%a2                         
  if ( !_POSIX_Priority_Is_valid( param->sched_priority ) )           
   4b4e0:	2f12           	movel %a2@,%sp@-                            
  int                                  policy,                        
  struct sched_param                  *param,                         
  Thread_CPU_budget_algorithms        *budget_algorithm,              
  Thread_CPU_budget_algorithm_callout *budget_callout                 
)                                                                     
{                                                                     
   4b4e2:	242e 0008      	movel %fp@(8),%d2                           
   4b4e6:	266e 0010      	moveal %fp@(16),%a3                         
   4b4ea:	286e 0014      	moveal %fp@(20),%a4                         
  if ( !_POSIX_Priority_Is_valid( param->sched_priority ) )           
   4b4ee:	4eb9 0004 b4b0 	jsr 4b4b0 <_POSIX_Priority_Is_valid>        
   4b4f4:	588f           	addql #4,%sp                                
   4b4f6:	4a00           	tstb %d0                                    
   4b4f8:	6778           	beqs 4b572 <_POSIX_Thread_Translate_sched_param+0x9e><== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
   4b4fa:	4293           	clrl %a3@                                   
  *budget_callout = NULL;                                             
   4b4fc:	4294           	clrl %a4@                                   
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
   4b4fe:	4a82           	tstl %d2                                    
   4b500:	6606           	bnes 4b508 <_POSIX_Thread_Translate_sched_param+0x34>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
   4b502:	7201           	moveq #1,%d1                                
   4b504:	2681           	movel %d1,%a3@                              
   4b506:	6066           	bras 4b56e <_POSIX_Thread_Translate_sched_param+0x9a>
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_FIFO ) {                                       
   4b508:	7001           	moveq #1,%d0                                
   4b50a:	b082           	cmpl %d2,%d0                                
   4b50c:	6760           	beqs 4b56e <_POSIX_Thread_Translate_sched_param+0x9a>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_RR ) {                                         
   4b50e:	103c 0002      	moveb #2,%d0                                
   4b512:	b082           	cmpl %d2,%d0                                
   4b514:	6606           	bnes 4b51c <_POSIX_Thread_Translate_sched_param+0x48>
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
   4b516:	2680           	movel %d0,%a3@                              
    return 0;                                                         
   4b518:	4200           	clrb %d0                                    
   4b51a:	6058           	bras 4b574 <_POSIX_Thread_Translate_sched_param+0xa0>
  }                                                                   
                                                                      
  if ( policy == SCHED_SPORADIC ) {                                   
   4b51c:	7004           	moveq #4,%d0                                
   4b51e:	b082           	cmpl %d2,%d0                                
   4b520:	6650           	bnes 4b572 <_POSIX_Thread_Translate_sched_param+0x9e>
    if ( (param->sched_ss_repl_period.tv_sec == 0) &&                 
   4b522:	4aaa 0008      	tstl %a2@(8)                                
   4b526:	6606           	bnes 4b52e <_POSIX_Thread_Translate_sched_param+0x5a>
   4b528:	4aaa 000c      	tstl %a2@(12)                               
   4b52c:	6744           	beqs 4b572 <_POSIX_Thread_Translate_sched_param+0x9e>
         (param->sched_ss_repl_period.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( (param->sched_ss_init_budget.tv_sec == 0) &&                 
   4b52e:	4aaa 0010      	tstl %a2@(16)                               
   4b532:	6606           	bnes 4b53a <_POSIX_Thread_Translate_sched_param+0x66>
   4b534:	4aaa 0014      	tstl %a2@(20)                               
   4b538:	6738           	beqs 4b572 <_POSIX_Thread_Translate_sched_param+0x9e>
         (param->sched_ss_init_budget.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
   4b53a:	486a 0008      	pea %a2@(8)                                 
   4b53e:	4bf9 0004 93cc 	lea 493cc <_Timespec_To_ticks>,%a5          
   4b544:	4e95           	jsr %a5@                                    
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
   4b546:	486a 0010      	pea %a2@(16)                                
                                                                      
    if ( (param->sched_ss_init_budget.tv_sec == 0) &&                 
         (param->sched_ss_init_budget.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
   4b54a:	2400           	movel %d0,%d2                               
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
   4b54c:	4e95           	jsr %a5@                                    
                                                                      
    if ( (param->sched_ss_init_budget.tv_sec == 0) &&                 
         (param->sched_ss_init_budget.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
   4b54e:	508f           	addql #8,%sp                                
   4b550:	b082           	cmpl %d2,%d0                                
   4b552:	621e           	bhis 4b572 <_POSIX_Thread_Translate_sched_param+0x9e>
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
      return EINVAL;                                                  
                                                                      
    if ( !_POSIX_Priority_Is_valid( param->sched_ss_low_priority ) )  
   4b554:	2f2a 0004      	movel %a2@(4),%sp@-                         
   4b558:	4eb9 0004 b4b0 	jsr 4b4b0 <_POSIX_Priority_Is_valid>        
   4b55e:	588f           	addql #4,%sp                                
   4b560:	4a00           	tstb %d0                                    
   4b562:	670e           	beqs 4b572 <_POSIX_Thread_Translate_sched_param+0x9e>
      return EINVAL;                                                  
                                                                      
    *budget_algorithm  = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;         
   4b564:	7003           	moveq #3,%d0                                
   4b566:	2680           	movel %d0,%a3@                              
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
   4b568:	28bc 0004 5edc 	movel #286428,%a4@                          
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_FIFO ) {                                       
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
   4b56e:	4280           	clrl %d0                                    
   4b570:	6002           	bras 4b574 <_POSIX_Thread_Translate_sched_param+0xa0>
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
      return EINVAL;                                                  
                                                                      
    if ( !_POSIX_Priority_Is_valid( param->sched_ss_low_priority ) )  
      return EINVAL;                                                  
   4b572:	7016           	moveq #22,%d0                               
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
    return 0;                                                         
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
   4b574:	4cee 3c04 ffec 	moveml %fp@(-20),%d2/%a2-%a5                
   4b57a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045c0c <_POSIX_Threads_Initialize_user_threads_body>: * * Output parameters: NONE */ void _POSIX_Threads_Initialize_user_threads_body(void) {
   45c0c:	4e56 ff98      	linkw %fp,#-104                             
   45c10:	48d7 3c7c      	moveml %d2-%d6/%a2-%a5,%sp@                 
  uint32_t                            maximum;                        
  posix_initialization_threads_table *user_threads;                   
  pthread_t                           thread_id;                      
  pthread_attr_t                      attr;                           
                                                                      
  user_threads = Configuration_POSIX_API.User_initialization_threads_table;
   45c14:	2479 0005 e11e 	moveal 5e11e <Configuration_POSIX_API+0x34>,%a2
  maximum      = Configuration_POSIX_API.number_of_initialization_threads;
   45c1a:	2839 0005 e11a 	movel 5e11a <Configuration_POSIX_API+0x30>,%d4
                                                                      
  if ( !user_threads || maximum == 0 )                                
   45c20:	4a8a           	tstl %a2                                    
   45c22:	676a           	beqs 45c8e <_POSIX_Threads_Initialize_user_threads_body+0x82><== NEVER TAKEN
   45c24:	4a84           	tstl %d4                                    
   45c26:	6766           	beqs 45c8e <_POSIX_Threads_Initialize_user_threads_body+0x82><== NEVER TAKEN
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
    /*                                                                
     * There is no way for these calls to fail in this situation.     
     */                                                               
    (void) pthread_attr_init( &attr );                                
   45c28:	240e           	movel %fp,%d2                               
    (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED );
    (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size);
                                                                      
    status = pthread_create(                                          
   45c2a:	2a0e           	movel %fp,%d5                               
  pthread_attr_t                      attr;                           
                                                                      
  user_threads = Configuration_POSIX_API.User_initialization_threads_table;
  maximum      = Configuration_POSIX_API.number_of_initialization_threads;
                                                                      
  if ( !user_threads || maximum == 0 )                                
   45c2c:	4283           	clrl %d3                                    
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
    /*                                                                
     * There is no way for these calls to fail in this situation.     
     */                                                               
    (void) pthread_attr_init( &attr );                                
   45c2e:	0682 ffff ffbc 	addil #-68,%d2                              
   45c34:	2c3c 0004 b580 	movel #308608,%d6                           
    (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED );
   45c3a:	4bf9 0004 b5ac 	lea 4b5ac <pthread_attr_setinheritsched>,%a5
    (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size);
   45c40:	49f9 0004 b5e4 	lea 4b5e4 <pthread_attr_setstacksize>,%a4   
                                                                      
    status = pthread_create(                                          
   45c46:	5985           	subql #4,%d5                                
   45c48:	47f9 0004 5960 	lea 45960 <pthread_create>,%a3              
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
    /*                                                                
     * There is no way for these calls to fail in this situation.     
     */                                                               
    (void) pthread_attr_init( &attr );                                
   45c4e:	2f02           	movel %d2,%sp@-                             
   45c50:	2046           	moveal %d6,%a0                              
   45c52:	4e90           	jsr %a0@                                    
    (void) pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED );
   45c54:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   45c58:	2f02           	movel %d2,%sp@-                             
   45c5a:	4e95           	jsr %a5@                                    
    (void) pthread_attr_setstacksize(&attr, user_threads[ index ].stack_size);
   45c5c:	2f2a 0004      	movel %a2@(4),%sp@-                         
   45c60:	2f02           	movel %d2,%sp@-                             
   45c62:	4e94           	jsr %a4@                                    
                                                                      
    status = pthread_create(                                          
   45c64:	42a7           	clrl %sp@-                                  
   45c66:	2f12           	movel %a2@,%sp@-                            
   45c68:	2f02           	movel %d2,%sp@-                             
   45c6a:	2f05           	movel %d5,%sp@-                             
   45c6c:	4e93           	jsr %a3@                                    
      &thread_id,                                                     
      &attr,                                                          
      user_threads[ index ].thread_entry,                             
      NULL                                                            
    );                                                                
    if ( status )                                                     
   45c6e:	4fef 0024      	lea %sp@(36),%sp                            
   45c72:	4a80           	tstl %d0                                    
   45c74:	6710           	beqs 45c86 <_POSIX_Threads_Initialize_user_threads_body+0x7a>
      _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, true, status );
   45c76:	2f00           	movel %d0,%sp@-                             
   45c78:	4878 0001      	pea 1 <ADD>                                 
   45c7c:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   45c80:	4eb9 0004 7924 	jsr 47924 <_Internal_error_Occurred>        
   *                                                                  
   *  Setting the attributes explicitly is critical, since we don't want
   *  to inherit the idle tasks attributes.                           
   */                                                                 
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
   45c86:	5283           	addql #1,%d3                                
   45c88:	508a           	addql #8,%a2                                
   45c8a:	b883           	cmpl %d3,%d4                                
   45c8c:	62c0           	bhis 45c4e <_POSIX_Threads_Initialize_user_threads_body+0x42><== NEVER TAKEN
      NULL                                                            
    );                                                                
    if ( status )                                                     
      _Internal_error_Occurred( INTERNAL_ERROR_POSIX_API, true, status );
  }                                                                   
}                                                                     
   45c8e:	4cee 3c7c ff98 	moveml %fp@(-104),%d2-%d6/%a2-%a5           
   45c94:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004a618 <_POSIX_Threads_Sporadic_budget_TSR>: */ void _POSIX_Threads_Sporadic_budget_TSR( Objects_Id id __attribute__((unused)), void *argument ) {
   4a618:	4e56 0000      	linkw %fp,#0                                
   4a61c:	2f0b           	movel %a3,%sp@-                             
   4a61e:	2f0a           	movel %a2,%sp@-                             
   4a620:	246e 000c      	moveal %fp@(12),%a2                         
  Thread_Control     *the_thread;                                     
  POSIX_API_Control  *api;                                            
                                                                      
  the_thread = argument;                                              
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
   4a624:	266a 0102      	moveal %a2@(258),%a3                        
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_init_budget );
   4a628:	486b 0098      	pea %a3@(152)                               
   4a62c:	4eb9 0004 b388 	jsr 4b388 <_Timespec_To_ticks>              
   */                                                                 
  #if 0                                                               
    printk( "TSR %d %d %d\n", the_thread->resource_count,             
        the_thread->current_priority, new_priority );                 
  #endif                                                              
  if ( the_thread->resource_count == 0 ) {                            
   4a632:	588f           	addql #4,%sp                                
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_init_budget );
                                                                      
  the_thread->cpu_time_budget = ticks;                                
   4a634:	2540 0076      	movel %d0,%a2@(118)                         
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
   4a638:	4280           	clrl %d0                                    
   4a63a:	1039 0005 d0d2 	moveb 5d0d2 <rtems_maximum_priority>,%d0    
   4a640:	90ab 0088      	subl %a3@(136),%d0                          
                                                                      
  new_priority = _POSIX_Priority_To_core( api->schedparam.sched_priority );
  the_thread->real_priority = new_priority;                           
   4a644:	2540 0018      	movel %d0,%a2@(24)                          
   */                                                                 
  #if 0                                                               
    printk( "TSR %d %d %d\n", the_thread->resource_count,             
        the_thread->current_priority, new_priority );                 
  #endif                                                              
  if ( the_thread->resource_count == 0 ) {                            
   4a648:	4aaa 001c      	tstl %a2@(28)                               
   4a64c:	6618           	bnes 4a666 <_POSIX_Threads_Sporadic_budget_TSR+0x4e><== NEVER TAKEN
    /*                                                                
     *  If this would make them less important, then do not change it.
     */                                                               
    if ( the_thread->current_priority > new_priority ) {              
   4a64e:	b0aa 0014      	cmpl %a2@(20),%d0                           
   4a652:	6412           	bccs 4a666 <_POSIX_Threads_Sporadic_budget_TSR+0x4e>
      _Thread_Change_priority( the_thread, new_priority, true );      
   4a654:	4878 0001      	pea 1 <ADD>                                 
   4a658:	2f00           	movel %d0,%sp@-                             
   4a65a:	2f0a           	movel %a2,%sp@-                             
   4a65c:	4eb9 0004 76a4 	jsr 476a4 <_Thread_Change_priority>         
   4a662:	4fef 000c      	lea %sp@(12),%sp                            
      #endif                                                          
    }                                                                 
  }                                                                   
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_repl_period );
   4a666:	486b 0090      	pea %a3@(144)                               
   4a66a:	4eb9 0004 b388 	jsr 4b388 <_Timespec_To_ticks>              
                                                                      
  _Watchdog_Insert_ticks( &api->Sporadic_timer, ticks );              
}                                                                     
   4a670:	246e fff8      	moveal %fp@(-8),%a2                         
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   4a674:	588f           	addql #4,%sp                                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   4a676:	2740 00b4      	movel %d0,%a3@(180)                         
  }                                                                   
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_repl_period );
                                                                      
  _Watchdog_Insert_ticks( &api->Sporadic_timer, ticks );              
   4a67a:	47eb 00a8      	lea %a3@(168),%a3                           
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   4a67e:	203c 0005 ea88 	movel #387720,%d0                           
   4a684:	2d4b 000c      	movel %a3,%fp@(12)                          
}                                                                     
   4a688:	266e fffc      	moveal %fp@(-4),%a3                         
   4a68c:	2d40 0008      	movel %d0,%fp@(8)                           
   4a690:	4e5e           	unlk %fp                                    
   4a692:	4ef9 0004 8758 	jmp 48758 <_Watchdog_Insert>                
                                                                      

0004a698 <_POSIX_Threads_Sporadic_budget_callout>: /* * This will prevent the thread from consuming its entire "budget" * while at low priority. */ the_thread->cpu_time_budget = 0xFFFFFFFF; /* XXX should be based on MAX_U32 */
   4a698:	70ff           	moveq #-1,%d0                               
 *  _POSIX_Threads_Sporadic_budget_callout                            
 */                                                                   
void _POSIX_Threads_Sporadic_budget_callout(                          
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
   4a69a:	4e56 0000      	linkw %fp,#0                                
   4a69e:	206e 0008      	moveal %fp@(8),%a0                          
                                                                      
  /*                                                                  
   *  This will prevent the thread from consuming its entire "budget" 
   *  while at low priority.                                          
   */                                                                 
  the_thread->cpu_time_budget = 0xFFFFFFFF; /* XXX should be based on MAX_U32 */
   4a6a2:	2140 0076      	movel %d0,%a0@(118)                         
   4a6a6:	4280           	clrl %d0                                    
   4a6a8:	1039 0005 d0d2 	moveb 5d0d2 <rtems_maximum_priority>,%d0    
)                                                                     
{                                                                     
  POSIX_API_Control *api;                                             
  uint32_t           new_priority;                                    
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
   4a6ae:	2268 0102      	moveal %a0@(258),%a1                        
   4a6b2:	90a9 008c      	subl %a1@(140),%d0                          
   *  while at low priority.                                          
   */                                                                 
  the_thread->cpu_time_budget = 0xFFFFFFFF; /* XXX should be based on MAX_U32 */
                                                                      
  new_priority = _POSIX_Priority_To_core(api->schedparam.sched_ss_low_priority);
  the_thread->real_priority = new_priority;                           
   4a6b6:	2140 0018      	movel %d0,%a0@(24)                          
   */                                                                 
  #if 0                                                               
    printk( "callout %d %d %d\n", the_thread->resource_count,         
	the_thread->current_priority, new_priority );                        
  #endif                                                              
  if ( the_thread->resource_count == 0 ) {                            
   4a6ba:	4aa8 001c      	tstl %a0@(28)                               
   4a6be:	6618           	bnes 4a6d8 <_POSIX_Threads_Sporadic_budget_callout+0x40><== NEVER TAKEN
    /*                                                                
     *  Make sure we are actually lowering it. If they have lowered it
     *  to logically lower than sched_ss_low_priority, then we do not want to
     *  change it.                                                    
     */                                                               
    if ( the_thread->current_priority < new_priority ) {              
   4a6c0:	b0a8 0014      	cmpl %a0@(20),%d0                           
   4a6c4:	6312           	blss 4a6d8 <_POSIX_Threads_Sporadic_budget_callout+0x40><== NEVER TAKEN
      _Thread_Change_priority( the_thread, new_priority, true );      
   4a6c6:	4878 0001      	pea 1 <ADD>                                 
   4a6ca:	2f00           	movel %d0,%sp@-                             
   4a6cc:	2f08           	movel %a0,%sp@-                             
   4a6ce:	4eb9 0004 76a4 	jsr 476a4 <_Thread_Change_priority>         
   4a6d4:	4fef 000c      	lea %sp@(12),%sp                            
      #if 0                                                           
        printk( "lower priority\n" );                                 
      #endif                                                          
    }                                                                 
  }                                                                   
}                                                                     
   4a6d8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045794 <_POSIX_Timer_TSR>: * This is the operation that is run when a timer expires */ void _POSIX_Timer_TSR( Objects_Id timer __attribute__((unused)), void *data) {
   45794:	4e56 0000      	linkw %fp,#0                                
   45798:	2f0a           	movel %a2,%sp@-                             
   4579a:	246e 000c      	moveal %fp@(12),%a2                         
  bool                 activated;                                     
                                                                      
  ptimer = (POSIX_Timer_Control *)data;                               
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
   4579e:	52aa 0066      	addql #1,%a2@(102)                          
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
   457a2:	4aaa 0052      	tstl %a2@(82)                               
   457a6:	6606           	bnes 457ae <_POSIX_Timer_TSR+0x1a>          
   457a8:	4aaa 0056      	tstl %a2@(86)                               
   457ac:	6736           	beqs 457e4 <_POSIX_Timer_TSR+0x50>          <== NEVER TAKEN
       ( ptimer->timer_data.it_interval.tv_nsec != 0 ) ) {            
    activated = _POSIX_Timer_Insert_helper(                           
   457ae:	2f0a           	movel %a2,%sp@-                             
   457b0:	4879 0004 5794 	pea 45794 <_POSIX_Timer_TSR>                
   457b6:	2f2a 0008      	movel %a2@(8),%sp@-                         
   457ba:	2f2a 0062      	movel %a2@(98),%sp@-                        
   457be:	486a 0010      	pea %a2@(16)                                
   457c2:	4eb9 0004 af80 	jsr 4af80 <_POSIX_Timer_Insert_helper>      
      ptimer->ticks,                                                  
      ptimer->Object.id,                                              
      _POSIX_Timer_TSR,                                               
      ptimer                                                          
    );                                                                
    if ( !activated )                                                 
   457c8:	4fef 0014      	lea %sp@(20),%sp                            
   457cc:	4a00           	tstb %d0                                    
   457ce:	672e           	beqs 457fe <_POSIX_Timer_TSR+0x6a>          <== NEVER TAKEN
      return;                                                         
                                                                      
    /* Store the time when the timer was started again */             
    _TOD_Get( &ptimer->time );                                        
   457d0:	486a 006a      	pea %a2@(106)                               
   457d4:	4eb9 0004 6cc4 	jsr 46cc4 <_TOD_Get>                        
                                                                      
    /* The state really did not change but just to be safe */         
    ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                     
   457da:	588f           	addql #4,%sp                                
   457dc:	7003           	moveq #3,%d0                                
   457de:	1540 003c      	moveb %d0,%a2@(60)                          
   457e2:	6006           	bras 457ea <_POSIX_Timer_TSR+0x56>          
  } else {                                                            
   /* Indicates that the timer is stopped */                          
   ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;                     
   457e4:	7004           	moveq #4,%d0                                <== NOT EXECUTED
   457e6:	1540 003c      	moveb %d0,%a2@(60)                          <== NOT EXECUTED
  /*                                                                  
   * The sending of the signal to the process running the handling function
   * specified for that signal is simulated                           
   */                                                                 
                                                                      
  if ( pthread_kill ( ptimer->thread_id, ptimer->inf.sigev_signo ) ) {
   457ea:	2f2a 0042      	movel %a2@(66),%sp@-                        
   457ee:	2f2a 0038      	movel %a2@(56),%sp@-                        
   457f2:	4eb9 0004 ab74 	jsr 4ab74 <pthread_kill>                    
  }                                                                   
                                                                      
  /* After the signal handler returns, the count of expirations of the
   * timer must be set to 0.                                          
   */                                                                 
  ptimer->overrun = 0;                                                
   457f8:	508f           	addql #8,%sp                                
   457fa:	42aa 0066      	clrl %a2@(102)                              
}                                                                     
   457fe:	246e fffc      	moveal %fp@(-4),%a2                         
   45802:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004c3f4 <_POSIX_signals_Check_signal>: { siginfo_t siginfo_struct; sigset_t saved_signals_blocked; Thread_Wait_information stored_thread_wait_information; if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct,
   4c3f4:	4280           	clrl %d0                                    
bool    _POSIX_signals_Check_signal(                                  
  POSIX_API_Control  *api,                                            
  int                 signo,                                          
  bool                is_global                                       
)                                                                     
{                                                                     
   4c3f6:	4e56 ffb4      	linkw %fp,#-76                              
  siginfo_t                   siginfo_struct;                         
  sigset_t                    saved_signals_blocked;                  
  Thread_Wait_information     stored_thread_wait_information;         
                                                                      
  if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct,   
   4c3fa:	102e 0013      	moveb %fp@(19),%d0                          
bool    _POSIX_signals_Check_signal(                                  
  POSIX_API_Control  *api,                                            
  int                 signo,                                          
  bool                is_global                                       
)                                                                     
{                                                                     
   4c3fe:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
  siginfo_t                   siginfo_struct;                         
  sigset_t                    saved_signals_blocked;                  
  Thread_Wait_information     stored_thread_wait_information;         
                                                                      
  if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct,   
   4c402:	4878 0001      	pea 1 <ADD>                                 
   4c406:	2a0e           	movel %fp,%d5                               
   4c408:	0685 ffff fff4 	addil #-12,%d5                              
   4c40e:	2f00           	movel %d0,%sp@-                             
bool    _POSIX_signals_Check_signal(                                  
  POSIX_API_Control  *api,                                            
  int                 signo,                                          
  bool                is_global                                       
)                                                                     
{                                                                     
   4c410:	242e 000c      	movel %fp@(12),%d2                          
  siginfo_t                   siginfo_struct;                         
  sigset_t                    saved_signals_blocked;                  
  Thread_Wait_information     stored_thread_wait_information;         
                                                                      
  if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct,   
   4c414:	2f05           	movel %d5,%sp@-                             
bool    _POSIX_signals_Check_signal(                                  
  POSIX_API_Control  *api,                                            
  int                 signo,                                          
  bool                is_global                                       
)                                                                     
{                                                                     
   4c416:	246e 0008      	moveal %fp@(8),%a2                          
  siginfo_t                   siginfo_struct;                         
  sigset_t                    saved_signals_blocked;                  
  Thread_Wait_information     stored_thread_wait_information;         
                                                                      
  if ( ! _POSIX_signals_Clear_signals( api, signo, &siginfo_struct,   
   4c41a:	2f02           	movel %d2,%sp@-                             
   4c41c:	2f0a           	movel %a2,%sp@-                             
   4c41e:	4eb9 0004 c4cc 	jsr 4c4cc <_POSIX_signals_Clear_signals>    
   4c424:	4fef 0014      	lea %sp@(20),%sp                            
   4c428:	4a00           	tstb %d0                                    
   4c42a:	6700 0092      	beqw 4c4be <_POSIX_signals_Check_signal+0xca>
  #endif                                                              
                                                                      
  /*                                                                  
   *  Just to prevent sending a signal which is currently being ignored.
   */                                                                 
  if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN )        
   4c42e:	2002           	movel %d2,%d0                               
   4c430:	2602           	movel %d2,%d3                               
   4c432:	e588           	lsll #2,%d0                                 
   4c434:	e98b           	lsll #4,%d3                                 
   4c436:	9680           	subl %d0,%d3                                
   4c438:	2043           	moveal %d3,%a0                              
   4c43a:	d1fc 0005 ee64 	addal #388708,%a0                           
   4c440:	7001           	moveq #1,%d0                                
   4c442:	2668 0008      	moveal %a0@(8),%a3                          
   4c446:	b08b           	cmpl %a3,%d0                                
   4c448:	6774           	beqs 4c4be <_POSIX_signals_Check_signal+0xca><== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
   4c44a:	2028 0004      	movel %a0@(4),%d0                           
    return false;                                                     
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
   4c44e:	282a 00d0      	movel %a2@(208),%d4                         
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
   4c452:	8084           	orl %d4,%d0                                 
  /*                                                                  
   *  We have to save the blocking information of the current wait queue
   *  because the signal handler may subsequently go on and put the thread
   *  on a wait queue, for its own purposes.                          
   */                                                                 
  memcpy( &stored_thread_wait_information, &_Thread_Executing->Wait,  
   4c454:	2079 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a0 
   4c45a:	41e8 0020      	lea %a0@(32),%a0                            
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
   4c45e:	2540 00d0      	movel %d0,%a2@(208)                         
  /*                                                                  
   *  We have to save the blocking information of the current wait queue
   *  because the signal handler may subsequently go on and put the thread
   *  on a wait queue, for its own purposes.                          
   */                                                                 
  memcpy( &stored_thread_wait_information, &_Thread_Executing->Wait,  
   4c462:	4878 0028      	pea 28 <OPER2+0x14>                         
   4c466:	2f08           	movel %a0,%sp@-                             
   4c468:	486e ffcc      	pea %fp@(-52)                               
   4c46c:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Here, the signal handler function executes                      
   */                                                                 
  switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) {               
   4c472:	4fef 000c      	lea %sp@(12),%sp                            
   4c476:	41f9 0005 ee64 	lea 5ee64 <_POSIX_signals_Vectors>,%a0      
   4c47c:	7002           	moveq #2,%d0                                
   4c47e:	b0b0 3800      	cmpl %a0@(00000000,%d3:l),%d0               
   4c482:	660e           	bnes 4c492 <_POSIX_signals_Check_signal+0x9e>
    case SA_SIGINFO:                                                  
      (*_POSIX_signals_Vectors[ signo ].sa_sigaction)(                
   4c484:	42a7           	clrl %sp@-                                  
   4c486:	2f05           	movel %d5,%sp@-                             
   4c488:	2f02           	movel %d2,%sp@-                             
   4c48a:	4e93           	jsr %a3@                                    
        signo,                                                        
        &siginfo_struct,                                              
        NULL        /* context is undefined per 1003.1b-1993, p. 66 */
      );                                                              
      break;                                                          
   4c48c:	4fef 000c      	lea %sp@(12),%sp                            
   4c490:	6006           	bras 4c498 <_POSIX_signals_Check_signal+0xa4>
    default:                                                          
      (*_POSIX_signals_Vectors[ signo ].sa_handler)( signo );         
   4c492:	2f02           	movel %d2,%sp@-                             
   4c494:	4e93           	jsr %a3@                                    
      break;                                                          
   4c496:	588f           	addql #4,%sp                                
  }                                                                   
                                                                      
  /*                                                                  
   *  Restore the blocking information                                
   */                                                                 
  memcpy( &_Thread_Executing->Wait, &stored_thread_wait_information,  
   4c498:	4878 0028      	pea 28 <OPER2+0x14>                         
   4c49c:	486e ffcc      	pea %fp@(-52)                               
   4c4a0:	2079 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a0 
   4c4a6:	41e8 0020      	lea %a0@(32),%a0                            
   4c4aa:	2f08           	movel %a0,%sp@-                             
   4c4ac:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
  /*                                                                  
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
                                                                      
  return true;                                                        
   4c4b2:	4fef 000c      	lea %sp@(12),%sp                            
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
   4c4b6:	2544 00d0      	movel %d4,%a2@(208)                         
                                                                      
  return true;                                                        
   4c4ba:	7001           	moveq #1,%d0                                
   4c4bc:	6002           	bras 4c4c0 <_POSIX_signals_Check_signal+0xcc>
                                                                      
  /*                                                                  
   *  Just to prevent sending a signal which is currently being ignored.
   */                                                                 
  if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN )        
    return false;                                                     
   4c4be:	4200           	clrb %d0                                    
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
                                                                      
  return true;                                                        
}                                                                     
   4c4c0:	4cee 0c3c ffb4 	moveml %fp@(-76),%d2-%d5/%a2-%a3            
   4c4c6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004ca44 <_POSIX_signals_Clear_process_signals>: clear_signal = true; mask = signo_to_mask( signo ); ISR_Level level; _ISR_Disable( level );
   4ca44:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
void _POSIX_signals_Clear_process_signals(                            
  int signo                                                           
)                                                                     
{                                                                     
   4ca4a:	4e56 0000      	linkw %fp,#0                                
   4ca4e:	222e 0008      	movel %fp@(8),%d1                           
   4ca52:	2f03           	movel %d3,%sp@-                             
   4ca54:	2f02           	movel %d2,%sp@-                             
  clear_signal = true;                                                
  mask         = signo_to_mask( signo );                              
                                                                      
  ISR_Level  level;                                                   
                                                                      
  _ISR_Disable( level );                                              
   4ca56:	40c2           	movew %sr,%d2                               
   4ca58:	8082           	orl %d2,%d0                                 
   4ca5a:	46c0           	movew %d0,%sr                               
    if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {   
   4ca5c:	2601           	movel %d1,%d3                               
   4ca5e:	2001           	movel %d1,%d0                               
   4ca60:	41f9 0005 ee64 	lea 5ee64 <_POSIX_signals_Vectors>,%a0      
   4ca66:	e58b           	lsll #2,%d3                                 
   4ca68:	e988           	lsll #4,%d0                                 
   4ca6a:	9083           	subl %d3,%d0                                
   4ca6c:	7602           	moveq #2,%d3                                
   4ca6e:	b6b0 0800      	cmpl %a0@(00000000,%d0:l),%d3               
   4ca72:	6614           	bnes 4ca88 <_POSIX_signals_Clear_process_signals+0x44>
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   4ca74:	2040           	moveal %d0,%a0                              
   4ca76:	d1fc 0005 f060 	addal #389216,%a0                           
      if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )     
   4ca7c:	43f9 0005 f05c 	lea 5f05c <_POSIX_signals_Siginfo>,%a1      
   4ca82:	b1f1 0800      	cmpal %a1@(00000000,%d0:l),%a0              
   4ca86:	660e           	bnes 4ca96 <_POSIX_signals_Clear_process_signals+0x52><== NEVER TAKEN
   4ca88:	5381           	subql #1,%d1                                
   4ca8a:	7001           	moveq #1,%d0                                
   4ca8c:	e3a8           	lsll %d1,%d0                                
       clear_signal = false;                                          
    }                                                                 
    if ( clear_signal ) {                                             
      _POSIX_signals_Pending &= ~mask;                                
   4ca8e:	4680           	notl %d0                                    
   4ca90:	c1b9 0005 f058 	andl %d0,5f058 <_POSIX_signals_Pending>     
    }                                                                 
  _ISR_Enable( level );                                               
   4ca96:	46c2           	movew %d2,%sr                               
}                                                                     
   4ca98:	241f           	movel %sp@+,%d2                             
   4ca9a:	261f           	movel %sp@+,%d3                             
   4ca9c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046284 <_POSIX_signals_Get_lowest>: sigset_t set ) { int signo; for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {
   46284:	701b           	moveq #27,%d0                               
#include <rtems/score/isr.h>                                          
                                                                      
int _POSIX_signals_Get_lowest(                                        
  sigset_t   set                                                      
)                                                                     
{                                                                     
   46286:	4e56 fff4      	linkw %fp,#-12                              
   4628a:	48d7 001c      	moveml %d2-%d4,%sp@                         
   4628e:	242e 0008      	movel %fp@(8),%d2                           
   46292:	7601           	moveq #1,%d3                                
#include <rtems/posix/psignal.h>                                      
#include <rtems/seterr.h>                                             
#include <rtems/posix/time.h>                                         
#include <rtems/score/isr.h>                                          
                                                                      
int _POSIX_signals_Get_lowest(                                        
   46294:	2200           	movel %d0,%d1                               
   46296:	5381           	subql #1,%d1                                
   46298:	2803           	movel %d3,%d4                               
   4629a:	e3ac           	lsll %d1,%d4                                
   4629c:	2204           	movel %d4,%d1                               
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
    if ( set & signo_to_mask( signo ) ) {                             
   4629e:	c282           	andl %d2,%d1                                
   462a0:	6626           	bnes 462c8 <_POSIX_signals_Get_lowest+0x44> <== NEVER TAKEN
  sigset_t   set                                                      
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
   462a2:	5280           	addql #1,%d0                                
   462a4:	123c 0020      	moveb #32,%d1                               
   462a8:	b280           	cmpl %d0,%d1                                
   462aa:	66e8           	bnes 46294 <_POSIX_signals_Get_lowest+0x10> 
   462ac:	7001           	moveq #1,%d0                                
   462ae:	7601           	moveq #1,%d3                                
#include <rtems/posix/psignal.h>                                      
#include <rtems/seterr.h>                                             
#include <rtems/posix/time.h>                                         
#include <rtems/score/isr.h>                                          
                                                                      
int _POSIX_signals_Get_lowest(                                        
   462b0:	2200           	movel %d0,%d1                               
   462b2:	5381           	subql #1,%d1                                
   462b4:	2803           	movel %d3,%d4                               
   462b6:	e3ac           	lsll %d1,%d4                                
   462b8:	2204           	movel %d4,%d1                               
                                                                      
  #if (SIGHUP != 1)                                                   
    #error "Assumption that SIGHUP==1 violated!!"                     
  #endif                                                              
  for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {        
    if ( set & signo_to_mask( signo ) ) {                             
   462ba:	c282           	andl %d2,%d1                                
   462bc:	660a           	bnes 462c8 <_POSIX_signals_Get_lowest+0x44> 
   */                                                                 
                                                                      
  #if (SIGHUP != 1)                                                   
    #error "Assumption that SIGHUP==1 violated!!"                     
  #endif                                                              
  for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {        
   462be:	5280           	addql #1,%d0                                
   462c0:	123c 001b      	moveb #27,%d1                               
   462c4:	b280           	cmpl %d0,%d1                                
   462c6:	66e8           	bnes 462b0 <_POSIX_signals_Get_lowest+0x2c> <== ALWAYS TAKEN
   *  a return 0.  This routine will NOT be called unless a signal    
   *  is pending in the set passed in.                                
   */                                                                 
found_it:                                                             
  return signo;                                                       
}                                                                     
   462c8:	4cd7 001c      	moveml %sp@,%d2-%d4                         
   462cc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005ae6c <_POSIX_signals_Unblock_thread>:
   5ae6c:	7201           	moveq #1,%d1                                
bool _POSIX_signals_Unblock_thread(                                   
  Thread_Control  *the_thread,                                        
  int              signo,                                             
  siginfo_t       *info                                               
)                                                                     
{                                                                     
   5ae6e:	4e56 fff4      	linkw %fp,#-12                              
   5ae72:	226e 0010      	moveal %fp@(16),%a1                         
   5ae76:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   5ae7a:	242e 000c      	movel %fp@(12),%d2                          
   5ae7e:	2002           	movel %d2,%d0                               
   5ae80:	5380           	subql #1,%d0                                
   5ae82:	246e 0008      	moveal %fp@(8),%a2                          
   5ae86:	e1a9           	lsll %d0,%d1                                
                                                                      
  /*                                                                  
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
   5ae88:	202a 0010      	movel %a2@(16),%d0                          
   5ae8c:	2600           	movel %d0,%d3                               
   5ae8e:	0283 1000 8000 	andil #268468224,%d3                        
{                                                                     
  POSIX_API_Control  *api;                                            
  sigset_t            mask;                                           
  siginfo_t          *the_info = NULL;                                
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
   5ae94:	206a 0102      	moveal %a2@(258),%a0                        
                                                                      
  /*                                                                  
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
   5ae98:	0c83 1000 8000 	cmpil #268468224,%d3                        
   5ae9e:	6650           	bnes 5aef0 <_POSIX_signals_Unblock_thread+0x84>
                                                                      
    if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) {
   5aea0:	2001           	movel %d1,%d0                               
   5aea2:	c0aa 0030      	andl %a2@(48),%d0                           
   5aea6:	660c           	bnes 5aeb4 <_POSIX_signals_Unblock_thread+0x48>
   5aea8:	2028 00d0      	movel %a0@(208),%d0                         
   5aeac:	4680           	notl %d0                                    
   5aeae:	c280           	andl %d0,%d1                                
   5aeb0:	6700 00a8      	beqw 5af5a <_POSIX_signals_Unblock_thread+0xee>
      the_thread->Wait.return_code = EINTR;                           
   5aeb4:	7004           	moveq #4,%d0                                
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
   5aeb6:	206a 0028      	moveal %a2@(40),%a0                         
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
                                                                      
    if ( (the_thread->Wait.option & mask) || (~api->signals_blocked & mask) ) {
      the_thread->Wait.return_code = EINTR;                           
   5aeba:	2540 0034      	movel %d0,%a2@(52)                          
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
                                                                      
      if ( !info ) {                                                  
   5aebe:	4a89           	tstl %a1                                    
   5aec0:	660e           	bnes 5aed0 <_POSIX_signals_Unblock_thread+0x64>
        the_info->si_signo = signo;                                   
        the_info->si_code = SI_USER;                                  
   5aec2:	7201           	moveq #1,%d1                                
      the_thread->Wait.return_code = EINTR;                           
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
                                                                      
      if ( !info ) {                                                  
        the_info->si_signo = signo;                                   
   5aec4:	2082           	movel %d2,%a0@                              
        the_info->si_code = SI_USER;                                  
   5aec6:	2141 0004      	movel %d1,%a0@(4)                           
        the_info->si_value.sival_int = 0;                             
   5aeca:	42a8 0008      	clrl %a0@(8)                                
   5aece:	6012           	bras 5aee2 <_POSIX_signals_Unblock_thread+0x76>
      } else {                                                        
        *the_info = *info;                                            
   5aed0:	4878 000c      	pea c <OPER1>                               
   5aed4:	2f09           	movel %a1,%sp@-                             
   5aed6:	2f08           	movel %a0,%sp@-                             
   5aed8:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
   5aede:	4fef 000c      	lea %sp@(12),%sp                            
      }                                                               
                                                                      
      _Thread_queue_Extract_with_proxy( the_thread );                 
   5aee2:	2f0a           	movel %a2,%sp@-                             
   5aee4:	4eb9 0004 80d4 	jsr 480d4 <_Thread_queue_Extract_with_proxy>
      return true;                                                    
   5aeea:	588f           	addql #4,%sp                                
   5aeec:	7001           	moveq #1,%d0                                
   5aeee:	606c           	bras 5af5c <_POSIX_signals_Unblock_thread+0xf0>
  }                                                                   
                                                                      
  /*                                                                  
   *  Thread is not waiting due to a sigwait.                         
   */                                                                 
  if ( ~api->signals_blocked & mask ) {                               
   5aef0:	2428 00d0      	movel %a0@(208),%d2                         
   5aef4:	4682           	notl %d2                                    
   5aef6:	c282           	andl %d2,%d1                                
   5aef8:	6760           	beqs 5af5a <_POSIX_signals_Unblock_thread+0xee>
     *      it is not blocked, THEN                                   
     *        we need to dispatch at the end of this ISR.             
     *    + Any other combination, do nothing.                        
     */                                                               
                                                                      
    if ( _States_Is_interruptible_by_signal( the_thread->current_state ) ) {
   5aefa:	0800 001c      	btst #28,%d0                                
   5aefe:	673e           	beqs 5af3e <_POSIX_signals_Unblock_thread+0xd2>
      the_thread->Wait.return_code = EINTR;                           
   5af00:	7204           	moveq #4,%d1                                
   5af02:	2541 0034      	movel %d1,%a2@(52)                          
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (        
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_ON_THREAD_QUEUE);              
   5af06:	2200           	movel %d0,%d1                               
   5af08:	0281 0003 bee0 	andil #245472,%d1                           
      /*                                                              
       *  In pthread_cond_wait, a thread will be blocking on a thread 
       *  queue, but is also interruptible by a POSIX signal.         
       */                                                             
       if ( _States_Is_waiting_on_thread_queue(the_thread->current_state) )
   5af0e:	670c           	beqs 5af1c <_POSIX_signals_Unblock_thread+0xb0>
         _Thread_queue_Extract_with_proxy( the_thread );              
   5af10:	2f0a           	movel %a2,%sp@-                             
   5af12:	4eb9 0004 80d4 	jsr 480d4 <_Thread_queue_Extract_with_proxy>
   5af18:	588f           	addql #4,%sp                                
   5af1a:	603e           	bras 5af5a <_POSIX_signals_Unblock_thread+0xee>
       else if ( _States_Is_delaying(the_thread->current_state) ) {   
   5af1c:	44c0           	movew %d0,%ccr                              
   5af1e:	6a3a           	bpls 5af5a <_POSIX_signals_Unblock_thread+0xee><== NEVER TAKEN
          (void) _Watchdog_Remove( &the_thread->Timer );              
   5af20:	486a 0048      	pea %a2@(72)                                
   5af24:	4eb9 0004 8880 	jsr 48880 <_Watchdog_Remove>                
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   5af2a:	2f3c 1003 fff8 	movel #268697592,%sp@-                      
   5af30:	2f0a           	movel %a2,%sp@-                             
   5af32:	4eb9 0004 7780 	jsr 47780 <_Thread_Clear_state>             
   5af38:	4fef 000c      	lea %sp@(12),%sp                            
   5af3c:	601c           	bras 5af5a <_POSIX_signals_Unblock_thread+0xee>
          _Thread_Unblock( the_thread );                              
       }                                                              
                                                                      
    } else if ( the_thread->current_state == STATES_READY ) {         
   5af3e:	4a80           	tstl %d0                                    
   5af40:	6618           	bnes 5af5a <_POSIX_signals_Unblock_thread+0xee><== NEVER TAKEN
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
   5af42:	4ab9 0005 ee2e 	tstl 5ee2e <_Per_CPU_Information+0x8>       
   5af48:	6710           	beqs 5af5a <_POSIX_signals_Unblock_thread+0xee>
   5af4a:	b5f9 0005 ee32 	cmpal 5ee32 <_Per_CPU_Information+0xc>,%a2  
   5af50:	6608           	bnes 5af5a <_POSIX_signals_Unblock_thread+0xee><== NEVER TAKEN
        _Thread_Dispatch_necessary = true;                            
   5af52:	7001           	moveq #1,%d0                                
   5af54:	13c0 0005 ee3e 	moveb %d0,5ee3e <_Per_CPU_Information+0x18> 
    }                                                                 
  }                                                                   
  return false;                                                       
   5af5a:	4200           	clrb %d0                                    
}                                                                     
   5af5c:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   5af62:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004637c <_Rate_monotonic_Get_status>: bool _Rate_monotonic_Get_status( Rate_monotonic_Control *the_period, Rate_monotonic_Period_time_t *wall_since_last_period, Thread_CPU_usage_t *cpu_since_last_period ) {
   4637c:	4e56 ffd4      	linkw %fp,#-44                              
   46380:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   46384:	266e 0008      	moveal %fp@(8),%a3                          
                                                                      
  /*                                                                  
   *  Determine elapsed wall time since period initiated.             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _TOD_Get_uptime( &uptime );                                       
   46388:	240e           	movel %fp,%d2                               
   4638a:	5182           	subql #8,%d2                                
    _Timestamp_Subtract(                                              
   4638c:	45f9 0004 9bbc 	lea 49bbc <_Timespec_Subtract>,%a2          
)                                                                     
{                                                                     
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    Timestamp_Control        uptime;                                  
  #endif                                                              
    Thread_Control          *owning_thread = the_period->owner;       
   46392:	286b 0040      	moveal %a3@(64),%a4                         
                                                                      
  /*                                                                  
   *  Determine elapsed wall time since period initiated.             
   */                                                                 
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    _TOD_Get_uptime( &uptime );                                       
   46396:	2f02           	movel %d2,%sp@-                             
   46398:	4eb9 0004 7b18 	jsr 47b18 <_TOD_Get_uptime>                 
    _Timestamp_Subtract(                                              
   4639e:	2f2e 000c      	movel %fp@(12),%sp@-                        
   463a2:	2f02           	movel %d2,%sp@-                             
   463a4:	486b 004c      	pea %a3@(76)                                
   463a8:	4e92           	jsr %a2@                                    
   *  Determine cpu usage since period initiated.                     
   */                                                                 
  used = owning_thread->cpu_time_used;                                
                                                                      
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    if (owning_thread == _Thread_Executing) {                         
   463aa:	4fef 0010      	lea %sp@(16),%sp                            
  #endif                                                              
                                                                      
  /*                                                                  
   *  Determine cpu usage since period initiated.                     
   */                                                                 
  used = owning_thread->cpu_time_used;                                
   463ae:	202c 0082      	movel %a4@(130),%d0                         
   463b2:	222c 0086      	movel %a4@(134),%d1                         
   463b6:	2d40 fff0      	movel %d0,%fp@(-16)                         
   463ba:	2d41 fff4      	movel %d1,%fp@(-12)                         
                                                                      
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    if (owning_thread == _Thread_Executing) {                         
   463be:	b9f9 0006 0a4c 	cmpal 60a4c <_Per_CPU_Information+0xc>,%a4  
   463c4:	6644           	bnes 4640a <_Rate_monotonic_Get_status+0x8e><== NEVER TAKEN
                                                                      
      Thread_CPU_usage_t ran;                                         
                                                                      
      /* How much time time since last context switch */              
      _Timestamp_Subtract(                                            
   463c6:	260e           	movel %fp,%d3                               
   463c8:	0683 ffff ffe8 	addil #-24,%d3                              
                                                                      
      /*                                                              
       *  The cpu usage info was reset while executing.  Can't        
       *  determine a status.                                         
       */                                                             
      if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
   463ce:	47eb 0044      	lea %a3@(68),%a3                            
    if (owning_thread == _Thread_Executing) {                         
                                                                      
      Thread_CPU_usage_t ran;                                         
                                                                      
      /* How much time time since last context switch */              
      _Timestamp_Subtract(                                            
   463d2:	2f03           	movel %d3,%sp@-                             
   463d4:	2f02           	movel %d2,%sp@-                             
   463d6:	4879 0006 068e 	pea 6068e <_Thread_Time_of_last_context_switch>
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
      );                                                              
                                                                      
      /* cpu usage += ran */                                          
      _Timestamp_Add_to( &used, &ran );                               
   463dc:	5182           	subql #8,%d2                                
    if (owning_thread == _Thread_Executing) {                         
                                                                      
      Thread_CPU_usage_t ran;                                         
                                                                      
      /* How much time time since last context switch */              
      _Timestamp_Subtract(                                            
   463de:	4e92           	jsr %a2@                                    
        &_Thread_Time_of_last_context_switch, &uptime, &ran           
      );                                                              
                                                                      
      /* cpu usage += ran */                                          
      _Timestamp_Add_to( &used, &ran );                               
   463e0:	2f03           	movel %d3,%sp@-                             
   463e2:	2f02           	movel %d2,%sp@-                             
   463e4:	4eb9 0004 9a94 	jsr 49a94 <_Timespec_Add_to>                
                                                                      
      /*                                                              
       *  The cpu usage info was reset while executing.  Can't        
       *  determine a status.                                         
       */                                                             
      if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
   463ea:	2f0b           	movel %a3,%sp@-                             
   463ec:	2f02           	movel %d2,%sp@-                             
   463ee:	4eb9 0004 9b8c 	jsr 49b8c <_Timespec_Less_than>             
   463f4:	4fef 001c      	lea %sp@(28),%sp                            
   463f8:	4a00           	tstb %d0                                    
   463fa:	6612           	bnes 4640e <_Rate_monotonic_Get_status+0x92>
        return false;                                                 
                                                                      
       /* used = current cpu usage - cpu usage at start of period */  
      _Timestamp_Subtract(                                            
   463fc:	2f2e 0010      	movel %fp@(16),%sp@-                        
   46400:	2f02           	movel %d2,%sp@-                             
   46402:	2f0b           	movel %a3,%sp@-                             
   46404:	4e92           	jsr %a2@                                    
   46406:	4fef 000c      	lea %sp@(12),%sp                            
      if (used < the_period->cpu_usage_period_initiated)              
        return false;                                                 
                                                                      
      *cpu_since_last_period = used - the_period->cpu_usage_period_initiated;
  #endif                                                              
  return true;                                                        
   4640a:	7001           	moveq #1,%d0                                
   4640c:	6002           	bras 46410 <_Rate_monotonic_Get_status+0x94>
      /*                                                              
       *  The cpu usage info was reset while executing.  Can't        
       *  determine a status.                                         
       */                                                             
      if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
        return false;                                                 
   4640e:	4200           	clrb %d0                                    
        return false;                                                 
                                                                      
      *cpu_since_last_period = used - the_period->cpu_usage_period_initiated;
  #endif                                                              
  return true;                                                        
}                                                                     
   46410:	4cee 1c0c ffd4 	moveml %fp@(-44),%d2-%d3/%a2-%a4            
   46416:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000582d8 <_Region_Process_queue>: */ void _Region_Process_queue( Region_Control *the_region ) {
   582d8:	4e56 ffe4      	linkw %fp,#-28                              
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   582dc:	2039 0007 751c 	movel 7751c <_Thread_Dispatch_disable_level>,%d0
   582e2:	5280           	addql #1,%d0                                
   582e4:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   582e8:	266e 0008      	moveal %fp@(8),%a3                          
   582ec:	23c0 0007 751c 	movel %d0,7751c <_Thread_Dispatch_disable_level>
   *  NOTE: Be sure to disable dispatching before unlocking the mutex 
   *        since we do not want to open a window where a context     
   *        switch could occur.                                       
   */                                                                 
  _Thread_Disable_dispatch();                                         
  _RTEMS_Unlock_allocator();                                          
   582f2:	2f39 0007 75bc 	movel 775bc <_RTEMS_Allocator_Mutex>,%sp@-  
  /*                                                                  
   *  NOTE: The following loop is O(n) where n is the number of       
   *        threads whose memory request is satisfied.                
   */                                                                 
  for ( ; ; ) {                                                       
    the_thread = _Thread_queue_First( &the_region->Wait_queue );      
   582f8:	240b           	movel %a3,%d2                               
RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment (                 
  Region_Control *the_region,                                         
  uintptr_t       size                                                
)                                                                     
{                                                                     
  return _Heap_Allocate( &the_region->Memory, size );                 
   582fa:	260b           	movel %a3,%d3                               
   582fc:	0682 0000 0010 	addil #16,%d2                               
   58302:	0683 0000 0068 	addil #104,%d3                              
   58308:	4bf9 0005 375c 	lea 5375c <_Heap_Allocate_aligned_with_boundary>,%a5
    if ( the_segment == NULL )                                        
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
   5830e:	49f9 0005 8968 	lea 58968 <_Thread_queue_Extract>,%a4       
   *  NOTE: Be sure to disable dispatching before unlocking the mutex 
   *        since we do not want to open a window where a context     
   *        switch could occur.                                       
   */                                                                 
  _Thread_Disable_dispatch();                                         
  _RTEMS_Unlock_allocator();                                          
   58314:	4eb9 0005 2cf0 	jsr 52cf0 <_API_Mutex_Unlock>               
   5831a:	588f           	addql #4,%sp                                
  /*                                                                  
   *  NOTE: The following loop is O(n) where n is the number of       
   *        threads whose memory request is satisfied.                
   */                                                                 
  for ( ; ; ) {                                                       
    the_thread = _Thread_queue_First( &the_region->Wait_queue );      
   5831c:	283c 0005 8a6c 	movel #363116,%d4                           
   58322:	2f02           	movel %d2,%sp@-                             
   58324:	2044           	moveal %d4,%a0                              
   58326:	4e90           	jsr %a0@                                    
                                                                      
    if ( the_thread == NULL )                                         
   58328:	588f           	addql #4,%sp                                
  /*                                                                  
   *  NOTE: The following loop is O(n) where n is the number of       
   *        threads whose memory request is satisfied.                
   */                                                                 
  for ( ; ; ) {                                                       
    the_thread = _Thread_queue_First( &the_region->Wait_queue );      
   5832a:	2440           	moveal %d0,%a2                              
                                                                      
    if ( the_thread == NULL )                                         
   5832c:	4a80           	tstl %d0                                    
   5832e:	672c           	beqs 5835c <_Region_Process_queue+0x84>     
   58330:	42a7           	clrl %sp@-                                  
   58332:	42a7           	clrl %sp@-                                  
   58334:	2f2a 0024      	movel %a2@(36),%sp@-                        
   58338:	2f03           	movel %d3,%sp@-                             
   5833a:	4e95           	jsr %a5@                                    
    the_segment = (void **) _Region_Allocate_segment(                 
      the_region,                                                     
      the_thread->Wait.count                                          
    );                                                                
                                                                      
    if ( the_segment == NULL )                                        
   5833c:	4fef 0010      	lea %sp@(16),%sp                            
   58340:	4a80           	tstl %d0                                    
   58342:	6718           	beqs 5835c <_Region_Process_queue+0x84>     
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
   58344:	206a 0028      	moveal %a2@(40),%a0                         
   58348:	2080           	movel %d0,%a0@                              
    the_region->number_of_used_blocks += 1;                           
   5834a:	52ab 0064      	addql #1,%a3@(100)                          
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
   5834e:	2f0a           	movel %a2,%sp@-                             
   58350:	2f02           	movel %d2,%sp@-                             
   58352:	4e94           	jsr %a4@                                    
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
  }                                                                   
   58354:	508f           	addql #8,%sp                                
      break;                                                          
                                                                      
    *(void **)the_thread->Wait.return_argument = the_segment;         
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
   58356:	42aa 0034      	clrl %a2@(52)                               
  }                                                                   
   5835a:	60c6           	bras 58322 <_Region_Process_queue+0x4a>     
  _Thread_Enable_dispatch();                                          
}                                                                     
   5835c:	4cee 3c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a5            
   58362:	4e5e           	unlk %fp                                    
    *(void **)the_thread->Wait.return_argument = the_segment;         
    the_region->number_of_used_blocks += 1;                           
    _Thread_queue_Extract( &the_region->Wait_queue, the_thread );     
    the_thread->Wait.return_code = RTEMS_SUCCESSFUL;                  
  }                                                                   
  _Thread_Enable_dispatch();                                          
   58364:	4ef9 0005 526e 	jmp 5526e <_Thread_Enable_dispatch>         
	...                                                                  
                                                                      

00047244 <_Scheduler_Handler_initialization>: #include <rtems/system.h> #include <rtems/config.h> #include <rtems/score/scheduler.h> void _Scheduler_Handler_initialization(void) {
   47244:	4e56 0000      	linkw %fp,#0                                
  (*_Scheduler.Operations.initialize)();                              
}                                                                     
   47248:	4e5e           	unlk %fp                                    
#include <rtems/config.h>                                             
#include <rtems/score/scheduler.h>                                    
                                                                      
void _Scheduler_Handler_initialization(void)                          
{                                                                     
  (*_Scheduler.Operations.initialize)();                              
   4724a:	2279 0005 d004 	moveal 5d004 <_Scheduler+0x4>,%a1           
   47250:	4ed1           	jmp %a1@                                    
	...                                                                  
                                                                      

00047270 <_Scheduler_priority_Block>: #include <rtems/score/thread.h> void _Scheduler_priority_Block( Thread_Control *the_thread ) {
   47270:	4e56 0000      	linkw %fp,#0                                
   47274:	226e 0008      	moveal %fp@(8),%a1                          
   47278:	2f0a           	movel %a2,%sp@-                             
)                                                                     
{                                                                     
  Scheduler_priority_Per_thread *sched_info;                          
  Chain_Control                 *ready;                               
                                                                      
  sched_info = (Scheduler_priority_Per_thread *) the_thread->scheduler_info;
   4727a:	2469 008a      	moveal %a1@(138),%a2                        
  ready      = sched_info->ready_chain;                               
   4727e:	2052           	moveal %a2@,%a0                             
                                                                      
  if ( _Chain_Has_only_one_node( ready ) ) {                          
   47280:	2028 0008      	movel %a0@(8),%d0                           
   47284:	b090           	cmpl %a0@,%d0                               
   47286:	6632           	bnes 472ba <_Scheduler_priority_Block+0x4a> 
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   47288:	2008           	movel %a0,%d0                               
   4728a:	5880           	addql #4,%d0                                
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   4728c:	42a8 0004      	clrl %a0@(4)                                
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
   47290:	2080           	movel %d0,%a0@                              
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_bit_map_Remove (                  
  Priority_bit_map_Information *the_priority_map                      
)                                                                     
{                                                                     
  *the_priority_map->minor &= the_priority_map->block_minor;          
   47292:	302a 000e      	movew %a2@(14),%d0                          
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
  tail->previous = head;                                              
   47296:	2148 0008      	movel %a0,%a0@(8)                           
   4729a:	206a 0004      	moveal %a2@(4),%a0                          
   4729e:	3210           	movew %a0@,%d1                              
   472a0:	c081           	andl %d1,%d0                                
   472a2:	3080           	movew %d0,%a0@                              
  if ( *the_priority_map->minor == 0 )                                
   472a4:	6620           	bnes 472c6 <_Scheduler_priority_Block+0x56> 
    _Priority_Major_bit_map &= the_priority_map->block_major;         
   472a6:	3039 0005 ee40 	movew 5ee40 <_Priority_Major_bit_map>,%d0   
   472ac:	322a 000c      	movew %a2@(12),%d1                          
   472b0:	c081           	andl %d1,%d0                                
   472b2:	33c0 0005 ee40 	movew %d0,5ee40 <_Priority_Major_bit_map>   
   472b8:	600c           	bras 472c6 <_Scheduler_priority_Block+0x56> 
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   472ba:	2451           	moveal %a1@,%a2                             
  previous       = the_node->previous;                                
   472bc:	2069 0004      	moveal %a1@(4),%a0                          
  next->previous = previous;                                          
   472c0:	2548 0004      	movel %a0,%a2@(4)                           
  previous->next = next;                                              
   472c4:	208a           	movel %a2,%a0@                              
  _Scheduler_priority_Ready_queue_extract( the_thread );              
                                                                      
  /* TODO: flash critical section? */                                 
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
   472c6:	b3f9 0005 ee36 	cmpal 5ee36 <_Per_CPU_Information+0x10>,%a1 
   472cc:	6646           	bnes 47314 <_Scheduler_priority_Block+0xa4> 
RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
{                                                                     
  Priority_bit_map_Control minor;                                     
  Priority_bit_map_Control major;                                     
                                                                      
  _Bitfield_Find_first_bit( _Priority_Major_bit_map, major );         
   472ce:	3039 0005 ee40 	movew 5ee40 <_Priority_Major_bit_map>,%d0   
   472d4:	4840           	swap %d0                                    
   472d6:	04c0           	ff1 %d0                                     
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
   472d8:	41f9 0005 ee44 	lea 5ee44 <_Priority_Bit_map>,%a0           
   472de:	0280 0000 ffff 	andil #65535,%d0                            
   472e4:	3230 0a00      	movew %a0@(00000000,%d0:l:2),%d1            
   472e8:	4841           	swap %d1                                    
   472ea:	04c1           	ff1 %d1                                     
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
    _Thread_Dispatch_necessary = true;                                
                                                                      
}                                                                     
   472ec:	2079 0005 d000 	moveal 5d000 <_Scheduler>,%a0               
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
   472f2:	0281 0000 ffff 	andil #65535,%d1                            
   472f8:	e988           	lsll #4,%d0                                 
   472fa:	d081           	addl %d1,%d0                                
  Chain_Control       *the_ready_queue                                
)                                                                     
{                                                                     
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
   472fc:	2200           	movel %d0,%d1                               
   472fe:	e988           	lsll #4,%d0                                 
   47300:	e589           	lsll #2,%d1                                 
   47302:	9081           	subl %d1,%d0                                
   47304:	d1c0           	addal %d0,%a0                               
   47306:	2018           	movel %a0@+,%d0                             
   47308:	b1c0           	cmpal %d0,%a0                               
   4730a:	6602           	bnes 4730e <_Scheduler_priority_Block+0x9e> <== ALWAYS TAKEN
    return (Thread_Control *) _Chain_First( &the_ready_queue[ index ] );
                                                                      
  return NULL;                                                        
   4730c:	4280           	clrl %d0                                    <== NOT EXECUTED
 *                                                                    
 *  @param[in] the_thread  - pointer to thread                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)     
{                                                                     
  _Thread_Heir = _Scheduler_priority_Ready_queue_first(               
   4730e:	23c0 0005 ee36 	movel %d0,5ee36 <_Per_CPU_Information+0x10> 
  /* TODO: flash critical section? */                                 
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
     _Scheduler_priority_Schedule_body();                             
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
   47314:	b3f9 0005 ee32 	cmpal 5ee32 <_Per_CPU_Information+0xc>,%a1  
   4731a:	6608           	bnes 47324 <_Scheduler_priority_Block+0xb4> 
    _Thread_Dispatch_necessary = true;                                
   4731c:	7001           	moveq #1,%d0                                
   4731e:	13c0 0005 ee3e 	moveb %d0,5ee3e <_Per_CPU_Information+0x18> 
                                                                      
}                                                                     
   47324:	245f           	moveal %sp@+,%a2                            
   47326:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004741c <_Scheduler_priority_Free>: #include <rtems/score/wkspace.h> void _Scheduler_priority_Free ( Thread_Control *the_thread ) {
   4741c:	4e56 0000      	linkw %fp,#0                                
  _Workspace_Free( the_thread->scheduler_info );                      
   47420:	206e 0008      	moveal %fp@(8),%a0                          
   47424:	2d68 008a 0008 	movel %a0@(138),%fp@(8)                     
}                                                                     
   4742a:	4e5e           	unlk %fp                                    
                                                                      
void _Scheduler_priority_Free (                                       
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Workspace_Free( the_thread->scheduler_info );                      
   4742c:	4ef9 0004 89f4 	jmp 489f4 <_Workspace_Free>                 
	...                                                                  
                                                                      

0004749c <_Scheduler_priority_Schedule>: #include <rtems/system.h> #include <rtems/score/scheduler.h> #include <rtems/score/schedulerpriority.h> void _Scheduler_priority_Schedule(void) {
   4749c:	4e56 0000      	linkw %fp,#0                                
RTEMS_INLINE_ROUTINE Priority_Control _Priority_bit_map_Get_highest( void )
{                                                                     
  Priority_bit_map_Control minor;                                     
  Priority_bit_map_Control major;                                     
                                                                      
  _Bitfield_Find_first_bit( _Priority_Major_bit_map, major );         
   474a0:	3039 0005 ee40 	movew 5ee40 <_Priority_Major_bit_map>,%d0   
   474a6:	4840           	swap %d0                                    
   474a8:	04c0           	ff1 %d0                                     
  _Bitfield_Find_first_bit( _Priority_Bit_map[major], minor );        
   474aa:	41f9 0005 ee44 	lea 5ee44 <_Priority_Bit_map>,%a0           
   474b0:	0280 0000 ffff 	andil #65535,%d0                            
   474b6:	3230 0a00      	movew %a0@(00000000,%d0:l:2),%d1            
   474ba:	4841           	swap %d1                                    
   474bc:	04c1           	ff1 %d1                                     
  _Scheduler_priority_Schedule_body();                                
}                                                                     
   474be:	2079 0005 d000 	moveal 5d000 <_Scheduler>,%a0               
                                                                      
  return (_Priority_Bits_index( major ) << 4) +                       
   474c4:	0281 0000 ffff 	andil #65535,%d1                            
   474ca:	e988           	lsll #4,%d0                                 
   474cc:	d081           	addl %d1,%d0                                
  Chain_Control       *the_ready_queue                                
)                                                                     
{                                                                     
  Priority_Control index = _Priority_bit_map_Get_highest();           
                                                                      
  if ( !_Chain_Is_empty( &the_ready_queue[ index ] ) )                
   474ce:	2200           	movel %d0,%d1                               
   474d0:	e988           	lsll #4,%d0                                 
   474d2:	e589           	lsll #2,%d1                                 
   474d4:	9081           	subl %d1,%d0                                
   474d6:	d1c0           	addal %d0,%a0                               
   474d8:	2018           	movel %a0@+,%d0                             
   474da:	b1c0           	cmpal %d0,%a0                               
   474dc:	6602           	bnes 474e0 <_Scheduler_priority_Schedule+0x44><== ALWAYS TAKEN
    return (Thread_Control *) _Chain_First( &the_ready_queue[ index ] );
                                                                      
  return NULL;                                                        
   474de:	4280           	clrl %d0                                    <== NOT EXECUTED
 *                                                                    
 *  @param[in] the_thread  - pointer to thread                        
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Schedule_body(void)     
{                                                                     
  _Thread_Heir = _Scheduler_priority_Ready_queue_first(               
   474e0:	23c0 0005 ee36 	movel %d0,5ee36 <_Per_CPU_Information+0x10> 
   474e6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004627c <_TOD_Validate>: */ bool _TOD_Validate( const rtems_time_of_day *the_tod ) {
   4627c:	4e56 0000      	linkw %fp,#0                                
   46280:	206e 0008      	moveal %fp@(8),%a0                          
   46284:	2f03           	movel %d3,%sp@-                             
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
   46286:	2039 0005 f180 	movel 5f180 <Configuration+0xc>,%d0         
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
  const rtems_time_of_day *the_tod                                    
)                                                                     
{                                                                     
   4628c:	2f02           	movel %d2,%sp@-                             
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
   4628e:	4a88           	tstl %a0                                    
   46290:	6762           	beqs 462f4 <_TOD_Validate+0x78>             <== NEVER TAKEN
)                                                                     
{                                                                     
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
   46292:	243c 000f 4240 	movel #1000000,%d2                          
   46298:	4c40 2002      	remul %d0,%d2,%d2                           
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
   4629c:	b4a8 0018      	cmpl %a0@(24),%d2                           
   462a0:	6352           	blss 462f4 <_TOD_Validate+0x78>             
      (the_tod->ticks  >= ticks_per_second)       ||                  
   462a2:	763b           	moveq #59,%d3                               
   462a4:	b6a8 0014      	cmpl %a0@(20),%d3                           
   462a8:	654a           	bcss 462f4 <_TOD_Validate+0x78>             
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
   462aa:	b6a8 0010      	cmpl %a0@(16),%d3                           
   462ae:	6544           	bcss 462f4 <_TOD_Validate+0x78>             
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
   462b0:	7017           	moveq #23,%d0                               
   462b2:	b0a8 000c      	cmpl %a0@(12),%d0                           
   462b6:	653c           	bcss 462f4 <_TOD_Validate+0x78>             
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
   462b8:	2028 0004      	movel %a0@(4),%d0                           
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
      (the_tod->ticks  >= ticks_per_second)       ||                  
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
   462bc:	6736           	beqs 462f4 <_TOD_Validate+0x78>             <== NEVER TAKEN
      (the_tod->month  == 0)                      ||                  
   462be:	720c           	moveq #12,%d1                               
   462c0:	b280           	cmpl %d0,%d1                                
   462c2:	6530           	bcss 462f4 <_TOD_Validate+0x78>             
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
   462c4:	2410           	movel %a0@,%d2                              
      (the_tod->ticks  >= ticks_per_second)       ||                  
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
   462c6:	0c82 0000 07c3 	cmpil #1987,%d2                             
   462cc:	6326           	blss 462f4 <_TOD_Validate+0x78>             
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
   462ce:	2228 0008      	movel %a0@(8),%d1                           
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
   462d2:	6720           	beqs 462f4 <_TOD_Validate+0x78>             <== NEVER TAKEN
      (the_tod->day    == 0) )                                        
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
   462d4:	163c 0003      	moveb #3,%d3                                
   462d8:	41f9 0005 e136 	lea 5e136 <_TOD_Days_per_month>,%a0         
   462de:	c483           	andl %d3,%d2                                
   462e0:	6606           	bnes 462e8 <_TOD_Validate+0x6c>             
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
   462e2:	2030 0c34      	movel %a0@(00000034,%d0:l:4),%d0            
   462e6:	6004           	bras 462ec <_TOD_Validate+0x70>             
  else                                                                
    days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ];       
   462e8:	2030 0c00      	movel %a0@(00000000,%d0:l:4),%d0            
 *    false - if the the_tod is invalid                               
 *                                                                    
 *  NOTE: This routine only works for leap-years through 2099.        
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
   462ec:	b081           	cmpl %d1,%d0                                
   462ee:	54c0           	scc %d0                                     
   462f0:	4480           	negl %d0                                    
   462f2:	6002           	bras 462f6 <_TOD_Validate+0x7a>             
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
     return false;                                                    
   462f4:	4200           	clrb %d0                                    
                                                                      
  if ( the_tod->day > days_in_month )                                 
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
   462f6:	241f           	movel %sp@+,%d2                             
   462f8:	261f           	movel %sp@+,%d3                             
   462fa:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000476a4 <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) {
   476a4:	4e56 fff0      	linkw %fp,#-16                              
   476a8:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   476ac:	246e 0008      	moveal %fp@(8),%a2                          
  States_Control state, original_state;                               
                                                                      
  /*                                                                  
   * Save original state                                              
   */                                                                 
  original_state = the_thread->current_state;                         
   476b0:	282a 0010      	movel %a2@(16),%d4                          
void _Thread_Change_priority(                                         
  Thread_Control   *the_thread,                                       
  Priority_Control  new_priority,                                     
  bool              prepend_it                                        
)                                                                     
{                                                                     
   476b4:	242e 000c      	movel %fp@(12),%d2                          
  /*                                                                  
   * Set a transient state for the thread so it is pulled off the Ready chains.
   * This will prevent it from being scheduled no matter what happens in an
   * ISR.                                                             
   */                                                                 
  _Thread_Set_transient( the_thread );                                
   476b8:	2f0a           	movel %a2,%sp@-                             
void _Thread_Change_priority(                                         
  Thread_Control   *the_thread,                                       
  Priority_Control  new_priority,                                     
  bool              prepend_it                                        
)                                                                     
{                                                                     
   476ba:	162e 0013      	moveb %fp@(19),%d3                          
  /*                                                                  
   * Set a transient state for the thread so it is pulled off the Ready chains.
   * This will prevent it from being scheduled no matter what happens in an
   * ISR.                                                             
   */                                                                 
  _Thread_Set_transient( the_thread );                                
   476be:	4eb9 0004 8298 	jsr 48298 <_Thread_Set_transient>           
                                                                      
  /*                                                                  
   *  Do not bother recomputing all the priority related information if
   *  we are not REALLY changing priority.                            
   */                                                                 
 if ( the_thread->current_priority != new_priority )                  
   476c4:	588f           	addql #4,%sp                                
   476c6:	b4aa 0014      	cmpl %a2@(20),%d2                           
   476ca:	670c           	beqs 476d8 <_Thread_Change_priority+0x34>   
    _Thread_Set_priority( the_thread, new_priority );                 
   476cc:	2f02           	movel %d2,%sp@-                             
   476ce:	2f0a           	movel %a2,%sp@-                             
   476d0:	4eb9 0004 823c 	jsr 4823c <_Thread_Set_priority>            
   476d6:	508f           	addql #8,%sp                                
                                                                      
  _ISR_Disable( level );                                              
   476d8:	203c 0000 0700 	movel #1792,%d0                             
   476de:	40c2           	movew %sr,%d2                               
   476e0:	8082           	orl %d2,%d0                                 
   476e2:	46c0           	movew %d0,%sr                               
   476e4:	7204           	moveq #4,%d1                                
                                                                      
  /*                                                                  
   *  If the thread has more than STATES_TRANSIENT set, then it is blocked,
   *  If it is blocked on a thread queue, then we need to requeue it. 
   */                                                                 
  state = the_thread->current_state;                                  
   476e6:	202a 0010      	movel %a2@(16),%d0                          
   476ea:	c284           	andl %d4,%d1                                
  if ( state != STATES_TRANSIENT ) {                                  
   476ec:	7804           	moveq #4,%d4                                
   476ee:	b880           	cmpl %d0,%d4                                
   476f0:	672e           	beqs 47720 <_Thread_Change_priority+0x7c>   
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
   476f2:	4a81           	tstl %d1                                    
   476f4:	6608           	bnes 476fe <_Thread_Change_priority+0x5a>   <== NEVER TAKEN
RTEMS_INLINE_ROUTINE States_Control _States_Clear (                   
  States_Control states_to_clear,                                     
  States_Control current_state                                        
)                                                                     
{                                                                     
   return (current_state & ~states_to_clear);                         
   476f6:	72fb           	moveq #-5,%d1                               
   476f8:	c280           	andl %d0,%d1                                
   476fa:	2541 0010      	movel %d1,%a2@(16)                          
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
    _ISR_Enable( level );                                             
   476fe:	46c2           	movew %d2,%sr                               
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (        
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_ON_THREAD_QUEUE);              
   47700:	0280 0003 bee0 	andil #245472,%d0                           
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
   47706:	676c           	beqs 47774 <_Thread_Change_priority+0xd0>   
      _Thread_queue_Requeue( the_thread->Wait.queue, the_thread );    
   47708:	2d4a 000c      	movel %a2,%fp@(12)                          
   4770c:	2d6a 0044 0008 	movel %a2@(68),%fp@(8)                      
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  _ISR_Enable( level );                                               
}                                                                     
   47712:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   47718:	4e5e           	unlk %fp                                    
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
    _ISR_Enable( level );                                             
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
      _Thread_queue_Requeue( the_thread->Wait.queue, the_thread );    
   4771a:	4ef9 0004 81a0 	jmp 481a0 <_Thread_queue_Requeue>           
    }                                                                 
    return;                                                           
  }                                                                   
                                                                      
  /* Only clear the transient state if it wasn't set already */       
  if ( ! _States_Is_transient( original_state ) ) {                   
   47720:	4a81           	tstl %d1                                    
   47722:	661e           	bnes 47742 <_Thread_Change_priority+0x9e>   <== NEVER TAKEN
     *  Interrupts are STILL disabled.                                
     *  We now know the thread will be in the READY state when we remove
     *  the TRANSIENT state.  So we have to place it on the appropriate
     *  Ready Queue with interrupts off.                              
     */                                                               
    the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
   47724:	42aa 0010      	clrl %a2@(16)                               
                                                                      
    if ( prepend_it )                                                 
   47728:	4a03           	tstb %d3                                    
   4772a:	670a           	beqs 47736 <_Thread_Change_priority+0x92>   
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(                   
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue_first( the_thread );                  
   4772c:	2f0a           	movel %a2,%sp@-                             
   4772e:	2079 0005 d028 	moveal 5d028 <_Scheduler+0x28>,%a0          
   47734:	6008           	bras 4773e <_Thread_Change_priority+0x9a>   
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(                         
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue( the_thread );                        
   47736:	2079 0005 d024 	moveal 5d024 <_Scheduler+0x24>,%a0          
   4773c:	2f0a           	movel %a2,%sp@-                             
   4773e:	4e90           	jsr %a0@                                    
   47740:	588f           	addql #4,%sp                                
      _Scheduler_Enqueue_first( the_thread );                         
    else                                                              
      _Scheduler_Enqueue( the_thread );                               
  }                                                                   
                                                                      
  _ISR_Flash( level );                                                
   47742:	203c 0000 0700 	movel #1792,%d0                             
   47748:	46c2           	movew %d2,%sr                               
   4774a:	8082           	orl %d2,%d0                                 
   4774c:	46c0           	movew %d0,%sr                               
 *  This kernel routine implements the scheduling decision logic for  
 *  the scheduler. It does NOT dispatch.                              
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Schedule( void )                 
{                                                                     
  _Scheduler.Operations.schedule();                                   
   4774e:	2079 0005 d008 	moveal 5d008 <_Scheduler+0x8>,%a0           
   47754:	4e90           	jsr %a0@                                    
 *  is also the heir thread, and false otherwise.                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )  
{                                                                     
  return ( _Thread_Executing == _Thread_Heir );                       
   47756:	2079 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a0 
   *  We altered the set of thread priorities.  So let's figure out   
   *  who is the heir and if we need to switch to them.               
   */                                                                 
  _Scheduler_Schedule();                                              
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
   4775c:	b1f9 0005 ee36 	cmpal 5ee36 <_Per_CPU_Information+0x10>,%a0 
   47762:	670e           	beqs 47772 <_Thread_Change_priority+0xce>   
   47764:	4a28 0074      	tstb %a0@(116)                              
   47768:	6708           	beqs 47772 <_Thread_Change_priority+0xce>   
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
   4776a:	7801           	moveq #1,%d4                                
   4776c:	13c4 0005 ee3e 	moveb %d4,5ee3e <_Per_CPU_Information+0x18> 
  _ISR_Enable( level );                                               
   47772:	46c2           	movew %d2,%sr                               
}                                                                     
   47774:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   4777a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047948 <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored __attribute__((unused)) ) {
   47948:	4e56 fffc      	linkw %fp,#-4                               
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   4794c:	486e fffc      	pea %fp@(-4)                                
   47950:	2f2e 0008      	movel %fp@(8),%sp@-                         
   47954:	4eb9 0004 7ae8 	jsr 47ae8 <_Thread_Get>                     
  switch ( location ) {                                               
   4795a:	508f           	addql #8,%sp                                
   4795c:	4aae fffc      	tstl %fp@(-4)                               
   47960:	661e           	bnes 47980 <_Thread_Delay_ended+0x38>       <== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_Clear_state(                                            
   47962:	2f3c 1000 0018 	movel #268435480,%sp@-                      
   47968:	2f00           	movel %d0,%sp@-                             
   4796a:	4eb9 0004 7780 	jsr 47780 <_Thread_Clear_state>             
   47970:	508f           	addql #8,%sp                                
   47972:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
   47978:	5380           	subql #1,%d0                                
   4797a:	23c0 0005 e9c8 	movel %d0,5e9c8 <_Thread_Dispatch_disable_level>
          | STATES_INTERRUPTIBLE_BY_SIGNAL                            
      );                                                              
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
   47980:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047984 <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) {
   47984:	4e56 ffc8      	linkw %fp,#-56                              
   47988:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
   4798c:	283c 0000 0700 	movel #1792,%d4                             
   47992:	2204           	movel %d4,%d1                               
{                                                                     
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
   47994:	2479 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a2 
  _ISR_Disable( level );                                              
   4799a:	40c0           	movew %sr,%d0                               
   4799c:	8280           	orl %d0,%d1                                 
   4799e:	46c1           	movew %d1,%sr                               
    _ISR_Enable( level );                                             
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   479a0:	260e           	movel %fp,%d3                               
        _Timestamp_Subtract(                                          
   479a2:	240e           	movel %fp,%d2                               
    _ISR_Enable( level );                                             
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   479a4:	5183           	subql #8,%d3                                
        _Timestamp_Subtract(                                          
   479a6:	0682 ffff fff0 	addil #-16,%d2                              
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
   479ac:	2e3c 0004 846c 	movel #296044,%d7                           
    if ( _Thread_libc_reent ) {                                       
      executing->libc_reent = *_Thread_libc_reent;                    
      *_Thread_libc_reent = heir->libc_reent;                         
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
   479b2:	2c3c 0004 8720 	movel #296736,%d6                           
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
   479b8:	2a3c 0004 8a44 	movel #297540,%d5                           
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
      _Context_Restore_fp( &executing->fp_context );                  
   479be:	4bf9 0004 8bac 	lea 48bac <_CPU_Context_restore_fp>,%a5     
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
   479c4:	49f9 0004 8b8a 	lea 48b8a <_CPU_Context_save_fp>,%a4        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
   479ca:	6000 00d4      	braw 47aa0 <_Thread_Dispatch+0x11c>         
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
   479ce:	7201           	moveq #1,%d1                                
   479d0:	23c1 0005 e9c8 	movel %d1,5e9c8 <_Thread_Dispatch_disable_level>
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
   479d6:	2679 0005 ee36 	moveal 5ee36 <_Per_CPU_Information+0x10>,%a3
    _Thread_Dispatch_disable_level = 1;                               
    _Thread_Dispatch_necessary = false;                               
   479dc:	4201           	clrb %d1                                    
    _Thread_Executing = heir;                                         
   479de:	23cb 0005 ee32 	movel %a3,5ee32 <_Per_CPU_Information+0xc>  
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
    _Thread_Dispatch_necessary = false;                               
   479e4:	13c1 0005 ee3e 	moveb %d1,5ee3e <_Per_CPU_Information+0x18> 
    /*                                                                
     *  When the heir and executing are the same, then we are being   
     *  requested to do the post switch dispatching.  This is normally
     *  done to dispatch signals.                                     
     */                                                               
    if ( heir == executing )                                          
   479ea:	b5cb           	cmpal %a3,%a2                               
   479ec:	6700 00bc      	beqw 47aaa <_Thread_Dispatch+0x126>         
     */                                                               
#if __RTEMS_ADA__                                                     
    executing->rtems_ada_self = rtems_ada_self;                       
    rtems_ada_self = heir->rtems_ada_self;                            
#endif                                                                
    if ( heir->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE )
   479f0:	7201           	moveq #1,%d1                                
   479f2:	b2ab 007a      	cmpl %a3@(122),%d1                          
   479f6:	660a           	bnes 47a02 <_Thread_Dispatch+0x7e>          
      heir->cpu_time_budget = _Thread_Ticks_per_timeslice;            
   479f8:	41f9 0005 e980 	lea 5e980 <_Thread_Ticks_per_timeslice>,%a0 
   479fe:	2750 0076      	movel %a0@,%a3@(118)                        
                                                                      
    _ISR_Enable( level );                                             
   47a02:	46c0           	movew %d0,%sr                               
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
   47a04:	2f03           	movel %d3,%sp@-                             
   47a06:	4eb9 0004 ad48 	jsr 4ad48 <_TOD_Get_uptime>                 
        _Timestamp_Subtract(                                          
   47a0c:	2f02           	movel %d2,%sp@-                             
   47a0e:	2f03           	movel %d3,%sp@-                             
   47a10:	4879 0005 ea74 	pea 5ea74 <_Thread_Time_of_last_context_switch>
   47a16:	4eb9 0004 84a4 	jsr 484a4 <_Timespec_Subtract>              
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
   47a1c:	2047           	moveal %d7,%a0                              
   47a1e:	2f02           	movel %d2,%sp@-                             
   47a20:	486a 0082      	pea %a2@(130)                               
   47a24:	4e90           	jsr %a0@                                    
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
   47a26:	2079 0005 ea4e 	moveal 5ea4e <_Thread_libc_reent>,%a0       
   47a2c:	4fef 0018      	lea %sp@(24),%sp                            
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
        _Thread_Time_of_last_context_switch = uptime;                 
   47a30:	202e fff8      	movel %fp@(-8),%d0                          
   47a34:	222e fffc      	movel %fp@(-4),%d1                          
   47a38:	23c0 0005 ea74 	movel %d0,5ea74 <_Thread_Time_of_last_context_switch>
   47a3e:	23c1 0005 ea78 	movel %d1,5ea78 <_Thread_Time_of_last_context_switch+0x4>
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
   47a44:	4a88           	tstl %a0                                    
   47a46:	6708           	beqs 47a50 <_Thread_Dispatch+0xcc>          <== NEVER TAKEN
      executing->libc_reent = *_Thread_libc_reent;                    
   47a48:	2550 00fa      	movel %a0@,%a2@(250)                        
      *_Thread_libc_reent = heir->libc_reent;                         
   47a4c:	20ab 00fa      	movel %a3@(250),%a0@                        
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
   47a50:	2f0b           	movel %a3,%sp@-                             
   47a52:	2046           	moveal %d6,%a0                              
   47a54:	2f0a           	movel %a2,%sp@-                             
   47a56:	4e90           	jsr %a0@                                    
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
   47a58:	486b 00c2      	pea %a3@(194)                               
   47a5c:	2045           	moveal %d5,%a0                              
   47a5e:	486a 00c2      	pea %a2@(194)                               
   47a62:	4e90           	jsr %a0@                                    
                                                                      
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                            
    if ( (executing->fp_context != NULL) &&                           
   47a64:	4fef 0010      	lea %sp@(16),%sp                            
   47a68:	4aaa 00f6      	tstl %a2@(246)                              
   47a6c:	6724           	beqs 47a92 <_Thread_Dispatch+0x10e>         
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp (                   
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Allocated_fp );                      
   47a6e:	2079 0005 ea4a 	moveal 5ea4a <_Thread_Allocated_fp>,%a0     
   47a74:	b1ca           	cmpal %a2,%a0                               
   47a76:	671a           	beqs 47a92 <_Thread_Dispatch+0x10e>         
         !_Thread_Is_allocated_fp( executing ) ) {                    
      if ( _Thread_Allocated_fp != NULL )                             
   47a78:	4a88           	tstl %a0                                    
   47a7a:	6708           	beqs 47a84 <_Thread_Dispatch+0x100>         
        _Context_Save_fp( &_Thread_Allocated_fp->fp_context );        
   47a7c:	4868 00f6      	pea %a0@(246)                               
   47a80:	4e94           	jsr %a4@                                    
   47a82:	588f           	addql #4,%sp                                
      _Context_Restore_fp( &executing->fp_context );                  
   47a84:	486a 00f6      	pea %a2@(246)                               
   47a88:	4e95           	jsr %a5@                                    
      _Thread_Allocated_fp = executing;                               
   47a8a:	588f           	addql #4,%sp                                
   47a8c:	23ca 0005 ea4a 	movel %a2,5ea4a <_Thread_Allocated_fp>      
    if ( executing->fp_context != NULL )                              
      _Context_Restore_fp( &executing->fp_context );                  
#endif                                                                
#endif                                                                
                                                                      
    executing = _Thread_Executing;                                    
   47a92:	2479 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a2 
                                                                      
    _ISR_Disable( level );                                            
   47a98:	2204           	movel %d4,%d1                               
   47a9a:	40c0           	movew %sr,%d0                               
   47a9c:	8280           	orl %d0,%d1                                 
   47a9e:	46c1           	movew %d1,%sr                               
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
   47aa0:	1239 0005 ee3e 	moveb 5ee3e <_Per_CPU_Information+0x18>,%d1 
   47aa6:	6600 ff26      	bnew 479ce <_Thread_Dispatch+0x4a>          
                                                                      
    _ISR_Disable( level );                                            
  }                                                                   
                                                                      
post_switch:                                                          
  _Thread_Dispatch_disable_level = 0;                                 
   47aaa:	42b9 0005 e9c8 	clrl 5e9c8 <_Thread_Dispatch_disable_level> 
                                                                      
  _ISR_Enable( level );                                               
   47ab0:	46c0           	movew %d0,%sr                               
                                                                      
  _API_extensions_Run_postswitch();                                   
   47ab2:	4eb9 0004 60e0 	jsr 460e0 <_API_extensions_Run_postswitch>  
}                                                                     
   47ab8:	4cee 3cfc ffc8 	moveml %fp@(-56),%d2-%d7/%a2-%a5            
   47abe:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004c8e8 <_Thread_Handler>: * * Output parameters: NONE */ void _Thread_Handler( void ) {
   4c8e8:	4e56 0000      	linkw %fp,#0                                
   4c8ec:	2f0a           	movel %a2,%sp@-                             
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    static char doneConstructors;                                     
    char doneCons;                                                    
  #endif                                                              
                                                                      
  executing = _Thread_Executing;                                      
   4c8ee:	2479 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a2 
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Handler( void )                                          
{                                                                     
   4c8f4:	2f02           	movel %d2,%sp@-                             
  /*                                                                  
   * have to put level into a register for those cpu's that use       
   * inline asm here                                                  
   */                                                                 
                                                                      
  level = executing->Start.isr_level;                                 
   4c8f6:	222a 00a8      	movel %a2@(168),%d1                         
  _ISR_Set_level(level);                                              
   4c8fa:	40c0           	movew %sr,%d0                               
   4c8fc:	e189           	lsll #8,%d1                                 
   4c8fe:	0280 0000 f8ff 	andil #63743,%d0                            
   4c904:	8081           	orl %d1,%d0                                 
   4c906:	46c0           	movew %d0,%sr                               
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
    doneConstructors = 1;                                             
   4c908:	7001           	moveq #1,%d0                                
                                                                      
  level = executing->Start.isr_level;                                 
  _ISR_Set_level(level);                                              
                                                                      
  #if defined(EXECUTE_GLOBAL_CONSTRUCTORS)                            
    doneCons = doneConstructors;                                      
   4c90a:	1439 0005 e188 	moveb 5e188 <doneConstructors.3362>,%d2     
    doneConstructors = 1;                                             
   4c910:	13c0 0005 e188 	moveb %d0,5e188 <doneConstructors.3362>     
  #endif                                                              
                                                                      
  #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )      
    #if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )                        
      if ( (executing->fp_context != NULL) &&                         
   4c916:	4aaa 00f6      	tstl %a2@(246)                              
   4c91a:	6720           	beqs 4c93c <_Thread_Handler+0x54>           
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
RTEMS_INLINE_ROUTINE bool _Thread_Is_allocated_fp (                   
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Allocated_fp );                      
   4c91c:	2079 0005 ea4a 	moveal 5ea4a <_Thread_Allocated_fp>,%a0     
   4c922:	b1ca           	cmpal %a2,%a0                               
   4c924:	6716           	beqs 4c93c <_Thread_Handler+0x54>           
            !_Thread_Is_allocated_fp( executing ) ) {                 
        if ( _Thread_Allocated_fp != NULL )                           
   4c926:	4a88           	tstl %a0                                    
   4c928:	670c           	beqs 4c936 <_Thread_Handler+0x4e>           
          _Context_Save_fp( &_Thread_Allocated_fp->fp_context );      
   4c92a:	4868 00f6      	pea %a0@(246)                               
   4c92e:	4eb9 0004 8b8a 	jsr 48b8a <_CPU_Context_save_fp>            
   4c934:	588f           	addql #4,%sp                                
        _Thread_Allocated_fp = executing;                             
   4c936:	23ca 0005 ea4a 	movel %a2,5ea4a <_Thread_Allocated_fp>      
  /*                                                                  
   * Take care that 'begin' extensions get to complete before         
   * 'switch' extensions can run.  This means must keep dispatch      
   * disabled until all 'begin' extensions complete.                  
   */                                                                 
  _User_extensions_Thread_begin( executing );                         
   4c93c:	2f0a           	movel %a2,%sp@-                             
   4c93e:	4eb9 0004 859c 	jsr 4859c <_User_extensions_Thread_begin>   
                                                                      
  /*                                                                  
   *  At this point, the dispatch disable level BETTER be 1.          
   */                                                                 
  _Thread_Enable_dispatch();                                          
   4c944:	4eb9 0004 7ac2 	jsr 47ac2 <_Thread_Enable_dispatch>         
    /*                                                                
     *  _init could be a weak symbol and we SHOULD test it but it isn't
     *  in any configuration I know of and it generates a warning on every
     *  RTEMS target configuration.  --joel (12 May 2007)             
     */                                                               
    if (!doneCons) /* && (volatile void *)_init) */ {                 
   4c94a:	588f           	addql #4,%sp                                
   4c94c:	4a02           	tstb %d2                                    
   4c94e:	6606           	bnes 4c956 <_Thread_Handler+0x6e>           
      INIT_NAME ();                                                   
   4c950:	4eb9 0005 b294 	jsr 5b294 <_init>                           
    }                                                                 
  #endif                                                              
                                                                      
  if ( executing->Start.prototype == THREAD_START_NUMERIC ) {         
   4c956:	202a 0092      	movel %a2@(146),%d0                         
   4c95a:	6606           	bnes 4c962 <_Thread_Handler+0x7a>           
    executing->Wait.return_argument =                                 
      (*(Thread_Entry_numeric) executing->Start.entry_point)(         
   4c95c:	2f2a 009a      	movel %a2@(154),%sp@-                       
   4c960:	600a           	bras 4c96c <_Thread_Handler+0x84>           
        executing->Start.numeric_argument                             
      );                                                              
  }                                                                   
  #if defined(RTEMS_POSIX_API)                                        
    else if ( executing->Start.prototype == THREAD_START_POINTER ) {  
   4c962:	7201           	moveq #1,%d1                                
   4c964:	b280           	cmpl %d0,%d1                                
   4c966:	6610           	bnes 4c978 <_Thread_Handler+0x90>           <== NEVER TAKEN
      executing->Wait.return_argument =                               
        (*(Thread_Entry_pointer) executing->Start.entry_point)(       
   4c968:	2f2a 0096      	movel %a2@(150),%sp@-                       
   4c96c:	206a 008e      	moveal %a2@(142),%a0                        
   4c970:	4e90           	jsr %a0@                                    
        executing->Start.numeric_argument                             
      );                                                              
  }                                                                   
  #if defined(RTEMS_POSIX_API)                                        
    else if ( executing->Start.prototype == THREAD_START_POINTER ) {  
      executing->Wait.return_argument =                               
   4c972:	588f           	addql #4,%sp                                
   4c974:	2540 0028      	movel %d0,%a2@(40)                          
   *  was placed in return_argument.  This assumed that if it returned
   *  anything (which is not supporting in all APIs), then it would be
   *  able to fit in a (void *).                                      
   */                                                                 
                                                                      
  _User_extensions_Thread_exitted( executing );                       
   4c978:	2f0a           	movel %a2,%sp@-                             
   4c97a:	4eb9 0004 85d4 	jsr 485d4 <_User_extensions_Thread_exitted> 
                                                                      
  _Internal_error_Occurred(                                           
   4c980:	4878 0005      	pea 5 <COMPARE>                             
   4c984:	4878 0001      	pea 1 <ADD>                                 
   4c988:	42a7           	clrl %sp@-                                  
   4c98a:	4eb9 0004 6a08 	jsr 46a08 <_Internal_error_Occurred>        
                                                                      

000489f4 <_Thread_Restart>: */ RTEMS_INLINE_ROUTINE bool _States_Is_dormant ( States_Control the_states ) { return (the_states & STATES_DORMANT);
   489f4:	7001           	moveq #1,%d0                                
bool _Thread_Restart(                                                 
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
   489f6:	4e56 0000      	linkw %fp,#0                                
   489fa:	2f0a           	movel %a2,%sp@-                             
   489fc:	246e 0008      	moveal %fp@(8),%a2                          
   48a00:	c0aa 0010      	andl %a2@(16),%d0                           
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
   48a04:	6664           	bnes 48a6a <_Thread_Restart+0x76>           
                                                                      
    _Thread_Set_transient( the_thread );                              
   48a06:	2f0a           	movel %a2,%sp@-                             
   48a08:	4eb9 0004 8ad4 	jsr 48ad4 <_Thread_Set_transient>           
                                                                      
    _Thread_Reset( the_thread, pointer_argument, numeric_argument );  
   48a0e:	2f2e 0010      	movel %fp@(16),%sp@-                        
   48a12:	2f2e 000c      	movel %fp@(12),%sp@-                        
   48a16:	2f0a           	movel %a2,%sp@-                             
   48a18:	4eb9 0004 bc04 	jsr 4bc04 <_Thread_Reset>                   
                                                                      
    _Thread_Load_environment( the_thread );                           
   48a1e:	2f0a           	movel %a2,%sp@-                             
   48a20:	4eb9 0004 b93c 	jsr 4b93c <_Thread_Load_environment>        
                                                                      
    _Thread_Ready( the_thread );                                      
   48a26:	2f0a           	movel %a2,%sp@-                             
   48a28:	4eb9 0004 bbd4 	jsr 4bbd4 <_Thread_Ready>                   
                                                                      
    _User_extensions_Thread_restart( the_thread );                    
   48a2e:	2f0a           	movel %a2,%sp@-                             
   48a30:	4eb9 0004 8f1c 	jsr 48f1c <_User_extensions_Thread_restart> 
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
   48a36:	4fef 001c      	lea %sp@(28),%sp                            
   48a3a:	b5f9 0005 f95a 	cmpal 5f95a <_Per_CPU_Information+0xc>,%a2  
   48a40:	662c           	bnes 48a6e <_Thread_Restart+0x7a>           
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Restart_self( void )                
{                                                                     
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
  if ( _Thread_Executing->fp_context != NULL )                        
   48a42:	4aaa 00f6      	tstl %a2@(246)                              
   48a46:	670c           	beqs 48a54 <_Thread_Restart+0x60>           
    _Context_Restore_fp( &_Thread_Executing->fp_context );            
   48a48:	486a 00f6      	pea %a2@(246)                               
   48a4c:	4eb9 0004 9428 	jsr 49428 <_CPU_Context_restore_fp>         
   48a52:	588f           	addql #4,%sp                                
#endif                                                                
                                                                      
  _CPU_Context_Restart_self( &_Thread_Executing->Registers );         
   48a54:	2079 0005 f95a 	moveal 5f95a <_Per_CPU_Information+0xc>,%a0 
   48a5a:	41e8 00c2      	lea %a0@(194),%a0                           
   48a5e:	2f08           	movel %a0,%sp@-                             
   48a60:	4eb9 0004 92d6 	jsr 492d6 <_CPU_Context_Restart_self>       
   48a66:	588f           	addql #4,%sp                                <== NOT EXECUTED
   48a68:	6004           	bras 48a6e <_Thread_Restart+0x7a>           <== NOT EXECUTED
      _Thread_Restart_self();                                         
                                                                      
    return true;                                                      
  }                                                                   
                                                                      
  return false;                                                       
   48a6a:	4200           	clrb %d0                                    
   48a6c:	6002           	bras 48a70 <_Thread_Restart+0x7c>           
    _User_extensions_Thread_restart( the_thread );                    
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
      _Thread_Restart_self();                                         
                                                                      
    return true;                                                      
   48a6e:	7001           	moveq #1,%d0                                
  }                                                                   
                                                                      
  return false;                                                       
}                                                                     
   48a70:	246e fffc      	moveal %fp@(-4),%a2                         
   48a74:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000483f8 <_Thread_Tickle_timeslice>: * * Output parameters: NONE */ void _Thread_Tickle_timeslice( void ) {
   483f8:	4e56 0000      	linkw %fp,#0                                
   483fc:	2f0a           	movel %a2,%sp@-                             
  Thread_Control *executing;                                          
                                                                      
  executing = _Thread_Executing;                                      
   483fe:	2479 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a2 
  /*                                                                  
   *  If the thread is not preemptible or is not ready, then          
   *  just return.                                                    
   */                                                                 
                                                                      
  if ( !executing->is_preemptible )                                   
   48404:	4a2a 0074      	tstb %a2@(116)                              
   48408:	6758           	beqs 48462 <_Thread_Tickle_timeslice+0x6a>  
    return;                                                           
                                                                      
  if ( !_States_Is_ready( executing->current_state ) )                
   4840a:	4aaa 0010      	tstl %a2@(16)                               
   4840e:	6652           	bnes 48462 <_Thread_Tickle_timeslice+0x6a>  
                                                                      
  /*                                                                  
   *  The cpu budget algorithm determines what happens next.          
   */                                                                 
                                                                      
  switch ( executing->budget_algorithm ) {                            
   48410:	202a 007a      	movel %a2@(122),%d0                         
   48414:	7201           	moveq #1,%d1                                
   48416:	b280           	cmpl %d0,%d1                                
   48418:	6248           	bhis 48462 <_Thread_Tickle_timeslice+0x6a>  
   4841a:	123c 0002      	moveb #2,%d1                                
   4841e:	b280           	cmpl %d0,%d1                                
   48420:	640a           	bccs 4842c <_Thread_Tickle_timeslice+0x34>  
   48422:	123c 0003      	moveb #3,%d1                                
   48426:	b280           	cmpl %d0,%d1                                
   48428:	6638           	bnes 48462 <_Thread_Tickle_timeslice+0x6a>  <== NEVER TAKEN
   4842a:	6020           	bras 4844c <_Thread_Tickle_timeslice+0x54>  
                                                                      
    case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:                 
    #if defined(RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE)          
      case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:             
    #endif                                                            
      if ( (int)(--executing->cpu_time_budget) <= 0 ) {               
   4842c:	202a 0076      	movel %a2@(118),%d0                         
   48430:	5380           	subql #1,%d0                                
   48432:	2540 0076      	movel %d0,%a2@(118)                         
   48436:	6e2a           	bgts 48462 <_Thread_Tickle_timeslice+0x6a>  
 *  always operates on the scheduler that 'owns' the currently executing
 *  thread.                                                           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )                    
{                                                                     
  _Scheduler.Operations.yield();                                      
   48438:	2079 0005 d00c 	moveal 5d00c <_Scheduler+0xc>,%a0           
   4843e:	4e90           	jsr %a0@                                    
         *  executing thread's timeslice is reset.  Otherwise, the    
         *  currently executing thread is placed at the rear of the   
         *  FIFO for this priority and a new heir is selected.        
         */                                                           
        _Scheduler_Yield( );                                          
        executing->cpu_time_budget = _Thread_Ticks_per_timeslice;     
   48440:	41f9 0005 e980 	lea 5e980 <_Thread_Ticks_per_timeslice>,%a0 
   48446:	2550 0076      	movel %a0@,%a2@(118)                        
   4844a:	6016           	bras 48462 <_Thread_Tickle_timeslice+0x6a>  
      }                                                               
      break;                                                          
                                                                      
    #if defined(RTEMS_SCORE_THREAD_ENABLE_SCHEDULER_CALLOUT)          
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	if ( --executing->cpu_time_budget == 0 )                             
   4844c:	202a 0076      	movel %a2@(118),%d0                         
   48450:	5380           	subql #1,%d0                                
   48452:	2540 0076      	movel %d0,%a2@(118)                         
   48456:	660a           	bnes 48462 <_Thread_Tickle_timeslice+0x6a>  
	  (*executing->budget_callout)( executing );                         
   48458:	2f0a           	movel %a2,%sp@-                             
   4845a:	206a 007e      	moveal %a2@(126),%a0                        
   4845e:	4e90           	jsr %a0@                                    
   48460:	588f           	addql #4,%sp                                
	break;                                                               
    #endif                                                            
  }                                                                   
}                                                                     
   48462:	246e fffc      	moveal %fp@(-4),%a2                         
   48466:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047654 <_Thread_blocking_operation_Cancel>: /* * If the sync state is timed out, this is very likely not needed. * But better safe than sorry when it comes to critical sections. */ if ( _Watchdog_Is_active( &the_thread->Timer ) ) {
   47654:	7202           	moveq #2,%d1                                
  Thread_blocking_operation_States  sync_state __attribute__((unused)),
#endif                                                                
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
   47656:	4e56 0000      	linkw %fp,#0                                
   4765a:	202e 0010      	movel %fp@(16),%d0                          
   4765e:	2f0a           	movel %a2,%sp@-                             
   47660:	246e 000c      	moveal %fp@(12),%a2                         
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
   47664:	42aa 0044      	clrl %a2@(68)                               
                                                                      
  /*                                                                  
   *  If the sync state is timed out, this is very likely not needed. 
   *  But better safe than sorry when it comes to critical sections.  
   */                                                                 
  if ( _Watchdog_Is_active( &the_thread->Timer ) ) {                  
   47668:	b2aa 0050      	cmpl %a2@(80),%d1                           
   4766c:	6618           	bnes 47686 <_Thread_blocking_operation_Cancel+0x32>
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
   4766e:	123c 0003      	moveb #3,%d1                                
   47672:	2541 0050      	movel %d1,%a2@(80)                          
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   47676:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   47678:	486a 0048      	pea %a2@(72)                                
   4767c:	4eb9 0004 8880 	jsr 48880 <_Watchdog_Remove>                
   47682:	588f           	addql #4,%sp                                
   47684:	6002           	bras 47688 <_Thread_blocking_operation_Cancel+0x34>
  } else                                                              
    _ISR_Enable( level );                                             
   47686:	46c0           	movew %d0,%sr                               
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   47688:	2d4a 0008      	movel %a2,%fp@(8)                           
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4768c:	246e fffc      	moveal %fp@(-4),%a2                         
   47690:	203c 1003 fff8 	movel #268697592,%d0                        
   47696:	2d40 000c      	movel %d0,%fp@(12)                          
   4769a:	4e5e           	unlk %fp                                    
   4769c:	4ef9 0004 7780 	jmp 47780 <_Thread_Clear_state>             
	...                                                                  
                                                                      

0004c990 <_Thread_queue_Extract_fifo>: Thread_Control *the_thread ) { ISR_Level level; _ISR_Disable( level );
   4c990:	223c 0000 0700 	movel #1792,%d1                             
                                                                      
void _Thread_queue_Extract_fifo(                                      
  Thread_queue_Control *the_thread_queue __attribute__((unused)),     
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
   4c996:	4e56 0000      	linkw %fp,#0                                
   4c99a:	2f0a           	movel %a2,%sp@-                             
   4c99c:	246e 000c      	moveal %fp@(12),%a2                         
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   4c9a0:	40c0           	movew %sr,%d0                               
   4c9a2:	8280           	orl %d0,%d1                                 
   4c9a4:	46c1           	movew %d1,%sr                               
   4c9a6:	222a 0010      	movel %a2@(16),%d1                          
   4c9aa:	0281 0003 bee0 	andil #245472,%d1                           
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   4c9b0:	660a           	bnes 4c9bc <_Thread_queue_Extract_fifo+0x2c>
    _ISR_Enable( level );                                             
   4c9b2:	46c0           	movew %d0,%sr                               
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4c9b4:	246e fffc      	moveal %fp@(-4),%a2                         
   4c9b8:	4e5e           	unlk %fp                                    
   4c9ba:	4e75           	rts                                         
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
   4c9bc:	2252           	moveal %a2@,%a1                             
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4c9be:	7202           	moveq #2,%d1                                
  previous       = the_node->previous;                                
   4c9c0:	206a 0004      	moveal %a2@(4),%a0                          
  next->previous = previous;                                          
   4c9c4:	2348 0004      	movel %a0,%a1@(4)                           
  previous->next = next;                                              
   4c9c8:	2089           	movel %a1,%a0@                              
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
   4c9ca:	42aa 0044      	clrl %a2@(68)                               
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
   4c9ce:	b2aa 0050      	cmpl %a2@(80),%d1                           
   4c9d2:	6704           	beqs 4c9d8 <_Thread_queue_Extract_fifo+0x48>
    _ISR_Enable( level );                                             
   4c9d4:	46c0           	movew %d0,%sr                               
   4c9d6:	6014           	bras 4c9ec <_Thread_queue_Extract_fifo+0x5c>
   4c9d8:	7203           	moveq #3,%d1                                
   4c9da:	2541 0050      	movel %d1,%a2@(80)                          
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
   4c9de:	46c0           	movew %d0,%sr                               
    (void) _Watchdog_Remove( &the_thread->Timer );                    
   4c9e0:	486a 0048      	pea %a2@(72)                                
   4c9e4:	4eb9 0004 8880 	jsr 48880 <_Watchdog_Remove>                
   4c9ea:	588f           	addql #4,%sp                                
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
   4c9ec:	2d4a 0008      	movel %a2,%fp@(8)                           
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
   4c9f0:	246e fffc      	moveal %fp@(-4),%a2                         
   4c9f4:	203c 1003 fff8 	movel #268697592,%d0                        
   4c9fa:	2d40 000c      	movel %d0,%fp@(12)                          
   4c9fe:	4e5e           	unlk %fp                                    
   4ca00:	4ef9 0004 7780 	jmp 47780 <_Thread_Clear_state>             
	...                                                                  
                                                                      

0004b314 <_Thread_queue_Process_timeout>: #include <rtems/score/tqdata.h> void _Thread_queue_Process_timeout( Thread_Control *the_thread ) {
   4b314:	4e56 0000      	linkw %fp,#0                                
   4b318:	226e 0008      	moveal %fp@(8),%a1                          
  Thread_queue_Control *the_thread_queue = the_thread->Wait.queue;    
   4b31c:	2069 0044      	moveal %a1@(68),%a0                         
   *  If it is not satisfied, then it is "nothing happened" and       
   *  this is the "timeout" transition.  After a request is satisfied,
   *  a timeout is not allowed to occur.                              
   */                                                                 
                                                                      
  if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED &&
   4b320:	2028 0030      	movel %a0@(48),%d0                          
   4b324:	671c           	beqs 4b342 <_Thread_queue_Process_timeout+0x2e>
   4b326:	b3f9 0005 ee32 	cmpal 5ee32 <_Per_CPU_Information+0xc>,%a1  
   4b32c:	6614           	bnes 4b342 <_Thread_queue_Process_timeout+0x2e><== NEVER TAKEN
       _Thread_Is_executing( the_thread ) ) {                         
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
   4b32e:	7203           	moveq #3,%d1                                
   4b330:	b280           	cmpl %d0,%d1                                
   4b332:	6720           	beqs 4b354 <_Thread_queue_Process_timeout+0x40>
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
   4b334:	7002           	moveq #2,%d0                                
   */                                                                 
                                                                      
  if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED &&
       _Thread_Is_executing( the_thread ) ) {                         
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
   4b336:	2368 003c 0034 	movel %a0@(60),%a1@(52)                     
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
   4b33c:	2140 0030      	movel %d0,%a0@(48)                          
   4b340:	6012           	bras 4b354 <_Thread_queue_Process_timeout+0x40>
    }                                                                 
  } else {                                                            
    the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
   4b342:	2368 003c 0034 	movel %a0@(60),%a1@(52)                     
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
   4b348:	2f09           	movel %a1,%sp@-                             
   4b34a:	2f08           	movel %a0,%sp@-                             
   4b34c:	4eb9 0004 b210 	jsr 4b210 <_Thread_queue_Extract>           
   4b352:	508f           	addql #8,%sp                                
  }                                                                   
}                                                                     
   4b354:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000481a0 <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
   481a0:	4e56 fff0      	linkw %fp,#-16                              
   481a4:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   481a8:	246e 0008      	moveal %fp@(8),%a2                          
   481ac:	266e 000c      	moveal %fp@(12),%a3                         
  /*                                                                  
   * Just in case the thread really wasn't blocked on a thread queue  
   * when we get here.                                                
   */                                                                 
  if ( !the_thread_queue )                                            
   481b0:	4a8a           	tstl %a2                                    
   481b2:	6746           	beqs 481fa <_Thread_queue_Requeue+0x5a>     <== NEVER TAKEN
                                                                      
  /*                                                                  
   * If queueing by FIFO, there is nothing to do. This only applies to
   * priority blocking discipline.                                    
   */                                                                 
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY ) {
   481b4:	7001           	moveq #1,%d0                                
   481b6:	b0aa 0034      	cmpl %a2@(52),%d0                           
   481ba:	663e           	bnes 481fa <_Thread_queue_Requeue+0x5a>     <== NEVER TAKEN
    Thread_queue_Control *tq = the_thread_queue;                      
    ISR_Level             level;                                      
    ISR_Level             level_ignored;                              
                                                                      
    _ISR_Disable( level );                                            
   481bc:	303c 0700      	movew #1792,%d0                             
   481c0:	40c2           	movew %sr,%d2                               
   481c2:	8082           	orl %d2,%d0                                 
   481c4:	46c0           	movew %d0,%sr                               
   481c6:	202b 0010      	movel %a3@(16),%d0                          
   481ca:	0280 0003 bee0 	andil #245472,%d0                           
    if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
   481d0:	6726           	beqs 481f8 <_Thread_queue_Requeue+0x58>     <== NEVER TAKEN
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (      
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
   481d2:	7001           	moveq #1,%d0                                
   481d4:	2540 0030      	movel %d0,%a2@(48)                          
      _Thread_queue_Enter_critical_section( tq );                     
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
   481d8:	4878 0001      	pea 1 <ADD>                                 
   481dc:	2f0b           	movel %a3,%sp@-                             
   481de:	2f0a           	movel %a2,%sp@-                             
   481e0:	4eb9 0004 b248 	jsr 4b248 <_Thread_queue_Extract_priority_helper>
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
   481e6:	486e fffc      	pea %fp@(-4)                                
   481ea:	2f0b           	movel %a3,%sp@-                             
   481ec:	2f0a           	movel %a2,%sp@-                             
   481ee:	4eb9 0004 7f88 	jsr 47f88 <_Thread_queue_Enqueue_priority>  
   481f4:	4fef 0018      	lea %sp@(24),%sp                            
    }                                                                 
    _ISR_Enable( level );                                             
   481f8:	46c2           	movew %d2,%sr                               
  }                                                                   
}                                                                     
   481fa:	4cee 0c04 fff0 	moveml %fp@(-16),%d2/%a2-%a3                
   48200:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048204 <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored __attribute__((unused)) ) {
   48204:	4e56 fffc      	linkw %fp,#-4                               
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   48208:	486e fffc      	pea %fp@(-4)                                
   4820c:	2f2e 0008      	movel %fp@(8),%sp@-                         
   48210:	4eb9 0004 7ae8 	jsr 47ae8 <_Thread_Get>                     
  switch ( location ) {                                               
   48216:	508f           	addql #8,%sp                                
   48218:	4aae fffc      	tstl %fp@(-4)                               
   4821c:	6618           	bnes 48236 <_Thread_queue_Timeout+0x32>     <== NEVER TAKEN
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_queue_Process_timeout( the_thread );                    
   4821e:	2f00           	movel %d0,%sp@-                             
   48220:	4eb9 0004 b314 	jsr 4b314 <_Thread_queue_Process_timeout>   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
   48226:	588f           	addql #4,%sp                                
   48228:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
   4822e:	5380           	subql #1,%d0                                
   48230:	23c0 0005 e9c8 	movel %d0,5e9c8 <_Thread_Dispatch_disable_level>
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
   48236:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00052292 <_Timer_server_Body>: * @a arg points to the corresponding timer server control block. */ static rtems_task _Timer_server_Body( rtems_task_argument arg ) {
   52292:	4e56 ffb4      	linkw %fp,#-76                              
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   52296:	41ee ffec      	lea %fp@(-20),%a0                           
   5229a:	200e           	movel %fp,%d0                               
   5229c:	220e           	movel %fp,%d1                               
   5229e:	5181           	subql #8,%d1                                
   522a0:	0680 ffff fff4 	addil #-12,%d0                              
   522a6:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   522aa:	246e 0008      	moveal %fp@(8),%a2                          
   522ae:	260e           	movel %fp,%d3                               
 */                                                                   
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_tail(         
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return &the_chain->Tail.Node;                                       
   522b0:	2808           	movel %a0,%d4                               
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   522b2:	2c0a           	movel %a2,%d6                               
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   522b4:	0683 ffff ffe8 	addil #-24,%d3                              
   522ba:	0686 0000 0040 	addil #64,%d6                               
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   522c0:	2a0a           	movel %a2,%d5                               
     /*                                                               
      *  The current TOD is before the last TOD which indicates that  
      *  TOD has been set backwards.                                  
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
   522c2:	240a           	movel %a2,%d2                               
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   522c4:	0685 0000 0030 	addil #48,%d5                               
   522ca:	47f9 0005 60a8 	lea 560a8 <_Watchdog_Adjust_to_chain>,%a3   
     /*                                                               
      *  The current TOD is before the last TOD which indicates that  
      *  TOD has been set backwards.                                  
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
   522d0:	0682 0000 0068 	addil #104,%d2                              
   522d6:	4bf9 0005 6028 	lea 56028 <_Watchdog_Adjust>,%a5            
 */                                                                   
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_tail(         
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return &the_chain->Tail.Node;                                       
   522dc:	2e01           	movel %d1,%d7                               
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   522de:	2d48 ffe8      	movel %a0,%fp@(-24)                         
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   522e2:	41ea 0008      	lea %a2@(8),%a0                             
   522e6:	2d41 fff4      	movel %d1,%fp@(-12)                         
  head->previous = NULL;                                              
   522ea:	42ae fff8      	clrl %fp@(-8)                               
  tail->previous = head;                                              
   522ee:	2d40 fffc      	movel %d0,%fp@(-4)                          
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   522f2:	42ae ffec      	clrl %fp@(-20)                              
  tail->previous = head;                                              
   522f6:	2d43 fff0      	movel %d3,%fp@(-16)                         
   522fa:	2d48 ffe4      	movel %a0,%fp@(-28)                         
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   522fe:	2d46 ffe0      	movel %d6,%fp@(-32)                         
{                                                                     
  /*                                                                  
   *  Afterwards all timer inserts are directed to this chain and the interval
   *  and TOD chains will be no more modified by other parties.       
   */                                                                 
  ts->insert_chain = insert_chain;                                    
   52302:	41ee fff4      	lea %fp@(-12),%a0                           
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   52306:	49f9 0005 6138 	lea 56138 <_Watchdog_Insert>,%a4            
{                                                                     
  /*                                                                  
   *  Afterwards all timer inserts are directed to this chain and the interval
   *  and TOD chains will be no more modified by other parties.       
   */                                                                 
  ts->insert_chain = insert_chain;                                    
   5230c:	2548 0078      	movel %a0,%a2@(120)                         
static void _Timer_server_Process_interval_watchdogs(                 
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = _Watchdog_Ticks_since_boot;            
   52310:	2039 0007 7626 	movel 77626 <_Watchdog_Ticks_since_boot>,%d0
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
   52316:	222a 003c      	movel %a2@(60),%d1                          
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   5231a:	2540 003c      	movel %d0,%a2@(60)                          
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
   5231e:	9081           	subl %d1,%d0                                
   52320:	2f03           	movel %d3,%sp@-                             
   52322:	2f00           	movel %d0,%sp@-                             
   52324:	2f05           	movel %d5,%sp@-                             
   52326:	4e93           	jsr %a3@                                    
static void _Timer_server_Process_tod_watchdogs(                      
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
   52328:	2039 0007 75a6 	movel 775a6 <_TOD_Now>,%d0                  
  /*                                                                  
   *  Process the seconds chain.  Start by checking that the Time     
   *  of Day (TOD) has not been set backwards.  If it has then        
   *  we want to adjust the watchdogs->Chain to indicate this.        
   */                                                                 
  if ( snapshot > last_snapshot ) {                                   
   5232e:	4fef 000c      	lea %sp@(12),%sp                            
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
  Watchdog_Interval last_snapshot = watchdogs->last_snapshot;         
   52332:	222a 0074      	movel %a2@(116),%d1                         
  /*                                                                  
   *  Process the seconds chain.  Start by checking that the Time     
   *  of Day (TOD) has not been set backwards.  If it has then        
   *  we want to adjust the watchdogs->Chain to indicate this.        
   */                                                                 
  if ( snapshot > last_snapshot ) {                                   
   52336:	b280           	cmpl %d0,%d1                                
   52338:	6412           	bccs 5234c <_Timer_server_Body+0xba>        
    /*                                                                
     *  This path is for normal forward movement and cases where the  
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
   5233a:	2f03           	movel %d3,%sp@-                             
   5233c:	2c00           	movel %d0,%d6                               
   5233e:	9c81           	subl %d1,%d6                                
   52340:	2f06           	movel %d6,%sp@-                             
   52342:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   52346:	2f02           	movel %d2,%sp@-                             
   52348:	4e93           	jsr %a3@                                    
   5234a:	6014           	bras 52360 <_Timer_server_Body+0xce>        
                                                                      
  } else if ( snapshot < last_snapshot ) {                            
   5234c:	b280           	cmpl %d0,%d1                                
   5234e:	6318           	blss 52368 <_Timer_server_Body+0xd6>        
     /*                                                               
      *  The current TOD is before the last TOD which indicates that  
      *  TOD has been set backwards.                                  
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
   52350:	9280           	subl %d0,%d1                                
   52352:	2f01           	movel %d1,%sp@-                             
   52354:	4878 0001      	pea 1 <ADD>                                 
   52358:	2d40 ffdc      	movel %d0,%fp@(-36)                         
   5235c:	2f02           	movel %d2,%sp@-                             
   5235e:	4e95           	jsr %a5@                                    
   52360:	202e ffdc      	movel %fp@(-36),%d0                         
   52364:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
                                                                      
  watchdogs->last_snapshot = snapshot;                                
   52368:	2540 0074      	movel %d0,%a2@(116)                         
}                                                                     
                                                                      
static void _Timer_server_Process_insertions( Timer_server_Control *ts )
{                                                                     
  while ( true ) {                                                    
    Timer_Control *timer = (Timer_Control *) _Chain_Get( ts->insert_chain );
   5236c:	202a 0078      	movel %a2@(120),%d0                         
   52370:	2f00           	movel %d0,%sp@-                             
   52372:	4eb9 0005 2d84 	jsr 52d84 <_Chain_Get>                      
                                                                      
    if ( timer == NULL ) {                                            
   52378:	588f           	addql #4,%sp                                
}                                                                     
                                                                      
static void _Timer_server_Process_insertions( Timer_server_Control *ts )
{                                                                     
  while ( true ) {                                                    
    Timer_Control *timer = (Timer_Control *) _Chain_Get( ts->insert_chain );
   5237a:	2040           	moveal %d0,%a0                              
                                                                      
    if ( timer == NULL ) {                                            
   5237c:	4a80           	tstl %d0                                    
   5237e:	6724           	beqs 523a4 <_Timer_server_Body+0x112>       
static void _Timer_server_Insert_timer(                               
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   52380:	2028 0038      	movel %a0@(56),%d0                          
   52384:	7201           	moveq #1,%d1                                
   52386:	b280           	cmpl %d0,%d1                                
   52388:	6608           	bnes 52392 <_Timer_server_Body+0x100>       
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   5238a:	4868 0010      	pea %a0@(16)                                
   5238e:	2f05           	movel %d5,%sp@-                             
   52390:	600c           	bras 5239e <_Timer_server_Body+0x10c>       
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   52392:	7c03           	moveq #3,%d6                                
   52394:	bc80           	cmpl %d0,%d6                                
   52396:	66d4           	bnes 5236c <_Timer_server_Body+0xda>        <== NEVER TAKEN
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   52398:	4868 0010      	pea %a0@(16)                                
   5239c:	2f02           	movel %d2,%sp@-                             
   5239e:	4e94           	jsr %a4@                                    
   523a0:	508f           	addql #8,%sp                                
   523a2:	60c8           	bras 5236c <_Timer_server_Body+0xda>        
     *  of zero it will be processed in the next iteration of the timer server
     *  body loop.                                                    
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
   523a4:	203c 0000 0700 	movel #1792,%d0                             
   523aa:	40c1           	movew %sr,%d1                               
   523ac:	8081           	orl %d1,%d0                                 
   523ae:	46c0           	movew %d0,%sr                               
    if ( _Chain_Is_empty( insert_chain ) ) {                          
   523b0:	beae fff4      	cmpl %fp@(-12),%d7                          
   523b4:	6614           	bnes 523ca <_Timer_server_Body+0x138>       
      ts->insert_chain = NULL;                                        
   523b6:	42aa 0078      	clrl %a2@(120)                              
      _ISR_Enable( level );                                           
   523ba:	46c1           	movew %d1,%sr                               
                                                                      
        /*                                                            
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
   523bc:	2c3c 0000 0700 	movel #1792,%d6                             
  _Chain_Initialize_empty( &fire_chain );                             
                                                                      
  while ( true ) {                                                    
    _Timer_server_Get_watchdogs_that_fire_now( ts, &insert_chain, &fire_chain );
                                                                      
    if ( !_Chain_Is_empty( &fire_chain ) ) {                          
   523c2:	b8ae ffe8      	cmpl %fp@(-24),%d4                          
   523c6:	6608           	bnes 523d0 <_Timer_server_Body+0x13e>       
   523c8:	6042           	bras 5240c <_Timer_server_Body+0x17a>       
      ts->insert_chain = NULL;                                        
      _ISR_Enable( level );                                           
                                                                      
      break;                                                          
    } else {                                                          
      _ISR_Enable( level );                                           
   523ca:	46c1           	movew %d1,%sr                               
   523cc:	6000 ff42      	braw 52310 <_Timer_server_Body+0x7e>        
                                                                      
        /*                                                            
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
   523d0:	2006           	movel %d6,%d0                               
   523d2:	40c1           	movew %sr,%d1                               
   523d4:	8081           	orl %d1,%d0                                 
   523d6:	46c0           	movew %d0,%sr                               
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
   523d8:	206e ffe8      	moveal %fp@(-24),%a0                        
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
   523dc:	b888           	cmpl %a0,%d4                                
   523de:	6726           	beqs 52406 <_Timer_server_Body+0x174>       
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
   523e0:	2250           	moveal %a0@,%a1                             
                                                                      
  head->next = new_first;                                             
   523e2:	2d49 ffe8      	movel %a1,%fp@(-24)                         
  new_first->previous = head;                                         
   523e6:	2343 0004      	movel %d3,%a1@(4)                           
         *  It is essential that interrupts are disable here since an interrupt
         *  service routine may remove a watchdog from the chain.     
         */                                                           
        _ISR_Disable( level );                                        
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
   523ea:	4a88           	tstl %a0                                    
   523ec:	6718           	beqs 52406 <_Timer_server_Body+0x174>       <== NEVER TAKEN
          watchdog->state = WATCHDOG_INACTIVE;                        
   523ee:	42a8 0008      	clrl %a0@(8)                                
          _ISR_Enable( level );                                       
   523f2:	46c1           	movew %d1,%sr                               
        /*                                                            
         *  The timer server may block here and wait for resources or time.
         *  The system watchdogs are inactive and will remain inactive since
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
   523f4:	2f28 0024      	movel %a0@(36),%sp@-                        
   523f8:	2f28 0020      	movel %a0@(32),%sp@-                        
   523fc:	2068 001c      	moveal %a0@(28),%a0                         
   52400:	4e90           	jsr %a0@                                    
      }                                                               
   52402:	508f           	addql #8,%sp                                
   52404:	60ca           	bras 523d0 <_Timer_server_Body+0x13e>       
        watchdog = (Watchdog_Control *) _Chain_Get_unprotected( &fire_chain );
        if ( watchdog != NULL ) {                                     
          watchdog->state = WATCHDOG_INACTIVE;                        
          _ISR_Enable( level );                                       
        } else {                                                      
          _ISR_Enable( level );                                       
   52406:	46c1           	movew %d1,%sr                               
   52408:	6000 fef8      	braw 52302 <_Timer_server_Body+0x70>        
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   5240c:	49f9 0005 6260 	lea 56260 <_Watchdog_Remove>,%a4            
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
      }                                                               
    } else {                                                          
      ts->active = false;                                             
   52412:	4200           	clrb %d0                                    
   52414:	1540 007c      	moveb %d0,%a2@(124)                         
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
   52418:	4eba fd9e      	jsr %pc@(521b8 <_Thread_Disable_dispatch>)  
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
   5241c:	4878 0008      	pea 8 <DIVIDE_BY_ZERO>                      
   52420:	2f12           	movel %a2@,%sp@-                            
   52422:	4eb9 0005 5a84 	jsr 55a84 <_Thread_Set_state>               
        _Timer_server_Reset_interval_system_watchdog( ts );           
   52428:	2f0a           	movel %a2,%sp@-                             
   5242a:	4eba fda2      	jsr %pc@(521ce <_Timer_server_Reset_interval_system_watchdog>)
        _Timer_server_Reset_tod_system_watchdog( ts );                
   5242e:	2f0a           	movel %a2,%sp@-                             
   52430:	4eba fdfc      	jsr %pc@(5222e <_Timer_server_Reset_tod_system_watchdog>)
      _Thread_Enable_dispatch();                                      
   52434:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
                                                                      
      ts->active = true;                                              
   5243a:	7201           	moveq #1,%d1                                
   5243c:	1541 007c      	moveb %d1,%a2@(124)                         
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
   52440:	2f2e ffe4      	movel %fp@(-28),%sp@-                       
   52444:	4e94           	jsr %a4@                                    
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
   52446:	2f2e ffe0      	movel %fp@(-32),%sp@-                       
   5244a:	4e94           	jsr %a4@                                    
   5244c:	4fef 0018      	lea %sp@(24),%sp                            
   52450:	6000 feb0      	braw 52302 <_Timer_server_Body+0x70>        
                                                                      

00052454 <_Timer_server_Schedule_operation_method>: static void _Timer_server_Schedule_operation_method( Timer_server_Control *ts, Timer_Control *timer ) {
   52454:	4e56 fff0      	linkw %fp,#-16                              
   52458:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
   5245c:	246e 0008      	moveal %fp@(8),%a2                          
   52460:	266e 000c      	moveal %fp@(12),%a3                         
  if ( ts->insert_chain == NULL ) {                                   
   52464:	202a 0078      	movel %a2@(120),%d0                         
   52468:	6600 00ea      	bnew 52554 <_Timer_server_Schedule_operation_method+0x100>
   *  is the reference point for the delta chain.  Thus if we do not update the
   *  reference point we have to add DT to the initial delta of the watchdog
   *  being inserted.  This could result in an integer overflow.      
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
   5246c:	4eba fd4a      	jsr %pc@(521b8 <_Thread_Disable_dispatch>)  
                                                                      
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
   52470:	202b 0038      	movel %a3@(56),%d0                          
   52474:	7201           	moveq #1,%d1                                
   52476:	b280           	cmpl %d0,%d1                                
   52478:	665c           	bnes 524d6 <_Timer_server_Schedule_operation_method+0x82>
    /*                                                                
     *  We have to advance the last known ticks value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   5247a:	203c 0000 0700 	movel #1792,%d0                             
   52480:	40c2           	movew %sr,%d2                               
   52482:	8082           	orl %d2,%d0                                 
   52484:	46c0           	movew %d0,%sr                               
    snapshot = _Watchdog_Ticks_since_boot;                            
   52486:	2039 0007 7626 	movel 77626 <_Watchdog_Ticks_since_boot>,%d0
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   5248c:	43ea 0034      	lea %a2@(52),%a1                            
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
   52490:	222a 003c      	movel %a2@(60),%d1                          
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
   52494:	206a 0030      	moveal %a2@(48),%a0                         
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = _Watchdog_Ticks_since_boot;                            
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
    if ( !_Chain_Is_empty( &ts->Interval_watchdogs.Chain ) ) {        
   52498:	b3c8           	cmpal %a0,%a1                               
   5249a:	6716           	beqs 524b2 <_Timer_server_Schedule_operation_method+0x5e>
      first_watchdog = _Watchdog_First( &ts->Interval_watchdogs.Chain );
                                                                      
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
   5249c:	2240           	moveal %d0,%a1                              
   5249e:	93c1           	subal %d1,%a1                               
                                                                      
      delta_interval = first_watchdog->delta_interval;                
   524a0:	2228 0010      	movel %a0@(16),%d1                          
      if (delta_interval > delta) {                                   
   524a4:	b3c1           	cmpal %d1,%a1                               
   524a6:	6404           	bccs 524ac <_Timer_server_Schedule_operation_method+0x58>
        delta_interval -= delta;                                      
   524a8:	9289           	subl %a1,%d1                                
   524aa:	6002           	bras 524ae <_Timer_server_Schedule_operation_method+0x5a>
      } else {                                                        
        delta_interval = 0;                                           
   524ac:	4281           	clrl %d1                                    
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   524ae:	2141 0010      	movel %d1,%a0@(16)                          
    }                                                                 
    ts->Interval_watchdogs.last_snapshot = snapshot;                  
   524b2:	2540 003c      	movel %d0,%a2@(60)                          
    _ISR_Enable( level );                                             
   524b6:	46c2           	movew %d2,%sr                               
                                                                      
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
   524b8:	486b 0010      	pea %a3@(16)                                
   524bc:	486a 0030      	pea %a2@(48)                                
   524c0:	4eb9 0005 6138 	jsr 56138 <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   524c6:	508f           	addql #8,%sp                                
   524c8:	102a 007c      	moveb %a2@(124),%d0                         
   524cc:	6678           	bnes 52546 <_Timer_server_Schedule_operation_method+0xf2>
      _Timer_server_Reset_interval_system_watchdog( ts );             
   524ce:	2f0a           	movel %a2,%sp@-                             
   524d0:	4eba fcfc      	jsr %pc@(521ce <_Timer_server_Reset_interval_system_watchdog>)
   524d4:	606e           	bras 52544 <_Timer_server_Schedule_operation_method+0xf0>
    }                                                                 
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
   524d6:	7203           	moveq #3,%d1                                
   524d8:	b280           	cmpl %d0,%d1                                
   524da:	666a           	bnes 52546 <_Timer_server_Schedule_operation_method+0xf2>
    /*                                                                
     *  We have to advance the last known seconds value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
   524dc:	203c 0000 0700 	movel #1792,%d0                             
   524e2:	40c2           	movew %sr,%d2                               
   524e4:	8082           	orl %d2,%d0                                 
   524e6:	46c0           	movew %d0,%sr                               
   524e8:	200a           	movel %a2,%d0                               
   524ea:	0680 0000 006c 	addil #108,%d0                              
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
   524f0:	2239 0007 75a6 	movel 775a6 <_TOD_Now>,%d1                  
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
   524f6:	226a 0074      	moveal %a2@(116),%a1                        
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
   524fa:	206a 0068      	moveal %a2@(104),%a0                        
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
    if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {             
   524fe:	b088           	cmpl %a0,%d0                                
   52500:	6720           	beqs 52522 <_Timer_server_Schedule_operation_method+0xce>
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
   52502:	2028 0010      	movel %a0@(16),%d0                          
      if ( snapshot > last_snapshot ) {                               
   52506:	b3c1           	cmpal %d1,%a1                               
   52508:	640c           	bccs 52516 <_Timer_server_Schedule_operation_method+0xc2>
        /*                                                            
         *  We advanced in time.                                      
         */                                                           
        delta = snapshot - last_snapshot;                             
   5250a:	2841           	moveal %d1,%a4                              
   5250c:	99c9           	subal %a1,%a4                               
        if (delta_interval > delta) {                                 
   5250e:	b9c0           	cmpal %d0,%a4                               
   52510:	640a           	bccs 5251c <_Timer_server_Schedule_operation_method+0xc8><== NEVER TAKEN
          delta_interval -= delta;                                    
   52512:	908c           	subl %a4,%d0                                
   52514:	6008           	bras 5251e <_Timer_server_Schedule_operation_method+0xca>
        }                                                             
      } else {                                                        
        /*                                                            
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
   52516:	d089           	addl %a1,%d0                                
        delta_interval += delta;                                      
   52518:	9081           	subl %d1,%d0                                
   5251a:	6002           	bras 5251e <_Timer_server_Schedule_operation_method+0xca>
         */                                                           
        delta = snapshot - last_snapshot;                             
        if (delta_interval > delta) {                                 
          delta_interval -= delta;                                    
        } else {                                                      
          delta_interval = 0;                                         
   5251c:	4280           	clrl %d0                                    <== NOT EXECUTED
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
        delta_interval += delta;                                      
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
   5251e:	2140 0010      	movel %d0,%a0@(16)                          
    }                                                                 
    ts->TOD_watchdogs.last_snapshot = snapshot;                       
   52522:	2541 0074      	movel %d1,%a2@(116)                         
    _ISR_Enable( level );                                             
   52526:	46c2           	movew %d2,%sr                               
                                                                      
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
   52528:	486b 0010      	pea %a3@(16)                                
   5252c:	486a 0068      	pea %a2@(104)                               
   52530:	4eb9 0005 6138 	jsr 56138 <_Watchdog_Insert>                
                                                                      
    if ( !ts->active ) {                                              
   52536:	508f           	addql #8,%sp                                
   52538:	102a 007c      	moveb %a2@(124),%d0                         
   5253c:	6608           	bnes 52546 <_Timer_server_Schedule_operation_method+0xf2>
      _Timer_server_Reset_tod_system_watchdog( ts );                  
   5253e:	2f0a           	movel %a2,%sp@-                             
   52540:	4eba fcec      	jsr %pc@(5222e <_Timer_server_Reset_tod_system_watchdog>)
   52544:	588f           	addql #4,%sp                                
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
  }                                                                   
}                                                                     
   52546:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
   5254c:	4e5e           	unlk %fp                                    
    if ( !ts->active ) {                                              
      _Timer_server_Reset_tod_system_watchdog( ts );                  
    }                                                                 
  }                                                                   
                                                                      
  _Thread_Enable_dispatch();                                          
   5254e:	4ef9 0005 526e 	jmp 5526e <_Thread_Enable_dispatch>         
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   52554:	202a 0078      	movel %a2@(120),%d0                         
   52558:	2d4b 000c      	movel %a3,%fp@(12)                          
  }                                                                   
}                                                                     
   5255c:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   52562:	2d40 0008      	movel %d0,%fp@(8)                           
  }                                                                   
}                                                                     
   52566:	4e5e           	unlk %fp                                    
     *  server is not preemptible, so we must be in interrupt context here.  No
     *  thread dispatch will happen until the timer server finishes its
     *  critical section.  We have to use the protected chain methods because
     *  we may be interrupted by a higher priority interrupt.         
     */                                                               
    _Chain_Append( ts->insert_chain, &timer->Object.Node );           
   52568:	4ef9 0005 2d24 	jmp 52d24 <_Chain_Append>                   
                                                                      

0004860e <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
   4860e:	4e56 fff0      	linkw %fp,#-16                              
   48612:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
   48616:	4282           	clrl %d2                                    
   48618:	142e 000f      	moveb %fp@(15),%d2                          
void _User_extensions_Fatal (                                         
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
   4861c:	282e 0008      	movel %fp@(8),%d4                           
   48620:	262e 0010      	movel %fp@(16),%d3                          
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
   48624:	2479 0005 eb20 	moveal 5eb20 <_User_extensions_List+0x8>,%a2
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
   4862a:	6018           	bras 48644 <_User_extensions_Fatal+0x36>    
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
   4862c:	206a 0030      	moveal %a2@(48),%a0                         
   48630:	4a88           	tstl %a0                                    
   48632:	670c           	beqs 48640 <_User_extensions_Fatal+0x32>    
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
   48634:	2f03           	movel %d3,%sp@-                             
   48636:	2f02           	movel %d2,%sp@-                             
   48638:	2f04           	movel %d4,%sp@-                             
   4863a:	4e90           	jsr %a0@                                    
   4863c:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
   48640:	246a 0004      	moveal %a2@(4),%a2                          
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
   48644:	b5fc 0005 eb18 	cmpal #387864,%a2                           
   4864a:	66e0           	bnes 4862c <_User_extensions_Fatal+0x1e>    <== ALWAYS TAKEN
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
   4864c:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                <== NOT EXECUTED
   48652:	4e5e           	unlk %fp                                    <== NOT EXECUTED
	...                                                                  
                                                                      

000484e8 <_User_extensions_Handler_initialization>: #include <rtems/score/userext.h> #include <rtems/score/wkspace.h> #include <string.h> void _User_extensions_Handler_initialization(void) {
   484e8:	4e56 ffe8      	linkw %fp,#-24                              
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   484ec:	203c 0005 eb1c 	movel #387868,%d0                           
   484f2:	23c0 0005 eb18 	movel %d0,5eb18 <_User_extensions_List>     
  head->previous = NULL;                                              
  tail->previous = head;                                              
   484f8:	203c 0005 eb18 	movel #387864,%d0                           
   484fe:	23c0 0005 eb20 	movel %d0,5eb20 <_User_extensions_List+0x8> 
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   48504:	203c 0005 e9d0 	movel #387536,%d0                           
   4850a:	23c0 0005 e9cc 	movel %d0,5e9cc <_User_extensions_Switches_list>
  head->previous = NULL;                                              
  tail->previous = head;                                              
   48510:	203c 0005 e9cc 	movel #387532,%d0                           
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   48516:	42b9 0005 eb1c 	clrl 5eb1c <_User_extensions_List+0x4>      
   4851c:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 
  User_extensions_Control *extension;                                 
  uint32_t                 i;                                         
  uint32_t                 number_of_extensions;                      
  User_extensions_Table   *initial_extensions;                        
                                                                      
  number_of_extensions = Configuration.number_of_initial_extensions;  
   48520:	2839 0005 d10a 	movel 5d10a <Configuration+0x36>,%d4        
  initial_extensions   = Configuration.User_extension_table;          
   48526:	2639 0005 d10e 	movel 5d10e <Configuration+0x3a>,%d3        
   4852c:	42b9 0005 e9d0 	clrl 5e9d0 <_User_extensions_Switches_list+0x4>
  tail->previous = head;                                              
   48532:	23c0 0005 e9d4 	movel %d0,5e9d4 <_User_extensions_Switches_list+0x8>
                                                                      
  _Chain_Initialize_empty( &_User_extensions_List );                  
  _Chain_Initialize_empty( &_User_extensions_Switches_list );         
                                                                      
  if ( initial_extensions ) {                                         
   48538:	4a83           	tstl %d3                                    
   4853a:	6754           	beqs 48590 <_User_extensions_Handler_initialization+0xa8><== NEVER TAKEN
    extension = (User_extensions_Control *)                           
      _Workspace_Allocate_or_fatal_error(                             
   4853c:	7434           	moveq #52,%d2                               
   4853e:	4c04 2800      	mulsl %d4,%d2                               
RTEMS_INLINE_ROUTINE void _User_extensions_Add_set_with_table(        
  User_extensions_Control     *extension,                             
  const User_extensions_Table *extension_table                        
)                                                                     
{                                                                     
  extension->Callouts = *extension_table;                             
   48542:	49f9 0004 d37c 	lea 4d37c <memcpy>,%a4                      
                                                                      
  _User_extensions_Add_set( extension );                              
   48548:	47f9 0004 b3d8 	lea 4b3d8 <_User_extensions_Add_set>,%a3    
   4854e:	2f02           	movel %d2,%sp@-                             
   48550:	4eb9 0004 8a0e 	jsr 48a0e <_Workspace_Allocate_or_fatal_error>
   48556:	2440           	moveal %d0,%a2                              
        number_of_extensions * sizeof( User_extensions_Control )      
      );                                                              
                                                                      
    memset (                                                          
   48558:	2f02           	movel %d2,%sp@-                             
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
   4855a:	4282           	clrl %d2                                    
    extension = (User_extensions_Control *)                           
      _Workspace_Allocate_or_fatal_error(                             
        number_of_extensions * sizeof( User_extensions_Control )      
      );                                                              
                                                                      
    memset (                                                          
   4855c:	42a7           	clrl %sp@-                                  
   4855e:	2f00           	movel %d0,%sp@-                             
   48560:	4eb9 0004 d3ec 	jsr 4d3ec <memset>                          
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
   48566:	4fef 0010      	lea %sp@(16),%sp                            
   4856a:	6020           	bras 4858c <_User_extensions_Handler_initialization+0xa4>
RTEMS_INLINE_ROUTINE void _User_extensions_Add_set_with_table(        
  User_extensions_Control     *extension,                             
  const User_extensions_Table *extension_table                        
)                                                                     
{                                                                     
  extension->Callouts = *extension_table;                             
   4856c:	4878 0020      	pea 20 <OPER2+0xc>                          
   48570:	5282           	addql #1,%d2                                
   48572:	2f03           	movel %d3,%sp@-                             
   48574:	486a 0014      	pea %a2@(20)                                
   48578:	0683 0000 0020 	addil #32,%d3                               
   4857e:	4e94           	jsr %a4@                                    
                                                                      
  _User_extensions_Add_set( extension );                              
   48580:	2f0a           	movel %a2,%sp@-                             
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
   48582:	45ea 0034      	lea %a2@(52),%a2                            
   48586:	4e93           	jsr %a3@                                    
      extension,                                                      
      0,                                                              
      number_of_extensions * sizeof( User_extensions_Control )        
    );                                                                
                                                                      
    for ( i = 0 ; i < number_of_extensions ; i++ ) {                  
   48588:	4fef 0010      	lea %sp@(16),%sp                            
   4858c:	b882           	cmpl %d2,%d4                                
   4858e:	62dc           	bhis 4856c <_User_extensions_Handler_initialization+0x84>
      _User_extensions_Add_set_with_table (extension, &initial_extensions[i]);
      extension++;                                                    
    }                                                                 
  }                                                                   
}                                                                     
   48590:	4cee 1c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a4            
   48596:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049c38 <_Watchdog_Adjust>: Watchdog_Interval units ) { ISR_Level level; _ISR_Disable( level );
   49c38:	327c 0700      	moveaw #1792,%a1                            
   49c3c:	2209           	movel %a1,%d1                               
void _Watchdog_Adjust(                                                
  Chain_Control               *header,                                
  Watchdog_Adjust_directions   direction,                             
  Watchdog_Interval            units                                  
)                                                                     
{                                                                     
   49c3e:	4e56 ffe8      	linkw %fp,#-24                              
   49c42:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 
   49c46:	266e 0008      	moveal %fp@(8),%a3                          
   49c4a:	262e 000c      	movel %fp@(12),%d3                          
   49c4e:	242e 0010      	movel %fp@(16),%d2                          
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
   49c52:	40c0           	movew %sr,%d0                               
   49c54:	8280           	orl %d0,%d1                                 
   49c56:	46c1           	movew %d1,%sr                               
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
   49c58:	244b           	moveal %a3,%a2                              
   49c5a:	205a           	moveal %a2@+,%a0                            
   *       hence the compiler must not assume *header to remain       
   *       unmodified across that call.                               
   *                                                                  
   *       Till Straumann, 7/2003                                     
   */                                                                 
  if ( !_Chain_Is_empty( header ) ) {                                 
   49c5c:	b5c8           	cmpal %a0,%a2                               
   49c5e:	674c           	beqs 49cac <_Watchdog_Adjust+0x74>          
    switch ( direction ) {                                            
   49c60:	4a83           	tstl %d3                                    
   49c62:	673c           	beqs 49ca0 <_Watchdog_Adjust+0x68>          
   49c64:	7201           	moveq #1,%d1                                
   49c66:	b283           	cmpl %d3,%d1                                
   49c68:	6642           	bnes 49cac <_Watchdog_Adjust+0x74>          <== NEVER TAKEN
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
   49c6a:	d5a8 0010      	addl %d2,%a0@(16)                           
        break;                                                        
   49c6e:	603c           	bras 49cac <_Watchdog_Adjust+0x74>          
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) _Chain_First( header ) );             
   49c70:	2053           	moveal %a3@,%a0                             
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
   49c72:	2628 0010      	movel %a0@(16),%d3                          
   49c76:	b682           	cmpl %d2,%d3                                
   49c78:	6308           	blss 49c82 <_Watchdog_Adjust+0x4a>          
            _Watchdog_First( header )->delta_interval -= units;       
   49c7a:	9682           	subl %d2,%d3                                
   49c7c:	2143 0010      	movel %d3,%a0@(16)                          
            break;                                                    
   49c80:	602a           	bras 49cac <_Watchdog_Adjust+0x74>          
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
   49c82:	7201           	moveq #1,%d1                                
   49c84:	2141 0010      	movel %d1,%a0@(16)                          
                                                                      
            _ISR_Enable( level );                                     
   49c88:	46c0           	movew %d0,%sr                               
                                                                      
            _Watchdog_Tickle( header );                               
   49c8a:	2f0b           	movel %a3,%sp@-                             
   49c8c:	4e94           	jsr %a4@                                    
                                                                      
            _ISR_Disable( level );                                    
   49c8e:	2204           	movel %d4,%d1                               
   49c90:	40c0           	movew %sr,%d0                               
   49c92:	8280           	orl %d0,%d1                                 
   49c94:	46c1           	movew %d1,%sr                               
                                                                      
            if ( _Chain_Is_empty( header ) )                          
   49c96:	588f           	addql #4,%sp                                
   49c98:	b5d3           	cmpal %a3@,%a2                              
   49c9a:	6710           	beqs 49cac <_Watchdog_Adjust+0x74>          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
            _Watchdog_First( header )->delta_interval -= units;       
            break;                                                    
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
   49c9c:	9483           	subl %d3,%d2                                
   49c9e:	6008           	bras 49ca8 <_Watchdog_Adjust+0x70>          
            _Watchdog_First( header )->delta_interval = 1;            
                                                                      
            _ISR_Enable( level );                                     
                                                                      
            _Watchdog_Tickle( header );                               
   49ca0:	49f9 0004 9e5c 	lea 49e5c <_Watchdog_Tickle>,%a4            
                                                                      
            _ISR_Disable( level );                                    
   49ca6:	2809           	movel %a1,%d4                               
    switch ( direction ) {                                            
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
   49ca8:	4a82           	tstl %d2                                    
   49caa:	66c4           	bnes 49c70 <_Watchdog_Adjust+0x38>          <== ALWAYS TAKEN
        }                                                             
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
   49cac:	46c0           	movew %d0,%sr                               
                                                                      
}                                                                     
   49cae:	4cee 1c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a4            
   49cb4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00048880 <_Watchdog_Remove>: { ISR_Level level; Watchdog_States previous_state; Watchdog_Control *next_watchdog; _ISR_Disable( level );
   48880:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
Watchdog_States _Watchdog_Remove(                                     
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
   48886:	4e56 0000      	linkw %fp,#0                                
   4888a:	206e 0008      	moveal %fp@(8),%a0                          
   4888e:	2f0a           	movel %a2,%sp@-                             
   48890:	2f02           	movel %d2,%sp@-                             
  ISR_Level         level;                                            
  Watchdog_States   previous_state;                                   
  Watchdog_Control *next_watchdog;                                    
                                                                      
  _ISR_Disable( level );                                              
   48892:	40c1           	movew %sr,%d1                               
   48894:	8081           	orl %d1,%d0                                 
   48896:	46c0           	movew %d0,%sr                               
  previous_state = the_watchdog->state;                               
   48898:	2028 0008      	movel %a0@(8),%d0                           
  switch ( previous_state ) {                                         
   4889c:	7401           	moveq #1,%d2                                
   4889e:	b480           	cmpl %d0,%d2                                
   488a0:	670c           	beqs 488ae <_Watchdog_Remove+0x2e>          
   488a2:	6242           	bhis 488e6 <_Watchdog_Remove+0x66>          
   488a4:	143c 0003      	moveb #3,%d2                                
   488a8:	b480           	cmpl %d0,%d2                                
   488aa:	653a           	bcss 488e6 <_Watchdog_Remove+0x66>          <== NEVER TAKEN
   488ac:	6006           	bras 488b4 <_Watchdog_Remove+0x34>          
                                                                      
      /*                                                              
       *  It is not actually on the chain so just change the state and
       *  the Insert operation we interrupted will be aborted.        
       */                                                             
      the_watchdog->state = WATCHDOG_INACTIVE;                        
   488ae:	42a8 0008      	clrl %a0@(8)                                
      break;                                                          
   488b2:	6032           	bras 488e6 <_Watchdog_Remove+0x66>          
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
                                                                      
  _ISR_Enable( level );                                               
  return( previous_state );                                           
}                                                                     
   488b4:	2250           	moveal %a0@,%a1                             
      break;                                                          
                                                                      
    case WATCHDOG_ACTIVE:                                             
    case WATCHDOG_REMOVE_IT:                                          
                                                                      
      the_watchdog->state = WATCHDOG_INACTIVE;                        
   488b6:	42a8 0008      	clrl %a0@(8)                                
      next_watchdog = _Watchdog_Next( the_watchdog );                 
                                                                      
      if ( _Watchdog_Next(next_watchdog) )                            
   488ba:	4a91           	tstl %a1@                                   
   488bc:	6708           	beqs 488c6 <_Watchdog_Remove+0x46>          
        next_watchdog->delta_interval += the_watchdog->delta_interval;
   488be:	2428 0010      	movel %a0@(16),%d2                          
   488c2:	d5a9 0010      	addl %d2,%a1@(16)                           
                                                                      
      if ( _Watchdog_Sync_count )                                     
   488c6:	2479 0005 eace 	moveal 5eace <_Watchdog_Sync_count>,%a2     
   488cc:	4a8a           	tstl %a2                                    
   488ce:	670c           	beqs 488dc <_Watchdog_Remove+0x5c>          
        _Watchdog_Sync_level = _ISR_Nest_level;                       
   488d0:	45f9 0005 ee2e 	lea 5ee2e <_Per_CPU_Information+0x8>,%a2    
   488d6:	23d2 0005 ea6c 	movel %a2@,5ea6c <_Watchdog_Sync_level>     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
   488dc:	2468 0004      	moveal %a0@(4),%a2                          
  next->previous = previous;                                          
   488e0:	234a 0004      	movel %a2,%a1@(4)                           
  previous->next = next;                                              
   488e4:	2489           	movel %a1,%a2@                              
                                                                      
      _Chain_Extract_unprotected( &the_watchdog->Node );              
      break;                                                          
  }                                                                   
  the_watchdog->stop_time = _Watchdog_Ticks_since_boot;               
   488e6:	2279 0005 ead2 	moveal 5ead2 <_Watchdog_Ticks_since_boot>,%a1
   488ec:	2149 0018      	movel %a1,%a0@(24)                          
                                                                      
  _ISR_Enable( level );                                               
   488f0:	46c1           	movew %d1,%sr                               
  return( previous_state );                                           
}                                                                     
   488f2:	241f           	movel %sp@+,%d2                             
   488f4:	245f           	moveal %sp@+,%a2                            
   488f6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049830 <_Watchdog_Report_chain>: ) { ISR_Level level; Chain_Node *node; _ISR_Disable( level );
   49830:	203c 0000 0700 	movel #1792,%d0                             
                                                                      
void _Watchdog_Report_chain(                                          
  const char        *name,                                            
  Chain_Control     *header                                           
)                                                                     
{                                                                     
   49836:	4e56 ffec      	linkw %fp,#-20                              
   4983a:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   4983e:	242e 0008      	movel %fp@(8),%d2                           
   49842:	266e 000c      	moveal %fp@(12),%a3                         
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
   49846:	40c3           	movew %sr,%d3                               
   49848:	8083           	orl %d3,%d0                                 
   4984a:	46c0           	movew %d0,%sr                               
    printk( "Watchdog Chain: %s %p\n", name, header );                
   4984c:	2f0b           	movel %a3,%sp@-                             
   4984e:	49f9 0004 404c 	lea 4404c <printk>,%a4                      
   49854:	2f02           	movel %d2,%sp@-                             
   49856:	4879 0005 dd1a 	pea 5dd1a <_Status_Object_name_errors_to_status+0x14>
   4985c:	4e94           	jsr %a4@                                    
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
   4985e:	245b           	moveal %a3@+,%a2                            
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
   49860:	4fef 000c      	lea %sp@(12),%sp                            
   49864:	b7ca           	cmpal %a2,%a3                               
   49866:	6726           	beqs 4988e <_Watchdog_Report_chain+0x5e>    
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
   49868:	49f9 0004 98a4 	lea 498a4 <_Watchdog_Report>,%a4            
   4986e:	2f0a           	movel %a2,%sp@-                             
   49870:	42a7           	clrl %sp@-                                  
   49872:	4e94           	jsr %a4@                                    
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = _Chain_First( header ) ;                           
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
   49874:	2452           	moveal %a2@,%a2                             
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = _Chain_First( header ) ;                           
   49876:	508f           	addql #8,%sp                                
   49878:	b7ca           	cmpal %a2,%a3                               
   4987a:	66f2           	bnes 4986e <_Watchdog_Report_chain+0x3e>    <== NEVER TAKEN
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
   4987c:	2f02           	movel %d2,%sp@-                             
   4987e:	4879 0005 dd31 	pea 5dd31 <_Status_Object_name_errors_to_status+0x2b>
   49884:	4eb9 0004 404c 	jsr 4404c <printk>                          
   4988a:	508f           	addql #8,%sp                                
   4988c:	600a           	bras 49898 <_Watchdog_Report_chain+0x68>    
    } else {                                                          
      printk( "Chain is empty\n" );                                   
   4988e:	4879 0005 dd40 	pea 5dd40 <_Status_Object_name_errors_to_status+0x3a>
   49894:	4e94           	jsr %a4@                                    
   49896:	588f           	addql #4,%sp                                
    }                                                                 
  _ISR_Enable( level );                                               
   49898:	46c3           	movew %d3,%sr                               
}                                                                     
   4989a:	4cee 1c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a4            
   498a0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000488fc <_Watchdog_Tickle>: * See the comment in watchdoginsert.c and watchdogadjust.c * about why it's safe not to declare header a pointer to * volatile data - till, 2003/7 */ _ISR_Disable( level );
   488fc:	203c 0000 0700 	movel #1792,%d0                             
 */                                                                   
                                                                      
void _Watchdog_Tickle(                                                
  Chain_Control *header                                               
)                                                                     
{                                                                     
   48902:	4e56 ffe8      	linkw %fp,#-24                              
   48906:	48d7 3c0c      	moveml %d2-%d3/%a2-%a5,%sp@                 
   4890a:	286e 0008      	moveal %fp@(8),%a4                          
   * See the comment in watchdoginsert.c and watchdogadjust.c         
   * about why it's safe not to declare header a pointer to           
   * volatile data - till, 2003/7                                     
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
   4890e:	40c2           	movew %sr,%d2                               
   48910:	8082           	orl %d2,%d0                                 
   48912:	46c0           	movew %d0,%sr                               
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
}                                                                     
   48914:	264c           	moveal %a4,%a3                              
   48916:	245b           	moveal %a3@+,%a2                            
   * volatile data - till, 2003/7                                     
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  if ( _Chain_Is_empty( header ) )                                    
   48918:	b7ca           	cmpal %a2,%a3                               
   4891a:	674c           	beqs 48968 <_Watchdog_Tickle+0x6c>          
   * to be inserted has already had its delta_interval adjusted to 0, and
   * so is added to the head of the chain with a delta_interval of 0. 
   *                                                                  
   * Steven Johnson - 12/2005 (gcc-3.2.3 -O3 on powerpc)              
   */                                                                 
  if (the_watchdog->delta_interval != 0) {                            
   4891c:	202a 0010      	movel %a2@(16),%d0                          
   48920:	6708           	beqs 4892a <_Watchdog_Tickle+0x2e>          
    the_watchdog->delta_interval--;                                   
   48922:	5380           	subql #1,%d0                                
   48924:	2540 0010      	movel %d0,%a2@(16)                          
    if ( the_watchdog->delta_interval != 0 )                          
   48928:	663e           	bnes 48968 <_Watchdog_Tickle+0x6c>          
      goto leave;                                                     
  }                                                                   
                                                                      
  do {                                                                
     watchdog_state = _Watchdog_Remove( the_watchdog );               
   4892a:	4bf9 0004 8880 	lea 48880 <_Watchdog_Remove>,%a5            
                                                                      
       case WATCHDOG_REMOVE_IT:                                       
         break;                                                       
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
   48930:	263c 0000 0700 	movel #1792,%d3                             
    if ( the_watchdog->delta_interval != 0 )                          
      goto leave;                                                     
  }                                                                   
                                                                      
  do {                                                                
     watchdog_state = _Watchdog_Remove( the_watchdog );               
   48936:	2f0a           	movel %a2,%sp@-                             
   48938:	4e95           	jsr %a5@                                    
                                                                      
     _ISR_Enable( level );                                            
   4893a:	46c2           	movew %d2,%sr                               
                                                                      
     switch( watchdog_state ) {                                       
   4893c:	7202           	moveq #2,%d1                                
   4893e:	588f           	addql #4,%sp                                
   48940:	b280           	cmpl %d0,%d1                                
   48942:	6610           	bnes 48954 <_Watchdog_Tickle+0x58>          <== NEVER TAKEN
       case WATCHDOG_ACTIVE:                                          
         (*the_watchdog->routine)(                                    
   48944:	2f2a 0024      	movel %a2@(36),%sp@-                        
   48948:	2f2a 0020      	movel %a2@(32),%sp@-                        
   4894c:	206a 001c      	moveal %a2@(28),%a0                         
   48950:	4e90           	jsr %a0@                                    
           the_watchdog->id,                                          
           the_watchdog->user_data                                    
         );                                                           
         break;                                                       
   48952:	508f           	addql #8,%sp                                
                                                                      
       case WATCHDOG_REMOVE_IT:                                       
         break;                                                       
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
   48954:	2003           	movel %d3,%d0                               
   48956:	40c2           	movew %sr,%d2                               
   48958:	8082           	orl %d2,%d0                                 
   4895a:	46c0           	movew %d0,%sr                               
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
}                                                                     
   4895c:	2454           	moveal %a4@,%a2                             
                                                                      
     _ISR_Disable( level );                                           
                                                                      
     the_watchdog = _Watchdog_First( header );                        
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
   4895e:	b7ca           	cmpal %a2,%a3                               
   48960:	6706           	beqs 48968 <_Watchdog_Tickle+0x6c>          
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
                                                                      
     the_watchdog = _Watchdog_First( header );                        
   } while ( !_Chain_Is_empty( header ) &&                            
   48962:	4aaa 0010      	tstl %a2@(16)                               
   48966:	67ce           	beqs 48936 <_Watchdog_Tickle+0x3a>          
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
   48968:	46c2           	movew %d2,%sr                               
}                                                                     
   4896a:	4cee 3c0c ffe8 	moveml %fp@(-24),%d2-%d3/%a2-%a5            
   48970:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005a780 <_calloc_r>: void *_calloc_r( struct _reent *ignored __attribute__((unused)), size_t elements, size_t size ) {
   5a780:	4e56 0000      	linkw %fp,#0                                
   5a784:	202e 000c      	movel %fp@(12),%d0                          
  return calloc( elements, size );                                    
   5a788:	2d6e 0010 000c 	movel %fp@(16),%fp@(12)                     
   5a78e:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   5a792:	4e5e           	unlk %fp                                    
  struct _reent *ignored __attribute__((unused)),                     
  size_t         elements,                                            
  size_t         size                                                 
)                                                                     
{                                                                     
  return calloc( elements, size );                                    
   5a794:	4ef9 0004 2654 	jmp 42654 <calloc>                          
	...                                                                  
                                                                      

00043e38 <_chown_helper>: const char *path, uid_t owner, gid_t group, int follow_link ) {
   43e38:	4e56 ffd8      	linkw %fp,#-40                              
   43e3c:	48d7 003c      	moveml %d2-%d5,%sp@                         
   43e40:	262e 0008      	movel %fp@(8),%d3                           
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x00, &loc, follow_link ) )
   43e44:	240e           	movel %fp,%d2                               
   43e46:	0682 ffff ffec 	addil #-20,%d2                              
   43e4c:	2f03           	movel %d3,%sp@-                             
  const char *path,                                                   
  uid_t       owner,                                                  
  gid_t       group,                                                  
  int         follow_link                                             
)                                                                     
{                                                                     
   43e4e:	382e 000e      	movew %fp@(14),%d4                          
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x00, &loc, follow_link ) )
   43e52:	4eb9 0005 0778 	jsr 50778 <strlen>                          
   43e58:	2eae 0014      	movel %fp@(20),%sp@                         
   43e5c:	2f02           	movel %d2,%sp@-                             
  const char *path,                                                   
  uid_t       owner,                                                  
  gid_t       group,                                                  
  int         follow_link                                             
)                                                                     
{                                                                     
   43e5e:	3a2e 0012      	movew %fp@(18),%d5                          
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x00, &loc, follow_link ) )
   43e62:	42a7           	clrl %sp@-                                  
   43e64:	2f00           	movel %d0,%sp@-                             
   43e66:	2f03           	movel %d3,%sp@-                             
   43e68:	4eb9 0004 413c 	jsr 4413c <rtems_filesystem_evaluate_path>  
   43e6e:	4fef 0014      	lea %sp@(20),%sp                            
   43e72:	4a80           	tstl %d0                                    
   43e74:	662a           	bnes 43ea0 <_chown_helper+0x68>             <== NEVER TAKEN
    return -1;                                                        
                                                                      
  result = (*loc.ops->chown_h)( &loc, owner, group );                 
   43e76:	206e fff8      	moveal %fp@(-8),%a0                         
   43e7a:	3f05           	movew %d5,%sp@-                             
   43e7c:	4267           	clrw %sp@-                                  
   43e7e:	3f04           	movew %d4,%sp@-                             
   43e80:	4267           	clrw %sp@-                                  
   43e82:	2f02           	movel %d2,%sp@-                             
   43e84:	2068 0018      	moveal %a0@(24),%a0                         
   43e88:	4e90           	jsr %a0@                                    
                                                                      
  rtems_filesystem_freenode( &loc );                                  
   43e8a:	2f02           	movel %d2,%sp@-                             
   43e8c:	2d40 ffe8      	movel %d0,%fp@(-24)                         
   43e90:	4eb9 0004 4208 	jsr 44208 <rtems_filesystem_freenode>       
                                                                      
  return result;                                                      
   43e96:	202e ffe8      	movel %fp@(-24),%d0                         
   43e9a:	4fef 0010      	lea %sp@(16),%sp                            
   43e9e:	6002           	bras 43ea2 <_chown_helper+0x6a>             
{                                                                     
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x00, &loc, follow_link ) )
    return -1;                                                        
   43ea0:	70ff           	moveq #-1,%d0                               
  result = (*loc.ops->chown_h)( &loc, owner, group );                 
                                                                      
  rtems_filesystem_freenode( &loc );                                  
                                                                      
  return result;                                                      
}                                                                     
   43ea2:	4cee 003c ffd8 	moveml %fp@(-40),%d2-%d5                    
   43ea8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000499c0 <_close_r>: int _close_r( struct _reent *ptr __attribute__((unused)), int fd ) {
   499c0:	4e56 0000      	linkw %fp,#0                                
  return close( fd );                                                 
   499c4:	2d6e 000c 0008 	movel %fp@(12),%fp@(8)                      
}                                                                     
   499ca:	4e5e           	unlk %fp                                    
int _close_r(                                                         
  struct _reent *ptr __attribute__((unused)),                         
  int            fd                                                   
)                                                                     
{                                                                     
  return close( fd );                                                 
   499cc:	4ef9 0004 9950 	jmp 49950 <close>                           
	...                                                                  
                                                                      

000431b8 <_exit>: extern void FINI_SYMBOL( void ); #endif void EXIT_SYMBOL(int status) {
   431b8:	4e56 0000      	linkw %fp,#0                                
  /*                                                                  
   *  If the toolset uses init/fini sections, then we need to         
   *  run the global destructors now.                                 
   */                                                                 
  #if defined(__USE_INIT_FINI__)                                      
    FINI_SYMBOL();                                                    
   431bc:	4eb9 0005 b2a8 	jsr 5b2a8 <_fini>                           
   *  We need to do the exit processing on the global reentrancy structure.
   *  This has already been done on the per task reentrancy structure 
   *  associated with this task.                                      
   */                                                                 
                                                                      
  libc_wrapup();                                                      
   431c2:	4eb9 0004 3154 	jsr 43154 <libc_wrapup>                     
  rtems_shutdown_executive(status);                                   
   431c8:	2f2e 0008      	movel %fp@(8),%sp@-                         
   431cc:	4eb9 0004 5e94 	jsr 45e94 <rtems_shutdown_executive>        
	...                                                                  
                                                                      

0005a79c <_free_r>: void _free_r( struct _reent *ignored __attribute__((unused)), void *ptr ) {
   5a79c:	4e56 0000      	linkw %fp,#0                                
  free( ptr );                                                        
   5a7a0:	2d6e 000c 0008 	movel %fp@(12),%fp@(8)                      
}                                                                     
   5a7a6:	4e5e           	unlk %fp                                    
void _free_r(                                                         
  struct _reent *ignored __attribute__((unused)),                     
  void          *ptr                                                  
)                                                                     
{                                                                     
  free( ptr );                                                        
   5a7a8:	4ef9 0004 29ec 	jmp 429ec <free>                            
	...                                                                  
                                                                      

0005a870 <_isatty_r>: int _isatty_r( struct _reent *ptr __attribute__((unused)), int fd ) {
   5a870:	4e56 0000      	linkw %fp,#0                                
  return isatty( fd );                                                
   5a874:	2d6e 000c 0008 	movel %fp@(12),%fp@(8)                      
}                                                                     
   5a87a:	4e5e           	unlk %fp                                    
int _isatty_r(                                                        
  struct _reent *ptr __attribute__((unused)),                         
  int            fd                                                   
)                                                                     
{                                                                     
  return isatty( fd );                                                
   5a87c:	4ef9 0005 b200 	jmp 5b200 <isatty>                          
	...                                                                  
                                                                      

00045c88 <_link_r>: int _link_r( struct _reent *ptr __attribute__((unused)), const char *existing, const char *new ) {
   45c88:	4e56 0000      	linkw %fp,#0                                
   45c8c:	202e 000c      	movel %fp@(12),%d0                          
  return link( existing, new );                                       
   45c90:	2d6e 0010 000c 	movel %fp@(16),%fp@(12)                     
   45c96:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   45c9a:	4e5e           	unlk %fp                                    
  struct _reent *ptr __attribute__((unused)),                         
  const char    *existing,                                            
  const char    *new                                                  
)                                                                     
{                                                                     
  return link( existing, new );                                       
   45c9c:	4ef9 0004 5bb0 	jmp 45bb0 <link>                            
	...                                                                  
                                                                      

0005a95c <_lseek_r>: struct _reent *ptr __attribute__((unused)), int fd, off_t offset, int whence ) {
   5a95c:	4e56 0000      	linkw %fp,#0                                
   5a960:	206e 000c      	moveal %fp@(12),%a0                         
   5a964:	202e 0010      	movel %fp@(16),%d0                          
   5a968:	222e 0014      	movel %fp@(20),%d1                          
  return lseek( fd, offset, whence );                                 
   5a96c:	2d6e 0018 0014 	movel %fp@(24),%fp@(20)                     
   5a972:	2d40 000c      	movel %d0,%fp@(12)                          
   5a976:	2d41 0010      	movel %d1,%fp@(16)                          
   5a97a:	2d48 0008      	movel %a0,%fp@(8)                           
}                                                                     
   5a97e:	4e5e           	unlk %fp                                    
  int            fd,                                                  
  off_t          offset,                                              
  int            whence                                               
)                                                                     
{                                                                     
  return lseek( fd, offset, whence );                                 
   5a980:	4ef9 0005 a884 	jmp 5a884 <lseek>                           
	...                                                                  
                                                                      

0005a988 <_malloc_r>: void *_malloc_r( struct _reent *ignored __attribute__((unused)), size_t size ) {
   5a988:	4e56 0000      	linkw %fp,#0                                
  return malloc( size );                                              
   5a98c:	2d6e 000c 0008 	movel %fp@(12),%fp@(8)                      
}                                                                     
   5a992:	4e5e           	unlk %fp                                    
void *_malloc_r(                                                      
  struct _reent *ignored __attribute__((unused)),                     
  size_t         size                                                 
)                                                                     
{                                                                     
  return malloc( size );                                              
   5a994:	4ef9 0004 2cd4 	jmp 42cd4 <malloc>                          
	...                                                                  
                                                                      

0005aa38 <_read_r>: struct _reent *ptr __attribute__((unused)), int fd, void *buf, size_t nbytes ) {
   5aa38:	4e56 0000      	linkw %fp,#0                                
   5aa3c:	222e 0010      	movel %fp@(16),%d1                          
   5aa40:	202e 000c      	movel %fp@(12),%d0                          
  return read( fd, buf, nbytes );                                     
   5aa44:	2d6e 0014 0010 	movel %fp@(20),%fp@(16)                     
   5aa4a:	2d41 000c      	movel %d1,%fp@(12)                          
   5aa4e:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   5aa52:	4e5e           	unlk %fp                                    
  int            fd,                                                  
  void          *buf,                                                 
  size_t         nbytes                                               
)                                                                     
{                                                                     
  return read( fd, buf, nbytes );                                     
   5aa54:	4ef9 0005 a99c 	jmp 5a99c <read>                            
	...                                                                  
                                                                      

0005aa5c <_realloc_r>: void *_realloc_r( struct _reent *ignored __attribute__((unused)), void *ptr, size_t size ) {
   5aa5c:	4e56 0000      	linkw %fp,#0                                
   5aa60:	202e 000c      	movel %fp@(12),%d0                          
  return realloc( ptr, size );                                        
   5aa64:	2d6e 0010 000c 	movel %fp@(16),%fp@(12)                     
   5aa6a:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   5aa6e:	4e5e           	unlk %fp                                    
  struct _reent *ignored __attribute__((unused)),                     
  void          *ptr,                                                 
  size_t         size                                                 
)                                                                     
{                                                                     
  return realloc( ptr, size );                                        
   5aa70:	4ef9 0005 aabc 	jmp 5aabc <realloc>                         
	...                                                                  
                                                                      

000469bc <_rename_r>: int _rename_r( struct _reent *ptr __attribute__((unused)), const char *old, const char *new ) {
   469bc:	4e56 ffa4      	linkw %fp,#-92                              
   469c0:	48d7 047c      	moveml %d2-%d6/%a2,%sp@                     
   469c4:	262e 000c      	movel %fp@(12),%d3                          
   469c8:	2c2e 0010      	movel %fp@(16),%d6                          
                                                                      
  /*                                                                  
   *  Get the parent node of the old path to be renamed. Find the parent path.
   */                                                                 
                                                                      
  old_parent_pathlen = rtems_filesystem_dirname ( old );              
   469cc:	2f03           	movel %d3,%sp@-                             
   469ce:	4eb9 0004 55b0 	jsr 455b0 <rtems_filesystem_dirname>        
                                                                      
  if ( old_parent_pathlen == 0 )                                      
   469d4:	588f           	addql #4,%sp                                
                                                                      
  /*                                                                  
   *  Get the parent node of the old path to be renamed. Find the parent path.
   */                                                                 
                                                                      
  old_parent_pathlen = rtems_filesystem_dirname ( old );              
   469d6:	2440           	moveal %d0,%a2                              
   469d8:	200e           	movel %fp,%d0                               
   469da:	0680 ffff ffd0 	addil #-48,%d0                              
                                                                      
  if ( old_parent_pathlen == 0 )                                      
   469e0:	4a8a           	tstl %a2                                    
   469e2:	6616           	bnes 469fa <_rename_r+0x3e>                 
    rtems_filesystem_get_start_loc( old, &i, &old_parent_loc );       
   469e4:	2f00           	movel %d0,%sp@-                             
   469e6:	486e fffc      	pea %fp@(-4)                                
  rtems_filesystem_location_info_t    old_parent_loc;                 
  rtems_filesystem_location_info_t    new_parent_loc;                 
  int                                 i;                              
  int                                 result;                         
  const char                         *name;                           
  bool                                free_old_parentloc = false;     
   469ea:	4204           	clrb %d4                                    
   */                                                                 
                                                                      
  old_parent_pathlen = rtems_filesystem_dirname ( old );              
                                                                      
  if ( old_parent_pathlen == 0 )                                      
    rtems_filesystem_get_start_loc( old, &i, &old_parent_loc );       
   469ec:	2f03           	movel %d3,%sp@-                             
   469ee:	4eb9 0004 6d18 	jsr 46d18 <rtems_filesystem_get_start_loc>  
   469f4:	4fef 000c      	lea %sp@(12),%sp                            
   469f8:	601e           	bras 46a18 <_rename_r+0x5c>                 
  else {                                                              
    result = rtems_filesystem_evaluate_path( old, old_parent_pathlen, 
   469fa:	42a7           	clrl %sp@-                                  
   469fc:	2f00           	movel %d0,%sp@-                             
   469fe:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   46a02:	2f0a           	movel %a2,%sp@-                             
   46a04:	2f03           	movel %d3,%sp@-                             
   46a06:	4eb9 0004 5564 	jsr 45564 <rtems_filesystem_evaluate_path>  
                                             RTEMS_LIBIO_PERMS_WRITE, 
                                             &old_parent_loc,         
                                             false );                 
    if ( result != 0 )                                                
   46a0c:	4fef 0014      	lea %sp@(20),%sp                            
   46a10:	4a80           	tstl %d0                                    
   46a12:	6600 012e      	bnew 46b42 <_rename_r+0x186>                
      return -1;                                                      
                                                                      
    free_old_parentloc = true;                                        
   46a16:	7801           	moveq #1,%d4                                
                                                                      
  /*                                                                  
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  old_loc = old_parent_loc;                                           
   46a18:	4878 0014      	pea 14 <OPER2>                              
   46a1c:	240e           	movel %fp,%d2                               
   46a1e:	0682 ffff ffd0 	addil #-48,%d2                              
   46a24:	2a0e           	movel %fp,%d5                               
   46a26:	0685 ffff ffe4 	addil #-28,%d5                              
  name = old + old_parent_pathlen;                                    
   46a2c:	d68a           	addl %a2,%d3                                
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   46a2e:	45f9 0005 3240 	lea 53240 <strlen>,%a2                      
                                                                      
  /*                                                                  
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  old_loc = old_parent_loc;                                           
   46a34:	2f02           	movel %d2,%sp@-                             
   46a36:	2f05           	movel %d5,%sp@-                             
   46a38:	4eb9 0005 1b5c 	jsr 51b5c <memcpy>                          
  name = old + old_parent_pathlen;                                    
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   46a3e:	2f03           	movel %d3,%sp@-                             
  /*                                                                  
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  old_loc = old_parent_loc;                                           
  name = old + old_parent_pathlen;                                    
   46a40:	2d43 fff8      	movel %d3,%fp@(-8)                          
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   46a44:	4e92           	jsr %a2@                                    
   46a46:	2e80           	movel %d0,%sp@                              
   46a48:	2f03           	movel %d3,%sp@-                             
   46a4a:	4eb9 0004 55f2 	jsr 455f2 <rtems_filesystem_prefix_separators>
   46a50:	d680           	addl %d0,%d3                                
                                                                      
  result = rtems_filesystem_evaluate_relative_path( name , strlen( name ),
   46a52:	2f03           	movel %d3,%sp@-                             
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  old_loc = old_parent_loc;                                           
  name = old + old_parent_pathlen;                                    
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   46a54:	2d43 fff8      	movel %d3,%fp@(-8)                          
                                                                      
  result = rtems_filesystem_evaluate_relative_path( name , strlen( name ),
   46a58:	4e92           	jsr %a2@                                    
   46a5a:	4297           	clrl %sp@                                   
   46a5c:	2f05           	movel %d5,%sp@-                             
   46a5e:	42a7           	clrl %sp@-                                  
   46a60:	2f00           	movel %d0,%sp@-                             
   46a62:	2f03           	movel %d3,%sp@-                             
   46a64:	4eb9 0004 54f4 	jsr 454f4 <rtems_filesystem_evaluate_relative_path>
                                                    0, &old_loc, false );
  if ( result != 0 ) {                                                
   46a6a:	4fef 0028      	lea %sp@(40),%sp                            
   46a6e:	4a80           	tstl %d0                                    
   46a70:	670a           	beqs 46a7c <_rename_r+0xc0>                 
    if ( free_old_parentloc )                                         
   46a72:	4a04           	tstb %d4                                    
   46a74:	6700 00cc      	beqw 46b42 <_rename_r+0x186>                
      rtems_filesystem_freenode( &old_parent_loc );                   
   46a78:	2f02           	movel %d2,%sp@-                             
   46a7a:	604e           	bras 46aca <_rename_r+0x10e>                
                                                                      
  /*                                                                  
   * Get the parent of the new node we are renaming to.               
   */                                                                 
                                                                      
  rtems_filesystem_get_start_loc( new, &i, &new_parent_loc );         
   46a7c:	260e           	movel %fp,%d3                               
   46a7e:	0683 ffff ffbc 	addil #-68,%d3                              
   46a84:	2f03           	movel %d3,%sp@-                             
   46a86:	486e fffc      	pea %fp@(-4)                                
   46a8a:	2f06           	movel %d6,%sp@-                             
   46a8c:	4eb9 0004 6d18 	jsr 46d18 <rtems_filesystem_get_start_loc>  
                                                                      
  result = (*new_parent_loc.ops->evalformake_h)( &new[i], &new_parent_loc, &name );
   46a92:	486e fff8      	pea %fp@(-8)                                
   46a96:	dcae fffc      	addl %fp@(-4),%d6                           
   46a9a:	2f03           	movel %d3,%sp@-                             
   46a9c:	206e ffc8      	moveal %fp@(-56),%a0                        
   46aa0:	2f06           	movel %d6,%sp@-                             
   46aa2:	2068 0004      	moveal %a0@(4),%a0                          
   46aa6:	4e90           	jsr %a0@                                    
  if ( result != 0 ) {                                                
   46aa8:	4fef 0018      	lea %sp@(24),%sp                            
   46aac:	4a80           	tstl %d0                                    
   46aae:	6722           	beqs 46ad2 <_rename_r+0x116>                
    rtems_filesystem_freenode( &new_parent_loc );                     
   46ab0:	2f03           	movel %d3,%sp@-                             
   46ab2:	45f9 0004 57b8 	lea 457b8 <rtems_filesystem_freenode>,%a2   
   46ab8:	4e92           	jsr %a2@                                    
    if ( free_old_parentloc )                                         
   46aba:	588f           	addql #4,%sp                                
   46abc:	4a04           	tstb %d4                                    
   46abe:	6706           	beqs 46ac6 <_rename_r+0x10a>                <== NEVER TAKEN
      rtems_filesystem_freenode( &old_parent_loc );                   
   46ac0:	2f02           	movel %d2,%sp@-                             
   46ac2:	4e92           	jsr %a2@                                    
   46ac4:	588f           	addql #4,%sp                                
    rtems_filesystem_freenode( &old_loc );                            
   46ac6:	486e ffe4      	pea %fp@(-28)                               
   46aca:	4eb9 0004 57b8 	jsr 457b8 <rtems_filesystem_freenode>       
   46ad0:	6036           	bras 46b08 <_rename_r+0x14c>                
  /*                                                                  
   *  Check to see if the caller is trying to rename across file system
   *  boundaries.                                                     
   */                                                                 
                                                                      
  if ( old_parent_loc.mt_entry != new_parent_loc.mt_entry ) {         
   46ad2:	202e ffcc      	movel %fp@(-52),%d0                         
   46ad6:	45f9 0004 57b8 	lea 457b8 <rtems_filesystem_freenode>,%a2   
   46adc:	b0ae ffe0      	cmpl %fp@(-32),%d0                          
   46ae0:	672a           	beqs 46b0c <_rename_r+0x150>                
    rtems_filesystem_freenode( &new_parent_loc );                     
   46ae2:	2f03           	movel %d3,%sp@-                             
   46ae4:	4e92           	jsr %a2@                                    
    if ( free_old_parentloc )                                         
   46ae6:	588f           	addql #4,%sp                                
   46ae8:	4a04           	tstb %d4                                    
   46aea:	6706           	beqs 46af2 <_rename_r+0x136>                
      rtems_filesystem_freenode( &old_parent_loc );                   
   46aec:	2f02           	movel %d2,%sp@-                             
   46aee:	4e92           	jsr %a2@                                    
   46af0:	588f           	addql #4,%sp                                
    rtems_filesystem_freenode( &old_loc );                            
   46af2:	486e ffe4      	pea %fp@(-28)                               
   46af6:	4eb9 0004 57b8 	jsr 457b8 <rtems_filesystem_freenode>       
    rtems_set_errno_and_return_minus_one( EXDEV );                    
   46afc:	4eb9 0005 02d0 	jsr 502d0 <__errno>                         
   46b02:	2040           	moveal %d0,%a0                              
   46b04:	7012           	moveq #18,%d0                               
   46b06:	2080           	movel %d0,%a0@                              
   46b08:	588f           	addql #4,%sp                                
   46b0a:	6036           	bras 46b42 <_rename_r+0x186>                
  }                                                                   
                                                                      
  result = (*new_parent_loc.ops->rename_h)( &old_parent_loc, &old_loc, &new_parent_loc, name );
   46b0c:	2f2e fff8      	movel %fp@(-8),%sp@-                        
   46b10:	206e ffc8      	moveal %fp@(-56),%a0                        
   46b14:	2f03           	movel %d3,%sp@-                             
   46b16:	2f05           	movel %d5,%sp@-                             
   46b18:	2f02           	movel %d2,%sp@-                             
   46b1a:	2068 0040      	moveal %a0@(64),%a0                         
   46b1e:	4e90           	jsr %a0@                                    
   46b20:	2a00           	movel %d0,%d5                               
                                                                      
  rtems_filesystem_freenode( &new_parent_loc );                       
   46b22:	2f03           	movel %d3,%sp@-                             
   46b24:	4e92           	jsr %a2@                                    
  if ( free_old_parentloc )                                           
   46b26:	4fef 0014      	lea %sp@(20),%sp                            
   46b2a:	4a04           	tstb %d4                                    
   46b2c:	6706           	beqs 46b34 <_rename_r+0x178>                
    rtems_filesystem_freenode( &old_parent_loc );                     
   46b2e:	2f02           	movel %d2,%sp@-                             
   46b30:	4e92           	jsr %a2@                                    
   46b32:	588f           	addql #4,%sp                                
  rtems_filesystem_freenode( &old_loc );                              
   46b34:	486e ffe4      	pea %fp@(-28)                               
   46b38:	4eb9 0004 57b8 	jsr 457b8 <rtems_filesystem_freenode>       
                                                                      
  return result;                                                      
   46b3e:	588f           	addql #4,%sp                                
   46b40:	6002           	bras 46b44 <_rename_r+0x188>                
  result = rtems_filesystem_evaluate_relative_path( name , strlen( name ),
                                                    0, &old_loc, false );
  if ( result != 0 ) {                                                
    if ( free_old_parentloc )                                         
      rtems_filesystem_freenode( &old_parent_loc );                   
    return -1;                                                        
   46b42:	7aff           	moveq #-1,%d5                               
  if ( free_old_parentloc )                                           
    rtems_filesystem_freenode( &old_parent_loc );                     
  rtems_filesystem_freenode( &old_loc );                              
                                                                      
  return result;                                                      
}                                                                     
   46b44:	2005           	movel %d5,%d0                               
   46b46:	4cee 047c ffa4 	moveml %fp@(-92),%d2-%d6/%a2                
   46b4c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000435b4 <_stat_r>: int _STAT_R_NAME( struct _reent *ptr __attribute__((unused)), const char *path, struct stat *buf ) {
   435b4:	4e56 0000      	linkw %fp,#0                                
   435b8:	202e 000c      	movel %fp@(12),%d0                          
  return _STAT_NAME( path, buf );                                     
   435bc:	2d6e 0010 000c 	movel %fp@(16),%fp@(12)                     
   435c2:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   435c6:	4e5e           	unlk %fp                                    
  struct _reent *ptr __attribute__((unused)),                         
  const char    *path,                                                
  struct stat   *buf                                                  
)                                                                     
{                                                                     
  return _STAT_NAME( path, buf );                                     
   435c8:	4ef9 0004 352c 	jmp 4352c <stat>                            
	...                                                                  
                                                                      

0004521c <_times_r>: clock_t _times_r( struct _reent *ptr __attribute__((unused)), struct tms *ptms ) {
   4521c:	4e56 0000      	linkw %fp,#0                                
  return _times( ptms );                                              
   45220:	2d6e 000c 0008 	movel %fp@(12),%fp@(8)                      
}                                                                     
   45226:	4e5e           	unlk %fp                                    
clock_t _times_r(                                                     
   struct _reent *ptr __attribute__((unused)),                        
   struct tms  *ptms                                                  
)                                                                     
{                                                                     
  return _times( ptms );                                              
   45228:	4ef9 0004 517c 	jmp 4517c <_times>                          
	...                                                                  
                                                                      

00045e78 <_unlink_r>: int _unlink_r( struct _reent *ptr __attribute__((unused)), const char *path ) {
   45e78:	4e56 0000      	linkw %fp,#0                                
  return unlink( path );                                              
   45e7c:	2d6e 000c 0008 	movel %fp@(12),%fp@(8)                      
}                                                                     
   45e82:	4e5e           	unlk %fp                                    
int _unlink_r(                                                        
  struct _reent *ptr __attribute__((unused)),                         
  const char    *path                                                 
)                                                                     
{                                                                     
  return unlink( path );                                              
   45e84:	4ef9 0004 5d54 	jmp 45d54 <unlink>                          
	...                                                                  
                                                                      

0005aa78 <_write_r>: struct _reent *ptr __attribute__((unused)), int fd, const void *buf, size_t nbytes ) {
   5aa78:	4e56 0000      	linkw %fp,#0                                
   5aa7c:	222e 0010      	movel %fp@(16),%d1                          
   5aa80:	202e 000c      	movel %fp@(12),%d0                          
  return write( fd, buf, nbytes );                                    
   5aa84:	2d6e 0014 0010 	movel %fp@(20),%fp@(16)                     
   5aa8a:	2d41 000c      	movel %d1,%fp@(12)                          
   5aa8e:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   5aa92:	4e5e           	unlk %fp                                    
  int            fd,                                                  
  const void    *buf,                                                 
  size_t         nbytes                                               
)                                                                     
{                                                                     
  return write( fd, buf, nbytes );                                    
   5aa94:	4ef9 0005 ab9c 	jmp 5ab9c <write>                           
	...                                                                  
                                                                      

00045f94 <aio_cancel>: * operation(s) cannot be canceled */ int aio_cancel(int fildes, struct aiocb *aiocbp) {
   45f94:	4e56 ffe8      	linkw %fp,#-24                              
   45f98:	48d7 3c0c      	moveml %d2-%d3/%a2-%a5,%sp@                 
  rtems_aio_request_chain *r_chain;                                   
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
   45f9c:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   45fa2:	49f9 0004 7078 	lea 47078 <pthread_mutex_lock>,%a4          
 *                          operation(s) cannot be canceled           
 */                                                                   
                                                                      
                                                                      
int aio_cancel(int fildes, struct aiocb  *aiocbp)                     
{                                                                     
   45fa8:	242e 0008      	movel %fp@(8),%d2                           
   45fac:	266e 000c      	moveal %fp@(12),%a3                         
  rtems_aio_request_chain *r_chain;                                   
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
   45fb0:	4e94           	jsr %a4@                                    
                                                                      
  if (fcntl (fildes, F_GETFD) < 0) {                                  
   45fb2:	4878 0001      	pea 1 <ADD>                                 
   45fb6:	2f02           	movel %d2,%sp@-                             
   45fb8:	4eb9 0004 c2b0 	jsr 4c2b0 <fcntl>                           
   45fbe:	4fef 000c      	lea %sp@(12),%sp                            
   45fc2:	4a80           	tstl %d0                                    
   45fc4:	6c1c           	bges 45fe2 <aio_cancel+0x4e>                
    pthread_mutex_unlock(&aio_request_queue.mutex);                   
   45fc6:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   45fcc:	4eb9 0004 7110 	jsr 47110 <pthread_mutex_unlock>            
    rtems_set_errno_and_return_minus_one (EBADF);                     
   45fd2:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   45fd8:	7209           	moveq #9,%d1                                
   45fda:	2040           	moveal %d0,%a0                              
   45fdc:	2081           	movel %d1,%a0@                              
   45fde:	6000 00f4      	braw 460d4 <aio_cancel+0x140>               
  }                                                                   
                                                                      
  /* if aiocbp is NULL remove all request for given file descriptor */
  if (aiocbp == NULL) {                                               
   45fe2:	4a8b           	tstl %a3                                    
   45fe4:	6600 00d0      	bnew 460b6 <aio_cancel+0x122>               
    AIO_printf ("Cancel all requests\n");                             
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
   45fe8:	42a7           	clrl %sp@-                                  
   45fea:	47f9 0004 634a 	lea 4634a <rtems_aio_search_fd>,%a3         
   45ff0:	2f02           	movel %d2,%sp@-                             
   45ff2:	4879 0006 13c0 	pea 613c0 <aio_request_queue+0x48>          
   45ff8:	4e93           	jsr %a3@                                    
    if (r_chain == NULL) {                                            
   45ffa:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
  /* if aiocbp is NULL remove all request for given file descriptor */
  if (aiocbp == NULL) {                                               
    AIO_printf ("Cancel all requests\n");                             
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
   45ffe:	2440           	moveal %d0,%a2                              
    if (r_chain == NULL) {                                            
   46000:	4a80           	tstl %d0                                    
   46002:	667a           	bnes 4607e <aio_cancel+0xea>                
      AIO_printf ("Request chain not on [WQ]\n");                     
                                                                      
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
   46004:	203c 0006 13d0 	movel #398288,%d0                           
   4600a:	b0b9 0006 13cc 	cmpl 613cc <aio_request_queue+0x54>,%d0     
   46010:	6700 0136      	beqw 46148 <aio_cancel+0x1b4>               
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
   46014:	42a7           	clrl %sp@-                                  
   46016:	45f9 0004 7110 	lea 47110 <pthread_mutex_unlock>,%a2        
   4601c:	2f02           	movel %d2,%sp@-                             
   4601e:	4879 0006 13cc 	pea 613cc <aio_request_queue+0x54>          
   46024:	4e93           	jsr %a3@                                    
        if (r_chain == NULL) {                                        
   46026:	4fef 000c      	lea %sp@(12),%sp                            
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
    if (r_chain == NULL) {                                            
      AIO_printf ("Request chain not on [WQ]\n");                     
                                                                      
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
   4602a:	2400           	movel %d0,%d2                               
        if (r_chain == NULL) {                                        
   4602c:	6612           	bnes 46040 <aio_cancel+0xac>                
          pthread_mutex_unlock(&aio_request_queue.mutex);             
   4602e:	4879 0006 1378 	pea 61378 <aio_request_queue>               
          return AIO_ALLDONE;                                         
   46034:	143c 0002      	moveb #2,%d2                                
      AIO_printf ("Request chain not on [WQ]\n");                     
                                                                      
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
        if (r_chain == NULL) {                                        
          pthread_mutex_unlock(&aio_request_queue.mutex);             
   46038:	4e92           	jsr %a2@                                    
          return AIO_ALLDONE;                                         
   4603a:	588f           	addql #4,%sp                                
   4603c:	6000 014c      	braw 4618a <aio_cancel+0x1f6>               
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
   46040:	2f00           	movel %d0,%sp@-                             
                                                                      
        AIO_printf ("Request chain on [IQ]\n");                       
                                                                      
        rtems_chain_extract (&r_chain->next_fd);                      
        rtems_aio_remove_fd (r_chain);                                
        pthread_mutex_destroy (&r_chain->mutex);                      
   46042:	2602           	movel %d2,%d3                               
   46044:	0683 0000 001c 	addil #28,%d3                               
   4604a:	4eb9 0004 88b8 	jsr 488b8 <_Chain_Extract>                  
        }                                                             
                                                                      
        AIO_printf ("Request chain on [IQ]\n");                       
                                                                      
        rtems_chain_extract (&r_chain->next_fd);                      
        rtems_aio_remove_fd (r_chain);                                
   46050:	2f02           	movel %d2,%sp@-                             
   46052:	4eb9 0004 669e 	jsr 4669e <rtems_aio_remove_fd>             
        pthread_mutex_destroy (&r_chain->mutex);                      
   46058:	2f03           	movel %d3,%sp@-                             
   4605a:	4eb9 0004 6e40 	jsr 46e40 <pthread_mutex_destroy>           
        pthread_cond_destroy (&r_chain->mutex);                       
   46060:	2f03           	movel %d3,%sp@-                             
   46062:	4eb9 0004 6b3c 	jsr 46b3c <pthread_cond_destroy>            
        free (r_chain);                                               
   46068:	2f02           	movel %d2,%sp@-                             
   4606a:	4eb9 0004 3434 	jsr 43434 <free>                            
                                                                      
        pthread_mutex_unlock (&aio_request_queue.mutex);              
   46070:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   46076:	4e92           	jsr %a2@                                    
        return AIO_CANCELED;                                          
   46078:	4fef 0018      	lea %sp@(24),%sp                            
   4607c:	6032           	bras 460b0 <aio_cancel+0x11c>               
      return AIO_ALLDONE;                                             
    }                                                                 
                                                                      
    AIO_printf ("Request chain on [WQ]\n");                           
                                                                      
    pthread_mutex_lock (&r_chain->mutex);                             
   4607e:	2400           	movel %d0,%d2                               
   46080:	0682 0000 001c 	addil #28,%d2                               
   46086:	2f02           	movel %d2,%sp@-                             
   46088:	4e94           	jsr %a4@                                    
   4608a:	2f0a           	movel %a2,%sp@-                             
   4608c:	4eb9 0004 88b8 	jsr 488b8 <_Chain_Extract>                  
    rtems_chain_extract (&r_chain->next_fd);                          
    rtems_aio_remove_fd (r_chain);                                    
   46092:	2f0a           	movel %a2,%sp@-                             
    pthread_mutex_unlock (&r_chain->mutex);                           
   46094:	45f9 0004 7110 	lea 47110 <pthread_mutex_unlock>,%a2        
                                                                      
    AIO_printf ("Request chain on [WQ]\n");                           
                                                                      
    pthread_mutex_lock (&r_chain->mutex);                             
    rtems_chain_extract (&r_chain->next_fd);                          
    rtems_aio_remove_fd (r_chain);                                    
   4609a:	4eb9 0004 669e 	jsr 4669e <rtems_aio_remove_fd>             
    pthread_mutex_unlock (&r_chain->mutex);                           
   460a0:	2f02           	movel %d2,%sp@-                             
   460a2:	4e92           	jsr %a2@                                    
    pthread_mutex_unlock (&aio_request_queue.mutex);                  
   460a4:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   460aa:	4e92           	jsr %a2@                                    
    return AIO_CANCELED;                                              
   460ac:	4fef 0014      	lea %sp@(20),%sp                            
   460b0:	4282           	clrl %d2                                    
   460b2:	6000 00d6      	braw 4618a <aio_cancel+0x1f6>               
  } else {                                                            
    AIO_printf ("Cancel request\n");                                  
                                                                      
    if (aiocbp->aio_fildes != fildes) {                               
   460b6:	2613           	movel %a3@,%d3                              
   460b8:	b483           	cmpl %d3,%d2                                
   460ba:	6720           	beqs 460dc <aio_cancel+0x148>               
      pthread_mutex_unlock (&aio_request_queue.mutex);                
   460bc:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   460c2:	4eb9 0004 7110 	jsr 47110 <pthread_mutex_unlock>            
      rtems_set_errno_and_return_minus_one (EINVAL);                  
   460c8:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   460ce:	2040           	moveal %d0,%a0                              
   460d0:	7016           	moveq #22,%d0                               
   460d2:	2080           	movel %d0,%a0@                              
   460d4:	588f           	addql #4,%sp                                
   460d6:	74ff           	moveq #-1,%d2                               
   460d8:	6000 00b0      	braw 4618a <aio_cancel+0x1f6>               
    }                                                                 
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
   460dc:	42a7           	clrl %sp@-                                  
   460de:	4bf9 0004 634a 	lea 4634a <rtems_aio_search_fd>,%a5         
   460e4:	2f03           	movel %d3,%sp@-                             
   460e6:	4879 0006 13c0 	pea 613c0 <aio_request_queue+0x48>          
   460ec:	4e95           	jsr %a5@                                    
    if (r_chain == NULL) {                                            
   460ee:	4fef 000c      	lea %sp@(12),%sp                            
    if (aiocbp->aio_fildes != fildes) {                               
      pthread_mutex_unlock (&aio_request_queue.mutex);                
      rtems_set_errno_and_return_minus_one (EINVAL);                  
    }                                                                 
                                                                      
    r_chain = rtems_aio_search_fd (&aio_request_queue.work_req, fildes, 0);
   460f2:	2440           	moveal %d0,%a2                              
    if (r_chain == NULL) {                                            
   460f4:	4a80           	tstl %d0                                    
   460f6:	6662           	bnes 4615a <aio_cancel+0x1c6>               
      if (!rtems_chain_is_empty (&aio_request_queue.idle_req)) {      
   460f8:	203c 0006 13d0 	movel #398288,%d0                           
   460fe:	b0b9 0006 13cc 	cmpl 613cc <aio_request_queue+0x54>,%d0     
   46104:	6742           	beqs 46148 <aio_cancel+0x1b4>               <== NEVER TAKEN
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
   46106:	42a7           	clrl %sp@-                                  
   46108:	45f9 0004 7110 	lea 47110 <pthread_mutex_unlock>,%a2        
   4610e:	2f03           	movel %d3,%sp@-                             
   46110:	4879 0006 13cc 	pea 613cc <aio_request_queue+0x54>          
   46116:	4e95           	jsr %a5@                                    
        if (r_chain == NULL) {                                        
   46118:	4fef 000c      	lea %sp@(12),%sp                            
   4611c:	4a80           	tstl %d0                                    
   4611e:	660a           	bnes 4612a <aio_cancel+0x196>               
          pthread_mutex_unlock (&aio_request_queue.mutex);            
   46120:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   46126:	4e92           	jsr %a2@                                    
   46128:	609e           	bras 460c8 <aio_cancel+0x134>               
          rtems_set_errno_and_return_minus_one (EINVAL);              
        }                                                             
                                                                      
        AIO_printf ("Request on [IQ]\n");                             
                                                                      
        result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);      
   4612a:	2f0b           	movel %a3,%sp@-                             
   4612c:	2040           	moveal %d0,%a0                              
   4612e:	4868 0008      	pea %a0@(8)                                 
   46132:	4eb9 0004 66f4 	jsr 466f4 <rtems_aio_remove_req>            
        pthread_mutex_unlock (&aio_request_queue.mutex);              
   46138:	4879 0006 1378 	pea 61378 <aio_request_queue>               
          rtems_set_errno_and_return_minus_one (EINVAL);              
        }                                                             
                                                                      
        AIO_printf ("Request on [IQ]\n");                             
                                                                      
        result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);      
   4613e:	2400           	movel %d0,%d2                               
        pthread_mutex_unlock (&aio_request_queue.mutex);              
   46140:	4e92           	jsr %a2@                                    
        return result;                                                
   46142:	4fef 000c      	lea %sp@(12),%sp                            
   46146:	6042           	bras 4618a <aio_cancel+0x1f6>               
      } else {                                                        
        pthread_mutex_unlock (&aio_request_queue.mutex);              
   46148:	4879 0006 1378 	pea 61378 <aio_request_queue>               <== NOT EXECUTED
        return AIO_ALLDONE;                                           
   4614e:	7402           	moveq #2,%d2                                <== NOT EXECUTED
                                                                      
        result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);      
        pthread_mutex_unlock (&aio_request_queue.mutex);              
        return result;                                                
      } else {                                                        
        pthread_mutex_unlock (&aio_request_queue.mutex);              
   46150:	4eb9 0004 7110 	jsr 47110 <pthread_mutex_unlock>            <== NOT EXECUTED
        return AIO_ALLDONE;                                           
   46156:	588f           	addql #4,%sp                                <== NOT EXECUTED
   46158:	6030           	bras 4618a <aio_cancel+0x1f6>               <== NOT EXECUTED
      }                                                               
    }                                                                 
      AIO_printf ("Request on [WQ]\n");                               
                                                                      
      pthread_mutex_lock (&r_chain->mutex);                           
   4615a:	2600           	movel %d0,%d3                               
   4615c:	0683 0000 001c 	addil #28,%d3                               
   46162:	2f03           	movel %d3,%sp@-                             
   46164:	4e94           	jsr %a4@                                    
      result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);        
   46166:	2f0b           	movel %a3,%sp@-                             
   46168:	486a 0008      	pea %a2@(8)                                 
      pthread_mutex_unlock (&r_chain->mutex);                         
   4616c:	45f9 0004 7110 	lea 47110 <pthread_mutex_unlock>,%a2        
      }                                                               
    }                                                                 
      AIO_printf ("Request on [WQ]\n");                               
                                                                      
      pthread_mutex_lock (&r_chain->mutex);                           
      result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);        
   46172:	4eb9 0004 66f4 	jsr 466f4 <rtems_aio_remove_req>            
   46178:	2400           	movel %d0,%d2                               
      pthread_mutex_unlock (&r_chain->mutex);                         
   4617a:	2f03           	movel %d3,%sp@-                             
   4617c:	4e92           	jsr %a2@                                    
      pthread_mutex_unlock (&aio_request_queue.mutex);                
   4617e:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   46184:	4e92           	jsr %a2@                                    
      return result;                                                  
   46186:	4fef 0014      	lea %sp@(20),%sp                            
  }                                                                   
  return AIO_ALLDONE;                                                 
}                                                                     
   4618a:	2002           	movel %d2,%d0                               
   4618c:	4cee 3c0c ffe8 	moveml %fp@(-24),%d2-%d3/%a2-%a5            
   46192:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000461a8 <aio_fsync>: ) { rtems_aio_request *req; int mode; if (op != O_SYNC)
   461a8:	203c 0000 2000 	movel #8192,%d0                             
                                                                      
int aio_fsync(                                                        
  int            op,                                                  
  struct aiocb  *aiocbp                                               
)                                                                     
{                                                                     
   461ae:	4e56 0000      	linkw %fp,#0                                
   461b2:	2f0a           	movel %a2,%sp@-                             
   461b4:	246e 000c      	moveal %fp@(12),%a2                         
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  if (op != O_SYNC)                                                   
   461b8:	b0ae 0008      	cmpl %fp@(8),%d0                            
   461bc:	671a           	beqs 461d8 <aio_fsync+0x30>                 
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
   461be:	7216           	moveq #22,%d1                               
   461c0:	70ff           	moveq #-1,%d0                               
   461c2:	2541 0030      	movel %d1,%a2@(48)                          
   461c6:	2540 0034      	movel %d0,%a2@(52)                          
   461ca:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   461d0:	2040           	moveal %d0,%a0                              
   461d2:	7016           	moveq #22,%d0                               
   461d4:	2080           	movel %d0,%a0@                              
   461d6:	607e           	bras 46256 <aio_fsync+0xae>                 
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
   461d8:	4878 0003      	pea 3 <DIVIDE>                              
   461dc:	2f12           	movel %a2@,%sp@-                            
   461de:	4eb9 0004 c2b0 	jsr 4c2b0 <fcntl>                           
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
   461e4:	508f           	addql #8,%sp                                
   461e6:	7203           	moveq #3,%d1                                
   461e8:	c081           	andl %d1,%d0                                
   461ea:	123c 0001      	moveb #1,%d1                                
   461ee:	5380           	subql #1,%d0                                
   461f0:	b280           	cmpl %d0,%d1                                
   461f2:	641a           	bccs 4620e <aio_fsync+0x66>                 
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
   461f4:	72ff           	moveq #-1,%d1                               
   461f6:	7009           	moveq #9,%d0                                
   461f8:	2541 0034      	movel %d1,%a2@(52)                          
   461fc:	2540 0030      	movel %d0,%a2@(48)                          
   46200:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   46206:	7209           	moveq #9,%d1                                
   46208:	2040           	moveal %d0,%a0                              
   4620a:	2081           	movel %d1,%a0@                              
   4620c:	6048           	bras 46256 <aio_fsync+0xae>                 
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
   4620e:	4878 0018      	pea 18 <OPER2+0x4>                          
   46212:	4eb9 0004 395c 	jsr 4395c <malloc>                          
  if (req == NULL)                                                    
   46218:	588f           	addql #4,%sp                                
   4621a:	4a80           	tstl %d0                                    
   4621c:	661c           	bnes 4623a <aio_fsync+0x92>                 <== ALWAYS TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
   4621e:	103c 000b      	moveb #11,%d0                               <== NOT EXECUTED
   46222:	72ff           	moveq #-1,%d1                               <== NOT EXECUTED
   46224:	2540 0030      	movel %d0,%a2@(48)                          <== NOT EXECUTED
   46228:	2541 0034      	movel %d1,%a2@(52)                          <== NOT EXECUTED
   4622c:	4eb9 0004 f150 	jsr 4f150 <__errno>                         <== NOT EXECUTED
   46232:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   46234:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   46236:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   46238:	601c           	bras 46256 <aio_fsync+0xae>                 <== NOT EXECUTED
                                                                      
  req->aiocbp = aiocbp;                                               
   4623a:	2040           	moveal %d0,%a0                              
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
   4623c:	7203           	moveq #3,%d1                                
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
   4623e:	214a 0014      	movel %a2,%a0@(20)                          
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
   46242:	2541 002c      	movel %d1,%a2@(44)                          
                                                                      
  return rtems_aio_enqueue (req);                                     
                                                                      
}                                                                     
   46246:	246e fffc      	moveal %fp@(-4),%a2                         
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
   4624a:	2d40 0008      	movel %d0,%fp@(8)                           
                                                                      
}                                                                     
   4624e:	4e5e           	unlk %fp                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
   46250:	4ef9 0004 6750 	jmp 46750 <rtems_aio_enqueue>               
                                                                      
}                                                                     
   46256:	246e fffc      	moveal %fp@(-4),%a2                         
   4625a:	70ff           	moveq #-1,%d0                               
   4625c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046950 <aio_read>: * 0 - otherwise */ int aio_read (struct aiocb *aiocbp) {
   46950:	4e56 0000      	linkw %fp,#0                                
   46954:	2f0a           	movel %a2,%sp@-                             
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
   46956:	4878 0003      	pea 3 <DIVIDE>                              
 *         0 - otherwise                                              
 */                                                                   
                                                                      
int                                                                   
aio_read (struct aiocb *aiocbp)                                       
{                                                                     
   4695a:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
   4695e:	2f12           	movel %a2@,%sp@-                            
   46960:	4eb9 0004 c2b0 	jsr 4c2b0 <fcntl>                           
  if (!(((mode & O_ACCMODE) == O_RDONLY) || ((mode & O_ACCMODE) == O_RDWR)))
   46966:	508f           	addql #8,%sp                                
   46968:	7203           	moveq #3,%d1                                
   4696a:	c081           	andl %d1,%d0                                
   4696c:	6722           	beqs 46990 <aio_read+0x40>                  <== NEVER TAKEN
   4696e:	123c 0002      	moveb #2,%d1                                
   46972:	b280           	cmpl %d0,%d1                                
   46974:	671a           	beqs 46990 <aio_read+0x40>                  
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
   46976:	7009           	moveq #9,%d0                                
   46978:	72ff           	moveq #-1,%d1                               
   4697a:	2540 0030      	movel %d0,%a2@(48)                          
   4697e:	2541 0034      	movel %d1,%a2@(52)                          
   46982:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   46988:	2040           	moveal %d0,%a0                              
   4698a:	7009           	moveq #9,%d0                                
   4698c:	2080           	movel %d0,%a0@                              
   4698e:	606e           	bras 469fe <aio_read+0xae>                  
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
   46990:	4aaa 0014      	tstl %a2@(20)                               
   46994:	6606           	bnes 4699c <aio_read+0x4c>                  
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
   46996:	4aaa 0004      	tstl %a2@(4)                                
   4699a:	6a1a           	bpls 469b6 <aio_read+0x66>                  
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
   4699c:	72ff           	moveq #-1,%d1                               
   4699e:	7016           	moveq #22,%d0                               
   469a0:	2541 0034      	movel %d1,%a2@(52)                          
   469a4:	2540 0030      	movel %d0,%a2@(48)                          
   469a8:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   469ae:	7216           	moveq #22,%d1                               
   469b0:	2040           	moveal %d0,%a0                              
   469b2:	2081           	movel %d1,%a0@                              
   469b4:	6048           	bras 469fe <aio_read+0xae>                  
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
   469b6:	4878 0018      	pea 18 <OPER2+0x4>                          
   469ba:	4eb9 0004 395c 	jsr 4395c <malloc>                          
  if (req == NULL)                                                    
   469c0:	588f           	addql #4,%sp                                
   469c2:	4a80           	tstl %d0                                    
   469c4:	661c           	bnes 469e2 <aio_read+0x92>                  <== ALWAYS TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
   469c6:	103c 000b      	moveb #11,%d0                               <== NOT EXECUTED
   469ca:	72ff           	moveq #-1,%d1                               <== NOT EXECUTED
   469cc:	2540 0030      	movel %d0,%a2@(48)                          <== NOT EXECUTED
   469d0:	2541 0034      	movel %d1,%a2@(52)                          <== NOT EXECUTED
   469d4:	4eb9 0004 f150 	jsr 4f150 <__errno>                         <== NOT EXECUTED
   469da:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   469dc:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   469de:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   469e0:	601c           	bras 469fe <aio_read+0xae>                  <== NOT EXECUTED
                                                                      
  req->aiocbp = aiocbp;                                               
   469e2:	2040           	moveal %d0,%a0                              
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
   469e4:	7201           	moveq #1,%d1                                
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
   469e6:	214a 0014      	movel %a2,%a0@(20)                          
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
   469ea:	2541 002c      	movel %d1,%a2@(44)                          
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
   469ee:	246e fffc      	moveal %fp@(-4),%a2                         
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
   469f2:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   469f6:	4e5e           	unlk %fp                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
   469f8:	4ef9 0004 6750 	jmp 46750 <rtems_aio_enqueue>               
}                                                                     
   469fe:	246e fffc      	moveal %fp@(-4),%a2                         
   46a02:	70ff           	moveq #-1,%d0                               
   46a04:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046a18 <aio_write>: * 0 - otherwise */ int aio_write (struct aiocb *aiocbp) {
   46a18:	4e56 0000      	linkw %fp,#0                                
   46a1c:	2f0a           	movel %a2,%sp@-                             
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
   46a1e:	4878 0003      	pea 3 <DIVIDE>                              
 *         0 - otherwise                                              
 */                                                                   
                                                                      
int                                                                   
aio_write (struct aiocb *aiocbp)                                      
{                                                                     
   46a22:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
   46a26:	2f12           	movel %a2@,%sp@-                            
   46a28:	4eb9 0004 c2b0 	jsr 4c2b0 <fcntl>                           
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
   46a2e:	508f           	addql #8,%sp                                
   46a30:	7203           	moveq #3,%d1                                
   46a32:	c081           	andl %d1,%d0                                
   46a34:	123c 0001      	moveb #1,%d1                                
   46a38:	5380           	subql #1,%d0                                
   46a3a:	b280           	cmpl %d0,%d1                                
   46a3c:	641a           	bccs 46a58 <aio_write+0x40>                 
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
   46a3e:	7009           	moveq #9,%d0                                
   46a40:	72ff           	moveq #-1,%d1                               
   46a42:	2540 0030      	movel %d0,%a2@(48)                          
   46a46:	2541 0034      	movel %d1,%a2@(52)                          
   46a4a:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   46a50:	2040           	moveal %d0,%a0                              
   46a52:	7009           	moveq #9,%d0                                
   46a54:	2080           	movel %d0,%a0@                              
   46a56:	606e           	bras 46ac6 <aio_write+0xae>                 
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
   46a58:	4aaa 0014      	tstl %a2@(20)                               
   46a5c:	6606           	bnes 46a64 <aio_write+0x4c>                 
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
   46a5e:	4aaa 0004      	tstl %a2@(4)                                
   46a62:	6a1a           	bpls 46a7e <aio_write+0x66>                 
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
   46a64:	72ff           	moveq #-1,%d1                               
   46a66:	7016           	moveq #22,%d0                               
   46a68:	2541 0034      	movel %d1,%a2@(52)                          
   46a6c:	2540 0030      	movel %d0,%a2@(48)                          
   46a70:	4eb9 0004 f150 	jsr 4f150 <__errno>                         
   46a76:	7216           	moveq #22,%d1                               
   46a78:	2040           	moveal %d0,%a0                              
   46a7a:	2081           	movel %d1,%a0@                              
   46a7c:	6048           	bras 46ac6 <aio_write+0xae>                 
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
   46a7e:	4878 0018      	pea 18 <OPER2+0x4>                          
   46a82:	4eb9 0004 395c 	jsr 4395c <malloc>                          
  if (req == NULL)                                                    
   46a88:	588f           	addql #4,%sp                                
   46a8a:	4a80           	tstl %d0                                    
   46a8c:	661c           	bnes 46aaa <aio_write+0x92>                 <== ALWAYS TAKEN
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
   46a8e:	103c 000b      	moveb #11,%d0                               <== NOT EXECUTED
   46a92:	72ff           	moveq #-1,%d1                               <== NOT EXECUTED
   46a94:	2540 0030      	movel %d0,%a2@(48)                          <== NOT EXECUTED
   46a98:	2541 0034      	movel %d1,%a2@(52)                          <== NOT EXECUTED
   46a9c:	4eb9 0004 f150 	jsr 4f150 <__errno>                         <== NOT EXECUTED
   46aa2:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   46aa4:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   46aa6:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   46aa8:	601c           	bras 46ac6 <aio_write+0xae>                 <== NOT EXECUTED
                                                                      
  req->aiocbp = aiocbp;                                               
   46aaa:	2040           	moveal %d0,%a0                              
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
   46aac:	7202           	moveq #2,%d1                                
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
   46aae:	214a 0014      	movel %a2,%a0@(20)                          
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
   46ab2:	2541 002c      	movel %d1,%a2@(44)                          
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
   46ab6:	246e fffc      	moveal %fp@(-4),%a2                         
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
                                                                      
  return rtems_aio_enqueue (req);                                     
   46aba:	2d40 0008      	movel %d0,%fp@(8)                           
}                                                                     
   46abe:	4e5e           	unlk %fp                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
                                                                      
  return rtems_aio_enqueue (req);                                     
   46ac0:	4ef9 0004 6750 	jmp 46750 <rtems_aio_enqueue>               
}                                                                     
   46ac6:	246e fffc      	moveal %fp@(-4),%a2                         
   46aca:	70ff           	moveq #-1,%d0                               
   46acc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000429a0 <chroot>: #include <rtems/seterr.h> int chroot( const char *pathname ) {
   429a0:	4e56 ffe0      	linkw %fp,#-32                              
  int                               result;                           
  rtems_filesystem_location_info_t  loc;                              
                                                                      
  /* an automatic call to new private env the first time */           
  if (rtems_current_user_env == &rtems_global_user_env) {             
   429a4:	203c 0005 f0c4 	movel #389316,%d0                           
#include <rtems/seterr.h>                                             
                                                                      
int chroot(                                                           
  const char *pathname                                                
)                                                                     
{                                                                     
   429aa:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
  int                               result;                           
  rtems_filesystem_location_info_t  loc;                              
                                                                      
  /* an automatic call to new private env the first time */           
  if (rtems_current_user_env == &rtems_global_user_env) {             
   429ae:	b0b9 0005 da4c 	cmpl 5da4c <rtems_current_user_env>,%d0     
   429b4:	6624           	bnes 429da <chroot+0x3a>                    
   rtems_libio_set_private_env(); /* try to set a new private env*/   
   429b6:	4eb9 0004 3dac 	jsr 43dac <rtems_libio_set_private_env>     
   if (rtems_current_user_env == &rtems_global_user_env) /* not ok */ 
   429bc:	41f9 0005 f0c4 	lea 5f0c4 <rtems_global_user_env>,%a0       
   429c2:	b1f9 0005 da4c 	cmpal 5da4c <rtems_current_user_env>,%a0    
   429c8:	6610           	bnes 429da <chroot+0x3a>                    
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
   429ca:	4eb9 0004 d27c 	jsr 4d27c <__errno>                         
   429d0:	2040           	moveal %d0,%a0                              
   429d2:	20bc 0000 0086 	movel #134,%a0@                             
   429d8:	6020           	bras 429fa <chroot+0x5a>                    
  }                                                                   
                                                                      
  result = chdir(pathname);                                           
   429da:	2f2e 0008      	movel %fp@(8),%sp@-                         
   429de:	4eb9 0004 a308 	jsr 4a308 <chdir>                           
  if (result) {                                                       
   429e4:	588f           	addql #4,%sp                                
   429e6:	4a80           	tstl %d0                                    
   429e8:	6714           	beqs 429fe <chroot+0x5e>                    
    rtems_set_errno_and_return_minus_one( errno );                    
   429ea:	45f9 0004 d27c 	lea 4d27c <__errno>,%a2                     
   429f0:	4e92           	jsr %a2@                                    
   429f2:	2640           	moveal %d0,%a3                              
   429f4:	4e92           	jsr %a2@                                    
   429f6:	2040           	moveal %d0,%a0                              
   429f8:	2690           	movel %a0@,%a3@                             
   429fa:	70ff           	moveq #-1,%d0                               
   429fc:	6056           	bras 42a54 <chroot+0xb4>                    
  }                                                                   
                                                                      
  /* clone the new root location */                                   
  if (rtems_filesystem_evaluate_path(".", 1, 0, &loc, 0)) {           
   429fe:	42a7           	clrl %sp@-                                  
   42a00:	240e           	movel %fp,%d2                               
   42a02:	0682 ffff ffec 	addil #-20,%d2                              
   42a08:	2f02           	movel %d2,%sp@-                             
   42a0a:	42a7           	clrl %sp@-                                  
   42a0c:	4878 0001      	pea 1 <ADD>                                 
   42a10:	4879 0005 cc12 	pea 5cc12 <dotdotname+0x4>                  
   42a16:	4eb9 0004 2d50 	jsr 42d50 <rtems_filesystem_evaluate_path>  
   42a1c:	4fef 0014      	lea %sp@(20),%sp                            
   42a20:	4a80           	tstl %d0                                    
   42a22:	66c6           	bnes 429ea <chroot+0x4a>                    <== NEVER TAKEN
    /* our cwd has changed, though - but there is no easy way of return :-( */
    rtems_set_errno_and_return_minus_one( errno );                    
  }                                                                   
  rtems_filesystem_freenode(&rtems_filesystem_root);                  
   42a24:	2079 0005 da4c 	moveal 5da4c <rtems_current_user_env>,%a0   
   42a2a:	41e8 0018      	lea %a0@(24),%a0                            
   42a2e:	2f08           	movel %a0,%sp@-                             
   42a30:	4eb9 0004 2e1c 	jsr 42e1c <rtems_filesystem_freenode>       
  rtems_filesystem_root = loc;                                        
   42a36:	4878 0014      	pea 14 <OPER2>                              
   42a3a:	2079 0005 da4c 	moveal 5da4c <rtems_current_user_env>,%a0   
   42a40:	41e8 0018      	lea %a0@(24),%a0                            
   42a44:	2f02           	movel %d2,%sp@-                             
   42a46:	2f08           	movel %a0,%sp@-                             
   42a48:	4eb9 0004 db28 	jsr 4db28 <memcpy>                          
                                                                      
  return 0;                                                           
   42a4e:	4fef 0010      	lea %sp@(16),%sp                            
   42a52:	4280           	clrl %d0                                    
}                                                                     
   42a54:	4cee 0c04 ffe0 	moveml %fp@(-32),%d2/%a2-%a3                
   42a5a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000456cc <clock_gettime>: int clock_gettime( clockid_t clock_id, struct timespec *tp ) {
   456cc:	4e56 0000      	linkw %fp,#0                                
   456d0:	222e 0008      	movel %fp@(8),%d1                           
   456d4:	202e 000c      	movel %fp@(12),%d0                          
   456d8:	2f02           	movel %d2,%sp@-                             
  if ( !tp )                                                          
   456da:	4a80           	tstl %d0                                    
   456dc:	6608           	bnes 456e6 <clock_gettime+0x1a>             
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   456de:	4eb9 0004 d94c 	jsr 4d94c <__errno>                         
   456e4:	6042           	bras 45728 <clock_gettime+0x5c>             
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
   456e6:	7401           	moveq #1,%d2                                
   456e8:	b481           	cmpl %d1,%d2                                
   456ea:	660a           	bnes 456f6 <clock_gettime+0x2a>             <== NEVER TAKEN
    _TOD_Get(tp);                                                     
   456ec:	2f00           	movel %d0,%sp@-                             
   456ee:	4eb9 0004 7334 	jsr 47334 <_TOD_Get>                        
   456f4:	6014           	bras 4570a <clock_gettime+0x3e>             
    return 0;                                                         
  }                                                                   
#ifdef CLOCK_MONOTONIC                                                
  if ( clock_id == CLOCK_MONOTONIC ) {                                
   456f6:	7404           	moveq #4,%d2                                
   456f8:	b481           	cmpl %d1,%d2                                
   456fa:	6706           	beqs 45702 <clock_gettime+0x36>             <== NEVER TAKEN
    return 0;                                                         
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_CPUTIME                                                 
  if ( clock_id == CLOCK_PROCESS_CPUTIME ) {                          
   456fc:	7402           	moveq #2,%d2                                
   456fe:	b481           	cmpl %d1,%d2                                
   45700:	660e           	bnes 45710 <clock_gettime+0x44>             
    _TOD_Get_uptime_as_timespec( tp );                                
   45702:	2f00           	movel %d0,%sp@-                             
   45704:	4eb9 0004 7398 	jsr 47398 <_TOD_Get_uptime_as_timespec>     
    return 0;                                                         
   4570a:	588f           	addql #4,%sp                                
   4570c:	4280           	clrl %d0                                    
   4570e:	6020           	bras 45730 <clock_gettime+0x64>             
   45710:	41f9 0004 d94c 	lea 4d94c <__errno>,%a0                     
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_THREAD_CPUTIME                                          
  if ( clock_id == CLOCK_THREAD_CPUTIME )                             
   45716:	7003           	moveq #3,%d0                                
   45718:	b081           	cmpl %d1,%d0                                
   4571a:	660a           	bnes 45726 <clock_gettime+0x5a>             
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
   4571c:	4e90           	jsr %a0@                                    
   4571e:	7258           	moveq #88,%d1                               
   45720:	2040           	moveal %d0,%a0                              
   45722:	2081           	movel %d1,%a0@                              
   45724:	6008           	bras 4572e <clock_gettime+0x62>             
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
   45726:	4e90           	jsr %a0@                                    
   45728:	2040           	moveal %d0,%a0                              
   4572a:	7016           	moveq #22,%d0                               
   4572c:	2080           	movel %d0,%a0@                              
   4572e:	70ff           	moveq #-1,%d0                               
                                                                      
  return 0;                                                           
}                                                                     
   45730:	242e fffc      	movel %fp@(-4),%d2                          
   45734:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045738 <clock_settime>: int clock_settime( clockid_t clock_id, const struct timespec *tp ) {
   45738:	4e56 0000      	linkw %fp,#0                                
   4573c:	222e 0008      	movel %fp@(8),%d1                           
   45740:	206e 000c      	moveal %fp@(12),%a0                         
  if ( !tp )                                                          
   45744:	4a88           	tstl %a0                                    
   45746:	6710           	beqs 45758 <clock_settime+0x20>             <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
   45748:	7001           	moveq #1,%d0                                
   4574a:	b081           	cmpl %d1,%d0                                
   4574c:	6634           	bnes 45782 <clock_settime+0x4a>             
    if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 )                 
   4574e:	203c 21da e4ff 	movel #567993599,%d0                        
   45754:	b090           	cmpl %a0@,%d0                               
   45756:	6508           	bcss 45760 <clock_settime+0x28>             
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   45758:	4eb9 0004 d94c 	jsr 4d94c <__errno>                         
   4575e:	6048           	bras 457a8 <clock_settime+0x70>             
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   45760:	2039 0006 0668 	movel 60668 <_Thread_Dispatch_disable_level>,%d0
   45766:	5280           	addql #1,%d0                                
   45768:	23c0 0006 0668 	movel %d0,60668 <_Thread_Dispatch_disable_level>
                                                                      
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
   4576e:	2f08           	movel %a0,%sp@-                             
   45770:	4eb9 0004 73f0 	jsr 473f0 <_TOD_Set>                        
    _Thread_Enable_dispatch();                                        
   45776:	4eb9 0004 883a 	jsr 4883a <_Thread_Enable_dispatch>         
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  return 0;                                                           
   4577c:	588f           	addql #4,%sp                                
   4577e:	4280           	clrl %d0                                    
   45780:	602e           	bras 457b0 <clock_settime+0x78>             
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
    _Thread_Enable_dispatch();                                        
  }                                                                   
#ifdef _POSIX_CPUTIME                                                 
  else if ( clock_id == CLOCK_PROCESS_CPUTIME )                       
   45782:	7002           	moveq #2,%d0                                
   45784:	b081           	cmpl %d1,%d0                                
   45786:	6608           	bnes 45790 <clock_settime+0x58>             
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
   45788:	4eb9 0004 d94c 	jsr 4d94c <__errno>                         
   4578e:	600e           	bras 4579e <clock_settime+0x66>             
   45790:	41f9 0004 d94c 	lea 4d94c <__errno>,%a0                     
#endif                                                                
#ifdef _POSIX_THREAD_CPUTIME                                          
  else if ( clock_id == CLOCK_THREAD_CPUTIME )                        
   45796:	7003           	moveq #3,%d0                                
   45798:	b081           	cmpl %d1,%d0                                
   4579a:	660a           	bnes 457a6 <clock_settime+0x6e>             
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
   4579c:	4e90           	jsr %a0@                                    
   4579e:	2040           	moveal %d0,%a0                              
   457a0:	7258           	moveq #88,%d1                               
   457a2:	2081           	movel %d1,%a0@                              
   457a4:	6008           	bras 457ae <clock_settime+0x76>             
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   457a6:	4e90           	jsr %a0@                                    
   457a8:	2040           	moveal %d0,%a0                              
   457aa:	7016           	moveq #22,%d0                               
   457ac:	2080           	movel %d0,%a0@                              
   457ae:	70ff           	moveq #-1,%d0                               
                                                                      
  return 0;                                                           
}                                                                     
   457b0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b218 <devFS_evaluate_path>: { int i; rtems_device_name_t *device_name_table; /* see if 'flags' is valid */ if ( !rtems_libio_is_valid_perms( flags ) )
   4b218:	70f8           	moveq #-8,%d0                               
  const char                        *pathname,                        
  size_t                             pathnamelen,                     
  int                                flags,                           
  rtems_filesystem_location_info_t  *pathloc                          
)                                                                     
{                                                                     
   4b21a:	4e56 ffe4      	linkw %fp,#-28                              
  int                   i;                                            
  rtems_device_name_t  *device_name_table;                            
                                                                      
  /* see if 'flags' is valid */                                       
  if ( !rtems_libio_is_valid_perms( flags ) )                         
   4b21e:	c0ae 0010      	andl %fp@(16),%d0                           
  const char                        *pathname,                        
  size_t                             pathnamelen,                     
  int                                flags,                           
  rtems_filesystem_location_info_t  *pathloc                          
)                                                                     
{                                                                     
   4b222:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   4b226:	282e 0008      	movel %fp@(8),%d4                           
   4b22a:	262e 000c      	movel %fp@(12),%d3                          
   4b22e:	246e 0014      	moveal %fp@(20),%a2                         
  int                   i;                                            
  rtems_device_name_t  *device_name_table;                            
                                                                      
  /* see if 'flags' is valid */                                       
  if ( !rtems_libio_is_valid_perms( flags ) )                         
   4b232:	4a80           	tstl %d0                                    
   4b234:	670e           	beqs 4b244 <devFS_evaluate_path+0x2c>       <== ALWAYS TAKEN
    rtems_set_errno_and_return_minus_one( EPERM );                    
   4b236:	4eb9 0004 d814 	jsr 4d814 <__errno>                         <== NOT EXECUTED
   4b23c:	7401           	moveq #1,%d2                                <== NOT EXECUTED
   4b23e:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4b240:	2082           	movel %d2,%a0@                              <== NOT EXECUTED
   4b242:	607a           	bras 4b2be <devFS_evaluate_path+0xa6>       <== NOT EXECUTED
                                                                      
  /* get the device name table */                                     
  device_name_table = (rtems_device_name_t *)pathloc->node_access;    
   4b244:	2652           	moveal %a2@,%a3                             
  if (!device_name_table)                                             
   4b246:	4a8b           	tstl %a3                                    
   4b248:	670a           	beqs 4b254 <devFS_evaluate_path+0x3c>       
   4b24a:	4282           	clrl %d2                                    
                                                                      
  for (i = 0; i < rtems_device_table_size; i++) {                     
    if (!device_name_table[i].device_name)                            
      continue;                                                       
                                                                      
    if (strncmp(pathname, device_name_table[i].device_name, pathnamelen) != 0)
   4b24c:	4bf9 0004 f14c 	lea 4f14c <strncmp>,%a5                     
   4b252:	6056           	bras 4b2aa <devFS_evaluate_path+0x92>       
    rtems_set_errno_and_return_minus_one( EPERM );                    
                                                                      
  /* get the device name table */                                     
  device_name_table = (rtems_device_name_t *)pathloc->node_access;    
  if (!device_name_table)                                             
    rtems_set_errno_and_return_minus_one( EFAULT );                   
   4b254:	4eb9 0004 d814 	jsr 4d814 <__errno>                         
   4b25a:	720e           	moveq #14,%d1                               
   4b25c:	2040           	moveal %d0,%a0                              
   4b25e:	2081           	movel %d1,%a0@                              
   4b260:	605c           	bras 4b2be <devFS_evaluate_path+0xa6>       
                                                                      
  for (i = 0; i < rtems_device_table_size; i++) {                     
    if (!device_name_table[i].device_name)                            
   4b262:	2853           	moveal %a3@,%a4                             
   4b264:	4a8c           	tstl %a4                                    
   4b266:	673c           	beqs 4b2a4 <devFS_evaluate_path+0x8c>       
      continue;                                                       
                                                                      
    if (strncmp(pathname, device_name_table[i].device_name, pathnamelen) != 0)
   4b268:	2f03           	movel %d3,%sp@-                             
   4b26a:	2f0c           	movel %a4,%sp@-                             
   4b26c:	2f04           	movel %d4,%sp@-                             
   4b26e:	4e95           	jsr %a5@                                    
   4b270:	4fef 000c      	lea %sp@(12),%sp                            
   4b274:	4a80           	tstl %d0                                    
   4b276:	662c           	bnes 4b2a4 <devFS_evaluate_path+0x8c>       
      continue;                                                       
                                                                      
    if (device_name_table[i].device_name[pathnamelen] != '\0')        
   4b278:	4a34 3800      	tstb %a4@(00000000,%d3:l)                   
   4b27c:	6626           	bnes 4b2a4 <devFS_evaluate_path+0x8c>       <== NEVER TAKEN
      continue;                                                       
                                                                      
    /* find the device, set proper values */                          
    pathloc->node_access = (void *)&device_name_table[i];             
    pathloc->handlers = &devFS_file_handlers;                         
    pathloc->ops = &devFS_ops;                                        
   4b27e:	41f9 0005 c51c 	lea 5c51c <devFS_ops>,%a0                   
   4b284:	2548 000c      	movel %a0,%a2@(12)                          
    pathloc->mt_entry = rtems_filesystem_root.mt_entry;               
   4b288:	2079 0005 c6b8 	moveal 5c6b8 <rtems_current_user_env>,%a0   
    if (device_name_table[i].device_name[pathnamelen] != '\0')        
      continue;                                                       
                                                                      
    /* find the device, set proper values */                          
    pathloc->node_access = (void *)&device_name_table[i];             
    pathloc->handlers = &devFS_file_handlers;                         
   4b28e:	203c 0005 c564 	movel #378212,%d0                           
    pathloc->ops = &devFS_ops;                                        
    pathloc->mt_entry = rtems_filesystem_root.mt_entry;               
   4b294:	2568 0028 0010 	movel %a0@(40),%a2@(16)                     
    if (device_name_table[i].device_name[pathnamelen] != '\0')        
      continue;                                                       
                                                                      
    /* find the device, set proper values */                          
    pathloc->node_access = (void *)&device_name_table[i];             
    pathloc->handlers = &devFS_file_handlers;                         
   4b29a:	2540 0008      	movel %d0,%a2@(8)                           
    pathloc->ops = &devFS_ops;                                        
    pathloc->mt_entry = rtems_filesystem_root.mt_entry;               
    return 0;                                                         
   4b29e:	4280           	clrl %d0                                    
                                                                      
    if (device_name_table[i].device_name[pathnamelen] != '\0')        
      continue;                                                       
                                                                      
    /* find the device, set proper values */                          
    pathloc->node_access = (void *)&device_name_table[i];             
   4b2a0:	248b           	movel %a3,%a2@                              
    pathloc->handlers = &devFS_file_handlers;                         
    pathloc->ops = &devFS_ops;                                        
    pathloc->mt_entry = rtems_filesystem_root.mt_entry;               
    return 0;                                                         
   4b2a2:	601c           	bras 4b2c0 <devFS_evaluate_path+0xa8>       
  /* get the device name table */                                     
  device_name_table = (rtems_device_name_t *)pathloc->node_access;    
  if (!device_name_table)                                             
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  for (i = 0; i < rtems_device_table_size; i++) {                     
   4b2a4:	5282           	addql #1,%d2                                
   4b2a6:	47eb 0014      	lea %a3@(20),%a3                            
   4b2aa:	b4b9 0005 c3e8 	cmpl 5c3e8 <rtems_device_table_size>,%d2    
   4b2b0:	65b0           	bcss 4b262 <devFS_evaluate_path+0x4a>       
    pathloc->mt_entry = rtems_filesystem_root.mt_entry;               
    return 0;                                                         
  }                                                                   
                                                                      
  /* no such file or directory */                                     
  rtems_set_errno_and_return_minus_one( ENOENT );                     
   4b2b2:	4eb9 0004 d814 	jsr 4d814 <__errno>                         
   4b2b8:	2040           	moveal %d0,%a0                              
   4b2ba:	7002           	moveq #2,%d0                                
   4b2bc:	2080           	movel %d0,%a0@                              
   4b2be:	70ff           	moveq #-1,%d0                               
}                                                                     
   4b2c0:	4cee 3c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a5            
   4b2c6:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000449d0 <devFS_mknod>: * condition and do not create the '/dev' and the 'path' * actually passed in is 'dev', not '/dev'. Just return 0 to * indicate we are OK. */ if ((path[0] == 'd') && (path[1] == 'e') &&
   449d0:	7264           	moveq #100,%d1                              
  const char                        *path,                            
  mode_t                             mode,                            
  dev_t                              dev,                             
  rtems_filesystem_location_info_t  *pathloc                          
)                                                                     
{                                                                     
   449d2:	4e56 ffdc      	linkw %fp,#-36                              
   449d6:	48d7 3c7c      	moveml %d2-%d6/%a2-%a5,%sp@                 
   449da:	246e 0008      	moveal %fp@(8),%a2                          
   * condition and do not create the '/dev' and the 'path'            
   * actually passed in is 'dev', not '/dev'. Just return 0 to        
   * indicate we are OK.                                              
   */                                                                 
                                                                      
  if ((path[0] == 'd') && (path[1] == 'e') &&                         
   449de:	1012           	moveb %a2@,%d0                              
  const char                        *path,                            
  mode_t                             mode,                            
  dev_t                              dev,                             
  rtems_filesystem_location_info_t  *pathloc                          
)                                                                     
{                                                                     
   449e0:	282e 000c      	movel %fp@(12),%d4                          
   * condition and do not create the '/dev' and the 'path'            
   * actually passed in is 'dev', not '/dev'. Just return 0 to        
   * indicate we are OK.                                              
   */                                                                 
                                                                      
  if ((path[0] == 'd') && (path[1] == 'e') &&                         
   449e4:	49c0           	extbl %d0                                   
  const char                        *path,                            
  mode_t                             mode,                            
  dev_t                              dev,                             
  rtems_filesystem_location_info_t  *pathloc                          
)                                                                     
{                                                                     
   449e6:	2c2e 0010      	movel %fp@(16),%d6                          
   449ea:	2a2e 0014      	movel %fp@(20),%d5                          
   * condition and do not create the '/dev' and the 'path'            
   * actually passed in is 'dev', not '/dev'. Just return 0 to        
   * indicate we are OK.                                              
   */                                                                 
                                                                      
  if ((path[0] == 'd') && (path[1] == 'e') &&                         
   449ee:	b280           	cmpl %d0,%d1                                
   449f0:	6624           	bnes 44a16 <devFS_mknod+0x46>               
   449f2:	123c 0065      	moveb #101,%d1                              
   449f6:	102a 0001      	moveb %a2@(1),%d0                           
   449fa:	49c0           	extbl %d0                                   
   449fc:	b280           	cmpl %d0,%d1                                
   449fe:	6616           	bnes 44a16 <devFS_mknod+0x46>               <== NEVER TAKEN
   44a00:	123c 0076      	moveb #118,%d1                              
   44a04:	102a 0002      	moveb %a2@(2),%d0                           
   44a08:	49c0           	extbl %d0                                   
   44a0a:	b280           	cmpl %d0,%d1                                
   44a0c:	6608           	bnes 44a16 <devFS_mknod+0x46>               <== NEVER TAKEN
      (path[2] == 'v') && (path[3] == '\0'))                          
   44a0e:	4a2a 0003      	tstb %a2@(3)                                
   44a12:	6700 00c8      	beqw 44adc <devFS_mknod+0x10c>              
      return 0;                                                       
                                                                      
  /* must be a character device or a block device */                  
  if (!S_ISBLK(mode) && !S_ISCHR(mode))                               
   44a16:	2004           	movel %d4,%d0                               
   44a18:	0280 0000 f000 	andil #61440,%d0                            
   44a1e:	0c80 0000 6000 	cmpil #24576,%d0                            
   44a24:	6716           	beqs 44a3c <devFS_mknod+0x6c>               
   44a26:	0c80 0000 2000 	cmpil #8192,%d0                             
   44a2c:	670e           	beqs 44a3c <devFS_mknod+0x6c>               
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   44a2e:	4eb9 0004 d814 	jsr 4d814 <__errno>                         
   44a34:	7616           	moveq #22,%d3                               
   44a36:	2040           	moveal %d0,%a0                              
   44a38:	2083           	movel %d3,%a0@                              
   44a3a:	6066           	bras 44aa2 <devFS_mknod+0xd2>               
  else                                                                
    rtems_filesystem_split_dev_t(dev, major, minor);                  
                                                                      
  /* Find an empty slot in device name table */                       
  device_name_table = (rtems_device_name_t *)pathloc->node_access;    
   44a3c:	206e 0018      	moveal %fp@(24),%a0                         
   44a40:	2650           	moveal %a0@,%a3                             
  if (!device_name_table)                                             
   44a42:	4a8b           	tstl %a3                                    
   44a44:	670e           	beqs 44a54 <devFS_mknod+0x84>               
   44a46:	284b           	moveal %a3,%a4                              
   44a48:	74ff           	moveq #-1,%d2                               
   44a4a:	4283           	clrl %d3                                    
                                                                      
  for (slot = -1, i = 0; i < rtems_device_table_size; i++){           
      if (device_name_table[i].device_name == NULL)                   
          slot = i;                                                   
      else                                                            
          if (strcmp(path, device_name_table[i].device_name) == 0)    
   44a4c:	4bf9 0004 ec58 	lea 4ec58 <strcmp>,%a5                      
   44a52:	6034           	bras 44a88 <devFS_mknod+0xb8>               
    rtems_filesystem_split_dev_t(dev, major, minor);                  
                                                                      
  /* Find an empty slot in device name table */                       
  device_name_table = (rtems_device_name_t *)pathloc->node_access;    
  if (!device_name_table)                                             
    rtems_set_errno_and_return_minus_one( EFAULT );                   
   44a54:	4eb9 0004 d814 	jsr 4d814 <__errno>                         
   44a5a:	740e           	moveq #14,%d2                               
   44a5c:	2240           	moveal %d0,%a1                              
   44a5e:	2282           	movel %d2,%a1@                              
   44a60:	6040           	bras 44aa2 <devFS_mknod+0xd2>               
                                                                      
  for (slot = -1, i = 0; i < rtems_device_table_size; i++){           
      if (device_name_table[i].device_name == NULL)                   
   44a62:	2014           	movel %a4@,%d0                              
   44a64:	671a           	beqs 44a80 <devFS_mknod+0xb0>               
          slot = i;                                                   
      else                                                            
          if (strcmp(path, device_name_table[i].device_name) == 0)    
   44a66:	2f00           	movel %d0,%sp@-                             
   44a68:	2f0a           	movel %a2,%sp@-                             
   44a6a:	4e95           	jsr %a5@                                    
   44a6c:	508f           	addql #8,%sp                                
   44a6e:	4a80           	tstl %d0                                    
   44a70:	6610           	bnes 44a82 <devFS_mknod+0xb2>               
              rtems_set_errno_and_return_minus_one( EEXIST );         
   44a72:	4eb9 0004 d814 	jsr 4d814 <__errno>                         
   44a78:	7211           	moveq #17,%d1                               
   44a7a:	2040           	moveal %d0,%a0                              
   44a7c:	2081           	movel %d1,%a0@                              
   44a7e:	6022           	bras 44aa2 <devFS_mknod+0xd2>               
  if (!device_name_table)                                             
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  for (slot = -1, i = 0; i < rtems_device_table_size; i++){           
      if (device_name_table[i].device_name == NULL)                   
          slot = i;                                                   
   44a80:	2403           	movel %d3,%d2                               
  /* Find an empty slot in device name table */                       
  device_name_table = (rtems_device_name_t *)pathloc->node_access;    
  if (!device_name_table)                                             
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  for (slot = -1, i = 0; i < rtems_device_table_size; i++){           
   44a82:	5283           	addql #1,%d3                                
   44a84:	49ec 0014      	lea %a4@(20),%a4                            
   44a88:	b6b9 0005 c3e8 	cmpl 5c3e8 <rtems_device_table_size>,%d3    
   44a8e:	65d2           	bcss 44a62 <devFS_mknod+0x92>               
      else                                                            
          if (strcmp(path, device_name_table[i].device_name) == 0)    
              rtems_set_errno_and_return_minus_one( EEXIST );         
  }                                                                   
                                                                      
  if (slot == -1)                                                     
   44a90:	70ff           	moveq #-1,%d0                               
   44a92:	b082           	cmpl %d2,%d0                                
   44a94:	6610           	bnes 44aa6 <devFS_mknod+0xd6>               
      rtems_set_errno_and_return_minus_one( ENOMEM );                 
   44a96:	4eb9 0004 d814 	jsr 4d814 <__errno>                         
   44a9c:	2040           	moveal %d0,%a0                              
   44a9e:	700c           	moveq #12,%d0                               
   44aa0:	2080           	movel %d0,%a0@                              
   44aa2:	70ff           	moveq #-1,%d0                               
   44aa4:	6038           	bras 44ade <devFS_mknod+0x10e>              
                                                                      
  _ISR_Disable(level);                                                
   44aa6:	203c 0000 0700 	movel #1792,%d0                             
   44aac:	40c3           	movew %sr,%d3                               
   44aae:	8083           	orl %d3,%d0                                 
   44ab0:	46c0           	movew %d0,%sr                               
  device_name_table[slot].device_name  = (char *)path;                
   44ab2:	2002           	movel %d2,%d0                               
   44ab4:	e988           	lsll #4,%d0                                 
   44ab6:	2240           	moveal %d0,%a1                              
   44ab8:	41f1 2c00      	lea %a1@(00000000,%d2:l:4),%a0              
   44abc:	d7c8           	addal %a0,%a3                               
   44abe:	268a           	movel %a2,%a3@                              
  device_name_table[slot].device_name_length = strlen(path);          
   44ac0:	2f0a           	movel %a2,%sp@-                             
   44ac2:	4eb9 0004 f134 	jsr 4f134 <strlen>                          
   44ac8:	588f           	addql #4,%sp                                
   44aca:	2740 0004      	movel %d0,%a3@(4)                           
  device_name_table[slot].major = major;                              
   44ace:	2746 0008      	movel %d6,%a3@(8)                           
  device_name_table[slot].minor = minor;                              
   44ad2:	2745 000c      	movel %d5,%a3@(12)                          
  device_name_table[slot].mode  = mode;                               
   44ad6:	2744 0010      	movel %d4,%a3@(16)                          
  _ISR_Enable(level);                                                 
   44ada:	46c3           	movew %d3,%sr                               
   * indicate we are OK.                                              
   */                                                                 
                                                                      
  if ((path[0] == 'd') && (path[1] == 'e') &&                         
      (path[2] == 'v') && (path[3] == '\0'))                          
      return 0;                                                       
   44adc:	4280           	clrl %d0                                    
  device_name_table[slot].minor = minor;                              
  device_name_table[slot].mode  = mode;                               
  _ISR_Enable(level);                                                 
                                                                      
  return 0;                                                           
}                                                                     
   44ade:	4cee 3c7c ffdc 	moveml %fp@(-36),%d2-%d6/%a2-%a5            
   44ae4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000437c0 <drainOutput>: /* * Drain output queue */ static void drainOutput (struct rtems_termios_tty *tty) {
   437c0:	4e56 fff4      	linkw %fp,#-12                              
   437c4:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   437c8:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_interrupt_level level;                                        
  rtems_status_code sc;                                               
                                                                      
  if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) {           
   437cc:	4aaa 00b4      	tstl %a2@(180)                              
   437d0:	674e           	beqs 43820 <drainOutput+0x60>               
    rtems_interrupt_disable (level);                                  
   437d2:	243c 0000 0700 	movel #1792,%d2                             
   437d8:	2202           	movel %d2,%d1                               
   437da:	40c0           	movew %sr,%d0                               
   437dc:	8280           	orl %d0,%d1                                 
   437de:	46c1           	movew %d1,%sr                               
    while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) {              
      tty->rawOutBufState = rob_wait;                                 
      rtems_interrupt_enable (level);                                 
      sc = rtems_semaphore_obtain(                                    
   437e0:	47f9 0004 5854 	lea 45854 <rtems_semaphore_obtain>,%a3      
  rtems_interrupt_level level;                                        
  rtems_status_code sc;                                               
                                                                      
  if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) {           
    rtems_interrupt_disable (level);                                  
    while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) {              
   437e6:	602a           	bras 43812 <drainOutput+0x52>               
      tty->rawOutBufState = rob_wait;                                 
   437e8:	7202           	moveq #2,%d1                                
   437ea:	2541 0094      	movel %d1,%a2@(148)                         
      rtems_interrupt_enable (level);                                 
   437ee:	46c0           	movew %d0,%sr                               
      sc = rtems_semaphore_obtain(                                    
   437f0:	42a7           	clrl %sp@-                                  
   437f2:	42a7           	clrl %sp@-                                  
   437f4:	2f2a 008c      	movel %a2@(140),%sp@-                       
   437f8:	4e93           	jsr %a3@                                    
        tty->rawOutBuf.Semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT);      
      if (sc != RTEMS_SUCCESSFUL)                                     
   437fa:	4fef 000c      	lea %sp@(12),%sp                            
   437fe:	4a80           	tstl %d0                                    
   43800:	6708           	beqs 4380a <drainOutput+0x4a>               <== ALWAYS TAKEN
        rtems_fatal_error_occurred (sc);                              
   43802:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   43804:	4eb9 0004 5efc 	jsr 45efc <rtems_fatal_error_occurred>      <== NOT EXECUTED
      rtems_interrupt_disable (level);                                
   4380a:	2202           	movel %d2,%d1                               
   4380c:	40c0           	movew %sr,%d0                               
   4380e:	8280           	orl %d0,%d1                                 
   43810:	46c1           	movew %d1,%sr                               
  rtems_interrupt_level level;                                        
  rtems_status_code sc;                                               
                                                                      
  if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) {           
    rtems_interrupt_disable (level);                                  
    while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) {              
   43812:	206a 0084      	moveal %a2@(132),%a0                        
   43816:	222a 0080      	movel %a2@(128),%d1                         
   4381a:	b288           	cmpl %a0,%d1                                
   4381c:	66ca           	bnes 437e8 <drainOutput+0x28>               
        tty->rawOutBuf.Semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT);      
      if (sc != RTEMS_SUCCESSFUL)                                     
        rtems_fatal_error_occurred (sc);                              
      rtems_interrupt_disable (level);                                
    }                                                                 
    rtems_interrupt_enable (level);                                   
   4381e:	46c0           	movew %d0,%sr                               
  }                                                                   
}                                                                     
   43820:	4cee 0c04 fff4 	moveml %fp@(-12),%d2/%a2-%a3                
   43826:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000442f4 <echo>: /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) {
   442f4:	4e56 fff0      	linkw %fp,#-16                              
   442f8:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   442fc:	246e 000c      	moveal %fp@(12),%a2                         
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
   44300:	202a 003c      	movel %a2@(60),%d0                          
/*                                                                    
 * Echo a typed character                                             
 */                                                                   
static void                                                           
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
   44304:	242e 0008      	movel %fp@(8),%d2                           
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
   44308:	0280 0000 0200 	andil #512,%d0                              
/*                                                                    
 * Echo a typed character                                             
 */                                                                   
static void                                                           
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
   4430e:	1202           	moveb %d2,%d1                               
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
   44310:	4a80           	tstl %d0                                    
   44312:	674e           	beqs 44362 <echo+0x6e>                      <== NEVER TAKEN
       iscntrl(c) && (c != '\t') && (c != '\n')) {                    
   44314:	4280           	clrl %d0                                    
   44316:	1002           	moveb %d2,%d0                               
   44318:	2079 0005 d308 	moveal 5d308 <__ctype_ptr__>,%a0            
   4431e:	1630 0801      	moveb %a0@(00000001,%d0:l),%d3              
   44322:	49c3           	extbl %d3                                   
 * Echo a typed character                                             
 */                                                                   
static void                                                           
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
   44324:	0803 0005      	btst #5,%d3                                 
   44328:	6738           	beqs 44362 <echo+0x6e>                      
       iscntrl(c) && (c != '\t') && (c != '\n')) {                    
   4432a:	7609           	moveq #9,%d3                                
   4432c:	b680           	cmpl %d0,%d3                                
   4432e:	6732           	beqs 44362 <echo+0x6e>                      
   44330:	163c 000a      	moveb #10,%d3                               
   44334:	b680           	cmpl %d0,%d3                                
   44336:	672a           	beqs 44362 <echo+0x6e>                      
    char echobuf[2];                                                  
                                                                      
    echobuf[0] = '^';                                                 
    echobuf[1] = c ^ 0x40;                                            
    rtems_termios_puts (echobuf, 2, tty);                             
   44338:	2f0a           	movel %a2,%sp@-                             
   4433a:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
       iscntrl(c) && (c != '\t') && (c != '\n')) {                    
    char echobuf[2];                                                  
                                                                      
    echobuf[0] = '^';                                                 
    echobuf[1] = c ^ 0x40;                                            
   4433e:	163c 0040      	moveb #64,%d3                               
    rtems_termios_puts (echobuf, 2, tty);                             
   44342:	486e fffe      	pea %fp@(-2)                                
{                                                                     
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
       iscntrl(c) && (c != '\t') && (c != '\n')) {                    
    char echobuf[2];                                                  
                                                                      
    echobuf[0] = '^';                                                 
   44346:	705e           	moveq #94,%d0                               
    echobuf[1] = c ^ 0x40;                                            
   44348:	b782           	eorl %d3,%d2                                
{                                                                     
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
       iscntrl(c) && (c != '\t') && (c != '\n')) {                    
    char echobuf[2];                                                  
                                                                      
    echobuf[0] = '^';                                                 
   4434a:	1d40 fffe      	moveb %d0,%fp@(-2)                          
    echobuf[1] = c ^ 0x40;                                            
   4434e:	1d42 ffff      	moveb %d2,%fp@(-1)                          
    rtems_termios_puts (echobuf, 2, tty);                             
   44352:	4eb9 0004 40b2 	jsr 440b2 <rtems_termios_puts>              
 */                                                                   
static void                                                           
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
       iscntrl(c) && (c != '\t') && (c != '\n')) {                    
   44358:	4fef 000c      	lea %sp@(12),%sp                            
    char echobuf[2];                                                  
                                                                      
    echobuf[0] = '^';                                                 
    echobuf[1] = c ^ 0x40;                                            
    rtems_termios_puts (echobuf, 2, tty);                             
    tty->column += 2;                                                 
   4435c:	54aa 0028      	addql #2,%a2@(40)                           
 */                                                                   
static void                                                           
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
  if ((tty->termios.c_lflag & ECHOCTL) &&                             
       iscntrl(c) && (c != '\t') && (c != '\n')) {                    
   44360:	6010           	bras 44372 <echo+0x7e>                      
    echobuf[0] = '^';                                                 
    echobuf[1] = c ^ 0x40;                                            
    rtems_termios_puts (echobuf, 2, tty);                             
    tty->column += 2;                                                 
  } else {                                                            
    oproc (c, tty);                                                   
   44362:	2f0a           	movel %a2,%sp@-                             
   44364:	0281 0000 00ff 	andil #255,%d1                              
   4436a:	2f01           	movel %d1,%sp@-                             
   4436c:	4eba fe3c      	jsr %pc@(441aa <oproc>)                     
   44370:	508f           	addql #8,%sp                                
  }                                                                   
}                                                                     
   44372:	4cee 040c fff0 	moveml %fp@(-16),%d2-%d3/%a2                
   44378:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004381e <endgrent>: void endgrent(void) {
   4381e:	4e56 0000      	linkw %fp,#0                                
  if (group_fp != NULL)                                               
   43822:	2039 0005 f990 	movel 5f990 <group_fp>,%d0                  
   43828:	670a           	beqs 43834 <endgrent+0x16>                  <== NEVER TAKEN
    fclose(group_fp);                                                 
   4382a:	2f00           	movel %d0,%sp@-                             
   4382c:	4eb9 0004 d97a 	jsr 4d97a <fclose>                          
   43832:	588f           	addql #4,%sp                                
}                                                                     
   43834:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000436d8 <endpwent>: void endpwent(void) {
   436d8:	4e56 0000      	linkw %fp,#0                                
  if (passwd_fp != NULL)                                              
   436dc:	2039 0005 fa6a 	movel 5fa6a <passwd_fp>,%d0                 
   436e2:	670a           	beqs 436ee <endpwent+0x16>                  <== NEVER TAKEN
    fclose(passwd_fp);                                                
   436e4:	2f00           	movel %d0,%sp@-                             
   436e6:	4eb9 0004 d97a 	jsr 4d97a <fclose>                          
   436ec:	588f           	addql #4,%sp                                
}                                                                     
   436ee:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004437c <erase>: * FIXME: Needs support for WERASE and ECHOPRT. * FIXME: Some of the tests should check for IEXTEN, too. */ static void erase (struct rtems_termios_tty *tty, int lineFlag) {
   4437c:	4e56 ffe4      	linkw %fp,#-28                              
   44380:	48d7 1c3c      	moveml %d2-%d5/%a2-%a4,%sp@                 
   44384:	246e 0008      	moveal %fp@(8),%a2                          
   44388:	262e 000c      	movel %fp@(12),%d3                          
  if (tty->ccount == 0)                                               
   4438c:	4aaa 0020      	tstl %a2@(32)                               
   44390:	6700 0172      	beqw 44504 <erase+0x188>                    
    return;                                                           
  if (lineFlag) {                                                     
   44394:	4a83           	tstl %d3                                    
   44396:	6700 015c      	beqw 444f4 <erase+0x178>                    
    if (!(tty->termios.c_lflag & ECHO)) {                             
   4439a:	202a 003c      	movel %a2@(60),%d0                          
   4439e:	44c0           	movew %d0,%ccr                              
   443a0:	6b08           	bmis 443aa <erase+0x2e>                     <== ALWAYS TAKEN
      tty->ccount = 0;                                                
   443a2:	42aa 0020      	clrl %a2@(32)                               <== NOT EXECUTED
      return;                                                         
   443a6:	6000 015c      	braw 44504 <erase+0x188>                    <== NOT EXECUTED
    }                                                                 
    if (!(tty->termios.c_lflag & ECHOE)) {                            
   443aa:	0800 0004      	btst #4,%d0                                 
   443ae:	6600 0144      	bnew 444f4 <erase+0x178>                    
      tty->ccount = 0;                                                
   443b2:	42aa 0020      	clrl %a2@(32)                               <== NOT EXECUTED
      echo (tty->termios.c_cc[VKILL], tty);                           
   443b6:	4280           	clrl %d0                                    <== NOT EXECUTED
   443b8:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   443ba:	102a 0044      	moveb %a2@(68),%d0                          <== NOT EXECUTED
   443be:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   443c0:	4eba ff32      	jsr %pc@(442f4 <echo>)                      <== NOT EXECUTED
      if (tty->termios.c_lflag & ECHOK)                               
   443c4:	508f           	addql #8,%sp                                <== NOT EXECUTED
   443c6:	7020           	moveq #32,%d0                               <== NOT EXECUTED
   443c8:	c0aa 003c      	andl %a2@(60),%d0                           <== NOT EXECUTED
   443cc:	6700 0136      	beqw 44504 <erase+0x188>                    <== NOT EXECUTED
        echo ('\n', tty);                                             
   443d0:	2d4a 000c      	movel %a2,%fp@(12)                          <== NOT EXECUTED
   443d4:	700a           	moveq #10,%d0                               <== NOT EXECUTED
   443d6:	602c           	bras 44404 <erase+0x88>                     <== NOT EXECUTED
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  while (tty->ccount) {                                               
    unsigned char c = tty->cbuf[--tty->ccount];                       
   443d8:	5388           	subql #1,%a0                                
   443da:	286a 001c      	moveal %a2@(28),%a4                         
                                                                      
    if (tty->termios.c_lflag & ECHO) {                                
   443de:	202a 003c      	movel %a2@(60),%d0                          
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  while (tty->ccount) {                                               
    unsigned char c = tty->cbuf[--tty->ccount];                       
   443e2:	2548 0020      	movel %a0,%a2@(32)                          
   443e6:	1434 8800      	moveb %a4@(00000000,%a0:l),%d2              
                                                                      
    if (tty->termios.c_lflag & ECHO) {                                
   443ea:	44c0           	movew %d0,%ccr                              
   443ec:	6a00 0100      	bplw 444ee <erase+0x172>                    
      if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) {             
   443f0:	4a83           	tstl %d3                                    
   443f2:	6620           	bnes 44414 <erase+0x98>                     
   443f4:	0800 0004      	btst #4,%d0                                 
   443f8:	661a           	bnes 44414 <erase+0x98>                     <== ALWAYS TAKEN
        echo (tty->termios.c_cc[VERASE], tty);                        
   443fa:	2d4a 000c      	movel %a2,%fp@(12)                          <== NOT EXECUTED
   443fe:	4280           	clrl %d0                                    <== NOT EXECUTED
   44400:	102a 0043      	moveb %a2@(67),%d0                          <== NOT EXECUTED
   44404:	2d40 0008      	movel %d0,%fp@(8)                           <== NOT EXECUTED
      }                                                               
    }                                                                 
    if (!lineFlag)                                                    
      break;                                                          
  }                                                                   
}                                                                     
   44408:	4cee 1c3c ffe4 	moveml %fp@(-28),%d2-%d5/%a2-%a4            <== NOT EXECUTED
   4440e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
  while (tty->ccount) {                                               
    unsigned char c = tty->cbuf[--tty->ccount];                       
                                                                      
    if (tty->termios.c_lflag & ECHO) {                                
      if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) {             
        echo (tty->termios.c_cc[VERASE], tty);                        
   44410:	6000 fee2      	braw 442f4 <echo>                           <== NOT EXECUTED
   44414:	2279 0005 d308 	moveal 5d308 <__ctype_ptr__>,%a1            
      } else if (c == '\t') {                                         
   4441a:	7209           	moveq #9,%d1                                
   4441c:	0282 0000 00ff 	andil #255,%d2                              
   44422:	b282           	cmpl %d2,%d1                                
   44424:	665a           	bnes 44480 <erase+0x104>                    
        int col = tty->read_start_column;                             
   44426:	242a 002c      	movel %a2@(44),%d2                          
        int i = 0;                                                    
   4442a:	4201           	clrb %d1                                    
        while (i != tty->ccount) {                                    
          c = tty->cbuf[i++];                                         
          if (c == '\t') {                                            
            col = (col | 7) + 1;                                      
          } else if (iscntrl (c)) {                                   
            if (tty->termios.c_lflag & ECHOCTL)                       
   4442c:	0280 0000 0200 	andil #512,%d0                              
        int i = 0;                                                    
                                                                      
        /*                                                            
         * Find the character before the tab                          
         */                                                           
        while (i != tty->ccount) {                                    
   44432:	6028           	bras 4445c <erase+0xe0>                     
          c = tty->cbuf[i++];                                         
          if (c == '\t') {                                            
   44434:	4284           	clrl %d4                                    
   44436:	181c           	moveb %a4@+,%d4                             
                                                                      
        /*                                                            
         * Find the character before the tab                          
         */                                                           
        while (i != tty->ccount) {                                    
          c = tty->cbuf[i++];                                         
   44438:	5281           	addql #1,%d1                                
          if (c == '\t') {                                            
   4443a:	7a09           	moveq #9,%d5                                
   4443c:	ba84           	cmpl %d4,%d5                                
   4443e:	6606           	bnes 44446 <erase+0xca>                     
            col = (col | 7) + 1;                                      
   44440:	7807           	moveq #7,%d4                                
   44442:	8484           	orl %d4,%d2                                 
   44444:	6014           	bras 4445a <erase+0xde>                     
          } else if (iscntrl (c)) {                                   
   44446:	1831 4801      	moveb %a1@(00000001,%d4:l),%d4              
   4444a:	49c4           	extbl %d4                                   
   4444c:	0804 0005      	btst #5,%d4                                 
   44450:	6708           	beqs 4445a <erase+0xde>                     <== ALWAYS TAKEN
            if (tty->termios.c_lflag & ECHOCTL)                       
   44452:	4a80           	tstl %d0                                    <== NOT EXECUTED
   44454:	6706           	beqs 4445c <erase+0xe0>                     <== NOT EXECUTED
              col += 2;                                               
   44456:	5482           	addql #2,%d2                                <== NOT EXECUTED
   44458:	6002           	bras 4445c <erase+0xe0>                     <== NOT EXECUTED
          } else {                                                    
            col++;                                                    
   4445a:	5282           	addql #1,%d2                                
        int i = 0;                                                    
                                                                      
        /*                                                            
         * Find the character before the tab                          
         */                                                           
        while (i != tty->ccount) {                                    
   4445c:	b1c1           	cmpal %d1,%a0                               
   4445e:	66d4           	bnes 44434 <erase+0xb8>                     
   44460:	6016           	bras 44478 <erase+0xfc>                     
                                                                      
        /*                                                            
         * Back up over the tab                                       
         */                                                           
        while (tty->column > col) {                                   
          rtems_termios_puts ("\b", 1, tty);                          
   44462:	2f0a           	movel %a2,%sp@-                             
   44464:	4878 0001      	pea 1 <ADD>                                 
   44468:	4879 0005 c165 	pea 5c165 <rtems_filesystem_default_pathconf+0xb3>
   4446e:	4e93           	jsr %a3@                                    
          tty->column--;                                              
   44470:	4fef 000c      	lea %sp@(12),%sp                            
   44474:	53aa 0028      	subql #1,%a2@(40)                           
        }                                                             
                                                                      
        /*                                                            
         * Back up over the tab                                       
         */                                                           
        while (tty->column > col) {                                   
   44478:	b4aa 0028      	cmpl %a2@(40),%d2                           
   4447c:	6de4           	blts 44462 <erase+0xe6>                     
   4447e:	606e           	bras 444ee <erase+0x172>                    
          rtems_termios_puts ("\b", 1, tty);                          
          tty->column--;                                              
        }                                                             
      }                                                               
      else {                                                          
        if (iscntrl (c) && (tty->termios.c_lflag & ECHOCTL)) {        
   44480:	5282           	addql #1,%d2                                
   44482:	1231 2800      	moveb %a1@(00000000,%d2:l),%d1              
   44486:	49c1           	extbl %d1                                   
   44488:	0801 0005      	btst #5,%d1                                 
   4448c:	6724           	beqs 444b2 <erase+0x136>                    <== ALWAYS TAKEN
   4448e:	0800 0009      	btst #9,%d0                                 <== NOT EXECUTED
   44492:	671e           	beqs 444b2 <erase+0x136>                    <== NOT EXECUTED
          rtems_termios_puts ("\b \b", 3, tty);                       
   44494:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   44496:	4878 0003      	pea 3 <DIVIDE>                              <== NOT EXECUTED
   4449a:	4879 0005 c163 	pea 5c163 <rtems_filesystem_default_pathconf+0xb1><== NOT EXECUTED
   444a0:	4e93           	jsr %a3@                                    <== NOT EXECUTED
          if (tty->column)                                            
   444a2:	202a 0028      	movel %a2@(40),%d0                          <== NOT EXECUTED
   444a6:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   444aa:	6706           	beqs 444b2 <erase+0x136>                    <== NOT EXECUTED
            tty->column--;                                            
   444ac:	5380           	subql #1,%d0                                <== NOT EXECUTED
   444ae:	2540 0028      	movel %d0,%a2@(40)                          <== NOT EXECUTED
        }                                                             
        if (!iscntrl (c) || (tty->termios.c_lflag & ECHOCTL)) {       
   444b2:	2079 0005 d308 	moveal 5d308 <__ctype_ptr__>,%a0            
   444b8:	1030 2800      	moveb %a0@(00000000,%d2:l),%d0              
   444bc:	49c0           	extbl %d0                                   
   444be:	0800 0005      	btst #5,%d0                                 
   444c2:	670c           	beqs 444d0 <erase+0x154>                    <== ALWAYS TAKEN
   444c4:	202a 003c      	movel %a2@(60),%d0                          <== NOT EXECUTED
   444c8:	0280 0000 0200 	andil #512,%d0                              <== NOT EXECUTED
   444ce:	671e           	beqs 444ee <erase+0x172>                    <== NOT EXECUTED
          rtems_termios_puts ("\b \b", 3, tty);                       
   444d0:	2f0a           	movel %a2,%sp@-                             
   444d2:	4878 0003      	pea 3 <DIVIDE>                              
   444d6:	4879 0005 c163 	pea 5c163 <rtems_filesystem_default_pathconf+0xb1>
   444dc:	4e93           	jsr %a3@                                    
          if (tty->column)                                            
   444de:	202a 0028      	movel %a2@(40),%d0                          
   444e2:	4fef 000c      	lea %sp@(12),%sp                            
   444e6:	6706           	beqs 444ee <erase+0x172>                    <== NEVER TAKEN
            tty->column--;                                            
   444e8:	5380           	subql #1,%d0                                
   444ea:	2540 0028      	movel %d0,%a2@(40)                          
        }                                                             
      }                                                               
    }                                                                 
    if (!lineFlag)                                                    
   444ee:	4a83           	tstl %d3                                    
   444f0:	6608           	bnes 444fa <erase+0x17e>                    
   444f2:	6010           	bras 44504 <erase+0x188>                    
          rtems_termios_puts ("\b \b", 3, tty);                       
          if (tty->column)                                            
            tty->column--;                                            
        }                                                             
        if (!iscntrl (c) || (tty->termios.c_lflag & ECHOCTL)) {       
          rtems_termios_puts ("\b \b", 3, tty);                       
   444f4:	47f9 0004 40b2 	lea 440b2 <rtems_termios_puts>,%a3          
        echo ('\n', tty);                                             
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  while (tty->ccount) {                                               
   444fa:	206a 0020      	moveal %a2@(32),%a0                         
   444fe:	4a88           	tstl %a0                                    
   44500:	6600 fed6      	bnew 443d8 <erase+0x5c>                     
      }                                                               
    }                                                                 
    if (!lineFlag)                                                    
      break;                                                          
  }                                                                   
}                                                                     
   44504:	4cee 1c3c ffe4 	moveml %fp@(-28),%d2-%d5/%a2-%a4            
   4450a:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043314 <fcntl>: int fcntl( int fd, int cmd, ... ) {
   43314:	4e56 fff0      	linkw %fp,#-16                              
   43318:	202e 0008      	movel %fp@(8),%d0                           
  int            ret;                                                 
  va_list        ap;                                                  
  va_start( ap, cmd );                                                
   4331c:	41ee 0010      	lea %fp@(16),%a0                            
int fcntl(                                                            
  int fd,                                                             
  int cmd,                                                            
  ...                                                                 
)                                                                     
{                                                                     
   43320:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   43324:	262e 000c      	movel %fp@(12),%d3                          
  int            fd2;                                                 
  int            flags;                                               
  int            mask;                                                
  int            ret = 0;                                             
                                                                      
  rtems_libio_check_fd( fd );                                         
   43328:	2239 0005 ea54 	movel 5ea54 <rtems_libio_number_iops>,%d1   
   4332e:	b280           	cmpl %d0,%d1                                
   43330:	631c           	blss 4334e <fcntl+0x3a>                     
  iop = rtems_libio_iop( fd );                                        
   43332:	2400           	movel %d0,%d2                               
   43334:	ed88           	lsll #6,%d0                                 
   43336:	e78a           	lsll #3,%d2                                 
   43338:	2679 0006 02d4 	moveal 602d4 <rtems_libio_iops>,%a3         
   4333e:	9082           	subl %d2,%d0                                
   43340:	45f3 0800      	lea %a3@(00000000,%d0:l),%a2                
  rtems_libio_check_is_open(iop);                                     
   43344:	202a 0014      	movel %a2@(20),%d0                          
   43348:	0800 0008      	btst #8,%d0                                 
   4334c:	6610           	bnes 4335e <fcntl+0x4a>                     
   4334e:	4eb9 0004 da3c 	jsr 4da3c <__errno>                         
   43354:	7209           	moveq #9,%d1                                
   43356:	2040           	moveal %d0,%a0                              
   43358:	2081           	movel %d1,%a0@                              
   4335a:	6000 0110      	braw 4346c <fcntl+0x158>                    
                                                                      
  /*                                                                  
   *  This switch should contain all the cases from POSIX.            
   */                                                                 
                                                                      
  switch ( cmd ) {                                                    
   4335e:	7409           	moveq #9,%d2                                
   43360:	b483           	cmpl %d3,%d2                                
   43362:	6500 00d8      	bcsw 4343c <fcntl+0x128>                    
   43366:	327b 3a06      	moveaw %pc@(4336e <fcntl+0x5a>,%d3:l:2),%a1 
   4336a:	4efb 9802      	jmp %pc@(4336e <fcntl+0x5a>,%a1:l)          
   4336e:	0014           	.short 0x0014                               <== NOT EXECUTED
   43370:	006c           	.short 0x006c                               <== NOT EXECUTED
   43372:	0078           	.short 0x0078                               <== NOT EXECUTED
   43374:	008c 009a 00be 	oril #10092734,%d4                          <== NOT EXECUTED
   4337a:	00be 00be 00be 	oril #12452030,%d6                          <== NOT EXECUTED
   43380:	00be 2410 6710 	oril #605054736,%d6                         <== NOT EXECUTED
    case F_DUPFD:        /* dup */                                    
      fd2 = va_arg( ap, int );                                        
      if ( fd2 )                                                      
        diop = rtems_libio_iop( fd2 );                                
   43386:	b282           	cmpl %d2,%d1                                
   43388:	631c           	blss 433a6 <fcntl+0x92>                     <== NEVER TAKEN
   4338a:	2002           	movel %d2,%d0                               
   4338c:	ed8a           	lsll #6,%d2                                 
   4338e:	e788           	lsll #3,%d0                                 
   43390:	9480           	subl %d0,%d2                                
   43392:	d7c2           	addal %d2,%a3                               
   43394:	6012           	bras 433a8 <fcntl+0x94>                     
      else {                                                          
        /* allocate a file control block */                           
        diop = rtems_libio_allocate();                                
   43396:	4eb9 0004 3950 	jsr 43950 <rtems_libio_allocate>            
   4339c:	2640           	moveal %d0,%a3                              
        if ( diop == 0 ) {                                            
   4339e:	4a80           	tstl %d0                                    
   433a0:	6606           	bnes 433a8 <fcntl+0x94>                     <== ALWAYS TAKEN
   433a2:	6000 00c8      	braw 4346c <fcntl+0x158>                    <== NOT EXECUTED
                                                                      
  switch ( cmd ) {                                                    
    case F_DUPFD:        /* dup */                                    
      fd2 = va_arg( ap, int );                                        
      if ( fd2 )                                                      
        diop = rtems_libio_iop( fd2 );                                
   433a6:	97cb           	subal %a3,%a3                               <== NOT EXECUTED
        }                                                             
      }                                                               
                                                                      
      diop->flags      = iop->flags;                                  
      diop->pathinfo   = iop->pathinfo;                               
      ret = (int) (diop - rtems_libio_iops);                          
   433a8:	240b           	movel %a3,%d2                               
          ret = -1;                                                   
          break;                                                      
        }                                                             
      }                                                               
                                                                      
      diop->flags      = iop->flags;                                  
   433aa:	276a 0014 0014 	movel %a2@(20),%a3@(20)                     
      diop->pathinfo   = iop->pathinfo;                               
   433b0:	4878 0014      	pea 14 <OPER2>                              
   433b4:	486a 0018      	pea %a2@(24)                                
   433b8:	486b 0018      	pea %a3@(24)                                
   433bc:	4eb9 0004 ec90 	jsr 4ec90 <memcpy>                          
      ret = (int) (diop - rtems_libio_iops);                          
   433c2:	4fef 000c      	lea %sp@(12),%sp                            
   433c6:	94b9 0006 02d4 	subl 602d4 <rtems_libio_iops>,%d2           
   433cc:	203c b6db 6db7 	movel #-1227133513,%d0                      
   433d2:	e682           	asrl #3,%d2                                 
   433d4:	4c00 2800      	mulsl %d0,%d2                               
   433d8:	6070           	bras 4344a <fcntl+0x136>                    
      break;                                                          
                                                                      
    case F_GETFD:        /* get f_flags */                            
      ret = ((iop->flags & LIBIO_FLAGS_CLOSE_ON_EXEC) != 0);          
   433da:	0800 000b      	btst #11,%d0                                
   433de:	56c2           	sne %d2                                     
   433e0:	49c2           	extbl %d2                                   
   433e2:	4482           	negl %d2                                    
   433e4:	6068           	bras 4344e <fcntl+0x13a>                    
       *  if a new process is exec()'ed.  Since RTEMS does not support
       *  processes, then we can ignore this one except to make       
       *  F_GETFD work.                                               
       */                                                             
                                                                      
      if ( va_arg( ap, int ) )                                        
   433e6:	4a90           	tstl %a0@                                   
   433e8:	6706           	beqs 433f0 <fcntl+0xdc>                     
        iop->flags |= LIBIO_FLAGS_CLOSE_ON_EXEC;                      
   433ea:	08c0 000b      	bset #11,%d0                                
   433ee:	6004           	bras 433f4 <fcntl+0xe0>                     
      else                                                            
        iop->flags &= ~LIBIO_FLAGS_CLOSE_ON_EXEC;                     
   433f0:	0880 000b      	bclr #11,%d0                                
   433f4:	2540 0014      	movel %d0,%a2@(20)                          
   433f8:	602e           	bras 43428 <fcntl+0x114>                    
      break;                                                          
                                                                      
    case F_GETFL:        /* more flags (cloexec) */                   
      ret = rtems_libio_to_fcntl_flags( iop->flags );                 
   433fa:	2f00           	movel %d0,%sp@-                             
   433fc:	4eb9 0004 3902 	jsr 43902 <rtems_libio_to_fcntl_flags>      
   43402:	588f           	addql #4,%sp                                
   43404:	2400           	movel %d0,%d2                               
   43406:	6042           	bras 4344a <fcntl+0x136>                    
      break;                                                          
                                                                      
    case F_SETFL:                                                     
      flags = rtems_libio_fcntl_flags( va_arg( ap, int ) );           
   43408:	2f10           	movel %a0@,%sp@-                            
   4340a:	4eb9 0004 38c2 	jsr 438c2 <rtems_libio_fcntl_flags>         
                                                                      
      /*                                                              
       *  XXX If we are turning on append, should we seek to the end? 
       */                                                             
                                                                      
      iop->flags = (iop->flags & ~mask) | (flags & mask);             
   43410:	222a 0014      	movel %a2@(20),%d1                          
   43414:	588f           	addql #4,%sp                                
   43416:	0280 0000 0201 	andil #513,%d0                              
   4341c:	0281 ffff fdfe 	andil #-514,%d1                             
   43422:	8081           	orl %d1,%d0                                 
   43424:	2540 0014      	movel %d0,%a2@(20)                          
  rtems_libio_t *iop;                                                 
  rtems_libio_t *diop;                                                
  int            fd2;                                                 
  int            flags;                                               
  int            mask;                                                
  int            ret = 0;                                             
   43428:	4282           	clrl %d2                                    
   4342a:	6022           	bras 4344e <fcntl+0x13a>                    
      errno = ENOTSUP;                                                
      ret = -1;                                                       
      break;                                                          
                                                                      
    case F_GETOWN:       /*  for sockets. */                          
      errno = ENOTSUP;                                                
   4342c:	4eb9 0004 da3c 	jsr 4da3c <__errno>                         
   43432:	2040           	moveal %d0,%a0                              
   43434:	20bc 0000 0086 	movel #134,%a0@                             
   4343a:	6030           	bras 4346c <fcntl+0x158>                    
      ret = -1;                                                       
      break;                                                          
                                                                      
    default:                                                          
      errno = EINVAL;                                                 
   4343c:	4eb9 0004 da3c 	jsr 4da3c <__errno>                         
   43442:	2040           	moveal %d0,%a0                              
   43444:	7016           	moveq #22,%d0                               
   43446:	2080           	movel %d0,%a0@                              
   43448:	6022           	bras 4346c <fcntl+0x158>                    
  /*                                                                  
   *  If we got this far successfully, then we give the optional      
   *  filesystem specific handler a chance to process this.           
   */                                                                 
                                                                      
  if (ret >= 0) {                                                     
   4344a:	4a82           	tstl %d2                                    
   4344c:	6d20           	blts 4346e <fcntl+0x15a>                    <== NEVER TAKEN
    int err = (*iop->pathinfo.handlers->fcntl_h)( cmd, iop );         
   4344e:	206a 0020      	moveal %a2@(32),%a0                         
   43452:	2f0a           	movel %a2,%sp@-                             
   43454:	2f03           	movel %d3,%sp@-                             
   43456:	2068 0030      	moveal %a0@(48),%a0                         
   4345a:	4e90           	jsr %a0@                                    
    if (err) {                                                        
   4345c:	508f           	addql #8,%sp                                
   *  If we got this far successfully, then we give the optional      
   *  filesystem specific handler a chance to process this.           
   */                                                                 
                                                                      
  if (ret >= 0) {                                                     
    int err = (*iop->pathinfo.handlers->fcntl_h)( cmd, iop );         
   4345e:	2600           	movel %d0,%d3                               
    if (err) {                                                        
   43460:	670c           	beqs 4346e <fcntl+0x15a>                    <== ALWAYS TAKEN
      errno = err;                                                    
   43462:	4eb9 0004 da3c 	jsr 4da3c <__errno>                         <== NOT EXECUTED
   43468:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4346a:	2083           	movel %d3,%a0@                              <== NOT EXECUTED
      ret = -1;                                                       
   4346c:	74ff           	moveq #-1,%d2                               
  va_list        ap;                                                  
  va_start( ap, cmd );                                                
  ret = vfcntl(fd,cmd,ap);                                            
  va_end(ap);                                                         
  return ret;                                                         
}                                                                     
   4346e:	2002           	movel %d2,%d0                               
   43470:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   43476:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b582 <fifo_open>: */ int fifo_open( pipe_control_t **pipep, rtems_libio_t *iop ) {
   4b582:	4e56 ffd8      	linkw %fp,#-40                              
   4b586:	48d7 3c3c      	moveml %d2-%d5/%a2-%a5,%sp@                 
   4b58a:	266e 0008      	moveal %fp@(8),%a3                          
   4b58e:	286e 000c      	moveal %fp@(12),%a4                         
                                                                      
static rtems_status_code pipe_lock(void)                              
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
                                                                      
  if (pipe_semaphore == RTEMS_ID_NONE) {                              
   4b592:	4ab9 0006 0538 	tstl 60538 <pipe_semaphore>                 
   4b598:	6654           	bnes 4b5ee <fifo_open+0x6c>                 
rtems_status_code rtems_libio_set_private_env(void);                  
rtems_status_code rtems_libio_share_private_env(rtems_id task_id) ;   
                                                                      
static inline void rtems_libio_lock( void )                           
{                                                                     
  rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
   4b59a:	42a7           	clrl %sp@-                                  
   4b59c:	42a7           	clrl %sp@-                                  
   4b59e:	2f39 0006 0c30 	movel 60c30 <rtems_libio_semaphore>,%sp@-   
   4b5a4:	4eb9 0004 759c 	jsr 4759c <rtems_semaphore_obtain>          
    rtems_libio_lock();                                               
                                                                      
    if (pipe_semaphore == RTEMS_ID_NONE) {                            
   4b5aa:	4fef 000c      	lea %sp@(12),%sp                            
   4b5ae:	4ab9 0006 0538 	tstl 60538 <pipe_semaphore>                 
   4b5b4:	6624           	bnes 4b5da <fifo_open+0x58>                 <== NEVER TAKEN
      sc = rtems_semaphore_create(                                    
   4b5b6:	4879 0006 0538 	pea 60538 <pipe_semaphore>                  
   4b5bc:	42a7           	clrl %sp@-                                  
   4b5be:	4878 0054      	pea 54 <DBL_MANT_DIG+0x1f>                  
   4b5c2:	4878 0001      	pea 1 <ADD>                                 
   4b5c6:	2f3c 5049 5045 	movel #1346981957,%sp@-                     
   4b5cc:	4eb9 0004 7364 	jsr 47364 <rtems_semaphore_create>          
   4b5d2:	4fef 0014      	lea %sp@(20),%sp                            
   4b5d6:	2400           	movel %d0,%d2                               
   4b5d8:	6002           	bras 4b5dc <fifo_open+0x5a>                 
  free(pipe);                                                         
}                                                                     
                                                                      
static rtems_status_code pipe_lock(void)                              
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
   4b5da:	4282           	clrl %d2                                    <== NOT EXECUTED
}                                                                     
                                                                      
static inline void rtems_libio_unlock( void )                         
{                                                                     
  rtems_semaphore_release( rtems_libio_semaphore );                   
   4b5dc:	2f39 0006 0c30 	movel 60c30 <rtems_libio_semaphore>,%sp@-   
   4b5e2:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
    }                                                                 
                                                                      
    rtems_libio_unlock();                                             
  }                                                                   
                                                                      
  if (sc == RTEMS_SUCCESSFUL) {                                       
   4b5e8:	588f           	addql #4,%sp                                
   4b5ea:	4a82           	tstl %d2                                    
   4b5ec:	6618           	bnes 4b606 <fifo_open+0x84>                 
    sc = rtems_semaphore_obtain(pipe_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   4b5ee:	42a7           	clrl %sp@-                                  
   4b5f0:	42a7           	clrl %sp@-                                  
   4b5f2:	2f39 0006 0538 	movel 60538 <pipe_semaphore>,%sp@-          
   4b5f8:	4eb9 0004 759c 	jsr 4759c <rtems_semaphore_obtain>          
  }                                                                   
                                                                      
  if (sc == RTEMS_SUCCESSFUL) {                                       
   4b5fe:	4fef 000c      	lea %sp@(12),%sp                            
   4b602:	4a80           	tstl %d0                                    
   4b604:	6704           	beqs 4b60a <fifo_open+0x88>                 <== ALWAYS TAKEN
    return 0;                                                         
  } else {                                                            
    return -ENOMEM;                                                   
   4b606:	74f4           	moveq #-12,%d2                              
   4b608:	6002           	bras 4b60c <fifo_open+0x8a>                 
  if (sc == RTEMS_SUCCESSFUL) {                                       
    sc = rtems_semaphore_obtain(pipe_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
  }                                                                   
                                                                      
  if (sc == RTEMS_SUCCESSFUL) {                                       
    return 0;                                                         
   4b60a:	4282           	clrl %d2                                    
{                                                                     
  pipe_control_t *pipe;                                               
  int err = 0;                                                        
                                                                      
  err = pipe_lock();                                                  
  if (err)                                                            
   4b60c:	4a82           	tstl %d2                                    
   4b60e:	6600 0342      	bnew 4b952 <fifo_open+0x3d0>                
    return err;                                                       
                                                                      
  pipe = *pipep;                                                      
   4b612:	2453           	moveal %a3@,%a2                             
  if (pipe == NULL) {                                                 
   4b614:	4a8a           	tstl %a2                                    
   4b616:	6600 0166      	bnew 4b77e <fifo_open+0x1fc>                
{                                                                     
  static char c = 'a';                                                
  pipe_control_t *pipe;                                               
  int err = -ENOMEM;                                                  
                                                                      
  pipe = malloc(sizeof(pipe_control_t));                              
   4b61a:	4878 0034      	pea 34 <OPER2+0x20>                         
   4b61e:	263c 0004 491c 	movel #280860,%d3                           
   4b624:	2043           	moveal %d3,%a0                              
   4b626:	4e90           	jsr %a0@                                    
  if (pipe == NULL)                                                   
   4b628:	588f           	addql #4,%sp                                
{                                                                     
  static char c = 'a';                                                
  pipe_control_t *pipe;                                               
  int err = -ENOMEM;                                                  
                                                                      
  pipe = malloc(sizeof(pipe_control_t));                              
   4b62a:	2440           	moveal %d0,%a2                              
   4b62c:	2a40           	moveal %d0,%a5                              
  if (pipe == NULL)                                                   
   4b62e:	4a80           	tstl %d0                                    
   4b630:	6700 0148      	beqw 4b77a <fifo_open+0x1f8>                
    return err;                                                       
  memset(pipe, 0, sizeof(pipe_control_t));                            
   4b634:	4878 0034      	pea 34 <OPER2+0x20>                         
   4b638:	42a7           	clrl %sp@-                                  
   4b63a:	2f00           	movel %d0,%sp@-                             
   4b63c:	4eb9 0004 fa48 	jsr 4fa48 <memset>                          
                                                                      
  pipe->Size = PIPE_BUF;                                              
   4b642:	203c 0000 0200 	movel #512,%d0                              
  pipe->Buffer = malloc(pipe->Size);                                  
   4b648:	2043           	moveal %d3,%a0                              
  pipe = malloc(sizeof(pipe_control_t));                              
  if (pipe == NULL)                                                   
    return err;                                                       
  memset(pipe, 0, sizeof(pipe_control_t));                            
                                                                      
  pipe->Size = PIPE_BUF;                                              
   4b64a:	2540 0004      	movel %d0,%a2@(4)                           
  pipe->Buffer = malloc(pipe->Size);                                  
   4b64e:	4878 0200      	pea 200 <DBL_MANT_DIG+0x1cb>                
   4b652:	4e90           	jsr %a0@                                    
  if (! pipe->Buffer)                                                 
   4b654:	4fef 0010      	lea %sp@(16),%sp                            
  if (pipe == NULL)                                                   
    return err;                                                       
  memset(pipe, 0, sizeof(pipe_control_t));                            
                                                                      
  pipe->Size = PIPE_BUF;                                              
  pipe->Buffer = malloc(pipe->Size);                                  
   4b658:	2480           	movel %d0,%a2@                              
  if (! pipe->Buffer)                                                 
   4b65a:	6700 0114      	beqw 4b770 <fifo_open+0x1ee>                
    goto err_buf;                                                     
                                                                      
  err = -ENOMEM;                                                      
                                                                      
  if (rtems_barrier_create(                                           
   4b65e:	486a 002c      	pea %a2@(44)                                
   4b662:	263c 0004 ceb0 	movel #315056,%d3                           
   4b668:	2043           	moveal %d3,%a0                              
        rtems_build_name ('P', 'I', 'r', c),                          
   4b66a:	1039 0005 f5ec 	moveb 5f5ec <c.6482>,%d0                    
  if (! pipe->Buffer)                                                 
    goto err_buf;                                                     
                                                                      
  err = -ENOMEM;                                                      
                                                                      
  if (rtems_barrier_create(                                           
   4b670:	42a7           	clrl %sp@-                                  
        rtems_build_name ('P', 'I', 'r', c),                          
   4b672:	49c0           	extbl %d0                                   
  if (! pipe->Buffer)                                                 
    goto err_buf;                                                     
                                                                      
  err = -ENOMEM;                                                      
                                                                      
  if (rtems_barrier_create(                                           
   4b674:	42a7           	clrl %sp@-                                  
   4b676:	0080 5049 7200 	oril #1346990592,%d0                        
   4b67c:	2f00           	movel %d0,%sp@-                             
   4b67e:	4e90           	jsr %a0@                                    
   4b680:	4fef 0010      	lea %sp@(16),%sp                            
   4b684:	4a80           	tstl %d0                                    
   4b686:	6600 00de      	bnew 4b766 <fifo_open+0x1e4>                
        rtems_build_name ('P', 'I', 'r', c),                          
        RTEMS_BARRIER_MANUAL_RELEASE, 0,                              
        &pipe->readBarrier) != RTEMS_SUCCESSFUL)                      
    goto err_rbar;                                                    
  if (rtems_barrier_create(                                           
   4b68a:	486a 0030      	pea %a2@(48)                                
   4b68e:	2043           	moveal %d3,%a0                              
        rtems_build_name ('P', 'I', 'w', c),                          
   4b690:	1039 0005 f5ec 	moveb 5f5ec <c.6482>,%d0                    
  if (rtems_barrier_create(                                           
        rtems_build_name ('P', 'I', 'r', c),                          
        RTEMS_BARRIER_MANUAL_RELEASE, 0,                              
        &pipe->readBarrier) != RTEMS_SUCCESSFUL)                      
    goto err_rbar;                                                    
  if (rtems_barrier_create(                                           
   4b696:	42a7           	clrl %sp@-                                  
        rtems_build_name ('P', 'I', 'w', c),                          
   4b698:	49c0           	extbl %d0                                   
  if (rtems_barrier_create(                                           
        rtems_build_name ('P', 'I', 'r', c),                          
        RTEMS_BARRIER_MANUAL_RELEASE, 0,                              
        &pipe->readBarrier) != RTEMS_SUCCESSFUL)                      
    goto err_rbar;                                                    
  if (rtems_barrier_create(                                           
   4b69a:	42a7           	clrl %sp@-                                  
   4b69c:	0080 5049 7700 	oril #1346991872,%d0                        
   4b6a2:	2f00           	movel %d0,%sp@-                             
   4b6a4:	4e90           	jsr %a0@                                    
   4b6a6:	4fef 0010      	lea %sp@(16),%sp                            
   4b6aa:	4a80           	tstl %d0                                    
   4b6ac:	6600 00ac      	bnew 4b75a <fifo_open+0x1d8>                
        rtems_build_name ('P', 'I', 'w', c),                          
        RTEMS_BARRIER_MANUAL_RELEASE, 0,                              
        &pipe->writeBarrier) != RTEMS_SUCCESSFUL)                     
    goto err_wbar;                                                    
  if (rtems_semaphore_create(                                         
   4b6b0:	486a 0028      	pea %a2@(40)                                
        rtems_build_name ('P', 'I', 's', c), 1,                       
   4b6b4:	1039 0005 f5ec 	moveb 5f5ec <c.6482>,%d0                    
  if (rtems_barrier_create(                                           
        rtems_build_name ('P', 'I', 'w', c),                          
        RTEMS_BARRIER_MANUAL_RELEASE, 0,                              
        &pipe->writeBarrier) != RTEMS_SUCCESSFUL)                     
    goto err_wbar;                                                    
  if (rtems_semaphore_create(                                         
   4b6ba:	42a7           	clrl %sp@-                                  
   4b6bc:	4878 0010      	pea 10 <INVALID_OPERATION>                  
        rtems_build_name ('P', 'I', 's', c), 1,                       
   4b6c0:	49c0           	extbl %d0                                   
  if (rtems_barrier_create(                                           
        rtems_build_name ('P', 'I', 'w', c),                          
        RTEMS_BARRIER_MANUAL_RELEASE, 0,                              
        &pipe->writeBarrier) != RTEMS_SUCCESSFUL)                     
    goto err_wbar;                                                    
  if (rtems_semaphore_create(                                         
   4b6c2:	4878 0001      	pea 1 <ADD>                                 
   4b6c6:	0080 5049 7300 	oril #1346990848,%d0                        
   4b6cc:	2f00           	movel %d0,%sp@-                             
   4b6ce:	4eb9 0004 7364 	jsr 47364 <rtems_semaphore_create>          
   4b6d4:	4fef 0014      	lea %sp@(20),%sp                            
   4b6d8:	4a80           	tstl %d0                                    
   4b6da:	6672           	bnes 4b74e <fifo_open+0x1cc>                
/* Set barriers to be interruptible by signals. */                    
static void pipe_interruptible(pipe_control_t *pipe)                  
{                                                                     
  Objects_Locations location;                                         
                                                                      
  _Barrier_Get(pipe->readBarrier, &location)->Barrier.Wait_queue.state
   4b6dc:	280e           	movel %fp,%d4                               
   4b6de:	5184           	subql #8,%d4                                
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Barrier_Control *)                                          
    _Objects_Get( &_Barrier_Information, id, location );              
   4b6e0:	263c 0004 8c14 	movel #298004,%d3                           
   4b6e6:	2043           	moveal %d3,%a0                              
    |= STATES_INTERRUPTIBLE_BY_SIGNAL;                                
  _Thread_Enable_dispatch();                                          
   4b6e8:	4bf9 0004 977a 	lea 4977a <_Thread_Enable_dispatch>,%a5     
   4b6ee:	2f04           	movel %d4,%sp@-                             
   4b6f0:	2f2a 002c      	movel %a2@(44),%sp@-                        
   4b6f4:	4879 0006 15b8 	pea 615b8 <_Barrier_Information>            
   4b6fa:	4e90           	jsr %a0@                                    
static void pipe_interruptible(pipe_control_t *pipe)                  
{                                                                     
  Objects_Locations location;                                         
                                                                      
  _Barrier_Get(pipe->readBarrier, &location)->Barrier.Wait_queue.state
    |= STATES_INTERRUPTIBLE_BY_SIGNAL;                                
   4b6fc:	223c 1000 0000 	movel #268435456,%d1                        
   4b702:	2040           	moveal %d0,%a0                              
   4b704:	83a8 004c      	orl %d1,%a0@(76)                            
  _Thread_Enable_dispatch();                                          
   4b708:	4e95           	jsr %a5@                                    
   4b70a:	2043           	moveal %d3,%a0                              
   4b70c:	2f04           	movel %d4,%sp@-                             
   4b70e:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4b712:	4879 0006 15b8 	pea 615b8 <_Barrier_Information>            
   4b718:	4e90           	jsr %a0@                                    
  _Barrier_Get(pipe->writeBarrier, &location)->Barrier.Wait_queue.state
    |= STATES_INTERRUPTIBLE_BY_SIGNAL;                                
   4b71a:	223c 1000 0000 	movel #268435456,%d1                        
   4b720:	2040           	moveal %d0,%a0                              
   4b722:	83a8 004c      	orl %d1,%a0@(76)                            
  _Thread_Enable_dispatch();                                          
   4b726:	4e95           	jsr %a5@                                    
#ifdef RTEMS_POSIX_API                                                
  pipe_interruptible(pipe);                                           
#endif                                                                
                                                                      
  *pipep = pipe;                                                      
  if (c ++ == 'z')                                                    
   4b728:	4fef 0018      	lea %sp@(24),%sp                            
   4b72c:	1039 0005 f5ec 	moveb 5f5ec <c.6482>,%d0                    
   4b732:	49c0           	extbl %d0                                   
   4b734:	2200           	movel %d0,%d1                               
   4b736:	5281           	addql #1,%d1                                
   4b738:	13c1 0005 f5ec 	moveb %d1,5f5ec <c.6482>                    
   4b73e:	727a           	moveq #122,%d1                              
   4b740:	b280           	cmpl %d0,%d1                                
   4b742:	663a           	bnes 4b77e <fifo_open+0x1fc>                
    c = 'a';                                                          
   4b744:	7061           	moveq #97,%d0                               
   4b746:	13c0 0005 f5ec 	moveb %d0,5f5ec <c.6482>                    
   4b74c:	6030           	bras 4b77e <fifo_open+0x1fc>                
  return 0;                                                           
                                                                      
err_sem:                                                              
  rtems_barrier_delete(pipe->writeBarrier);                           
   4b74e:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4b752:	4eb9 0004 cf60 	jsr 4cf60 <rtems_barrier_delete>            
   4b758:	588f           	addql #4,%sp                                
err_wbar:                                                             
  rtems_barrier_delete(pipe->readBarrier);                            
   4b75a:	2f2d 002c      	movel %a5@(44),%sp@-                        
   4b75e:	4eb9 0004 cf60 	jsr 4cf60 <rtems_barrier_delete>            
   4b764:	588f           	addql #4,%sp                                
err_rbar:                                                             
  free(pipe->Buffer);                                                 
   4b766:	2f15           	movel %a5@,%sp@-                            
   4b768:	4eb9 0004 421c 	jsr 4421c <free>                            
   4b76e:	588f           	addql #4,%sp                                
err_buf:                                                              
  free(pipe);                                                         
   4b770:	2f0d           	movel %a5,%sp@-                             
   4b772:	4eb9 0004 421c 	jsr 4421c <free>                            
   4b778:	588f           	addql #4,%sp                                
    if (err)                                                          
      goto out;                                                       
  }                                                                   
                                                                      
  if (! PIPE_LOCK(pipe))                                              
    err = -EINTR;                                                     
   4b77a:	74f4           	moveq #-12,%d2                              
   4b77c:	602c           	bras 4b7aa <fifo_open+0x228>                
    err = pipe_alloc(&pipe);                                          
    if (err)                                                          
      goto out;                                                       
  }                                                                   
                                                                      
  if (! PIPE_LOCK(pipe))                                              
   4b77e:	42a7           	clrl %sp@-                                  
   4b780:	42a7           	clrl %sp@-                                  
   4b782:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b786:	4eb9 0004 759c 	jsr 4759c <rtems_semaphore_obtain>          
   4b78c:	4fef 000c      	lea %sp@(12),%sp                            
   4b790:	4a80           	tstl %d0                                    
   4b792:	6702           	beqs 4b796 <fifo_open+0x214>                <== ALWAYS TAKEN
    err = -EINTR;                                                     
   4b794:	74fc           	moveq #-4,%d2                               <== NOT EXECUTED
                                                                      
  if (*pipep == NULL) {                                               
   4b796:	4a93           	tstl %a3@                                   
   4b798:	6610           	bnes 4b7aa <fifo_open+0x228>                
    if (err)                                                          
   4b79a:	4a82           	tstl %d2                                    
   4b79c:	670a           	beqs 4b7a8 <fifo_open+0x226>                <== ALWAYS TAKEN
      pipe_free(pipe);                                                
   4b79e:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   4b7a0:	4eba fd10      	jsr %pc@(4b4b2 <pipe_free>)                 <== NOT EXECUTED
   4b7a4:	588f           	addql #4,%sp                                <== NOT EXECUTED
   4b7a6:	6002           	bras 4b7aa <fifo_open+0x228>                <== NOT EXECUTED
    else                                                              
      *pipep = pipe;                                                  
   4b7a8:	268a           	movel %a2,%a3@                              
  }                                                                   
                                                                      
out:                                                                  
  pipe_unlock();                                                      
   4b7aa:	4eba fcf0      	jsr %pc@(4b49c <pipe_unlock>)               
  pipe_control_t *pipe;                                               
  unsigned int prevCounter;                                           
  int err;                                                            
                                                                      
  err = pipe_new(pipep);                                              
  if (err)                                                            
   4b7ae:	4a82           	tstl %d2                                    
   4b7b0:	6600 01a0      	bnew 4b952 <fifo_open+0x3d0>                
    return err;                                                       
  pipe = *pipep;                                                      
                                                                      
  switch (LIBIO_ACCMODE(iop)) {                                       
   4b7b4:	7006           	moveq #6,%d0                                
   4b7b6:	7204           	moveq #4,%d1                                
   4b7b8:	c0ac 0014      	andl %a4@(20),%d0                           
  int err;                                                            
                                                                      
  err = pipe_new(pipep);                                              
  if (err)                                                            
    return err;                                                       
  pipe = *pipep;                                                      
   4b7bc:	2453           	moveal %a3@,%a2                             
                                                                      
  switch (LIBIO_ACCMODE(iop)) {                                       
   4b7be:	b280           	cmpl %d0,%d1                                
   4b7c0:	6700 009c      	beqw 4b85e <fifo_open+0x2dc>                
   4b7c4:	123c 0006      	moveb #6,%d1                                
   4b7c8:	b280           	cmpl %d0,%d1                                
   4b7ca:	6700 0122      	beqw 4b8ee <fifo_open+0x36c>                
   4b7ce:	123c 0002      	moveb #2,%d1                                
   4b7d2:	b280           	cmpl %d0,%d1                                
   4b7d4:	6600 0160      	bnew 4b936 <fifo_open+0x3b4>                
    case LIBIO_FLAGS_READ:                                            
      pipe->readerCounter ++;                                         
      if (pipe->Readers ++ == 0)                                      
   4b7d8:	202a 0010      	movel %a2@(16),%d0                          
   4b7dc:	2040           	moveal %d0,%a0                              
   4b7de:	5288           	addql #1,%a0                                
    return err;                                                       
  pipe = *pipep;                                                      
                                                                      
  switch (LIBIO_ACCMODE(iop)) {                                       
    case LIBIO_FLAGS_READ:                                            
      pipe->readerCounter ++;                                         
   4b7e0:	52aa 0020      	addql #1,%a2@(32)                           
      if (pipe->Readers ++ == 0)                                      
   4b7e4:	2548 0010      	movel %a0,%a2@(16)                          
   4b7e8:	4a80           	tstl %d0                                    
   4b7ea:	6610           	bnes 4b7fc <fifo_open+0x27a>                <== NEVER TAKEN
        PIPE_WAKEUPWRITERS(pipe);                                     
   4b7ec:	486e fffc      	pea %fp@(-4)                                
   4b7f0:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4b7f4:	4eb9 0004 cffc 	jsr 4cffc <rtems_barrier_release>           
   4b7fa:	508f           	addql #8,%sp                                
                                                                      
      if (pipe->Writers == 0) {                                       
   4b7fc:	4aaa 0014      	tstl %a2@(20)                               
   4b800:	6600 0134      	bnew 4b936 <fifo_open+0x3b4>                
        /* Not an error */                                            
        if (LIBIO_NODELAY(iop))                                       
   4b804:	7001           	moveq #1,%d0                                
   4b806:	c0ac 0014      	andl %a4@(20),%d0                           
   4b80a:	6600 012a      	bnew 4b936 <fifo_open+0x3b4>                
          break;                                                      
                                                                      
        prevCounter = pipe->writerCounter;                            
   4b80e:	2a2a 0024      	movel %a2@(36),%d5                          
        /* Wait until a writer opens the pipe */                      
        do {                                                          
          PIPE_UNLOCK(pipe);                                          
          if (! PIPE_READWAIT(pipe))                                  
            goto out_error;                                           
          if (! PIPE_LOCK(pipe))                                      
   4b812:	4bf9 0004 759c 	lea 4759c <rtems_semaphore_obtain>,%a5      
                                                                      
        prevCounter = pipe->writerCounter;                            
        err = -EINTR;                                                 
        /* Wait until a writer opens the pipe */                      
        do {                                                          
          PIPE_UNLOCK(pipe);                                          
   4b818:	283c 0004 76a4 	movel #292516,%d4                           
          if (! PIPE_READWAIT(pipe))                                  
   4b81e:	263c 0004 d060 	movel #315488,%d3                           
                                                                      
        prevCounter = pipe->writerCounter;                            
        err = -EINTR;                                                 
        /* Wait until a writer opens the pipe */                      
        do {                                                          
          PIPE_UNLOCK(pipe);                                          
   4b824:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b828:	2044           	moveal %d4,%a0                              
   4b82a:	4e90           	jsr %a0@                                    
          if (! PIPE_READWAIT(pipe))                                  
   4b82c:	2043           	moveal %d3,%a0                              
   4b82e:	42a7           	clrl %sp@-                                  
   4b830:	2f2a 002c      	movel %a2@(44),%sp@-                        
   4b834:	4e90           	jsr %a0@                                    
   4b836:	4fef 000c      	lea %sp@(12),%sp                            
   4b83a:	4a80           	tstl %d0                                    
   4b83c:	6600 0106      	bnew 4b944 <fifo_open+0x3c2>                
            goto out_error;                                           
          if (! PIPE_LOCK(pipe))                                      
   4b840:	42a7           	clrl %sp@-                                  
   4b842:	42a7           	clrl %sp@-                                  
   4b844:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b848:	4e95           	jsr %a5@                                    
   4b84a:	4fef 000c      	lea %sp@(12),%sp                            
   4b84e:	4a80           	tstl %d0                                    
   4b850:	6600 00f2      	bnew 4b944 <fifo_open+0x3c2>                
            goto out_error;                                           
        } while (prevCounter == pipe->writerCounter);                 
   4b854:	baaa 0024      	cmpl %a2@(36),%d5                           
   4b858:	67ca           	beqs 4b824 <fifo_open+0x2a2>                <== NEVER TAKEN
   4b85a:	6000 00da      	braw 4b936 <fifo_open+0x3b4>                
      break;                                                          
                                                                      
    case LIBIO_FLAGS_WRITE:                                           
      pipe->writerCounter ++;                                         
                                                                      
      if (pipe->Writers ++ == 0)                                      
   4b85e:	202a 0014      	movel %a2@(20),%d0                          
   4b862:	2200           	movel %d0,%d1                               
   4b864:	5281           	addql #1,%d1                                
        } while (prevCounter == pipe->writerCounter);                 
      }                                                               
      break;                                                          
                                                                      
    case LIBIO_FLAGS_WRITE:                                           
      pipe->writerCounter ++;                                         
   4b866:	52aa 0024      	addql #1,%a2@(36)                           
                                                                      
      if (pipe->Writers ++ == 0)                                      
   4b86a:	2541 0014      	movel %d1,%a2@(20)                          
   4b86e:	4a80           	tstl %d0                                    
   4b870:	6610           	bnes 4b882 <fifo_open+0x300>                <== NEVER TAKEN
        PIPE_WAKEUPREADERS(pipe);                                     
   4b872:	486e fffc      	pea %fp@(-4)                                
   4b876:	2f2a 002c      	movel %a2@(44),%sp@-                        
   4b87a:	4eb9 0004 cffc 	jsr 4cffc <rtems_barrier_release>           
   4b880:	508f           	addql #8,%sp                                
                                                                      
      if (pipe->Readers == 0 && LIBIO_NODELAY(iop)) {                 
   4b882:	4aaa 0010      	tstl %a2@(16)                               
   4b886:	6600 00ae      	bnew 4b936 <fifo_open+0x3b4>                
   4b88a:	7001           	moveq #1,%d0                                
   4b88c:	c0ac 0014      	andl %a4@(20),%d0                           
   4b890:	6712           	beqs 4b8a4 <fifo_open+0x322>                
	PIPE_UNLOCK(pipe);                                                   
   4b892:	2f2a 0028      	movel %a2@(40),%sp@-                        
        err = -ENXIO;                                                 
   4b896:	74fa           	moveq #-6,%d2                               
                                                                      
      if (pipe->Writers ++ == 0)                                      
        PIPE_WAKEUPREADERS(pipe);                                     
                                                                      
      if (pipe->Readers == 0 && LIBIO_NODELAY(iop)) {                 
	PIPE_UNLOCK(pipe);                                                   
   4b898:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
        err = -ENXIO;                                                 
        goto out_error;                                               
   4b89e:	588f           	addql #4,%sp                                
   4b8a0:	6000 00a4      	braw 4b946 <fifo_open+0x3c4>                
      }                                                               
                                                                      
      if (pipe->Readers == 0) {                                       
        prevCounter = pipe->readerCounter;                            
   4b8a4:	2a2a 0020      	movel %a2@(32),%d5                          
        err = -EINTR;                                                 
        do {                                                          
          PIPE_UNLOCK(pipe);                                          
          if (! PIPE_WRITEWAIT(pipe))                                 
            goto out_error;                                           
          if (! PIPE_LOCK(pipe))                                      
   4b8a8:	4bf9 0004 759c 	lea 4759c <rtems_semaphore_obtain>,%a5      
                                                                      
      if (pipe->Readers == 0) {                                       
        prevCounter = pipe->readerCounter;                            
        err = -EINTR;                                                 
        do {                                                          
          PIPE_UNLOCK(pipe);                                          
   4b8ae:	283c 0004 76a4 	movel #292516,%d4                           
          if (! PIPE_WRITEWAIT(pipe))                                 
   4b8b4:	263c 0004 d060 	movel #315488,%d3                           
                                                                      
      if (pipe->Readers == 0) {                                       
        prevCounter = pipe->readerCounter;                            
        err = -EINTR;                                                 
        do {                                                          
          PIPE_UNLOCK(pipe);                                          
   4b8ba:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b8be:	2044           	moveal %d4,%a0                              
   4b8c0:	4e90           	jsr %a0@                                    
          if (! PIPE_WRITEWAIT(pipe))                                 
   4b8c2:	2043           	moveal %d3,%a0                              
   4b8c4:	42a7           	clrl %sp@-                                  
   4b8c6:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4b8ca:	4e90           	jsr %a0@                                    
   4b8cc:	4fef 000c      	lea %sp@(12),%sp                            
   4b8d0:	4a80           	tstl %d0                                    
   4b8d2:	6670           	bnes 4b944 <fifo_open+0x3c2>                <== NEVER TAKEN
            goto out_error;                                           
          if (! PIPE_LOCK(pipe))                                      
   4b8d4:	42a7           	clrl %sp@-                                  
   4b8d6:	42a7           	clrl %sp@-                                  
   4b8d8:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b8dc:	4e95           	jsr %a5@                                    
   4b8de:	4fef 000c      	lea %sp@(12),%sp                            
   4b8e2:	4a80           	tstl %d0                                    
   4b8e4:	665e           	bnes 4b944 <fifo_open+0x3c2>                <== NEVER TAKEN
            goto out_error;                                           
        } while (prevCounter == pipe->readerCounter);                 
   4b8e6:	baaa 0020      	cmpl %a2@(32),%d5                           
   4b8ea:	67ce           	beqs 4b8ba <fifo_open+0x338>                <== NEVER TAKEN
   4b8ec:	6048           	bras 4b936 <fifo_open+0x3b4>                
      }                                                               
      break;                                                          
                                                                      
    case LIBIO_FLAGS_READ_WRITE:                                      
      pipe->readerCounter ++;                                         
      if (pipe->Readers ++ == 0)                                      
   4b8ee:	202a 0010      	movel %a2@(16),%d0                          
   4b8f2:	2200           	movel %d0,%d1                               
   4b8f4:	5281           	addql #1,%d1                                
        } while (prevCounter == pipe->readerCounter);                 
      }                                                               
      break;                                                          
                                                                      
    case LIBIO_FLAGS_READ_WRITE:                                      
      pipe->readerCounter ++;                                         
   4b8f6:	52aa 0020      	addql #1,%a2@(32)                           
      if (pipe->Readers ++ == 0)                                      
   4b8fa:	2541 0010      	movel %d1,%a2@(16)                          
   4b8fe:	4a80           	tstl %d0                                    
   4b900:	6610           	bnes 4b912 <fifo_open+0x390>                <== NEVER TAKEN
        PIPE_WAKEUPWRITERS(pipe);                                     
   4b902:	486e fffc      	pea %fp@(-4)                                
   4b906:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4b90a:	4eb9 0004 cffc 	jsr 4cffc <rtems_barrier_release>           
   4b910:	508f           	addql #8,%sp                                
      pipe->writerCounter ++;                                         
      if (pipe->Writers ++ == 0)                                      
   4b912:	202a 0014      	movel %a2@(20),%d0                          
   4b916:	2040           	moveal %d0,%a0                              
   4b918:	5288           	addql #1,%a0                                
                                                                      
    case LIBIO_FLAGS_READ_WRITE:                                      
      pipe->readerCounter ++;                                         
      if (pipe->Readers ++ == 0)                                      
        PIPE_WAKEUPWRITERS(pipe);                                     
      pipe->writerCounter ++;                                         
   4b91a:	52aa 0024      	addql #1,%a2@(36)                           
      if (pipe->Writers ++ == 0)                                      
   4b91e:	2548 0014      	movel %a0,%a2@(20)                          
   4b922:	4a80           	tstl %d0                                    
   4b924:	6610           	bnes 4b936 <fifo_open+0x3b4>                <== NEVER TAKEN
        PIPE_WAKEUPREADERS(pipe);                                     
   4b926:	486e fffc      	pea %fp@(-4)                                
   4b92a:	2f2a 002c      	movel %a2@(44),%sp@-                        
   4b92e:	4eb9 0004 cffc 	jsr 4cffc <rtems_barrier_release>           
   4b934:	508f           	addql #8,%sp                                
      break;                                                          
  }                                                                   
                                                                      
  PIPE_UNLOCK(pipe);                                                  
   4b936:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b93a:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
  return 0;                                                           
   4b940:	588f           	addql #4,%sp                                
   4b942:	600e           	bras 4b952 <fifo_open+0x3d0>                
        goto out_error;                                               
      }                                                               
                                                                      
      if (pipe->Readers == 0) {                                       
        prevCounter = pipe->readerCounter;                            
        err = -EINTR;                                                 
   4b944:	74fc           	moveq #-4,%d2                               <== NOT EXECUTED
                                                                      
  PIPE_UNLOCK(pipe);                                                  
  return 0;                                                           
                                                                      
out_error:                                                            
  pipe_release(pipep, iop);                                           
   4b946:	2f0c           	movel %a4,%sp@-                             
   4b948:	2f0b           	movel %a3,%sp@-                             
   4b94a:	4eb9 0004 b4fa 	jsr 4b4fa <pipe_release>                    
  return err;                                                         
   4b950:	508f           	addql #8,%sp                                
}                                                                     
   4b952:	2002           	movel %d2,%d0                               
   4b954:	4cee 3c3c ffd8 	moveml %fp@(-40),%d2-%d5/%a2-%a5            
   4b95a:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000434fc <fpathconf>: long fpathconf( int fd, int name ) {
   434fc:	4e56 0000      	linkw %fp,#0                                
   43500:	202e 0008      	movel %fp@(8),%d0                           
   43504:	222e 000c      	movel %fp@(12),%d1                          
   43508:	2f02           	movel %d2,%sp@-                             
  long                                    return_value;               
  rtems_libio_t                          *iop;                        
  rtems_filesystem_limits_and_options_t  *the_limits;                 
                                                                      
  rtems_libio_check_fd(fd);                                           
   4350a:	b0b9 0005 ea54 	cmpl 5ea54 <rtems_libio_number_iops>,%d0    
   43510:	641a           	bccs 4352c <fpathconf+0x30>                 
  iop = rtems_libio_iop(fd);                                          
   43512:	2400           	movel %d0,%d2                               
   43514:	ed88           	lsll #6,%d0                                 
   43516:	e78a           	lsll #3,%d2                                 
   43518:	2079 0006 02d4 	moveal 602d4 <rtems_libio_iops>,%a0         
   4351e:	9082           	subl %d2,%d0                                
   43520:	d1c0           	addal %d0,%a0                               
  rtems_libio_check_is_open(iop);                                     
   43522:	2028 0014      	movel %a0@(20),%d0                          
   43526:	0800 0008      	btst #8,%d0                                 
   4352a:	6610           	bnes 4353c <fpathconf+0x40>                 <== ALWAYS TAKEN
   4352c:	4eb9 0004 da3c 	jsr 4da3c <__errno>                         
   43532:	7209           	moveq #9,%d1                                
   43534:	2040           	moveal %d0,%a0                              
   43536:	2081           	movel %d1,%a0@                              
   43538:	6000 0088      	braw 435c2 <fpathconf+0xc6>                 
  rtems_libio_check_permissions(iop, LIBIO_FLAGS_READ);               
   4353c:	0800 0001      	btst #1,%d0                                 
   43540:	6774           	beqs 435b6 <fpathconf+0xba>                 
                                                                      
  /*                                                                  
   *  Now process the information request.                            
   */                                                                 
                                                                      
  the_limits = &iop->pathinfo.mt_entry->pathconf_limits_and_options;  
   43542:	2068 0028      	moveal %a0@(40),%a0                         
                                                                      
  switch ( name ) {                                                   
   43546:	700b           	moveq #11,%d0                               
   43548:	b081           	cmpl %d1,%d0                                
   4354a:	656a           	bcss 435b6 <fpathconf+0xba>                 
   4354c:	303b 1a08      	movew %pc@(43556 <fpathconf+0x5a>,%d1:l:2),%d0
   43550:	48c0           	extl %d0                                    
   43552:	4efb 0802      	jmp %pc@(43556 <fpathconf+0x5a>,%d0:l)      
   43556:	0018           	.short 0x0018                               <== NOT EXECUTED
   43558:	001e           	.short 0x001e                               <== NOT EXECUTED
   4355a:	0024           	.short 0x0024                               <== NOT EXECUTED
   4355c:	002a           	.short 0x002a                               <== NOT EXECUTED
   4355e:	0030           	.short 0x0030                               <== NOT EXECUTED
   43560:	0036           	.short 0x0036                               <== NOT EXECUTED
   43562:	003c           	.short 0x003c                               <== NOT EXECUTED
   43564:	0042           	.short 0x0042                               <== NOT EXECUTED
   43566:	0048           	.short 0x0048                               <== NOT EXECUTED
   43568:	004e           	.short 0x004e                               <== NOT EXECUTED
   4356a:	0054           	.short 0x0054                               <== NOT EXECUTED
   4356c:	005a           	.short 0x005a                               <== NOT EXECUTED
    case _PC_LINK_MAX:                                                
      return_value = the_limits->link_max;                            
   4356e:	2028 0038      	movel %a0@(56),%d0                          
      break;                                                          
   43572:	6050           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_MAX_CANON:                                               
      return_value = the_limits->max_canon;                           
   43574:	2028 003c      	movel %a0@(60),%d0                          
      break;                                                          
   43578:	604a           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_MAX_INPUT:                                               
      return_value = the_limits->max_input;                           
   4357a:	2028 0040      	movel %a0@(64),%d0                          
      break;                                                          
   4357e:	6044           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_NAME_MAX:                                                
      return_value = the_limits->name_max;                            
   43580:	2028 0044      	movel %a0@(68),%d0                          
      break;                                                          
   43584:	603e           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_PATH_MAX:                                                
      return_value = the_limits->path_max;                            
   43586:	2028 0048      	movel %a0@(72),%d0                          
      break;                                                          
   4358a:	6038           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_PIPE_BUF:                                                
      return_value = the_limits->pipe_buf;                            
   4358c:	2028 004c      	movel %a0@(76),%d0                          
      break;                                                          
   43590:	6032           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_CHOWN_RESTRICTED:                                        
      return_value = the_limits->posix_chown_restrictions;            
   43592:	2028 0054      	movel %a0@(84),%d0                          
      break;                                                          
   43596:	602c           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_NO_TRUNC:                                                
      return_value = the_limits->posix_no_trunc;                      
   43598:	2028 0058      	movel %a0@(88),%d0                          
      break;                                                          
   4359c:	6026           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_VDISABLE:                                                
      return_value = the_limits->posix_vdisable;                      
   4359e:	2028 0064      	movel %a0@(100),%d0                         
      break;                                                          
   435a2:	6020           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_ASYNC_IO:                                                
      return_value = the_limits->posix_async_io;                      
   435a4:	2028 0050      	movel %a0@(80),%d0                          
      break;                                                          
   435a8:	601a           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_PRIO_IO:                                                 
      return_value = the_limits->posix_prio_io;                       
   435aa:	2028 005c      	movel %a0@(92),%d0                          
      break;                                                          
   435ae:	6014           	bras 435c4 <fpathconf+0xc8>                 
    case _PC_SYNC_IO:                                                 
      return_value = the_limits->posix_sync_io;                       
   435b0:	2028 0060      	movel %a0@(96),%d0                          
      break;                                                          
   435b4:	600e           	bras 435c4 <fpathconf+0xc8>                 
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   435b6:	4eb9 0004 da3c 	jsr 4da3c <__errno>                         
   435bc:	2040           	moveal %d0,%a0                              
   435be:	7016           	moveq #22,%d0                               
   435c0:	2080           	movel %d0,%a0@                              
   435c2:	70ff           	moveq #-1,%d0                               
      break;                                                          
  }                                                                   
                                                                      
  return return_value;                                                
}                                                                     
   435c4:	242e fffc      	movel %fp@(-4),%d2                          
   435c8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000429ec <free>: #include <stdlib.h> void free( void *ptr ) {
   429ec:	4e56 0000      	linkw %fp,#0                                
  MSBUMP(free_calls, 1);                                              
   429f0:	52b9 0005 e898 	addql #1,5e898 <rtems_malloc_statistics+0xc>
#include <stdlib.h>                                                   
                                                                      
void free(                                                            
  void *ptr                                                           
)                                                                     
{                                                                     
   429f6:	2f02           	movel %d2,%sp@-                             
   429f8:	242e 0008      	movel %fp@(8),%d2                           
  MSBUMP(free_calls, 1);                                              
                                                                      
  if ( !ptr )                                                         
   429fc:	676c           	beqs 42a6a <free+0x7e>                      
    return;                                                           
                                                                      
  /*                                                                  
   *  Do not attempt to free memory if in a critical section or ISR.  
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
   429fe:	7003           	moveq #3,%d0                                
   42a00:	b0b9 0005 eb14 	cmpl 5eb14 <_System_state_Current>,%d0      
   42a06:	661a           	bnes 42a22 <free+0x36>                      <== NEVER TAKEN
       !malloc_is_system_state_OK() ) {                               
   42a08:	4eb9 0004 2b90 	jsr 42b90 <malloc_is_system_state_OK>       
    return;                                                           
                                                                      
  /*                                                                  
   *  Do not attempt to free memory if in a critical section or ISR.  
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
   42a0e:	4a00           	tstb %d0                                    
   42a10:	6610           	bnes 42a22 <free+0x36>                      
       !malloc_is_system_state_OK() ) {                               
      malloc_deferred_free(ptr);                                      
   42a12:	2d42 0008      	movel %d2,%fp@(8)                           
      RTEMS_Malloc_Heap->area_begin,                                  
      RTEMS_Malloc_Heap->area_end                                     
    );                                                                
  }                                                                   
                                                                      
}                                                                     
   42a16:	242e fffc      	movel %fp@(-4),%d2                          
   42a1a:	4e5e           	unlk %fp                                    
  /*                                                                  
   *  Do not attempt to free memory if in a critical section or ISR.  
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
       !malloc_is_system_state_OK() ) {                               
      malloc_deferred_free(ptr);                                      
   42a1c:	4ef9 0004 2c04 	jmp 42c04 <malloc_deferred_free>            
  }                                                                   
                                                                      
  /*                                                                  
   *  If configured, update the statistics                            
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
   42a22:	2079 0005 d806 	moveal 5d806 <rtems_malloc_statistics_helpers>,%a0
   42a28:	4a88           	tstl %a0                                    
   42a2a:	670a           	beqs 42a36 <free+0x4a>                      
    (*rtems_malloc_statistics_helpers->at_free)(ptr);                 
   42a2c:	2f02           	movel %d2,%sp@-                             
   42a2e:	2068 0008      	moveal %a0@(8),%a0                          
   42a32:	4e90           	jsr %a0@                                    
   42a34:	588f           	addql #4,%sp                                
                                                                      
  if ( !_Protected_heap_Free( RTEMS_Malloc_Heap, ptr ) ) {            
   42a36:	2f02           	movel %d2,%sp@-                             
   42a38:	2f39 0005 d030 	movel 5d030 <RTEMS_Malloc_Heap>,%sp@-       
   42a3e:	4eb9 0004 71fc 	jsr 471fc <_Protected_heap_Free>            
   42a44:	508f           	addql #8,%sp                                
   42a46:	4a00           	tstb %d0                                    
   42a48:	6620           	bnes 42a6a <free+0x7e>                      
    printk( "Program heap: free of bad pointer %p -- range %p - %p \n",
      ptr,                                                            
      RTEMS_Malloc_Heap->area_begin,                                  
      RTEMS_Malloc_Heap->area_end                                     
   42a4a:	2079 0005 d030 	moveal 5d030 <RTEMS_Malloc_Heap>,%a0        
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
    (*rtems_malloc_statistics_helpers->at_free)(ptr);                 
                                                                      
  if ( !_Protected_heap_Free( RTEMS_Malloc_Heap, ptr ) ) {            
    printk( "Program heap: free of bad pointer %p -- range %p - %p \n",
   42a50:	2f28 001c      	movel %a0@(28),%sp@-                        
   42a54:	2f28 0018      	movel %a0@(24),%sp@-                        
   42a58:	2f02           	movel %d2,%sp@-                             
   42a5a:	4879 0005 c07a 	pea 5c07a <rtems_status_assoc+0x168>        
   42a60:	4eb9 0004 36ac 	jsr 436ac <printk>                          
   42a66:	4fef 0010      	lea %sp@(16),%sp                            
      RTEMS_Malloc_Heap->area_begin,                                  
      RTEMS_Malloc_Heap->area_end                                     
    );                                                                
  }                                                                   
                                                                      
}                                                                     
   42a6a:	242e fffc      	movel %fp@(-4),%d2                          
   42a6e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00043d64 <free_user_env>: * NOTE: this must be called with * thread dispatching disabled! */ static void free_user_env(void *venv) {
   43d64:	4e56 0000      	linkw %fp,#0                                
   43d68:	2f0b           	movel %a3,%sp@-                             
   43d6a:	2f0a           	movel %a2,%sp@-                             
   43d6c:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_user_env_t *env = (rtems_user_env_t*) venv ;                  
                                                                      
  if (env != &rtems_global_user_env                                   
   43d70:	b5fc 0005 f0c4 	cmpal #389316,%a2                           
   43d76:	6728           	beqs 43da0 <free_user_env+0x3c>             <== NEVER TAKEN
  #ifdef HAVE_USERENV_REFCNT                                          
      && --env->refcnt <= 0                                           
  #endif                                                              
  ) {                                                                 
    rtems_filesystem_freenode( &env->current_directory);              
   43d78:	486a 0004      	pea %a2@(4)                                 
   43d7c:	47f9 0004 2e1c 	lea 42e1c <rtems_filesystem_freenode>,%a3   
   43d82:	4e93           	jsr %a3@                                    
    rtems_filesystem_freenode( &env->root_directory);                 
   43d84:	486a 0018      	pea %a2@(24)                                
   43d88:	4e93           	jsr %a3@                                    
    free(env);                                                        
  }                                                                   
}                                                                     
   43d8a:	266e fffc      	moveal %fp@(-4),%a3                         
      && --env->refcnt <= 0                                           
  #endif                                                              
  ) {                                                                 
    rtems_filesystem_freenode( &env->current_directory);              
    rtems_filesystem_freenode( &env->root_directory);                 
    free(env);                                                        
   43d8e:	508f           	addql #8,%sp                                
   43d90:	2d4a 0008      	movel %a2,%fp@(8)                           
  }                                                                   
}                                                                     
   43d94:	246e fff8      	moveal %fp@(-8),%a2                         
   43d98:	4e5e           	unlk %fp                                    
      && --env->refcnt <= 0                                           
  #endif                                                              
  ) {                                                                 
    rtems_filesystem_freenode( &env->current_directory);              
    rtems_filesystem_freenode( &env->root_directory);                 
    free(env);                                                        
   43d9a:	4ef9 0004 2e30 	jmp 42e30 <free>                            
  }                                                                   
}                                                                     
   43da0:	246e fff8      	moveal %fp@(-8),%a2                         <== NOT EXECUTED
   43da4:	266e fffc      	moveal %fp@(-4),%a3                         <== NOT EXECUTED
   43da8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005beb0 <getdents>: int getdents( int dd_fd, char *dd_buf, int dd_len ) {
   5beb0:	4e56 ffec      	linkw %fp,#-20                              
   5beb4:	202e 0008      	movel %fp@(8),%d0                           
   5beb8:	2f0a           	movel %a2,%sp@-                             
   5beba:	2f02           	movel %d2,%sp@-                             
  rtems_filesystem_location_info_t  loc;                              
                                                                      
  /*                                                                  
   *  Get the file control block structure associated with the file descriptor
   */                                                                 
  iop = rtems_libio_iop( dd_fd );                                     
   5bebc:	b0b9 0005 ef84 	cmpl 5ef84 <rtems_libio_number_iops>,%d0    
   5bec2:	6412           	bccs 5bed6 <getdents+0x26>                  <== NEVER TAKEN
   5bec4:	2200           	movel %d0,%d1                               
   5bec6:	ed88           	lsll #6,%d0                                 
   5bec8:	e789           	lsll #3,%d1                                 
   5beca:	2479 0006 0914 	moveal 60914 <rtems_libio_iops>,%a2         
   5bed0:	9081           	subl %d1,%d0                                
   5bed2:	d5c0           	addal %d0,%a2                               
   5bed4:	6002           	bras 5bed8 <getdents+0x28>                  
   5bed6:	95ca           	subal %a2,%a2                               <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Make sure we are working on a directory                         
   */                                                                 
  loc = iop->pathinfo;                                                
   5bed8:	4878 0014      	pea 14 <OPER2>                              
   5bedc:	240e           	movel %fp,%d2                               
   5bede:	486a 0018      	pea %a2@(24)                                
   5bee2:	0682 ffff ffec 	addil #-20,%d2                              
   5bee8:	2f02           	movel %d2,%sp@-                             
   5beea:	4eb9 0004 e284 	jsr 4e284 <memcpy>                          
  if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY )
   5bef0:	206e fff8      	moveal %fp@(-8),%a0                         
   5bef4:	2f02           	movel %d2,%sp@-                             
   5bef6:	2068 0010      	moveal %a0@(16),%a0                         
   5befa:	4e90           	jsr %a0@                                    
   5befc:	4fef 0010      	lea %sp@(16),%sp                            
   5bf00:	7201           	moveq #1,%d1                                
   5bf02:	b280           	cmpl %d0,%d1                                
   5bf04:	6710           	beqs 5bf16 <getdents+0x66>                  
    rtems_set_errno_and_return_minus_one( ENOTDIR );                  
   5bf06:	4eb9 0004 d9d8 	jsr 4d9d8 <__errno>                         
   5bf0c:	2040           	moveal %d0,%a0                              
   5bf0e:	7014           	moveq #20,%d0                               
   5bf10:	2080           	movel %d0,%a0@                              
   5bf12:	70ff           	moveq #-1,%d0                               
   5bf14:	6018           	bras 5bf2e <getdents+0x7e>                  
                                                                      
  /*                                                                  
   *  Return the number of bytes that were actually transfered as a result
   *  of the read attempt.                                            
   */                                                                 
  return (*iop->pathinfo.handlers->read_h)( iop, dd_buf, dd_len  );   
   5bf16:	206a 0020      	moveal %a2@(32),%a0                         
   5bf1a:	2f2e 0010      	movel %fp@(16),%sp@-                        
   5bf1e:	2f2e 000c      	movel %fp@(12),%sp@-                        
   5bf22:	2f0a           	movel %a2,%sp@-                             
   5bf24:	2068 0008      	moveal %a0@(8),%a0                          
   5bf28:	4e90           	jsr %a0@                                    
   5bf2a:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   5bf2e:	242e ffe4      	movel %fp@(-28),%d2                         
   5bf32:	246e ffe8      	moveal %fp@(-24),%a2                        
   5bf36:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004c0ca <imfs_dir_lseek>: rtems_libio_t *iop, rtems_off64_t offset, int whence ) { switch( whence ) {
   4c0ca:	7001           	moveq #1,%d0                                
rtems_off64_t imfs_dir_lseek(                                         
  rtems_libio_t  *iop,                                                
  rtems_off64_t   offset,                                             
  int             whence                                              
)                                                                     
{                                                                     
   4c0cc:	4e56 ffec      	linkw %fp,#-20                              
   4c0d0:	48d7 043c      	moveml %d2-%d5/%a2,%sp@                     
   4c0d4:	246e 0008      	moveal %fp@(8),%a2                          
  switch( whence ) {                                                  
   4c0d8:	b0ae 0014      	cmpl %fp@(20),%d0                           
   4c0dc:	654c           	bcss 4c12a <imfs_dir_lseek+0x60>            <== NEVER TAKEN
     case SEEK_SET:   /* absolute move from the start of the file */  
     case SEEK_CUR:   /* relative move */                             
        iop->offset = (iop->offset/sizeof(struct dirent)) *           
   4c0de:	4878 0110      	pea 110 <DBL_MANT_DIG+0xdb>                 
   4c0e2:	7a1c           	moveq #28,%d5                               
   4c0e4:	42a7           	clrl %sp@-                                  
   4c0e6:	2f2a 0010      	movel %a2@(16),%sp@-                        
   4c0ea:	2f2a 000c      	movel %a2@(12),%sp@-                        
   4c0ee:	4eb9 0005 9398 	jsr 59398 <__divdi3>                        
   4c0f4:	4fef 0010      	lea %sp@(16),%sp                            
   4c0f8:	2600           	movel %d0,%d3                               
   4c0fa:	2801           	movel %d1,%d4                               
   4c0fc:	eaac           	lsrl %d5,%d4                                
   4c0fe:	2004           	movel %d4,%d0                               
   4c100:	e98b           	lsll #4,%d3                                 
   4c102:	e989           	lsll #4,%d1                                 
   4c104:	8083           	orl %d3,%d0                                 
   4c106:	2801           	movel %d1,%d4                               
   4c108:	eaac           	lsrl %d5,%d4                                
   4c10a:	2400           	movel %d0,%d2                               
   4c10c:	2601           	movel %d1,%d3                               
   4c10e:	e98a           	lsll #4,%d2                                 
   4c110:	e98b           	lsll #4,%d3                                 
   4c112:	8484           	orl %d4,%d2                                 
   4c114:	2800           	movel %d0,%d4                               
   4c116:	2a01           	movel %d1,%d5                               
   4c118:	da83           	addl %d3,%d5                                
   4c11a:	d982           	addxl %d2,%d4                               
      default:                                                        
        rtems_set_errno_and_return_minus_one( EINVAL );               
        break;                                                        
  }                                                                   
                                                                      
  return 0;                                                           
   4c11c:	4281           	clrl %d1                                    
   4c11e:	4282           	clrl %d2                                    
)                                                                     
{                                                                     
  switch( whence ) {                                                  
     case SEEK_SET:   /* absolute move from the start of the file */  
     case SEEK_CUR:   /* relative move */                             
        iop->offset = (iop->offset/sizeof(struct dirent)) *           
   4c120:	2544 000c      	movel %d4,%a2@(12)                          
   4c124:	2545 0010      	movel %d5,%a2@(16)                          
      default:                                                        
        rtems_set_errno_and_return_minus_one( EINVAL );               
        break;                                                        
  }                                                                   
                                                                      
  return 0;                                                           
   4c128:	6010           	bras 4c13a <imfs_dir_lseek+0x70>            
        break;                                                        
                                                                      
     case SEEK_END:   /* Movement past the end of the directory via lseek */
                      /* is not a permitted operation                     */
      default:                                                        
        rtems_set_errno_and_return_minus_one( EINVAL );               
   4c12a:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4c130:	2040           	moveal %d0,%a0                              
   4c132:	7016           	moveq #22,%d0                               
   4c134:	72ff           	moveq #-1,%d1                               
   4c136:	74ff           	moveq #-1,%d2                               
   4c138:	2080           	movel %d0,%a0@                              
        break;                                                        
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
   4c13a:	2001           	movel %d1,%d0                               
   4c13c:	2202           	movel %d2,%d1                               
   4c13e:	4cee 043c ffec 	moveml %fp@(-20),%d2-%d5/%a2                
   4c144:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bfa8 <imfs_dir_open>: IMFS_jnode_t *the_jnode; /* Is the node a directory ? */ the_jnode = (IMFS_jnode_t *) iop->pathinfo.node_access; if ( the_jnode->type != IMFS_DIRECTORY )
   4bfa8:	7001           	moveq #1,%d0                                
  rtems_libio_t  *iop,                                                
  const char *pathname,                                               
  uint32_t   flag,                                                    
  uint32_t   mode                                                     
)                                                                     
{                                                                     
   4bfaa:	4e56 0000      	linkw %fp,#0                                
   4bfae:	206e 0008      	moveal %fp@(8),%a0                          
  IMFS_jnode_t      *the_jnode;                                       
                                                                      
  /* Is the node a directory ? */                                     
  the_jnode = (IMFS_jnode_t *) iop->pathinfo.node_access;             
                                                                      
  if ( the_jnode->type != IMFS_DIRECTORY )                            
   4bfb2:	2268 0018      	moveal %a0@(24),%a1                         
   4bfb6:	b0a9 0048      	cmpl %a1@(72),%d0                           
   4bfba:	6610           	bnes 4bfcc <imfs_dir_open+0x24>             <== NEVER TAKEN
     return -1;      /* It wasn't a directory --> return error */     
                                                                      
  iop->offset = 0;                                                    
   4bfbc:	4280           	clrl %d0                                    
   4bfbe:	4281           	clrl %d1                                    
   4bfc0:	2140 000c      	movel %d0,%a0@(12)                          
   4bfc4:	2141 0010      	movel %d1,%a0@(16)                          
  return 0;                                                           
   4bfc8:	4280           	clrl %d0                                    
   4bfca:	6002           	bras 4bfce <imfs_dir_open+0x26>             
                                                                      
  /* Is the node a directory ? */                                     
  the_jnode = (IMFS_jnode_t *) iop->pathinfo.node_access;             
                                                                      
  if ( the_jnode->type != IMFS_DIRECTORY )                            
     return -1;      /* It wasn't a directory --> return error */     
   4bfcc:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
                                                                      
  iop->offset = 0;                                                    
  return 0;                                                           
}                                                                     
   4bfce:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004c1dc <imfs_dir_rmnod>: int imfs_dir_rmnod( rtems_filesystem_location_info_t *parent_pathloc, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN */ ) {
   4c1dc:	4e56 0000      	linkw %fp,#0                                
   4c1e0:	206e 000c      	moveal %fp@(12),%a0                         
   4c1e4:	2f0a           	movel %a2,%sp@-                             
  IMFS_jnode_t *the_jnode;                                            
                                                                      
  the_jnode = (IMFS_jnode_t *) pathloc->node_access;                  
   4c1e6:	2450           	moveal %a0@,%a2                             
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   4c1e8:	200a           	movel %a2,%d0                               
   4c1ea:	0680 0000 0050 	addil #80,%d0                               
                                                                      
  /*                                                                  
   * You cannot remove a node that still has children                 
   */                                                                 
                                                                      
  if ( ! rtems_chain_is_empty( &the_jnode->info.directory.Entries ) ) 
   4c1f0:	b0aa 004c      	cmpl %a2@(76),%d0                           
   4c1f4:	670e           	beqs 4c204 <imfs_dir_rmnod+0x28>            
     rtems_set_errno_and_return_minus_one( ENOTEMPTY );               
   4c1f6:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4c1fc:	2040           	moveal %d0,%a0                              
   4c1fe:	705a           	moveq #90,%d0                               
   4c200:	2080           	movel %d0,%a0@                              
   4c202:	6016           	bras 4c21a <imfs_dir_rmnod+0x3e>            
                                                                      
  /*                                                                  
   * You cannot remove the file system root node.                     
   */                                                                 
                                                                      
  if ( pathloc->mt_entry->mt_fs_root.node_access == pathloc->node_access )
   4c204:	2068 0010      	moveal %a0@(16),%a0                         
   4c208:	b5e8 001c      	cmpal %a0@(28),%a2                          
   4c20c:	6610           	bnes 4c21e <imfs_dir_rmnod+0x42>            
     rtems_set_errno_and_return_minus_one( EBUSY );                   
   4c20e:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4c214:	7210           	moveq #16,%d1                               
   4c216:	2040           	moveal %d0,%a0                              
   4c218:	2081           	movel %d1,%a0@                              
   4c21a:	70ff           	moveq #-1,%d0                               
   4c21c:	601a           	bras 4c238 <imfs_dir_rmnod+0x5c>            
                                                                      
  /*                                                                  
   * You cannot remove a mountpoint.                                  
   */                                                                 
                                                                      
   if ( the_jnode->info.directory.mt_fs != NULL )                     
   4c21e:	4aaa 0058      	tstl %a2@(88)                               
   4c222:	66ea           	bnes 4c20e <imfs_dir_rmnod+0x32>            <== NEVER TAKEN
     rtems_set_errno_and_return_minus_one( EBUSY );                   
                                                                      
  IMFS_create_orphan( the_jnode );                                    
   4c224:	2f0a           	movel %a2,%sp@-                             
   4c226:	4eb9 0004 96bc 	jsr 496bc <IMFS_create_orphan>              
  IMFS_check_node_remove( the_jnode );                                
   4c22c:	2f0a           	movel %a2,%sp@-                             
   4c22e:	4eb9 0004 9700 	jsr 49700 <IMFS_check_node_remove>          
                                                                      
  return 0;                                                           
   4c234:	508f           	addql #8,%sp                                
   4c236:	4280           	clrl %d0                                    
}                                                                     
   4c238:	246e fffc      	moveal %fp@(-4),%a2                         
   4c23c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043354 <init_etc_passwd_group>: /* * Initialize useable but dummy databases */ void init_etc_passwd_group(void) {
   43354:	4e56 0000      	linkw %fp,#0                                
   43358:	2f0a           	movel %a2,%sp@-                             
   4335a:	2f02           	movel %d2,%sp@-                             
  FILE *fp;                                                           
  static char etc_passwd_initted = 0;                                 
                                                                      
  if (etc_passwd_initted)                                             
   4335c:	4a39 0005 fb52 	tstb 5fb52 <etc_passwd_initted.6408>        
   43362:	6600 00c4      	bnew 43428 <init_etc_passwd_group+0xd4>     
    return;                                                           
  etc_passwd_initted = 1;                                             
  mkdir("/etc", 0777);                                                
   43366:	4878 01ff      	pea 1ff <DBL_MANT_DIG+0x1ca>                
                                                                      
  /*                                                                  
   *  Initialize /etc/passwd                                          
   */                                                                 
  if ((fp = fopen("/etc/passwd", "r")) != NULL) {                     
   4336a:	45f9 0004 e078 	lea 4e078 <fopen>,%a2                       
  static char etc_passwd_initted = 0;                                 
                                                                      
  if (etc_passwd_initted)                                             
    return;                                                           
  etc_passwd_initted = 1;                                             
  mkdir("/etc", 0777);                                                
   43370:	4879 0005 d904 	pea 5d904 <rtems_status_assoc+0x1a0>        
  FILE *fp;                                                           
  static char etc_passwd_initted = 0;                                 
                                                                      
  if (etc_passwd_initted)                                             
    return;                                                           
  etc_passwd_initted = 1;                                             
   43376:	7001           	moveq #1,%d0                                
   43378:	13c0 0005 fb52 	moveb %d0,5fb52 <etc_passwd_initted.6408>   
  mkdir("/etc", 0777);                                                
   4337e:	4eb9 0004 3b64 	jsr 43b64 <mkdir>                           
                                                                      
  /*                                                                  
   *  Initialize /etc/passwd                                          
   */                                                                 
  if ((fp = fopen("/etc/passwd", "r")) != NULL) {                     
   43384:	4879 0005 e1ed 	pea 5e1ed <_global_impure_ptr+0xbf>         
   4338a:	4879 0005 d909 	pea 5d909 <rtems_status_assoc+0x1a5>        
   43390:	4e92           	jsr %a2@                                    
   43392:	4fef 0010      	lea %sp@(16),%sp                            
   43396:	4a80           	tstl %d0                                    
   43398:	670c           	beqs 433a6 <init_etc_passwd_group+0x52>     
    fclose(fp);                                                       
   4339a:	2f00           	movel %d0,%sp@-                             
   4339c:	4eb9 0004 d97a 	jsr 4d97a <fclose>                          
   433a2:	588f           	addql #4,%sp                                
   433a4:	602e           	bras 433d4 <init_etc_passwd_group+0x80>     
  }                                                                   
  else if ((fp = fopen("/etc/passwd", "w")) != NULL) {                
   433a6:	4879 0005 d915 	pea 5d915 <rtems_status_assoc+0x1b1>        
   433ac:	4879 0005 d909 	pea 5d909 <rtems_status_assoc+0x1a5>        
   433b2:	4e92           	jsr %a2@                                    
   433b4:	508f           	addql #8,%sp                                
   433b6:	2400           	movel %d0,%d2                               
   433b8:	671a           	beqs 433d4 <init_etc_passwd_group+0x80>     <== NEVER TAKEN
    fprintf(fp, "root:*:0:0:root::/:/bin/sh\n"                        
   433ba:	2f00           	movel %d0,%sp@-                             
   433bc:	4879 0005 d917 	pea 5d917 <rtems_status_assoc+0x1b3>        
   433c2:	4eb9 0004 e158 	jsr 4e158 <fputs>                           
                 "rtems:*:1:1:RTEMS Application::/:/bin/sh\n"         
                 "tty:!:2:2:tty owner::/:/bin/false\n" );             
    fclose(fp);                                                       
   433c8:	2f02           	movel %d2,%sp@-                             
   433ca:	4eb9 0004 d97a 	jsr 4d97a <fclose>                          
   433d0:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
                                                                      
  /*                                                                  
   *  Initialize /etc/group                                           
   */                                                                 
  if ((fp = fopen("/etc/group", "r")) != NULL) {                      
   433d4:	4879 0005 e1ed 	pea 5e1ed <_global_impure_ptr+0xbf>         
   433da:	45f9 0004 e078 	lea 4e078 <fopen>,%a2                       
   433e0:	4879 0005 d97e 	pea 5d97e <rtems_status_assoc+0x21a>        
   433e6:	4e92           	jsr %a2@                                    
   433e8:	508f           	addql #8,%sp                                
   433ea:	4a80           	tstl %d0                                    
   433ec:	670c           	beqs 433fa <init_etc_passwd_group+0xa6>     
    fclose(fp);                                                       
   433ee:	2f00           	movel %d0,%sp@-                             
   433f0:	4eb9 0004 d97a 	jsr 4d97a <fclose>                          
   433f6:	588f           	addql #4,%sp                                
   433f8:	602e           	bras 43428 <init_etc_passwd_group+0xd4>     
  }                                                                   
  else if ((fp = fopen("/etc/group", "w")) != NULL) {                 
   433fa:	4879 0005 d915 	pea 5d915 <rtems_status_assoc+0x1b1>        
   43400:	4879 0005 d97e 	pea 5d97e <rtems_status_assoc+0x21a>        
   43406:	4e92           	jsr %a2@                                    
   43408:	508f           	addql #8,%sp                                
   4340a:	2400           	movel %d0,%d2                               
   4340c:	671a           	beqs 43428 <init_etc_passwd_group+0xd4>     <== NEVER TAKEN
    fprintf( fp, "root:x:0:root\n"                                    
   4340e:	2f00           	movel %d0,%sp@-                             
   43410:	4879 0005 d989 	pea 5d989 <rtems_status_assoc+0x225>        
   43416:	4eb9 0004 e158 	jsr 4e158 <fputs>                           
                 "rtems:x:1:rtems\n"                                  
                 "tty:x:2:tty\n" );                                   
    fclose(fp);                                                       
   4341c:	2f02           	movel %d2,%sp@-                             
   4341e:	4eb9 0004 d97a 	jsr 4d97a <fclose>                          
   43424:	4fef 000c      	lea %sp@(12),%sp                            
  }                                                                   
}                                                                     
   43428:	242e fff8      	movel %fp@(-8),%d2                          
   4342c:	246e fffc      	moveal %fp@(-4),%a2                         
   43430:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004450e <iproc>: /* * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) {
   4450e:	4e56 fff4      	linkw %fp,#-12                              
   44512:	222e 0008      	movel %fp@(8),%d1                           
   44516:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   4451a:	246e 000c      	moveal %fp@(12),%a2                         
  if (tty->termios.c_iflag & ISTRIP)                                  
   4451e:	202a 0030      	movel %a2@(48),%d0                          
/*                                                                    
 * Process a single input character                                   
 */                                                                   
static int                                                            
iproc (unsigned char c, struct rtems_termios_tty *tty)                
{                                                                     
   44522:	1401           	moveb %d1,%d2                               
  if (tty->termios.c_iflag & ISTRIP)                                  
   44524:	0800 0005      	btst #5,%d0                                 
   44528:	6704           	beqs 4452e <iproc+0x20>                     <== ALWAYS TAKEN
    c &= 0x7f;                                                        
   4452a:	747f           	moveq #127,%d2                              <== NOT EXECUTED
   4452c:	c481           	andl %d1,%d2                                <== NOT EXECUTED
                                                                      
  if (tty->termios.c_iflag & IUCLC)                                   
   4452e:	0800 0009      	btst #9,%d0                                 
   44532:	6724           	beqs 44558 <iproc+0x4a>                     
    c = tolower (c);                                                  
   44534:	2079 0005 d308 	moveal 5d308 <__ctype_ptr__>,%a0            
   4453a:	7603           	moveq #3,%d3                                
   4453c:	0282 0000 00ff 	andil #255,%d2                              
   44542:	1230 2801      	moveb %a0@(00000001,%d2:l),%d1              
   44546:	49c1           	extbl %d1                                   
   44548:	c283           	andl %d3,%d1                                
   4454a:	163c 0001      	moveb #1,%d3                                
   4454e:	b681           	cmpl %d1,%d3                                
   44550:	6606           	bnes 44558 <iproc+0x4a>                     
   44552:	0682 0000 0020 	addil #32,%d2                               
                                                                      
  if (c == '\r') {                                                    
   44558:	4281           	clrl %d1                                    
   4455a:	1202           	moveb %d2,%d1                               
   4455c:	760d           	moveq #13,%d3                               
   4455e:	b681           	cmpl %d1,%d3                                
   44560:	6610           	bnes 44572 <iproc+0x64>                     
    if (tty->termios.c_iflag & IGNCR)                                 
   44562:	4a00           	tstb %d0                                    
   44564:	6d00 0104      	bltw 4466a <iproc+0x15c>                    
      return 0;                                                       
    if (tty->termios.c_iflag & ICRNL)                                 
   44568:	0800 0008      	btst #8,%d0                                 
   4456c:	671a           	beqs 44588 <iproc+0x7a>                     <== NEVER TAKEN
      c = '\n';                                                       
   4456e:	740a           	moveq #10,%d2                               
   44570:	6016           	bras 44588 <iproc+0x7a>                     
  } else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) {         
   44572:	760a           	moveq #10,%d3                               
   44574:	b681           	cmpl %d1,%d3                                
   44576:	660a           	bnes 44582 <iproc+0x74>                     
   44578:	0800 0006      	btst #6,%d0                                 
   4457c:	670a           	beqs 44588 <iproc+0x7a>                     <== ALWAYS TAKEN
    c = '\r';                                                         
   4457e:	740d           	moveq #13,%d2                               <== NOT EXECUTED
   44580:	6006           	bras 44588 <iproc+0x7a>                     <== NOT EXECUTED
  }                                                                   
                                                                      
  if ((c != '\0') && (tty->termios.c_lflag & ICANON)) {               
   44582:	4a02           	tstb %d2                                    
   44584:	6700 00a8      	beqw 4462e <iproc+0x120>                    
   44588:	222a 003c      	movel %a2@(60),%d1                          
   4458c:	0801 0001      	btst #1,%d1                                 
   44590:	6700 009c      	beqw 4462e <iproc+0x120>                    
    if (c == tty->termios.c_cc[VERASE]) {                             
   44594:	4283           	clrl %d3                                    
   44596:	162a 0043      	moveb %a2@(67),%d3                          
   4459a:	4280           	clrl %d0                                    
   4459c:	1002           	moveb %d2,%d0                               
   4459e:	b680           	cmpl %d0,%d3                                
   445a0:	6604           	bnes 445a6 <iproc+0x98>                     
      erase (tty, 0);                                                 
   445a2:	42a7           	clrl %sp@-                                  
   445a4:	600e           	bras 445b4 <iproc+0xa6>                     
      return 0;                                                       
    }                                                                 
    else if (c == tty->termios.c_cc[VKILL]) {                         
   445a6:	4283           	clrl %d3                                    
   445a8:	162a 0044      	moveb %a2@(68),%d3                          
   445ac:	b680           	cmpl %d0,%d3                                
   445ae:	6610           	bnes 445c0 <iproc+0xb2>                     
      erase (tty, 1);                                                 
   445b0:	4878 0001      	pea 1 <ADD>                                 
   445b4:	2f0a           	movel %a2,%sp@-                             
   445b6:	4eba fdc4      	jsr %pc@(4437c <erase>)                     
      return 0;                                                       
   445ba:	508f           	addql #8,%sp                                
   445bc:	6000 00ac      	braw 4466a <iproc+0x15c>                    
    }                                                                 
    else if (c == tty->termios.c_cc[VEOF]) {                          
   445c0:	4283           	clrl %d3                                    
   445c2:	162a 0045      	moveb %a2@(69),%d3                          
   445c6:	b680           	cmpl %d0,%d3                                
   445c8:	6700 009c      	beqw 44666 <iproc+0x158>                    
      return 1;                                                       
    } else if (c == '\n') {                                           
   445cc:	760a           	moveq #10,%d3                               
   445ce:	b680           	cmpl %d0,%d3                                
   445d0:	6622           	bnes 445f4 <iproc+0xe6>                     
      if (tty->termios.c_lflag & (ECHO | ECHONL))                     
   445d2:	7048           	moveq #72,%d0                               
   445d4:	c280           	andl %d0,%d1                                
   445d6:	670c           	beqs 445e4 <iproc+0xd6>                     <== NEVER TAKEN
        echo (c, tty);                                                
   445d8:	2f0a           	movel %a2,%sp@-                             
   445da:	4878 000a      	pea a <LASTO>                               
   445de:	4eba fd14      	jsr %pc@(442f4 <echo>)                      
   445e2:	508f           	addql #8,%sp                                
      tty->cbuf[tty->ccount++] = c;                                   
   445e4:	202a 0020      	movel %a2@(32),%d0                          
   445e8:	206a 001c      	moveal %a2@(28),%a0                         
   445ec:	720a           	moveq #10,%d1                               
   445ee:	1181 0800      	moveb %d1,%a0@(00000000,%d0:l)              
   445f2:	6032           	bras 44626 <iproc+0x118>                    
      return 1;                                                       
    } else if ((c == tty->termios.c_cc[VEOL]) ||                      
   445f4:	4283           	clrl %d3                                    
   445f6:	162a 004c      	moveb %a2@(76),%d3                          
   445fa:	b680           	cmpl %d0,%d3                                
   445fc:	670a           	beqs 44608 <iproc+0xfa>                     <== NEVER TAKEN
   445fe:	4283           	clrl %d3                                    
   44600:	162a 0051      	moveb %a2@(81),%d3                          
   44604:	b680           	cmpl %d0,%d3                                
   44606:	6626           	bnes 4462e <iproc+0x120>                    <== ALWAYS TAKEN
               (c == tty->termios.c_cc[VEOL2])) {                     
      if (tty->termios.c_lflag & ECHO)                                
   44608:	44c1           	movew %d1,%ccr                              <== NOT EXECUTED
   4460a:	6a0e           	bpls 4461a <iproc+0x10c>                    <== NOT EXECUTED
        echo (c, tty);                                                
   4460c:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   4460e:	4280           	clrl %d0                                    <== NOT EXECUTED
   44610:	1002           	moveb %d2,%d0                               <== NOT EXECUTED
   44612:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   44614:	4eba fcde      	jsr %pc@(442f4 <echo>)                      <== NOT EXECUTED
   44618:	508f           	addql #8,%sp                                <== NOT EXECUTED
      tty->cbuf[tty->ccount++] = c;                                   
   4461a:	202a 0020      	movel %a2@(32),%d0                          <== NOT EXECUTED
   4461e:	206a 001c      	moveal %a2@(28),%a0                         <== NOT EXECUTED
   44622:	1182 0800      	moveb %d2,%a0@(00000000,%d0:l)              <== NOT EXECUTED
   44626:	5280           	addql #1,%d0                                
   44628:	2540 0020      	movel %d0,%a2@(32)                          
   4462c:	6038           	bras 44666 <iproc+0x158>                    
  }                                                                   
                                                                      
  /*                                                                  
   * FIXME: Should do IMAXBEL handling somehow                        
   */                                                                 
  if (tty->ccount < (CBUFSIZE-1)) {                                   
   4462e:	2039 0005 d234 	movel 5d234 <rtems_termios_cbufsize>,%d0    
   44634:	5380           	subql #1,%d0                                
   44636:	b0aa 0020      	cmpl %a2@(32),%d0                           
   4463a:	6f2e           	bles 4466a <iproc+0x15c>                    <== NEVER TAKEN
    if (tty->termios.c_lflag & ECHO)                                  
   4463c:	7008           	moveq #8,%d0                                
   4463e:	c0aa 003c      	andl %a2@(60),%d0                           
   44642:	670e           	beqs 44652 <iproc+0x144>                    <== NEVER TAKEN
      echo (c, tty);                                                  
   44644:	2f0a           	movel %a2,%sp@-                             
   44646:	4280           	clrl %d0                                    
   44648:	1002           	moveb %d2,%d0                               
   4464a:	2f00           	movel %d0,%sp@-                             
   4464c:	4eba fca6      	jsr %pc@(442f4 <echo>)                      
   44650:	508f           	addql #8,%sp                                
    tty->cbuf[tty->ccount++] = c;                                     
   44652:	202a 0020      	movel %a2@(32),%d0                          
   44656:	206a 001c      	moveal %a2@(28),%a0                         
   4465a:	1182 0800      	moveb %d2,%a0@(00000000,%d0:l)              
   4465e:	5280           	addql #1,%d0                                
   44660:	2540 0020      	movel %d0,%a2@(32)                          
   44664:	6004           	bras 4466a <iproc+0x15c>                    
    else if (c == tty->termios.c_cc[VKILL]) {                         
      erase (tty, 1);                                                 
      return 0;                                                       
    }                                                                 
    else if (c == tty->termios.c_cc[VEOF]) {                          
      return 1;                                                       
   44666:	7001           	moveq #1,%d0                                
   44668:	6002           	bras 4466c <iproc+0x15e>                    
  if (tty->ccount < (CBUFSIZE-1)) {                                   
    if (tty->termios.c_lflag & ECHO)                                  
      echo (c, tty);                                                  
    tty->cbuf[tty->ccount++] = c;                                     
  }                                                                   
  return 0;                                                           
   4466a:	4280           	clrl %d0                                    
}                                                                     
   4466c:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   44672:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005ac38 <killinfo>: int killinfo( pid_t pid, int sig, const union sigval *value ) {
   5ac38:	4e56 ffd0      	linkw %fp,#-48                              
   5ac3c:	48d7 1cfc      	moveml %d2-%d7/%a2-%a4,%sp@                 
   5ac40:	242e 000c      	movel %fp@(12),%d2                          
   5ac44:	246e 0010      	moveal %fp@(16),%a2                         
  POSIX_signals_Siginfo_node  *psiginfo;                              
                                                                      
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
  if ( pid != getpid() )                                              
   5ac48:	4eb9 0005 a85c 	jsr 5a85c <getpid>                          
   5ac4e:	b0ae 0008      	cmpl %fp@(8),%d0                            
   5ac52:	6710           	beqs 5ac64 <killinfo+0x2c>                  
    rtems_set_errno_and_return_minus_one( ESRCH );                    
   5ac54:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5ac5a:	7403           	moveq #3,%d2                                
   5ac5c:	2040           	moveal %d0,%a0                              
   5ac5e:	2082           	movel %d2,%a0@                              
   5ac60:	6000 01ae      	braw 5ae10 <killinfo+0x1d8>                 
                                                                      
  /*                                                                  
   *  Validate the signal passed.                                     
   */                                                                 
  if ( !sig )                                                         
   5ac64:	4a82           	tstl %d2                                    
   5ac66:	670a           	beqs 5ac72 <killinfo+0x3a>                  
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
   5ac68:	2202           	movel %d2,%d1                               
   5ac6a:	5381           	subql #1,%d1                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
   5ac6c:	701f           	moveq #31,%d0                               
   5ac6e:	b081           	cmpl %d1,%d0                                
   5ac70:	6410           	bccs 5ac82 <killinfo+0x4a>                  
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   5ac72:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5ac78:	7216           	moveq #22,%d1                               
   5ac7a:	2040           	moveal %d0,%a0                              
   5ac7c:	2081           	movel %d1,%a0@                              
   5ac7e:	6000 0190      	braw 5ae10 <killinfo+0x1d8>                 
                                                                      
  /*                                                                  
   *  If the signal is being ignored, then we are out of here.        
   */                                                                 
  if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN )          
   5ac82:	2602           	movel %d2,%d3                               
   5ac84:	2002           	movel %d2,%d0                               
   5ac86:	e58b           	lsll #2,%d3                                 
   5ac88:	e988           	lsll #4,%d0                                 
   5ac8a:	9083           	subl %d3,%d0                                
   5ac8c:	0680 0005 ee6c 	addil #388716,%d0                           
   5ac92:	7601           	moveq #1,%d3                                
   5ac94:	2040           	moveal %d0,%a0                              
   5ac96:	b690           	cmpl %a0@,%d3                               
   5ac98:	6700 01a6      	beqw 5ae40 <killinfo+0x208>                 
  /*                                                                  
   *  P1003.1c/Draft 10, p. 33 says that certain signals should always
   *  be directed to the executing thread such as those caused by hardware
   *  faults.                                                         
   */                                                                 
  if ( (sig == SIGFPE) || (sig == SIGILL) || (sig == SIGSEGV ) )      
   5ac9c:	7008           	moveq #8,%d0                                
   5ac9e:	b082           	cmpl %d2,%d0                                
   5aca0:	6710           	beqs 5acb2 <killinfo+0x7a>                  
   5aca2:	163c 0004      	moveb #4,%d3                                
   5aca6:	b682           	cmpl %d2,%d3                                
   5aca8:	6708           	beqs 5acb2 <killinfo+0x7a>                  
   5acaa:	103c 000b      	moveb #11,%d0                               
   5acae:	b082           	cmpl %d2,%d0                                
   5acb0:	6616           	bnes 5acc8 <killinfo+0x90>                  
      return pthread_kill( pthread_self(), sig );                     
   5acb2:	4eb9 0005 b014 	jsr 5b014 <pthread_self>                    
   5acb8:	2f02           	movel %d2,%sp@-                             
   5acba:	2f00           	movel %d0,%sp@-                             
   5acbc:	4eb9 0005 af68 	jsr 5af68 <pthread_kill>                    
   5acc2:	508f           	addql #8,%sp                                
   5acc4:	6000 017c      	braw 5ae42 <killinfo+0x20a>                 
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
   5acc8:	7601           	moveq #1,%d3                                
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  siginfo->si_code = SI_USER;                                         
   5acca:	7001           	moveq #1,%d0                                
   5accc:	e3ab           	lsll %d1,%d3                                
                                                                      
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
   5acce:	2d42 fff4      	movel %d2,%fp@(-12)                         
  siginfo->si_code = SI_USER;                                         
   5acd2:	2d40 fff8      	movel %d0,%fp@(-8)                          
  if ( !value ) {                                                     
   5acd6:	4a8a           	tstl %a2                                    
   5acd8:	6606           	bnes 5ace0 <killinfo+0xa8>                  
    siginfo->si_value.sival_int = 0;                                  
   5acda:	42ae fffc      	clrl %fp@(-4)                               
   5acde:	6004           	bras 5ace4 <killinfo+0xac>                  
  } else {                                                            
    siginfo->si_value = *value;                                       
   5ace0:	2d52 fffc      	movel %a2@,%fp@(-4)                         
   5ace4:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
   5acea:	5280           	addql #1,%d0                                
   5acec:	23c0 0005 e9c8 	movel %d0,5e9c8 <_Thread_Dispatch_disable_level>
                                                                      
  /*                                                                  
   *  Is the currently executing thread interested?  If so then it will
   *  get it an execute it as soon as the dispatcher executes.        
   */                                                                 
  the_thread = _Thread_Executing;                                     
   5acf2:	2079 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a0 
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  if ( _POSIX_signals_Is_interested( api, mask ) ) {                  
   5acf8:	2268 0102      	moveal %a0@(258),%a1                        
   5acfc:	2029 00d0      	movel %a1@(208),%d0                         
   5ad00:	4680           	notl %d0                                    
   5ad02:	c083           	andl %d3,%d0                                
   5ad04:	6600 00ae      	bnew 5adb4 <killinfo+0x17c>                 
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
   5ad08:	2279 0005 eff0 	moveal 5eff0 <_POSIX_signals_Wait_queue>,%a1
                                                                      
  /* XXX violation of visibility -- need to define thread queue support */
                                                                      
  the_chain = &_POSIX_signals_Wait_queue.Queues.Fifo;                 
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
   5ad0e:	601e           	bras 5ad2e <killinfo+0xf6>                  
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
   5ad10:	2003           	movel %d3,%d0                               
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
   5ad12:	2049           	moveal %a1,%a0                              
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
   5ad14:	c0a9 0030      	andl %a1@(48),%d0                           
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
    api = the_thread->API_Extensions[ THREAD_API_POSIX ];             
   5ad18:	2469 0102      	moveal %a1@(258),%a2                        
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
   5ad1c:	6600 0096      	bnew 5adb4 <killinfo+0x17c>                 
                                                                      
    /*                                                                
     * Is this thread is blocked waiting for another signal but has   
     * not blocked this one?                                          
     */                                                               
    if (~api->signals_blocked & mask)                                 
   5ad20:	202a 00d0      	movel %a2@(208),%d0                         
   5ad24:	4680           	notl %d0                                    
   5ad26:	c083           	andl %d3,%d0                                
   5ad28:	6600 008a      	bnew 5adb4 <killinfo+0x17c>                 
                                                                      
  the_chain = &_POSIX_signals_Wait_queue.Queues.Fifo;                 
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
   5ad2c:	2251           	moveal %a1@,%a1                             
                                                                      
  /* XXX violation of visibility -- need to define thread queue support */
                                                                      
  the_chain = &_POSIX_signals_Wait_queue.Queues.Fifo;                 
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
   5ad2e:	b3fc 0005 eff4 	cmpal #389108,%a1                           
   5ad34:	66da           	bnes 5ad10 <killinfo+0xd8>                  
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  interested_priority = PRIORITY_MAXIMUM + 1;                         
   5ad36:	4280           	clrl %d0                                    
   5ad38:	1039 0005 d0d2 	moveb 5d0d2 <rtems_maximum_priority>,%d0    
   5ad3e:	45f9 0005 e98c 	lea 5e98c <_Objects_Information_table+0x8>,%a2
   5ad44:	5280           	addql #1,%d0                                
   *                                                                  
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
   5ad46:	91c8           	subal %a0,%a0                               
  for (the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; the_api++) {
                                                                      
    /*                                                                
     *  This can occur when no one is interested and an API is not configured.
     */                                                               
    if ( !_Objects_Information_table[ the_api ] )                     
   5ad48:	225a           	moveal %a2@+,%a1                            
   5ad4a:	4a89           	tstl %a1                                    
   5ad4c:	675a           	beqs 5ada8 <killinfo+0x170>                 <== NEVER TAKEN
      continue;                                                       
                                                                      
    the_info = _Objects_Information_table[ the_api ][ 1 ];            
   5ad4e:	2269 0004      	moveal %a1@(4),%a1                          
       */                                                             
      if ( !the_info )                                                
        continue;                                                     
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
   5ad52:	4287           	clrl %d7                                    
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
   5ad54:	7801           	moveq #1,%d4                                
 */                                                                   
                                                                      
#define _POSIX_signals_Is_interested( _api, _mask ) \                 
  ( ~(_api)->signals_blocked & (_mask) )                              
                                                                      
int killinfo(                                                         
   5ad56:	2669 0018      	moveal %a1@(24),%a3                         
   5ad5a:	588b           	addql #4,%a3                                
       */                                                             
      if ( !the_info )                                                
        continue;                                                     
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
   5ad5c:	3e29 000e      	movew %a1@(14),%d7                          
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
   5ad60:	6042           	bras 5ada4 <killinfo+0x16c>                 
      the_thread = (Thread_Control *) object_table[ index ];          
   5ad62:	225b           	moveal %a3@+,%a1                            
                                                                      
      if ( !the_thread )                                              
   5ad64:	4a89           	tstl %a1                                    
   5ad66:	673a           	beqs 5ada2 <killinfo+0x16a>                 
                                                                      
      /*                                                              
       *  If this thread is of lower priority than the interested thread,
       *  go on to the next thread.                                   
       */                                                             
      if ( the_thread->current_priority > interested_priority )       
   5ad68:	2229 0014      	movel %a1@(20),%d1                          
   5ad6c:	b081           	cmpl %d1,%d0                                
   5ad6e:	6532           	bcss 5ada2 <killinfo+0x16a>                 
      #if defined(RTEMS_DEBUG)                                        
        if ( !api )                                                   
          continue;                                                   
      #endif                                                          
                                                                      
      if ( !_POSIX_signals_Is_interested( api, mask ) )               
   5ad70:	2869 0102      	moveal %a1@(258),%a4                        
   5ad74:	2a2c 00d0      	movel %a4@(208),%d5                         
   5ad78:	4685           	notl %d5                                    
   5ad7a:	ca83           	andl %d3,%d5                                
   5ad7c:	6724           	beqs 5ada2 <killinfo+0x16a>                 
       *                                                              
       *  NOTE: We initialized interested_priority to PRIORITY_MAXIMUM + 1
       *        so we never have to worry about deferencing a NULL    
       *        interested thread.                                    
       */                                                             
      if ( the_thread->current_priority < interested_priority ) {     
   5ad7e:	b081           	cmpl %d1,%d0                                
   5ad80:	621c           	bhis 5ad9e <killinfo+0x166>                 
       *  and blocking interruptibutable by signal.                   
       *                                                              
       *  If the interested thread is ready, don't think about changing.
       */                                                             
                                                                      
      if ( interested && !_States_Is_ready( interested->current_state ) ) {
   5ad82:	4a88           	tstl %a0                                    
   5ad84:	671c           	beqs 5ada2 <killinfo+0x16a>                 <== NEVER TAKEN
   5ad86:	2c28 0010      	movel %a0@(16),%d6                          
   5ad8a:	6716           	beqs 5ada2 <killinfo+0x16a>                 <== NEVER TAKEN
        /* preferred ready over blocked */                            
        DEBUG_STEP("5");                                              
        if ( _States_Is_ready( the_thread->current_state ) ) {        
   5ad8c:	2a29 0010      	movel %a1@(16),%d5                          
   5ad90:	670c           	beqs 5ad9e <killinfo+0x166>                 
          continue;                                                   
        }                                                             
                                                                      
        DEBUG_STEP("6");                                              
        /* prefer blocked/interruptible over blocked/not interruptible */
        if ( !_States_Is_interruptible_by_signal(interested->current_state) ) {
   5ad92:	0806 001c      	btst #28,%d6                                
   5ad96:	660a           	bnes 5ada2 <killinfo+0x16a>                 
          DEBUG_STEP("7");                                            
          if ( _States_Is_interruptible_by_signal(the_thread->current_state) ) {
   5ad98:	0805 001c      	btst #28,%d5                                
   5ad9c:	6704           	beqs 5ada2 <killinfo+0x16a>                 
       */                                                             
                                                                      
      if ( interested && !_States_Is_ready( interested->current_state ) ) {
        /* preferred ready over blocked */                            
        DEBUG_STEP("5");                                              
        if ( _States_Is_ready( the_thread->current_state ) ) {        
   5ad9e:	2001           	movel %d1,%d0                               
   5ada0:	2049           	moveal %a1,%a0                              
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
   5ada2:	5284           	addql #1,%d4                                
   5ada4:	be84           	cmpl %d4,%d7                                
   5ada6:	64ba           	bccs 5ad62 <killinfo+0x12a>                 
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  interested_priority = PRIORITY_MAXIMUM + 1;                         
                                                                      
  for (the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; the_api++) {
   5ada8:	b5fc 0005 e994 	cmpal #387476,%a2                           
   5adae:	6698           	bnes 5ad48 <killinfo+0x110>                 
        }                                                             
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( interested ) {                                                 
   5adb0:	4a88           	tstl %a0                                    
   5adb2:	6716           	beqs 5adca <killinfo+0x192>                 
                                                                      
  /*                                                                  
   *  Returns true if the signal was synchronously given to a thread  
   *  blocked waiting for the signal.                                 
   */                                                                 
  if ( _POSIX_signals_Unblock_thread( the_thread, sig, siginfo ) ) {  
   5adb4:	486e fff4      	pea %fp@(-12)                               
   5adb8:	2f02           	movel %d2,%sp@-                             
   5adba:	2f08           	movel %a0,%sp@-                             
   5adbc:	4eb9 0005 ae6c 	jsr 5ae6c <_POSIX_signals_Unblock_thread>   
   5adc2:	4fef 000c      	lea %sp@(12),%sp                            
   5adc6:	4a00           	tstb %d0                                    
   5adc8:	6670           	bnes 5ae3a <killinfo+0x202>                 
                                                                      
  /*                                                                  
   *  We may have woken up a thread but we definitely need to post the
   *  signal to the process wide information set.                     
   */                                                                 
  _POSIX_signals_Set_process_signals( mask );                         
   5adca:	2f03           	movel %d3,%sp@-                             
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
   5adcc:	7602           	moveq #2,%d3                                
                                                                      
  /*                                                                  
   *  We may have woken up a thread but we definitely need to post the
   *  signal to the process wide information set.                     
   */                                                                 
  _POSIX_signals_Set_process_signals( mask );                         
   5adce:	4eb9 0005 ae4c 	jsr 5ae4c <_POSIX_signals_Set_process_signals>
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
   5add4:	588f           	addql #4,%sp                                
   5add6:	2002           	movel %d2,%d0                               
   5add8:	41f9 0005 ee64 	lea 5ee64 <_POSIX_signals_Vectors>,%a0      
   5adde:	e588           	lsll #2,%d0                                 
   5ade0:	e98a           	lsll #4,%d2                                 
   5ade2:	9480           	subl %d0,%d2                                
   5ade4:	b6b0 2800      	cmpl %a0@(00000000,%d2:l),%d3               
   5ade8:	6650           	bnes 5ae3a <killinfo+0x202>                 
                                                                      
    psiginfo = (POSIX_signals_Siginfo_node *)                         
               _Chain_Get( &_POSIX_signals_Inactive_siginfo );        
   5adea:	4879 0005 efe4 	pea 5efe4 <_POSIX_signals_Inactive_siginfo> 
   5adf0:	4eb9 0004 6268 	jsr 46268 <_Chain_Get>                      
    if ( !psiginfo ) {                                                
   5adf6:	588f           	addql #4,%sp                                
  _POSIX_signals_Set_process_signals( mask );                         
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
                                                                      
    psiginfo = (POSIX_signals_Siginfo_node *)                         
               _Chain_Get( &_POSIX_signals_Inactive_siginfo );        
   5adf8:	2440           	moveal %d0,%a2                              
    if ( !psiginfo ) {                                                
   5adfa:	4a80           	tstl %d0                                    
   5adfc:	6616           	bnes 5ae14 <killinfo+0x1dc>                 
      _Thread_Enable_dispatch();                                      
   5adfe:	4eb9 0004 7ac2 	jsr 47ac2 <_Thread_Enable_dispatch>         
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
   5ae04:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5ae0a:	2040           	moveal %d0,%a0                              
   5ae0c:	700b           	moveq #11,%d0                               
   5ae0e:	2080           	movel %d0,%a0@                              
   5ae10:	70ff           	moveq #-1,%d0                               
   5ae12:	602e           	bras 5ae42 <killinfo+0x20a>                 
    }                                                                 
                                                                      
    psiginfo->Info = *siginfo;                                        
   5ae14:	4878 000c      	pea c <OPER1>                               
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
   5ae18:	0682 0005 f05c 	addil #389212,%d2                           
    if ( !psiginfo ) {                                                
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
    }                                                                 
                                                                      
    psiginfo->Info = *siginfo;                                        
   5ae1e:	486e fff4      	pea %fp@(-12)                               
   5ae22:	486a 0008      	pea %a2@(8)                                 
   5ae26:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
   5ae2c:	2f0a           	movel %a2,%sp@-                             
   5ae2e:	2f02           	movel %d2,%sp@-                             
   5ae30:	4eb9 0004 6208 	jsr 46208 <_Chain_Append>                   
   5ae36:	4fef 0014      	lea %sp@(20),%sp                            
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
   5ae3a:	4eb9 0004 7ac2 	jsr 47ac2 <_Thread_Enable_dispatch>         
                                                                      
  /*                                                                  
   *  If the signal is being ignored, then we are out of here.        
   */                                                                 
  if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN )          
    return 0;                                                         
   5ae40:	4280           	clrl %d0                                    
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
   5ae42:	4cee 1cfc ffd0 	moveml %fp@(-48),%d2-%d7/%a2-%a4            
   5ae48:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043154 <libc_wrapup>: /* * In case RTEMS is already down, don't do this. It could be * dangerous. */ if (!_System_state_Is_up(_System_state_Get()))
   43154:	7003           	moveq #3,%d0                                
                                                                      
extern void _wrapup_reent(struct _reent *);                           
extern void _reclaim_reent(struct _reent *);                          
                                                                      
void libc_wrapup(void)                                                
{                                                                     
   43156:	4e56 0000      	linkw %fp,#0                                
   4315a:	2f0a           	movel %a2,%sp@-                             
  /*                                                                  
   *  In case RTEMS is already down, don't do this.  It could be      
   *  dangerous.                                                      
   */                                                                 
                                                                      
  if (!_System_state_Is_up(_System_state_Get()))                      
   4315c:	b0b9 0005 eb14 	cmpl 5eb14 <_System_state_Current>,%d0      
   43162:	664c           	bnes 431b0 <libc_wrapup+0x5c>               <== NEVER TAKEN
  /*                                                                  
   *  This was already done if the user called exit() directly .      
  _wrapup_reent(0);                                                   
   */                                                                 
                                                                      
  if (_REENT != _global_impure_ptr) {                                 
   43164:	2479 0005 c82c 	moveal 5c82c <_global_impure_ptr>,%a2       
   4316a:	b5f9 0005 d30c 	cmpal 5d30c <_impure_ptr>,%a2               
   43170:	6710           	beqs 43182 <libc_wrapup+0x2e>               
      _wrapup_reent(_global_impure_ptr);                              
   43172:	2f0a           	movel %a2,%sp@-                             
   43174:	4eb9 0004 d67a 	jsr 4d67a <_wrapup_reent>                   
      /*  Don't reclaim this one, just in case we do printfs          
       *  on the way out to ROM.                                      
       */                                                             
      _reclaim_reent(&libc_global_reent);                             
#endif                                                                
      _REENT = _global_impure_ptr;                                    
   4317a:	588f           	addql #4,%sp                                
   4317c:	23ca 0005 d30c 	movel %a2,5d30c <_impure_ptr>               
   *                                                                  
   * Should this be changed to do *all* file streams?                 
   *    _fwalk (_REENT, fclose);                                      
   */                                                                 
                                                                      
  fclose (stdin);                                                     
   43182:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   43188:	45f9 0004 cc1e 	lea 4cc1e <fclose>,%a2                      
   4318e:	2f28 0004      	movel %a0@(4),%sp@-                         
   43192:	4e92           	jsr %a2@                                    
  fclose (stdout);                                                    
   43194:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   4319a:	2f28 0008      	movel %a0@(8),%sp@-                         
   4319e:	4e92           	jsr %a2@                                    
  fclose (stderr);                                                    
   431a0:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   431a6:	2f28 000c      	movel %a0@(12),%sp@-                        
   431aa:	4e92           	jsr %a2@                                    
   431ac:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   431b0:	246e fffc      	moveal %fp@(-4),%a2                         
   431b4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00042cd4 <malloc>: #include "malloc_p.h" void *malloc( size_t size ) {
   42cd4:	4e56 0000      	linkw %fp,#0                                
  void        *return_this;                                           
                                                                      
  MSBUMP(malloc_calls, 1);                                            
   42cd8:	52b9 0005 e890 	addql #1,5e890 <rtems_malloc_statistics+0x4>
#include "malloc_p.h"                                                 
                                                                      
void *malloc(                                                         
  size_t  size                                                        
)                                                                     
{                                                                     
   42cde:	2f03           	movel %d3,%sp@-                             
   42ce0:	2f02           	movel %d2,%sp@-                             
   42ce2:	242e 0008      	movel %fp@(8),%d2                           
  MSBUMP(malloc_calls, 1);                                            
                                                                      
  /*                                                                  
   *  If some free's have been deferred, then do them now.            
   */                                                                 
  malloc_deferred_frees_process();                                    
   42ce6:	4eb9 0004 2bce 	jsr 42bce <malloc_deferred_frees_process>   
                                                                      
  /*                                                                  
   * Validate the parameters                                          
   */                                                                 
  if ( !size )                                                        
   42cec:	4a82           	tstl %d2                                    
   42cee:	677e           	beqs 42d6e <malloc+0x9a>                    
    return (void *) 0;                                                
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if not in correct system state.
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
   42cf0:	7003           	moveq #3,%d0                                
   42cf2:	b0b9 0005 eb14 	cmpl 5eb14 <_System_state_Current>,%d0      
   42cf8:	660a           	bnes 42d04 <malloc+0x30>                    
       !malloc_is_system_state_OK() )                                 
   42cfa:	4eb9 0004 2b90 	jsr 42b90 <malloc_is_system_state_OK>       
    return (void *) 0;                                                
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if not in correct system state.
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
   42d00:	4a00           	tstb %d0                                    
   42d02:	676a           	beqs 42d6e <malloc+0x9a>                    <== NEVER TAKEN
RTEMS_INLINE_ROUTINE void *_Protected_heap_Allocate(                  
  Heap_Control *heap,                                                 
  uintptr_t size                                                      
)                                                                     
{                                                                     
  return _Protected_heap_Allocate_aligned_with_boundary( heap, size, 0, 0 );
   42d04:	42a7           	clrl %sp@-                                  
   42d06:	42a7           	clrl %sp@-                                  
   42d08:	2f02           	movel %d2,%sp@-                             
   42d0a:	2f39 0005 d030 	movel 5d030 <RTEMS_Malloc_Heap>,%sp@-       
   42d10:	4eb9 0004 71bc 	jsr 471bc <_Protected_heap_Allocate_aligned_with_boundary>
   * If this fails then return a NULL pointer.                        
   */                                                                 
                                                                      
  return_this = _Protected_heap_Allocate( RTEMS_Malloc_Heap, size );  
                                                                      
  if ( !return_this ) {                                               
   42d16:	4fef 0010      	lea %sp@(16),%sp                            
   42d1a:	4a80           	tstl %d0                                    
   42d1c:	6626           	bnes 42d44 <malloc+0x70>                    
    if (rtems_malloc_sbrk_helpers)                                    
   42d1e:	2079 0005 d80a 	moveal 5d80a <rtems_malloc_sbrk_helpers>,%a0
   42d24:	4a88           	tstl %a0                                    
   42d26:	670e           	beqs 42d36 <malloc+0x62>                    
      return_this = (*rtems_malloc_sbrk_helpers->extend)( size );     
   42d28:	2f02           	movel %d2,%sp@-                             
   42d2a:	2068 0004      	moveal %a0@(4),%a0                          
   42d2e:	4e90           	jsr %a0@                                    
    if ( !return_this ) {                                             
   42d30:	588f           	addql #4,%sp                                
                                                                      
  return_this = _Protected_heap_Allocate( RTEMS_Malloc_Heap, size );  
                                                                      
  if ( !return_this ) {                                               
    if (rtems_malloc_sbrk_helpers)                                    
      return_this = (*rtems_malloc_sbrk_helpers->extend)( size );     
   42d32:	2600           	movel %d0,%d3                               
    if ( !return_this ) {                                             
   42d34:	6610           	bnes 42d46 <malloc+0x72>                    
      errno = ENOMEM;                                                 
   42d36:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   42d3c:	2040           	moveal %d0,%a0                              
   42d3e:	700c           	moveq #12,%d0                               
   42d40:	2080           	movel %d0,%a0@                              
   42d42:	602a           	bras 42d6e <malloc+0x9a>                    
   * If this fails then return a NULL pointer.                        
   */                                                                 
                                                                      
  return_this = _Protected_heap_Allocate( RTEMS_Malloc_Heap, size );  
                                                                      
  if ( !return_this ) {                                               
   42d44:	2600           	movel %d0,%d3                               
  }                                                                   
                                                                      
  /*                                                                  
   *  If the user wants us to dirty the allocated memory, then do it. 
   */                                                                 
  if ( rtems_malloc_dirty_helper )                                    
   42d46:	2079 0005 d80e 	moveal 5d80e <rtems_malloc_dirty_helper>,%a0
   42d4c:	4a88           	tstl %a0                                    
   42d4e:	6708           	beqs 42d58 <malloc+0x84>                    
    (*rtems_malloc_dirty_helper)( return_this, size );                
   42d50:	2f02           	movel %d2,%sp@-                             
   42d52:	2f03           	movel %d3,%sp@-                             
   42d54:	4e90           	jsr %a0@                                    
   42d56:	508f           	addql #8,%sp                                
                                                                      
  /*                                                                  
   *  If configured, update the statistics                            
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
   42d58:	2079 0005 d806 	moveal 5d806 <rtems_malloc_statistics_helpers>,%a0
   42d5e:	4a88           	tstl %a0                                    
   42d60:	670e           	beqs 42d70 <malloc+0x9c>                    
    (*rtems_malloc_statistics_helpers->at_malloc)(return_this);       
   42d62:	2f03           	movel %d3,%sp@-                             
   42d64:	2068 0004      	moveal %a0@(4),%a0                          
   42d68:	4e90           	jsr %a0@                                    
   42d6a:	588f           	addql #4,%sp                                
   42d6c:	6002           	bras 42d70 <malloc+0x9c>                    
  /*                                                                  
   *  Do not attempt to allocate memory if not in correct system state.
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
       !malloc_is_system_state_OK() )                                 
    return NULL;                                                      
   42d6e:	4283           	clrl %d3                                    
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
    (*rtems_malloc_statistics_helpers->at_malloc)(return_this);       
                                                                      
  return return_this;                                                 
}                                                                     
   42d70:	2003           	movel %d3,%d0                               
   42d72:	242e fff8      	movel %fp@(-8),%d2                          
   42d76:	262e fffc      	movel %fp@(-4),%d3                          
   42d7a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00043000 <malloc_sbrk_extend_and_allocate>: } void *malloc_sbrk_extend_and_allocate( size_t size ) {
   43000:	4e56 fff4      	linkw %fp,#-12                              
   *  Round to the "requested sbrk amount" so hopefully we won't have 
   *  to grow again for a while.  This effectively does sbrk() calls  
   *  in "page" amounts.                                              
   */                                                                 
                                                                      
  sbrk_amount = RTEMS_Malloc_Sbrk_amount;                             
   43004:	2039 0005 eef0 	movel 5eef0 <RTEMS_Malloc_Sbrk_amount>,%d0  
}                                                                     
                                                                      
void *malloc_sbrk_extend_and_allocate(                                
  size_t size                                                         
)                                                                     
{                                                                     
   4300a:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   4300e:	262e 0008      	movel %fp@(8),%d3                           
   *  in "page" amounts.                                              
   */                                                                 
                                                                      
  sbrk_amount = RTEMS_Malloc_Sbrk_amount;                             
                                                                      
  if ( sbrk_amount == 0 )                                             
   43012:	4a80           	tstl %d0                                    
   43014:	676a           	beqs 43080 <malloc_sbrk_extend_and_allocate+0x80><== NEVER TAKEN
    return (void *) 0;                                                
                                                                      
  the_size = ((size + sbrk_amount) / sbrk_amount * sbrk_amount);      
   43016:	2403           	movel %d3,%d2                               
   43018:	d480           	addl %d0,%d2                                
                                                                      
  starting_address = (void *) sbrk(the_size);                         
   4301a:	45f9 0004 0810 	lea 40810 <sbrk>,%a2                        
  sbrk_amount = RTEMS_Malloc_Sbrk_amount;                             
                                                                      
  if ( sbrk_amount == 0 )                                             
    return (void *) 0;                                                
                                                                      
  the_size = ((size + sbrk_amount) / sbrk_amount * sbrk_amount);      
   43020:	4c40 2002      	remul %d0,%d2,%d2                           
   43024:	4c00 2800      	mulsl %d0,%d2                               
                                                                      
  starting_address = (void *) sbrk(the_size);                         
   43028:	2f02           	movel %d2,%sp@-                             
   4302a:	4e92           	jsr %a2@                                    
  if ( starting_address == (void*) -1 )                               
   4302c:	588f           	addql #4,%sp                                
   4302e:	72ff           	moveq #-1,%d1                               
   43030:	b280           	cmpl %d0,%d1                                
   43032:	674c           	beqs 43080 <malloc_sbrk_extend_and_allocate+0x80>
    return (void *) 0;                                                
                                                                      
  if ( !_Protected_heap_Extend(                                       
   43034:	2f02           	movel %d2,%sp@-                             
   43036:	2f00           	movel %d0,%sp@-                             
   43038:	2f39 0005 d530 	movel 5d530 <RTEMS_Malloc_Heap>,%sp@-       
   4303e:	4eb9 0004 749c 	jsr 4749c <_Protected_heap_Extend>          
   43044:	4fef 000c      	lea %sp@(12),%sp                            
   43048:	4a00           	tstb %d0                                    
   4304a:	6616           	bnes 43062 <malloc_sbrk_extend_and_allocate+0x62>
          RTEMS_Malloc_Heap, starting_address, the_size) ) {          
    sbrk(-the_size);                                                  
   4304c:	4482           	negl %d2                                    
   4304e:	2f02           	movel %d2,%sp@-                             
   43050:	4e92           	jsr %a2@                                    
    errno = ENOMEM;                                                   
   43052:	4eb9 0004 cfc0 	jsr 4cfc0 <__errno>                         
    return (void *) 0;                                                
   43058:	588f           	addql #4,%sp                                
    return (void *) 0;                                                
                                                                      
  if ( !_Protected_heap_Extend(                                       
          RTEMS_Malloc_Heap, starting_address, the_size) ) {          
    sbrk(-the_size);                                                  
    errno = ENOMEM;                                                   
   4305a:	2040           	moveal %d0,%a0                              
   4305c:	700c           	moveq #12,%d0                               
   4305e:	2080           	movel %d0,%a0@                              
   43060:	601e           	bras 43080 <malloc_sbrk_extend_and_allocate+0x80>
   43062:	42a7           	clrl %sp@-                                  
    return (void *) 0;                                                
  }                                                                   
                                                                      
  MSBUMP(space_available, the_size);                                  
   43064:	d5b9 0005 eec4 	addl %d2,5eec4 <rtems_malloc_statistics>    
   4306a:	42a7           	clrl %sp@-                                  
   4306c:	2f03           	movel %d3,%sp@-                             
   4306e:	2f39 0005 d530 	movel 5d530 <RTEMS_Malloc_Heap>,%sp@-       
   43074:	4eb9 0004 745c 	jsr 4745c <_Protected_heap_Allocate_aligned_with_boundary>
                                                                      
  return_this = _Protected_heap_Allocate( RTEMS_Malloc_Heap, size );  
  return return_this;                                                 
   4307a:	4fef 0010      	lea %sp@(16),%sp                            
   4307e:	6002           	bras 43082 <malloc_sbrk_extend_and_allocate+0x82>
                                                                      
  the_size = ((size + sbrk_amount) / sbrk_amount * sbrk_amount);      
                                                                      
  starting_address = (void *) sbrk(the_size);                         
  if ( starting_address == (void*) -1 )                               
    return (void *) 0;                                                
   43080:	4280           	clrl %d0                                    
                                                                      
  MSBUMP(space_available, the_size);                                  
                                                                      
  return_this = _Protected_heap_Allocate( RTEMS_Malloc_Heap, size );  
  return return_this;                                                 
}                                                                     
   43082:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   43088:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bcc4 <memfile_lseek>: { IMFS_jnode_t *the_jnode; the_jnode = iop->pathinfo.node_access; if (the_jnode->type == IMFS_LINEAR_FILE) {
   4bcc4:	7006           	moveq #6,%d0                                
rtems_off64_t memfile_lseek(                                          
  rtems_libio_t   *iop,                                               
  rtems_off64_t    offset,                                            
  int              whence                                             
)                                                                     
{                                                                     
   4bcc6:	4e56 fff0      	linkw %fp,#-16                              
   4bcca:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4bcce:	246e 0008      	moveal %fp@(8),%a2                          
  IMFS_jnode_t   *the_jnode;                                          
                                                                      
  the_jnode = iop->pathinfo.node_access;                              
   4bcd2:	266a 0018      	moveal %a2@(24),%a3                         
                                                                      
  if (the_jnode->type == IMFS_LINEAR_FILE) {                          
   4bcd6:	b0ab 0048      	cmpl %a3@(72),%d0                           
   4bcda:	6620           	bnes 4bcfc <memfile_lseek+0x38>             
    if (iop->offset > the_jnode->info.linearfile.size)                
   4bcdc:	202b 004c      	movel %a3@(76),%d0                          
   4bce0:	222b 0050      	movel %a3@(80),%d1                          
   4bce4:	242a 000c      	movel %a2@(12),%d2                          
   4bce8:	262a 0010      	movel %a2@(16),%d3                          
   4bcec:	9681           	subl %d1,%d3                                
   4bcee:	9580           	subxl %d0,%d2                               
   4bcf0:	6f44           	bles 4bd36 <memfile_lseek+0x72>             <== ALWAYS TAKEN
      iop->offset = the_jnode->info.linearfile.size;                  
   4bcf2:	2540 000c      	movel %d0,%a2@(12)                          <== NOT EXECUTED
   4bcf6:	2541 0010      	movel %d1,%a2@(16)                          <== NOT EXECUTED
   4bcfa:	603a           	bras 4bd36 <memfile_lseek+0x72>             <== NOT EXECUTED
  }                                                                   
  else {  /* Must be a block file (IMFS_MEMORY_FILE). */              
    if (IMFS_memfile_extend( the_jnode, iop->offset ))                
   4bcfc:	2f2a 0010      	movel %a2@(16),%sp@-                        
   4bd00:	2f2a 000c      	movel %a2@(12),%sp@-                        
   4bd04:	2f0b           	movel %a3,%sp@-                             
   4bd06:	4eb9 0004 b92c 	jsr 4b92c <IMFS_memfile_extend>             
   4bd0c:	4fef 000c      	lea %sp@(12),%sp                            
   4bd10:	4a80           	tstl %d0                                    
   4bd12:	6712           	beqs 4bd26 <memfile_lseek+0x62>             
      rtems_set_errno_and_return_minus_one( ENOSPC );                 
   4bd14:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4bd1a:	761c           	moveq #28,%d3                               
   4bd1c:	2040           	moveal %d0,%a0                              
   4bd1e:	2083           	movel %d3,%a0@                              
   4bd20:	72ff           	moveq #-1,%d1                               
   4bd22:	74ff           	moveq #-1,%d2                               
   4bd24:	6018           	bras 4bd3e <memfile_lseek+0x7a>             
                                                                      
    iop->size = the_jnode->info.file.size;                            
   4bd26:	202b 004c      	movel %a3@(76),%d0                          
   4bd2a:	222b 0050      	movel %a3@(80),%d1                          
   4bd2e:	2540 0004      	movel %d0,%a2@(4)                           
   4bd32:	2541 0008      	movel %d1,%a2@(8)                           
  }                                                                   
  return iop->offset;                                                 
   4bd36:	222a 000c      	movel %a2@(12),%d1                          
   4bd3a:	242a 0010      	movel %a2@(16),%d2                          
}                                                                     
   4bd3e:	2001           	movel %d1,%d0                               
   4bd40:	2202           	movel %d2,%d1                               
   4bd42:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   4bd48:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bbb8 <memfile_open>: rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) {
   4bbb8:	4e56 fff0      	linkw %fp,#-16                              
   4bbbc:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4bbc0:	266e 0008      	moveal %fp@(8),%a3                          
  the_jnode = iop->pathinfo.node_access;                              
                                                                      
  /*                                                                  
   * Perform 'copy on write' for linear files                         
   */                                                                 
  if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND))         
   4bbc4:	202b 0014      	movel %a3@(20),%d0                          
   4bbc8:	0280 0000 0204 	andil #516,%d0                              
  uint32_t       mode                                                 
)                                                                     
{                                                                     
  IMFS_jnode_t  *the_jnode;                                           
                                                                      
  the_jnode = iop->pathinfo.node_access;                              
   4bbce:	246b 0018      	moveal %a3@(24),%a2                         
                                                                      
  /*                                                                  
   * Perform 'copy on write' for linear files                         
   */                                                                 
  if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND))         
   4bbd2:	674c           	beqs 4bc20 <memfile_open+0x68>              
   && (the_jnode->type == IMFS_LINEAR_FILE)) {                        
   4bbd4:	7006           	moveq #6,%d0                                
   4bbd6:	b0aa 0048      	cmpl %a2@(72),%d0                           
   4bbda:	6644           	bnes 4bc20 <memfile_open+0x68>              <== ALWAYS TAKEN
    uint32_t   count = the_jnode->info.linearfile.size;               
    const unsigned char *buffer = the_jnode->info.linearfile.direct;  
                                                                      
    the_jnode->type = IMFS_MEMORY_FILE;                               
   4bbdc:	7405           	moveq #5,%d2                                <== NOT EXECUTED
   4bbde:	2542 0048      	movel %d2,%a2@(72)                          <== NOT EXECUTED
  /*                                                                  
   * Perform 'copy on write' for linear files                         
   */                                                                 
  if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND))         
   && (the_jnode->type == IMFS_LINEAR_FILE)) {                        
    uint32_t   count = the_jnode->info.linearfile.size;               
   4bbe2:	202a 0050      	movel %a2@(80),%d0                          <== NOT EXECUTED
    const unsigned char *buffer = the_jnode->info.linearfile.direct;  
                                                                      
    the_jnode->type = IMFS_MEMORY_FILE;                               
    the_jnode->info.file.size            = 0;                         
   4bbe6:	4282           	clrl %d2                                    <== NOT EXECUTED
   4bbe8:	4283           	clrl %d3                                    <== NOT EXECUTED
   * Perform 'copy on write' for linear files                         
   */                                                                 
  if ((iop->flags & (LIBIO_FLAGS_WRITE | LIBIO_FLAGS_APPEND))         
   && (the_jnode->type == IMFS_LINEAR_FILE)) {                        
    uint32_t   count = the_jnode->info.linearfile.size;               
    const unsigned char *buffer = the_jnode->info.linearfile.direct;  
   4bbea:	222a 0054      	movel %a2@(84),%d1                          <== NOT EXECUTED
                                                                      
    the_jnode->type = IMFS_MEMORY_FILE;                               
    the_jnode->info.file.size            = 0;                         
   4bbee:	2542 004c      	movel %d2,%a2@(76)                          <== NOT EXECUTED
   4bbf2:	2543 0050      	movel %d3,%a2@(80)                          <== NOT EXECUTED
    the_jnode->info.file.indirect        = 0;                         
   4bbf6:	42aa 0054      	clrl %a2@(84)                               <== NOT EXECUTED
    the_jnode->info.file.doubly_indirect = 0;                         
   4bbfa:	42aa 0058      	clrl %a2@(88)                               <== NOT EXECUTED
    the_jnode->info.file.triply_indirect = 0;                         
   4bbfe:	42aa 005c      	clrl %a2@(92)                               <== NOT EXECUTED
    if ((count != 0)                                                  
   4bc02:	4a80           	tstl %d0                                    <== NOT EXECUTED
   4bc04:	671a           	beqs 4bc20 <memfile_open+0x68>              <== NOT EXECUTED
     && (IMFS_memfile_write(the_jnode, 0, buffer, count) == -1))      
   4bc06:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   4bc08:	76ff           	moveq #-1,%d3                               <== NOT EXECUTED
   4bc0a:	2f01           	movel %d1,%sp@-                             <== NOT EXECUTED
   4bc0c:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   4bc0e:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   4bc10:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   4bc12:	4eb9 0004 ba10 	jsr 4ba10 <IMFS_memfile_write>              <== NOT EXECUTED
   4bc18:	4fef 0014      	lea %sp@(20),%sp                            <== NOT EXECUTED
   4bc1c:	b680           	cmpl %d0,%d3                                <== NOT EXECUTED
   4bc1e:	6730           	beqs 4bc50 <memfile_open+0x98>              <== NOT EXECUTED
        return -1;                                                    
  }                                                                   
  if (iop->flags & LIBIO_FLAGS_APPEND)                                
   4bc20:	202b 0014      	movel %a3@(20),%d0                          
   4bc24:	0280 0000 0200 	andil #512,%d0                              
   4bc2a:	6710           	beqs 4bc3c <memfile_open+0x84>              
    iop->offset = the_jnode->info.file.size;                          
   4bc2c:	202a 004c      	movel %a2@(76),%d0                          
   4bc30:	222a 0050      	movel %a2@(80),%d1                          
   4bc34:	2740 000c      	movel %d0,%a3@(12)                          
   4bc38:	2741 0010      	movel %d1,%a3@(16)                          
                                                                      
  iop->size = the_jnode->info.file.size;                              
  return 0;                                                           
   4bc3c:	4280           	clrl %d0                                    
        return -1;                                                    
  }                                                                   
  if (iop->flags & LIBIO_FLAGS_APPEND)                                
    iop->offset = the_jnode->info.file.size;                          
                                                                      
  iop->size = the_jnode->info.file.size;                              
   4bc3e:	222a 004c      	movel %a2@(76),%d1                          
   4bc42:	242a 0050      	movel %a2@(80),%d2                          
   4bc46:	2741 0004      	movel %d1,%a3@(4)                           
   4bc4a:	2742 0008      	movel %d2,%a3@(8)                           
  return 0;                                                           
   4bc4e:	6002           	bras 4bc52 <memfile_open+0x9a>              
    the_jnode->info.file.indirect        = 0;                         
    the_jnode->info.file.doubly_indirect = 0;                         
    the_jnode->info.file.triply_indirect = 0;                         
    if ((count != 0)                                                  
     && (IMFS_memfile_write(the_jnode, 0, buffer, count) == -1))      
        return -1;                                                    
   4bc50:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
  if (iop->flags & LIBIO_FLAGS_APPEND)                                
    iop->offset = the_jnode->info.file.size;                          
                                                                      
  iop->size = the_jnode->info.file.size;                              
  return 0;                                                           
}                                                                     
   4bc52:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   4bc58:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00042da0 <mknod>: int mknod( const char *pathname, mode_t mode, dev_t dev ) {
   42da0:	4e56 ffd4      	linkw %fp,#-44                              
   42da4:	48d7 001c      	moveml %d2-%d4,%sp@                         
   42da8:	262e 000c      	movel %fp@(12),%d3                          
  int                                 result;                         
                                                                      
  /*                                                                  
   * The file type is field within the mode. Check we have a sane mode set.
   */                                                                 
  switch (mode & S_IFMT)                                              
   42dac:	2003           	movel %d3,%d0                               
   42dae:	0280 0000 f000 	andil #61440,%d0                            
int mknod(                                                            
  const char *pathname,                                               
  mode_t      mode,                                                   
  dev_t       dev                                                     
)                                                                     
{                                                                     
   42db4:	282e 0008      	movel %fp@(8),%d4                           
  int                                 result;                         
                                                                      
  /*                                                                  
   * The file type is field within the mode. Check we have a sane mode set.
   */                                                                 
  switch (mode & S_IFMT)                                              
   42db8:	0c80 0000 4000 	cmpil #16384,%d0                            
   42dbe:	6732           	beqs 42df2 <mknod+0x52>                     
   42dc0:	6212           	bhis 42dd4 <mknod+0x34>                     
   42dc2:	0c80 0000 1000 	cmpil #4096,%d0                             
   42dc8:	6728           	beqs 42df2 <mknod+0x52>                     
   42dca:	0c80 0000 2000 	cmpil #8192,%d0                             
   42dd0:	6612           	bnes 42de4 <mknod+0x44>                     
   42dd2:	601e           	bras 42df2 <mknod+0x52>                     
   42dd4:	0c80 0000 6000 	cmpil #24576,%d0                            
   42dda:	6716           	beqs 42df2 <mknod+0x52>                     
   42ddc:	0c80 0000 8000 	cmpil #32768,%d0                            
   42de2:	670e           	beqs 42df2 <mknod+0x52>                     <== ALWAYS TAKEN
    case S_IFBLK:                                                     
    case S_IFREG:                                                     
    case S_IFIFO:                                                     
      break;                                                          
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   42de4:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   42dea:	2040           	moveal %d0,%a0                              
   42dec:	7016           	moveq #22,%d0                               
   42dee:	2080           	movel %d0,%a0@                              
   42df0:	6064           	bras 42e56 <mknod+0xb6>                     
  }                                                                   
                                                                      
  rtems_filesystem_get_start_loc( pathname, &i, &temp_loc );          
   42df2:	240e           	movel %fp,%d2                               
   42df4:	0682 ffff ffe4 	addil #-28,%d2                              
   42dfa:	2f02           	movel %d2,%sp@-                             
   42dfc:	486e fffc      	pea %fp@(-4)                                
   42e00:	2f04           	movel %d4,%sp@-                             
   42e02:	4eb9 0004 36c4 	jsr 436c4 <rtems_filesystem_get_start_loc>  
                                                                      
  result = (*temp_loc.ops->evalformake_h)(                            
   42e08:	486e fff8      	pea %fp@(-8)                                
   42e0c:	d8ae fffc      	addl %fp@(-4),%d4                           
   42e10:	2f02           	movel %d2,%sp@-                             
   42e12:	206e fff0      	moveal %fp@(-16),%a0                        
   42e16:	2f04           	movel %d4,%sp@-                             
   42e18:	2068 0004      	moveal %a0@(4),%a0                          
   42e1c:	4e90           	jsr %a0@                                    
    &pathname[i],                                                     
    &temp_loc,                                                        
    &name_start                                                       
  );                                                                  
  if ( result != 0 )                                                  
   42e1e:	4fef 0018      	lea %sp@(24),%sp                            
   42e22:	4a80           	tstl %d0                                    
   42e24:	6630           	bnes 42e56 <mknod+0xb6>                     
    return -1;                                                        
                                                                      
  result =  (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc );
   42e26:	2f02           	movel %d2,%sp@-                             
   42e28:	2f2e 0014      	movel %fp@(20),%sp@-                        
   42e2c:	2f2e 0010      	movel %fp@(16),%sp@-                        
   42e30:	206e fff0      	moveal %fp@(-16),%a0                        
   42e34:	2f03           	movel %d3,%sp@-                             
   42e36:	2f2e fff8      	movel %fp@(-8),%sp@-                        
   42e3a:	2068 0014      	moveal %a0@(20),%a0                         
   42e3e:	4e90           	jsr %a0@                                    
                                                                      
  rtems_filesystem_freenode( &temp_loc );                             
   42e40:	2f02           	movel %d2,%sp@-                             
   42e42:	2d40 ffe0      	movel %d0,%fp@(-32)                         
   42e46:	4eb9 0004 29d8 	jsr 429d8 <rtems_filesystem_freenode>       
                                                                      
  return result;                                                      
   42e4c:	202e ffe0      	movel %fp@(-32),%d0                         
   42e50:	4fef 0018      	lea %sp@(24),%sp                            
   42e54:	6002           	bras 42e58 <mknod+0xb8>                     
    &pathname[i],                                                     
    &temp_loc,                                                        
    &name_start                                                       
  );                                                                  
  if ( result != 0 )                                                  
    return -1;                                                        
   42e56:	70ff           	moveq #-1,%d0                               
  result =  (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc );
                                                                      
  rtems_filesystem_freenode( &temp_loc );                             
                                                                      
  return result;                                                      
}                                                                     
   42e58:	4cee 001c ffd4 	moveml %fp@(-44),%d2-%d4                    
   42e5e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00042ef8 <mount>: /* * Are the file system options valid? */ if ( options != RTEMS_FILESYSTEM_READ_ONLY &&
   42ef8:	7001           	moveq #1,%d0                                
  const char                 *target,                                 
  const char                 *filesystemtype,                         
  rtems_filesystem_options_t options,                                 
  const void                 *data                                    
)                                                                     
{                                                                     
   42efa:	4e56 ffbc      	linkw %fp,#-68                              
   42efe:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   42f02:	2a2e 0008      	movel %fp@(8),%d5                           
   42f06:	262e 000c      	movel %fp@(12),%d3                          
   42f0a:	266e 0010      	moveal %fp@(16),%a3                         
                                                                      
  /*                                                                  
   *  Are the file system options valid?                              
   */                                                                 
                                                                      
  if ( options != RTEMS_FILESYSTEM_READ_ONLY &&                       
   42f0e:	b0ae 0014      	cmpl %fp@(20),%d0                           
   42f12:	650e           	bcss 42f22 <mount+0x2a>                     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  /*                                                                  
   *  Get mount handler                                               
   */                                                                 
  mount_h = rtems_filesystem_get_mount_handler( filesystemtype );     
   42f14:	2f0b           	movel %a3,%sp@-                             
   42f16:	4eb9 0004 9dc6 	jsr 49dc6 <rtems_filesystem_get_mount_handler>
  if ( !mount_h )                                                     
   42f1c:	588f           	addql #4,%sp                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  /*                                                                  
   *  Get mount handler                                               
   */                                                                 
  mount_h = rtems_filesystem_get_mount_handler( filesystemtype );     
   42f1e:	2e00           	movel %d0,%d7                               
  if ( !mount_h )                                                     
   42f20:	6610           	bnes 42f32 <mount+0x3a>                     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   42f22:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   42f28:	7816           	moveq #22,%d4                               
   42f2a:	2040           	moveal %d0,%a0                              
   42f2c:	2084           	movel %d4,%a0@                              
   42f2e:	6000 0218      	braw 43148 <mount+0x250>                    
{                                                                     
  rtems_filesystem_fsmount_me_t mount_h = NULL;                       
  rtems_filesystem_location_info_t      loc;                          
  rtems_filesystem_mount_table_entry_t *mt_entry = NULL;              
  rtems_filesystem_location_info_t     *loc_to_free = NULL;           
  bool has_target = target != NULL;                                   
   42f32:	4a83           	tstl %d3                                    
   42f34:	56c2           	sne %d2                                     
  const char *target_or_null,                                         
  const char *filesystemtype,                                         
  size_t *target_length_ptr                                           
)                                                                     
{                                                                     
  const char *target = target_or_null != NULL ? target_or_null : "/"; 
   42f36:	283c 0005 bbfe 	movel #375806,%d4                           
{                                                                     
  rtems_filesystem_fsmount_me_t mount_h = NULL;                       
  rtems_filesystem_location_info_t      loc;                          
  rtems_filesystem_mount_table_entry_t *mt_entry = NULL;              
  rtems_filesystem_location_info_t     *loc_to_free = NULL;           
  bool has_target = target != NULL;                                   
   42f3c:	4482           	negl %d2                                    
  const char *target_or_null,                                         
  const char *filesystemtype,                                         
  size_t *target_length_ptr                                           
)                                                                     
{                                                                     
  const char *target = target_or_null != NULL ? target_or_null : "/"; 
   42f3e:	4a02           	tstb %d2                                    
   42f40:	6702           	beqs 42f44 <mount+0x4c>                     
   42f42:	2803           	movel %d3,%d4                               
  size_t filesystemtype_size = strlen( filesystemtype ) + 1;          
   42f44:	2f0b           	movel %a3,%sp@-                             
   42f46:	45f9 0004 df28 	lea 4df28 <strlen>,%a2                      
   42f4c:	4e92           	jsr %a2@                                    
   42f4e:	588f           	addql #4,%sp                                
   42f50:	2a40           	moveal %d0,%a5                              
   42f52:	528d           	addql #1,%a5                                
  size_t source_size = source_or_null != NULL ?                       
    strlen( source_or_null ) + 1 : 0;                                 
   42f54:	4a85           	tstl %d5                                    
   42f56:	670c           	beqs 42f64 <mount+0x6c>                     
   42f58:	2f05           	movel %d5,%sp@-                             
   42f5a:	4e92           	jsr %a2@                                    
   42f5c:	588f           	addql #4,%sp                                
   42f5e:	2840           	moveal %d0,%a4                              
   42f60:	528c           	addql #1,%a4                                
   42f62:	6002           	bras 42f66 <mount+0x6e>                     
   42f64:	99cc           	subal %a4,%a4                               
  size_t target_size = strlen( target ) + 1;                          
   42f66:	2f04           	movel %d4,%sp@-                             
   42f68:	4eb9 0004 df28 	jsr 4df28 <strlen>                          
   42f6e:	588f           	addql #4,%sp                                
  size_t size = sizeof( rtems_filesystem_mount_table_entry_t )        
    + filesystemtype_size + source_size + target_size;                
   42f70:	41f5 c874      	lea %a5@(00000074,%a4:l),%a0                
{                                                                     
  const char *target = target_or_null != NULL ? target_or_null : "/"; 
  size_t filesystemtype_size = strlen( filesystemtype ) + 1;          
  size_t source_size = source_or_null != NULL ?                       
    strlen( source_or_null ) + 1 : 0;                                 
  size_t target_size = strlen( target ) + 1;                          
   42f74:	2d40 ffe4      	movel %d0,%fp@(-28)                         
   42f78:	5280           	addql #1,%d0                                
  size_t size = sizeof( rtems_filesystem_mount_table_entry_t )        
    + filesystemtype_size + source_size + target_size;                
  rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 
   42f7a:	4870 0800      	pea %a0@(00000000,%d0:l)                    
   42f7e:	4878 0001      	pea 1 <ADD>                                 
{                                                                     
  const char *target = target_or_null != NULL ? target_or_null : "/"; 
  size_t filesystemtype_size = strlen( filesystemtype ) + 1;          
  size_t source_size = source_or_null != NULL ?                       
    strlen( source_or_null ) + 1 : 0;                                 
  size_t target_size = strlen( target ) + 1;                          
   42f82:	2d40 ffe8      	movel %d0,%fp@(-24)                         
  size_t size = sizeof( rtems_filesystem_mount_table_entry_t )        
    + filesystemtype_size + source_size + target_size;                
  rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 
   42f86:	4eb9 0004 2654 	jsr 42654 <calloc>                          
                                                                      
  if ( mt_entry != NULL ) {                                           
   42f8c:	508f           	addql #8,%sp                                
  size_t source_size = source_or_null != NULL ?                       
    strlen( source_or_null ) + 1 : 0;                                 
  size_t target_size = strlen( target ) + 1;                          
  size_t size = sizeof( rtems_filesystem_mount_table_entry_t )        
    + filesystemtype_size + source_size + target_size;                
  rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 
   42f8e:	2440           	moveal %d0,%a2                              
                                                                      
  if ( mt_entry != NULL ) {                                           
   42f90:	4a80           	tstl %d0                                    
   42f92:	6766           	beqs 42ffa <mount+0x102>                    <== NEVER TAKEN
    char *str = (char *) mt_entry + sizeof( *mt_entry );              
                                                                      
    memcpy( str, filesystemtype, filesystemtype_size );               
   42f94:	2f0d           	movel %a5,%sp@-                             
  size_t size = sizeof( rtems_filesystem_mount_table_entry_t )        
    + filesystemtype_size + source_size + target_size;                
  rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 
                                                                      
  if ( mt_entry != NULL ) {                                           
    char *str = (char *) mt_entry + sizeof( *mt_entry );              
   42f96:	2c00           	movel %d0,%d6                               
   42f98:	0686 0000 0074 	addil #116,%d6                              
                                                                      
    memcpy( str, filesystemtype, filesystemtype_size );               
    mt_entry->type = str;                                             
    str += filesystemtype_size;                                       
   42f9e:	4bf5 6800      	lea %a5@(00000000,%d6:l),%a5                
  rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); 
                                                                      
  if ( mt_entry != NULL ) {                                           
    char *str = (char *) mt_entry + sizeof( *mt_entry );              
                                                                      
    memcpy( str, filesystemtype, filesystemtype_size );               
   42fa2:	2f0b           	movel %a3,%sp@-                             
   42fa4:	47f9 0004 d37c 	lea 4d37c <memcpy>,%a3                      
   42faa:	2f06           	movel %d6,%sp@-                             
   42fac:	4e93           	jsr %a3@                                    
    mt_entry->type = str;                                             
   42fae:	2546 006c      	movel %d6,%a2@(108)                         
    str += filesystemtype_size;                                       
                                                                      
    memcpy( str, source_or_null, source_size );                       
   42fb2:	2f0c           	movel %a4,%sp@-                             
   42fb4:	2f05           	movel %d5,%sp@-                             
   42fb6:	2f0d           	movel %a5,%sp@-                             
   42fb8:	4e93           	jsr %a3@                                    
    mt_entry->dev = str;                                              
   42fba:	254d 0070      	movel %a5,%a2@(112)                         
    str += source_size;                                               
                                                                      
    memcpy( str, target, target_size );                               
   42fbe:	2f2e ffe8      	movel %fp@(-24),%sp@-                       
    mt_entry->type = str;                                             
    str += filesystemtype_size;                                       
                                                                      
    memcpy( str, source_or_null, source_size );                       
    mt_entry->dev = str;                                              
    str += source_size;                                               
   42fc2:	dbcc           	addal %a4,%a5                               
                                                                      
    memcpy( str, target, target_size );                               
   42fc4:	2f04           	movel %d4,%sp@-                             
   42fc6:	2f0d           	movel %a5,%sp@-                             
   42fc8:	4e93           	jsr %a3@                                    
  );                                                                  
  if ( !mt_entry )                                                    
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
                                                                      
  mt_entry->mt_fs_root.mt_entry = mt_entry;                           
  mt_entry->options = options;                                        
   42fca:	202e 0014      	movel %fp@(20),%d0                          
  mt_entry->pathconf_limits_and_options = rtems_filesystem_default_pathconf;
   42fce:	4fef 0024      	lea %sp@(36),%sp                            
    memcpy( str, source_or_null, source_size );                       
    mt_entry->dev = str;                                              
    str += source_size;                                               
                                                                      
    memcpy( str, target, target_size );                               
    mt_entry->target = str;                                           
   42fd2:	254d 0068      	movel %a5,%a2@(104)                         
    &target_length                                                    
  );                                                                  
  if ( !mt_entry )                                                    
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
                                                                      
  mt_entry->mt_fs_root.mt_entry = mt_entry;                           
   42fd6:	254a 002c      	movel %a2,%a2@(44)                          
  mt_entry->options = options;                                        
   42fda:	2540 0030      	movel %d0,%a2@(48)                          
  mt_entry->pathconf_limits_and_options = rtems_filesystem_default_pathconf;
   42fde:	4878 0030      	pea 30 <OPER2+0x1c>                         
   42fe2:	4879 0005 c0b2 	pea 5c0b2 <rtems_filesystem_default_pathconf>
   42fe8:	486a 0038      	pea %a2@(56)                                
   42fec:	4e93           	jsr %a3@                                    
  /*                                                                  
   *  The mount_point should be a directory with read/write/execute   
   *  permissions in the existing tree.                               
   */                                                                 
                                                                      
  if ( has_target ) {                                                 
   42fee:	4fef 000c      	lea %sp@(12),%sp                            
   42ff2:	4a02           	tstb %d2                                    
   42ff4:	6700 00b4      	beqw 430aa <mount+0x1b2>                    
   42ff8:	6010           	bras 4300a <mount+0x112>                    
    target,                                                           
    filesystemtype,                                                   
    &target_length                                                    
  );                                                                  
  if ( !mt_entry )                                                    
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
   42ffa:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   43000:	760c           	moveq #12,%d3                               <== NOT EXECUTED
   43002:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   43004:	2083           	movel %d3,%a0@                              <== NOT EXECUTED
   43006:	6000 0140      	braw 43148 <mount+0x250>                    <== NOT EXECUTED
   *  The mount_point should be a directory with read/write/execute   
   *  permissions in the existing tree.                               
   */                                                                 
                                                                      
  if ( has_target ) {                                                 
    if ( rtems_filesystem_evaluate_path(                              
   4300a:	4878 0001      	pea 1 <ADD>                                 
   4300e:	280e           	movel %fp,%d4                               
   43010:	0684 ffff ffec 	addil #-20,%d4                              
   43016:	2f04           	movel %d4,%sp@-                             
   43018:	4878 0007      	pea 7 <TRUNCDFSF>                           
   4301c:	2f2e ffe4      	movel %fp@(-28),%sp@-                       
   43020:	2f03           	movel %d3,%sp@-                             
   43022:	4eb9 0004 290c 	jsr 4290c <rtems_filesystem_evaluate_path>  
   43028:	4fef 0014      	lea %sp@(20),%sp                            
   4302c:	72ff           	moveq #-1,%d1                               
   4302e:	b280           	cmpl %d0,%d1                                
   43030:	6700 00f2      	beqw 43124 <mount+0x22c>                    
                                                                      
    /*                                                                
     *  Test to see if it is a directory                              
     */                                                               
                                                                      
    if ( loc.ops->node_type_h( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) {
   43034:	206e fff8      	moveal %fp@(-8),%a0                         
   43038:	2f04           	movel %d4,%sp@-                             
   4303a:	2068 0010      	moveal %a0@(16),%a0                         
   4303e:	4e90           	jsr %a0@                                    
   43040:	588f           	addql #4,%sp                                
   43042:	7201           	moveq #1,%d1                                
   43044:	b280           	cmpl %d0,%d1                                
   43046:	6710           	beqs 43058 <mount+0x160>                    
      errno = ENOTDIR;                                                
   43048:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4304e:	7414           	moveq #20,%d2                               
   43050:	2040           	moveal %d0,%a0                              
   43052:	2082           	movel %d2,%a0@                              
   43054:	6000 00d2      	braw 43128 <mount+0x230>                    
                                                                      
    /*                                                                
     *  You can only mount one file system onto a single mount point. 
     */                                                               
                                                                      
    if ( rtems_filesystem_mount_iterate( is_node_fs_root, loc.node_access ) ) {
   43058:	2f2e ffec      	movel %fp@(-20),%sp@-                       
   4305c:	487a fe06      	pea %pc@(42e64 <is_node_fs_root>)           
   43060:	4eb9 0004 2eae 	jsr 42eae <rtems_filesystem_mount_iterate>  
   43066:	508f           	addql #8,%sp                                
   43068:	4a00           	tstb %d0                                    
   4306a:	6710           	beqs 4307c <mount+0x184>                    
      errno = EBUSY;                                                  
   4306c:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   43072:	7210           	moveq #16,%d1                               
   43074:	2040           	moveal %d0,%a0                              
   43076:	2081           	movel %d1,%a0@                              
   43078:	6000 00ae      	braw 43128 <mount+0x230>                    
     *  traverse the tree.                                            
     */                                                               
                                                                      
    mt_entry->mt_point_node.node_access = loc.node_access;            
    mt_entry->mt_point_node.handlers = loc.handlers;                  
    mt_entry->mt_point_node.ops = loc.ops;                            
   4307c:	206e fff8      	moveal %fp@(-8),%a0                         
     *  may have been allocated in loc should not be sent to freenode 
     *  until the system is unmounted.  It may be needed to correctly 
     *  traverse the tree.                                            
     */                                                               
                                                                      
    mt_entry->mt_point_node.node_access = loc.node_access;            
   43080:	256e ffec 0008 	movel %fp@(-20),%a2@(8)                     
    mt_entry->mt_point_node.handlers = loc.handlers;                  
   43086:	256e fff4 0010 	movel %fp@(-12),%a2@(16)                    
    mt_entry->mt_point_node.ops = loc.ops;                            
    mt_entry->mt_point_node.mt_entry = loc.mt_entry;                  
   4308c:	256e fffc 0018 	movel %fp@(-4),%a2@(24)                     
     *  traverse the tree.                                            
     */                                                               
                                                                      
    mt_entry->mt_point_node.node_access = loc.node_access;            
    mt_entry->mt_point_node.handlers = loc.handlers;                  
    mt_entry->mt_point_node.ops = loc.ops;                            
   43092:	2548 0014      	movel %a0,%a2@(20)                          
    /*                                                                
     *  This link to the parent is only done when we are dealing with system
     *  below the base file system                                    
     */                                                               
                                                                      
    if ( loc.ops->mount_h( mt_entry ) ) {                             
   43096:	2f0a           	movel %a2,%sp@-                             
   43098:	2068 0020      	moveal %a0@(32),%a0                         
   4309c:	4e90           	jsr %a0@                                    
   4309e:	588f           	addql #4,%sp                                
   430a0:	4a80           	tstl %d0                                    
   430a2:	6600 0084      	bnew 43128 <mount+0x230>                    
  if ( has_target ) {                                                 
    if ( rtems_filesystem_evaluate_path(                              
           target, target_length, RTEMS_LIBIO_PERMS_RWX, &loc, true ) == -1 )
      goto cleanup_and_bail;                                          
                                                                      
    loc_to_free = &loc;                                               
   430a6:	2604           	movel %d4,%d3                               
   430a8:	601e           	bras 430c8 <mount+0x1d0>                    
    }                                                                 
  } else {                                                            
    /*                                                                
     * Do we already have a base file system ?                        
     */                                                               
    if ( !rtems_chain_is_empty( &mount_chain ) ) {                    
   430aa:	203c 0005 d12c 	movel #381228,%d0                           
   430b0:	b0b9 0005 d128 	cmpl 5d128 <mount_chain>,%d0                
   430b6:	670e           	beqs 430c6 <mount+0x1ce>                    <== ALWAYS TAKEN
      errno = EINVAL;                                                 
   430b8:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   430be:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   430c0:	7016           	moveq #22,%d0                               <== NOT EXECUTED
   430c2:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   430c4:	605e           	bras 43124 <mount+0x22c>                    <== NOT EXECUTED
)                                                                     
{                                                                     
  rtems_filesystem_fsmount_me_t mount_h = NULL;                       
  rtems_filesystem_location_info_t      loc;                          
  rtems_filesystem_mount_table_entry_t *mt_entry = NULL;              
  rtems_filesystem_location_info_t     *loc_to_free = NULL;           
   430c6:	4283           	clrl %d3                                    
     *  mt_point_node.node_access will be left to null to indicate that this
     *  is the root of the entire file system.                        
     */                                                               
  }                                                                   
                                                                      
  if ( (*mount_h)( mt_entry, data ) ) {                               
   430c8:	2f2e 0018      	movel %fp@(24),%sp@-                        
   430cc:	2047           	moveal %d7,%a0                              
   430ce:	2f0a           	movel %a2,%sp@-                             
   430d0:	4e90           	jsr %a0@                                    
   430d2:	508f           	addql #8,%sp                                
   430d4:	4a80           	tstl %d0                                    
   430d6:	6710           	beqs 430e8 <mount+0x1f0>                    
    /*                                                                
     * Try to undo the mount operation                                
     */                                                               
    loc.ops->unmount_h( mt_entry );                                   
   430d8:	206e fff8      	moveal %fp@(-8),%a0                         
   430dc:	2f0a           	movel %a2,%sp@-                             
   430de:	2068 0028      	moveal %a0@(40),%a0                         
   430e2:	4e90           	jsr %a0@                                    
    goto cleanup_and_bail;                                            
   430e4:	588f           	addql #4,%sp                                
   430e6:	6042           	bras 4312a <mount+0x232>                    
  }                                                                   
                                                                      
  /*                                                                  
   *  Add the mount table entry to the mount table chain              
   */                                                                 
  rtems_libio_lock();                                                 
   430e8:	4eba fd92      	jsr %pc@(42e7c <rtems_libio_lock>)          
   430ec:	2f0a           	movel %a2,%sp@-                             
   430ee:	4879 0005 d128 	pea 5d128 <mount_chain>                     
   430f4:	4eb9 0004 6208 	jsr 46208 <_Chain_Append>                   
  rtems_chain_append( &mount_chain, &mt_entry->Node );                
  rtems_libio_unlock();                                               
   430fa:	4eba fd9c      	jsr %pc@(42e98 <rtems_libio_unlock>)        
                                                                      
  if ( !has_target )                                                  
   430fe:	508f           	addql #8,%sp                                
   43100:	4a02           	tstb %d2                                    
   43102:	6640           	bnes 43144 <mount+0x24c>                    
    rtems_filesystem_root = mt_entry->mt_fs_root;                     
   43104:	4878 0014      	pea 14 <OPER2>                              
   43108:	486a 001c      	pea %a2@(28)                                
   4310c:	2079 0005 d244 	moveal 5d244 <rtems_current_user_env>,%a0   
   43112:	41e8 0018      	lea %a0@(24),%a0                            
   43116:	2f08           	movel %a0,%sp@-                             
   43118:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
   4311e:	4fef 000c      	lea %sp@(12),%sp                            
   43122:	6020           	bras 43144 <mount+0x24c>                    
)                                                                     
{                                                                     
  rtems_filesystem_fsmount_me_t mount_h = NULL;                       
  rtems_filesystem_location_info_t      loc;                          
  rtems_filesystem_mount_table_entry_t *mt_entry = NULL;              
  rtems_filesystem_location_info_t     *loc_to_free = NULL;           
   43124:	4283           	clrl %d3                                    <== NOT EXECUTED
   43126:	6002           	bras 4312a <mount+0x232>                    <== NOT EXECUTED
  if ( has_target ) {                                                 
    if ( rtems_filesystem_evaluate_path(                              
           target, target_length, RTEMS_LIBIO_PERMS_RWX, &loc, true ) == -1 )
      goto cleanup_and_bail;                                          
                                                                      
    loc_to_free = &loc;                                               
   43128:	2604           	movel %d4,%d3                               
                                                                      
  return 0;                                                           
                                                                      
cleanup_and_bail:                                                     
                                                                      
  free( mt_entry );                                                   
   4312a:	2f0a           	movel %a2,%sp@-                             
   4312c:	4eb9 0004 29ec 	jsr 429ec <free>                            
                                                                      
  if ( loc_to_free )                                                  
   43132:	588f           	addql #4,%sp                                
   43134:	4a83           	tstl %d3                                    
   43136:	6710           	beqs 43148 <mount+0x250>                    <== NEVER TAKEN
    rtems_filesystem_freenode( loc_to_free );                         
   43138:	2f03           	movel %d3,%sp@-                             
   4313a:	4eb9 0004 29d8 	jsr 429d8 <rtems_filesystem_freenode>       
   43140:	588f           	addql #4,%sp                                
   43142:	6004           	bras 43148 <mount+0x250>                    
  rtems_libio_unlock();                                               
                                                                      
  if ( !has_target )                                                  
    rtems_filesystem_root = mt_entry->mt_fs_root;                     
                                                                      
  return 0;                                                           
   43144:	4280           	clrl %d0                                    
   43146:	6002           	bras 4314a <mount+0x252>                    
  free( mt_entry );                                                   
                                                                      
  if ( loc_to_free )                                                  
    rtems_filesystem_freenode( loc_to_free );                         
                                                                      
  return -1;                                                          
   43148:	70ff           	moveq #-1,%d0                               
}                                                                     
   4314a:	4cee 3cfc ffbc 	moveml %fp@(-68),%d2-%d7/%a2-%a5            
   43150:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000434c4 <mount_and_make_target_path>: const char *target, const char *filesystemtype, rtems_filesystem_options_t options, const void *data ) {
   434c4:	4e56 ffec      	linkw %fp,#-20                              
   434c8:	48d7 007c      	moveml %d2-%d6,%sp@                         
   434cc:	262e 0008      	movel %fp@(8),%d3                           
   434d0:	242e 000c      	movel %fp@(12),%d2                          
   434d4:	282e 0010      	movel %fp@(16),%d4                          
   434d8:	2a2e 0014      	movel %fp@(20),%d5                          
   434dc:	2c2e 0018      	movel %fp@(24),%d6                          
  int rv = -1;                                                        
                                                                      
  if (target != NULL) {                                               
   434e0:	4a82           	tstl %d2                                    
   434e2:	6734           	beqs 43518 <mount_and_make_target_path+0x54>
    rv = rtems_mkdir(target, S_IRWXU | S_IRWXG | S_IRWXO);            
   434e4:	4878 01ff      	pea 1ff <DBL_MANT_DIG+0x1ca>                
   434e8:	2f02           	movel %d2,%sp@-                             
   434ea:	4eb9 0004 3d90 	jsr 43d90 <rtems_mkdir>                     
    if (rv == 0) {                                                    
   434f0:	508f           	addql #8,%sp                                
   434f2:	4a80           	tstl %d0                                    
   434f4:	6630           	bnes 43526 <mount_and_make_target_path+0x62><== NEVER TAKEN
      rv = mount(                                                     
   434f6:	2d46 0018      	movel %d6,%fp@(24)                          
   434fa:	2d45 0014      	movel %d5,%fp@(20)                          
   434fe:	2d44 0010      	movel %d4,%fp@(16)                          
   43502:	2d42 000c      	movel %d2,%fp@(12)                          
   43506:	2d43 0008      	movel %d3,%fp@(8)                           
  } else {                                                            
    errno = EINVAL;                                                   
  }                                                                   
                                                                      
  return rv;                                                          
}                                                                     
   4350a:	4cee 007c ffec 	moveml %fp@(-20),%d2-%d6                    
   43510:	4e5e           	unlk %fp                                    
  int rv = -1;                                                        
                                                                      
  if (target != NULL) {                                               
    rv = rtems_mkdir(target, S_IRWXU | S_IRWXG | S_IRWXO);            
    if (rv == 0) {                                                    
      rv = mount(                                                     
   43512:	4ef9 0004 35c4 	jmp 435c4 <mount>                           
        options,                                                      
        data                                                          
      );                                                              
    }                                                                 
  } else {                                                            
    errno = EINVAL;                                                   
   43518:	4eb9 0004 d144 	jsr 4d144 <__errno>                         
   4351e:	2040           	moveal %d0,%a0                              
   43520:	7016           	moveq #22,%d0                               
   43522:	2080           	movel %d0,%a0@                              
  const char *filesystemtype,                                         
  rtems_filesystem_options_t options,                                 
  const void *data                                                    
)                                                                     
{                                                                     
  int rv = -1;                                                        
   43524:	70ff           	moveq #-1,%d0                               
  } else {                                                            
    errno = EINVAL;                                                   
  }                                                                   
                                                                      
  return rv;                                                          
}                                                                     
   43526:	4cee 007c ffec 	moveml %fp@(-20),%d2-%d6                    
   4352c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000433ca <newlib_delete_hook>: void newlib_delete_hook( rtems_tcb *current_task, rtems_tcb *deleted_task ) {
   433ca:	4e56 fff4      	linkw %fp,#-12                              
   433ce:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   433d2:	262e 0008      	movel %fp@(8),%d3                           
   433d6:	246e 000c      	moveal %fp@(12),%a2                         
                                                                      
  /*                                                                  
   * The reentrancy structure was allocated by newlib using malloc()  
   */                                                                 
                                                                      
  if (current_task == deleted_task) {                                 
   433da:	b5c3           	cmpal %d3,%a2                               
   433dc:	6608           	bnes 433e6 <newlib_delete_hook+0x1c>        
    ptr = _REENT;                                                     
   433de:	2439 0005 d30c 	movel 5d30c <_impure_ptr>,%d2               
   433e4:	6004           	bras 433ea <newlib_delete_hook+0x20>        
  } else {                                                            
    ptr = deleted_task->libc_reent;                                   
   433e6:	242a 00fa      	movel %a2@(250),%d2                         
  }                                                                   
                                                                      
  if (ptr && ptr != _global_impure_ptr) {                             
   433ea:	4a82           	tstl %d2                                    
   433ec:	6722           	beqs 43410 <newlib_delete_hook+0x46>        <== NEVER TAKEN
   433ee:	b4b9 0005 c82c 	cmpl 5c82c <_global_impure_ptr>,%d2         
   433f4:	671a           	beqs 43410 <newlib_delete_hook+0x46>        
    _reclaim_reent(ptr);                                              
*/                                                                    
    /*                                                                
     *  Just in case there are some buffers lying around.             
     */                                                               
    _fwalk(ptr, newlib_free_buffers);                                 
   433f6:	4879 0004 31dc 	pea 431dc <newlib_free_buffers>             
   433fc:	2f02           	movel %d2,%sp@-                             
   433fe:	4eb9 0004 d284 	jsr 4d284 <_fwalk>                          
#if REENT_MALLOCED                                                    
    free(ptr);                                                        
#else                                                                 
    _Workspace_Free(ptr);                                             
   43404:	2f02           	movel %d2,%sp@-                             
   43406:	4eb9 0004 89f4 	jsr 489f4 <_Workspace_Free>                 
   4340c:	4fef 000c      	lea %sp@(12),%sp                            
#endif                                                                
  }                                                                   
                                                                      
  deleted_task->libc_reent = NULL;                                    
   43410:	42aa 00fa      	clrl %a2@(250)                              
                                                                      
  /*                                                                  
   * Require the switch back to another task to install its own       
   */                                                                 
                                                                      
  if ( current_task == deleted_task ) {                               
   43414:	b5c3           	cmpal %d3,%a2                               
   43416:	6606           	bnes 4341e <newlib_delete_hook+0x54>        
    _REENT = 0;                                                       
   43418:	42b9 0005 d30c 	clrl 5d30c <_impure_ptr>                    
  }                                                                   
}                                                                     
   4341e:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   43424:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000431dc <newlib_free_buffers>: */ int newlib_free_buffers( FILE *fp ) {
   431dc:	4e56 0000      	linkw %fp,#0                                
   431e0:	2f0a           	movel %a2,%sp@-                             
   431e2:	246e 0008      	moveal %fp@(8),%a2                          
  switch ( fileno(fp) ) {                                             
   431e6:	2f0a           	movel %a2,%sp@-                             
   431e8:	4eb9 0004 ce70 	jsr 4ce70 <fileno>                          
   431ee:	588f           	addql #4,%sp                                
   431f0:	7202           	moveq #2,%d1                                
   431f2:	b280           	cmpl %d0,%d1                                
   431f4:	6528           	bcss 4321e <newlib_free_buffers+0x42>       <== NEVER TAKEN
    case 0:                                                           
    case 1:                                                           
    case 2:                                                           
      if (fp->_flags & __SMBF) {                                      
   431f6:	302a 000c      	movew %a2@(12),%d0                          
   431fa:	48c0           	extl %d0                                    
   431fc:	4a00           	tstb %d0                                    
   431fe:	6c28           	bges 43228 <newlib_free_buffers+0x4c>       <== ALWAYS TAKEN
        free( fp->_bf._base );                                        
   43200:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   43204:	4eb9 0004 29ec 	jsr 429ec <free>                            <== NOT EXECUTED
        fp->_flags &= ~__SMBF;                                        
   4320a:	302a 000c      	movew %a2@(12),%d0                          <== NOT EXECUTED
   4320e:	0880 0007      	bclr #7,%d0                                 <== NOT EXECUTED
        fp->_bf._base = fp->_p = (unsigned char *) NULL;              
   43212:	4292           	clrl %a2@                                   <== NOT EXECUTED
    case 0:                                                           
    case 1:                                                           
    case 2:                                                           
      if (fp->_flags & __SMBF) {                                      
        free( fp->_bf._base );                                        
        fp->_flags &= ~__SMBF;                                        
   43214:	3540 000c      	movew %d0,%a2@(12)                          <== NOT EXECUTED
        fp->_bf._base = fp->_p = (unsigned char *) NULL;              
   43218:	42aa 0010      	clrl %a2@(16)                               <== NOT EXECUTED
   4321c:	6008           	bras 43226 <newlib_free_buffers+0x4a>       <== NOT EXECUTED
      }                                                               
      break;                                                          
    default:                                                          
     fclose(fp);                                                      
   4321e:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   43220:	4eb9 0004 cc1e 	jsr 4cc1e <fclose>                          <== NOT EXECUTED
   43226:	588f           	addql #4,%sp                                <== NOT EXECUTED
  }                                                                   
  return 0;                                                           
}                                                                     
   43228:	246e fffc      	moveal %fp@(-4),%a2                         
   4322c:	4280           	clrl %d0                                    
   4322e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043498 <open>: int open( const char *pathname, int flags, ... ) {
   43498:	4e56 ffc8      	linkw %fp,#-56                              
   4349c:	48d7 3c7c      	moveml %d2-%d6/%a2-%a5,%sp@                 
   434a0:	242e 000c      	movel %fp@(12),%d2                          
                                                                      
  /*                                                                  
   * Set the Evaluation flags                                         
   */                                                                 
  eval_flags = 0;                                                     
  status = flags + 1;                                                 
   434a4:	2002           	movel %d2,%d0                               
   434a6:	5280           	addql #1,%d0                                
int open(                                                             
  const char   *pathname,                                             
  int           flags,                                                
  ...                                                                 
)                                                                     
{                                                                     
   434a8:	262e 0008      	movel %fp@(8),%d3                           
  /*                                                                  
   * Set the Evaluation flags                                         
   */                                                                 
  eval_flags = 0;                                                     
  status = flags + 1;                                                 
  if ( ( status & _FREAD ) == _FREAD )                                
   434ac:	0800 0000      	btst #0,%d0                                 
   434b0:	6704           	beqs 434b6 <open+0x1e>                      
    eval_flags |= RTEMS_LIBIO_PERMS_READ;                             
   434b2:	7804           	moveq #4,%d4                                
   434b4:	6002           	bras 434b8 <open+0x20>                      
  int                                 eval_flags;                     
                                                                      
  /*                                                                  
   * Set the Evaluation flags                                         
   */                                                                 
  eval_flags = 0;                                                     
   434b6:	4284           	clrl %d4                                    
  status = flags + 1;                                                 
  if ( ( status & _FREAD ) == _FREAD )                                
    eval_flags |= RTEMS_LIBIO_PERMS_READ;                             
  if ( ( status & _FWRITE ) == _FWRITE )                              
   434b8:	0800 0001      	btst #1,%d0                                 
   434bc:	6704           	beqs 434c2 <open+0x2a>                      
    eval_flags |= RTEMS_LIBIO_PERMS_WRITE;                            
   434be:	7002           	moveq #2,%d0                                
   434c0:	8880           	orl %d0,%d4                                 
                                                                      
  va_start(ap, flags);                                                
                                                                      
  mode = va_arg( ap, int );                                           
   434c2:	2c2e 0010      	movel %fp@(16),%d6                          
   *             code does not require changes here since network file
   *             descriptors are obtained using socket(), not open(). 
   */                                                                 
                                                                      
  /* allocate a file control block */                                 
  iop = rtems_libio_allocate();                                       
   434c6:	4eb9 0004 9b74 	jsr 49b74 <rtems_libio_allocate>            
   434cc:	2440           	moveal %d0,%a2                              
  if ( iop == 0 ) {                                                   
   434ce:	4a80           	tstl %d0                                    
   434d0:	6700 0158      	beqw 4362a <open+0x192>                     
  }                                                                   
                                                                      
  /*                                                                  
   *  See if the file exists.                                         
   */                                                                 
  status = rtems_filesystem_evaluate_path(                            
   434d4:	2f03           	movel %d3,%sp@-                             
   434d6:	4bf9 0004 df28 	lea 4df28 <strlen>,%a5                      
   434dc:	7a01           	moveq #1,%d5                                
   434de:	49f9 0004 290c 	lea 4290c <rtems_filesystem_evaluate_path>,%a4
   434e4:	4e95           	jsr %a5@                                    
   434e6:	2e85           	movel %d5,%sp@                              
   434e8:	2a0e           	movel %fp,%d5                               
   434ea:	0685 ffff ffec 	addil #-20,%d5                              
   434f0:	2f05           	movel %d5,%sp@-                             
   434f2:	2f04           	movel %d4,%sp@-                             
   434f4:	2f00           	movel %d0,%sp@-                             
   434f6:	2f03           	movel %d3,%sp@-                             
   434f8:	4e94           	jsr %a4@                                    
    pathname, strlen( pathname ), eval_flags, &loc, true );           
                                                                      
  if ( status == -1 ) {                                               
   434fa:	4fef 0014      	lea %sp@(20),%sp                            
   434fe:	72ff           	moveq #-1,%d1                               
   43500:	b280           	cmpl %d0,%d1                                
   43502:	665e           	bnes 43562 <open+0xca>                      
    if ( errno != ENOENT ) {                                          
   43504:	47f9 0004 cad0 	lea 4cad0 <__errno>,%a3                     
   4350a:	4e93           	jsr %a3@                                    
   4350c:	7202           	moveq #2,%d1                                
   4350e:	2040           	moveal %d0,%a0                              
   43510:	b290           	cmpl %a0@,%d1                               
   43512:	6624           	bnes 43538 <open+0xa0>                      
      rc = errno;                                                     
      goto done;                                                      
    }                                                                 
                                                                      
    /* If the file does not exist and we are not trying to create it--> error */
    if ( !(flags & O_CREAT) ) {                                       
   43514:	0802 0009      	btst #9,%d2                                 
   43518:	6700 0114      	beqw 4362e <open+0x196>                     
      rc = ENOENT;                                                    
      goto done;                                                      
    }                                                                 
                                                                      
    /* Create the node for the new regular file */                    
    rc = mknod( pathname, S_IFREG | mode, 0LL );                      
   4351c:	42a7           	clrl %sp@-                                  
   4351e:	2006           	movel %d6,%d0                               
   43520:	42a7           	clrl %sp@-                                  
   43522:	08c0 000f      	bset #15,%d0                                
   43526:	2f00           	movel %d0,%sp@-                             
   43528:	2f03           	movel %d3,%sp@-                             
   4352a:	4eb9 0004 2da0 	jsr 42da0 <mknod>                           
    if ( rc ) {                                                       
   43530:	4fef 0010      	lea %sp@(16),%sp                            
   43534:	4a80           	tstl %d0                                    
   43536:	670c           	beqs 43544 <open+0xac>                      <== ALWAYS TAKEN
      rc = errno;                                                     
   43538:	4e93           	jsr %a3@                                    
  int                                 mode;                           
  int                                 rc;                             
  rtems_libio_t                      *iop = 0;                        
  int                                 status;                         
  rtems_filesystem_location_info_t    loc;                            
  rtems_filesystem_location_info_t   *loc_to_free = NULL;             
   4353a:	4285           	clrl %d5                                    
    }                                                                 
                                                                      
    /* Create the node for the new regular file */                    
    rc = mknod( pathname, S_IFREG | mode, 0LL );                      
    if ( rc ) {                                                       
      rc = errno;                                                     
   4353c:	2040           	moveal %d0,%a0                              
   4353e:	2410           	movel %a0@,%d2                              
      goto done;                                                      
   43540:	6000 00fc      	braw 4363e <open+0x1a6>                     
    /*                                                                
     * After we do the mknod(), we have to evaluate the path to get the
     * "loc" structure needed to actually have the file itself open.  
     * So we created it, and then we need to have "look it up."       
     */                                                               
    status = rtems_filesystem_evaluate_path(                          
   43544:	2f03           	movel %d3,%sp@-                             
   43546:	4e95           	jsr %a5@                                    
   43548:	7201           	moveq #1,%d1                                
   4354a:	2e81           	movel %d1,%sp@                              
   4354c:	2f05           	movel %d5,%sp@-                             
   4354e:	42a7           	clrl %sp@-                                  
   43550:	2f00           	movel %d0,%sp@-                             
   43552:	2f03           	movel %d3,%sp@-                             
   43554:	4e94           	jsr %a4@                                    
      pathname, strlen( pathname ), 0x0, &loc, true );                
    if ( status != 0 ) {   /* The file did not exist */               
   43556:	4fef 0014      	lea %sp@(20),%sp                            
   4355a:	4a80           	tstl %d0                                    
   4355c:	6600 00d6      	bnew 43634 <open+0x19c>                     
   43560:	6012           	bras 43574 <open+0xdc>                      
      rc = EACCES;                                                    
      goto done;                                                      
    }                                                                 
                                                                      
  } else if ((flags & (O_EXCL|O_CREAT)) == (O_EXCL|O_CREAT)) {        
   43562:	2002           	movel %d2,%d0                               
   43564:	0280 0000 0a00 	andil #2560,%d0                             
   4356a:	0c80 0000 0a00 	cmpil #2560,%d0                             
   43570:	6700 00c8      	beqw 4363a <open+0x1a2>                     
                                                                      
  /*                                                                  
   *  Fill in the file control block based on the loc structure       
   *  returned by successful path evaluation.                         
   */                                                                 
  iop->flags     |= rtems_libio_fcntl_flags( flags );                 
   43574:	282a 0014      	movel %a2@(20),%d4                          
  iop->pathinfo   = loc;                                              
   43578:	2a0e           	movel %fp,%d5                               
   4357a:	0685 ffff ffec 	addil #-20,%d5                              
                                                                      
  /*                                                                  
   *  Fill in the file control block based on the loc structure       
   *  returned by successful path evaluation.                         
   */                                                                 
  iop->flags     |= rtems_libio_fcntl_flags( flags );                 
   43580:	2f02           	movel %d2,%sp@-                             
   43582:	4eb9 0004 9ae6 	jsr 49ae6 <rtems_libio_fcntl_flags>         
   43588:	8084           	orl %d4,%d0                                 
   4358a:	2540 0014      	movel %d0,%a2@(20)                          
  iop->pathinfo   = loc;                                              
   4358e:	4878 0014      	pea 14 <OPER2>                              
   43592:	2f05           	movel %d5,%sp@-                             
   43594:	486a 0018      	pea %a2@(24)                                
   43598:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
                                                                      
  rc = (*iop->pathinfo.handlers->open_h)( iop, pathname, flags, mode );
   4359e:	206a 0020      	moveal %a2@(32),%a0                         
   435a2:	2f06           	movel %d6,%sp@-                             
   435a4:	2f02           	movel %d2,%sp@-                             
   435a6:	2f03           	movel %d3,%sp@-                             
   435a8:	2f0a           	movel %a2,%sp@-                             
   435aa:	2050           	moveal %a0@,%a0                             
   435ac:	4e90           	jsr %a0@                                    
  if ( rc ) {                                                         
   435ae:	4fef 0020      	lea %sp@(32),%sp                            
   435b2:	4a80           	tstl %d0                                    
   435b4:	670c           	beqs 435c2 <open+0x12a>                     
    rc = errno;                                                       
   435b6:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   435bc:	2040           	moveal %d0,%a0                              
   435be:	2410           	movel %a0@,%d2                              
    goto done;                                                        
   435c0:	607c           	bras 4363e <open+0x1a6>                     
  }                                                                   
                                                                      
  /*                                                                  
   *  Optionally truncate the file.                                   
   */                                                                 
  if ( (flags & O_TRUNC) == O_TRUNC ) {                               
   435c2:	0802 000a      	btst #10,%d2                                
   435c6:	6700 00a4      	beqw 4366c <open+0x1d4>                     
    rc = ftruncate( iop - rtems_libio_iops, 0 );                      
   435ca:	200a           	movel %a2,%d0                               
   435cc:	90b9 0005 e874 	subl 5e874 <rtems_libio_iops>,%d0           
   435d2:	223c b6db 6db7 	movel #-1227133513,%d1                      
   435d8:	e680           	asrl #3,%d0                                 
   435da:	4c00 1800      	mulsl %d0,%d1                               
   435de:	42a7           	clrl %sp@-                                  
   435e0:	42a7           	clrl %sp@-                                  
   435e2:	2f01           	movel %d1,%sp@-                             
   435e4:	4eb9 0004 99d4 	jsr 499d4 <ftruncate>                       
    if ( rc ) {                                                       
   435ea:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
  /*                                                                  
   *  Optionally truncate the file.                                   
   */                                                                 
  if ( (flags & O_TRUNC) == O_TRUNC ) {                               
    rc = ftruncate( iop - rtems_libio_iops, 0 );                      
   435ee:	2400           	movel %d0,%d2                               
    if ( rc ) {                                                       
   435f0:	677a           	beqs 4366c <open+0x1d4>                     
      if(errno) rc = errno;                                           
   435f2:	47f9 0004 cad0 	lea 4cad0 <__errno>,%a3                     
   435f8:	4e93           	jsr %a3@                                    
   435fa:	2040           	moveal %d0,%a0                              
   435fc:	4a90           	tstl %a0@                                   
   435fe:	6706           	beqs 43606 <open+0x16e>                     <== NEVER TAKEN
   43600:	4e93           	jsr %a3@                                    
   43602:	2040           	moveal %d0,%a0                              
   43604:	2410           	movel %a0@,%d2                              
      close( iop - rtems_libio_iops );                                
   43606:	200a           	movel %a2,%d0                               
   43608:	90b9 0005 e874 	subl 5e874 <rtems_libio_iops>,%d0           
   4360e:	223c b6db 6db7 	movel #-1227133513,%d1                      
   43614:	e680           	asrl #3,%d0                                 
   43616:	4c00 1800      	mulsl %d0,%d1                               
      /* those are released by close(): */                            
      iop = 0;                                                        
      loc_to_free = NULL;                                             
   4361a:	4285           	clrl %d5                                    
    rc = ftruncate( iop - rtems_libio_iops, 0 );                      
    if ( rc ) {                                                       
      if(errno) rc = errno;                                           
      close( iop - rtems_libio_iops );                                
      /* those are released by close(): */                            
      iop = 0;                                                        
   4361c:	95ca           	subal %a2,%a2                               
   */                                                                 
  if ( (flags & O_TRUNC) == O_TRUNC ) {                               
    rc = ftruncate( iop - rtems_libio_iops, 0 );                      
    if ( rc ) {                                                       
      if(errno) rc = errno;                                           
      close( iop - rtems_libio_iops );                                
   4361e:	2f01           	movel %d1,%sp@-                             
   43620:	4eb9 0004 9950 	jsr 49950 <close>                           
   43626:	588f           	addql #4,%sp                                
   43628:	6014           	bras 4363e <open+0x1a6>                     
   */                                                                 
                                                                      
  /* allocate a file control block */                                 
  iop = rtems_libio_allocate();                                       
  if ( iop == 0 ) {                                                   
    rc = ENFILE;                                                      
   4362a:	7417           	moveq #23,%d2                               
   4362c:	6030           	bras 4365e <open+0x1c6>                     
  int                                 mode;                           
  int                                 rc;                             
  rtems_libio_t                      *iop = 0;                        
  int                                 status;                         
  rtems_filesystem_location_info_t    loc;                            
  rtems_filesystem_location_info_t   *loc_to_free = NULL;             
   4362e:	4285           	clrl %d5                                    
      goto done;                                                      
    }                                                                 
                                                                      
    /* If the file does not exist and we are not trying to create it--> error */
    if ( !(flags & O_CREAT) ) {                                       
      rc = ENOENT;                                                    
   43630:	7402           	moveq #2,%d2                                
   43632:	600e           	bras 43642 <open+0x1aa>                     
  int                                 mode;                           
  int                                 rc;                             
  rtems_libio_t                      *iop = 0;                        
  int                                 status;                         
  rtems_filesystem_location_info_t    loc;                            
  rtems_filesystem_location_info_t   *loc_to_free = NULL;             
   43634:	4285           	clrl %d5                                    <== NOT EXECUTED
     * So we created it, and then we need to have "look it up."       
     */                                                               
    status = rtems_filesystem_evaluate_path(                          
      pathname, strlen( pathname ), 0x0, &loc, true );                
    if ( status != 0 ) {   /* The file did not exist */               
      rc = EACCES;                                                    
   43636:	740d           	moveq #13,%d2                               <== NOT EXECUTED
   43638:	6008           	bras 43642 <open+0x1aa>                     <== NOT EXECUTED
      goto done;                                                      
    }                                                                 
                                                                      
  } else if ((flags & (O_EXCL|O_CREAT)) == (O_EXCL|O_CREAT)) {        
    /* We were trying to create a file that already exists */         
    rc = EEXIST;                                                      
   4363a:	7411           	moveq #17,%d2                               
   4363c:	6004           	bras 43642 <open+0x1aa>                     
   *  Single exit and clean up path.                                  
   */                                                                 
done:                                                                 
  va_end(ap);                                                         
                                                                      
  if ( rc ) {                                                         
   4363e:	4a82           	tstl %d2                                    
   43640:	672a           	beqs 4366c <open+0x1d4>                     <== NEVER TAKEN
    if ( iop )                                                        
   43642:	4a8a           	tstl %a2                                    
   43644:	670a           	beqs 43650 <open+0x1b8>                     
      rtems_libio_free( iop );                                        
   43646:	2f0a           	movel %a2,%sp@-                             
   43648:	4eb9 0004 9c06 	jsr 49c06 <rtems_libio_free>                
   4364e:	588f           	addql #4,%sp                                
    if ( loc_to_free )                                                
   43650:	4a85           	tstl %d5                                    
   43652:	670a           	beqs 4365e <open+0x1c6>                     
      rtems_filesystem_freenode( loc_to_free );                       
   43654:	2f05           	movel %d5,%sp@-                             
   43656:	4eb9 0004 29d8 	jsr 429d8 <rtems_filesystem_freenode>       
   4365c:	588f           	addql #4,%sp                                
    rtems_set_errno_and_return_minus_one( rc );                       
   4365e:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   43664:	2040           	moveal %d0,%a0                              
   43666:	70ff           	moveq #-1,%d0                               
   43668:	2082           	movel %d2,%a0@                              
   4366a:	6014           	bras 43680 <open+0x1e8>                     
  }                                                                   
                                                                      
  return iop - rtems_libio_iops;                                      
   4366c:	200a           	movel %a2,%d0                               
   4366e:	90b9 0005 e874 	subl 5e874 <rtems_libio_iops>,%d0           
   43674:	223c b6db 6db7 	movel #-1227133513,%d1                      
   4367a:	e680           	asrl #3,%d0                                 
   4367c:	4c01 0800      	mulsl %d1,%d0                               
}                                                                     
   43680:	4cee 3c7c ffc8 	moveml %fp@(-56),%d2-%d6/%a2-%a5            
   43686:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000441aa <oproc>: /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) {
   441aa:	4e56 fff0      	linkw %fp,#-16                              
   441ae:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   441b2:	242e 0008      	movel %fp@(8),%d2                           
   441b6:	246e 000c      	moveal %fp@(12),%a2                         
   441ba:	1d42 fffe      	moveb %d2,%fp@(-2)                          
  int  i;                                                             
                                                                      
  if (tty->termios.c_oflag & OPOST) {                                 
   441be:	202a 0034      	movel %a2@(52),%d0                          
   441c2:	0800 0000      	btst #0,%d0                                 
   441c6:	6700 010e      	beqw 442d6 <oproc+0x12c>                    
    switch (c) {                                                      
   441ca:	4281           	clrl %d1                                    
   441cc:	1202           	moveb %d2,%d1                               
   441ce:	7609           	moveq #9,%d3                                
   441d0:	b681           	cmpl %d1,%d3                                
   441d2:	6778           	beqs 4424c <oproc+0xa2>                     
   441d4:	650e           	bcss 441e4 <oproc+0x3a>                     <== ALWAYS TAKEN
   441d6:	163c 0008      	moveb #8,%d3                                <== NOT EXECUTED
   441da:	b681           	cmpl %d1,%d3                                <== NOT EXECUTED
   441dc:	6600 00b2      	bnew 44290 <oproc+0xe6>                     <== NOT EXECUTED
   441e0:	6000 00a0      	braw 44282 <oproc+0xd8>                     <== NOT EXECUTED
   441e4:	760a           	moveq #10,%d3                               
   441e6:	b681           	cmpl %d1,%d3                                
   441e8:	670c           	beqs 441f6 <oproc+0x4c>                     
   441ea:	163c 000d      	moveb #13,%d3                               
   441ee:	b681           	cmpl %d1,%d3                                
   441f0:	6600 009e      	bnew 44290 <oproc+0xe6>                     
   441f4:	602e           	bras 44224 <oproc+0x7a>                     <== NOT EXECUTED
    case '\n':                                                        
      if (tty->termios.c_oflag & ONLRET)                              
   441f6:	0800 0005      	btst #5,%d0                                 
   441fa:	6704           	beqs 44200 <oproc+0x56>                     <== ALWAYS TAKEN
        tty->column = 0;                                              
   441fc:	42aa 0028      	clrl %a2@(40)                               <== NOT EXECUTED
      if (tty->termios.c_oflag & ONLCR) {                             
   44200:	44c0           	movew %d0,%ccr                              
   44202:	6600 00d2      	bnew 442d6 <oproc+0x12c>                    
        rtems_termios_puts ("\r", 1, tty);                            
   44206:	2f0a           	movel %a2,%sp@-                             
   44208:	4878 0001      	pea 1 <ADD>                                 
   4420c:	4879 0005 c158 	pea 5c158 <rtems_filesystem_default_pathconf+0xa6>
   44212:	4eb9 0004 40b2 	jsr 440b2 <rtems_termios_puts>              
        tty->column = 0;                                              
   44218:	4fef 000c      	lea %sp@(12),%sp                            
   4421c:	42aa 0028      	clrl %a2@(40)                               
   44220:	6000 00b4      	braw 442d6 <oproc+0x12c>                    
      }                                                               
      break;                                                          
                                                                      
    case '\r':                                                        
      if ((tty->termios.c_oflag & ONOCR) && (tty->column == 0))       
   44224:	0800 0004      	btst #4,%d0                                 <== NOT EXECUTED
   44228:	6708           	beqs 44232 <oproc+0x88>                     <== NOT EXECUTED
   4422a:	4aaa 0028      	tstl %a2@(40)                               <== NOT EXECUTED
   4422e:	6700 00ba      	beqw 442ea <oproc+0x140>                    <== NOT EXECUTED
        return;                                                       
      if (tty->termios.c_oflag & OCRNL) {                             
   44232:	44c0           	movew %d0,%ccr                              <== NOT EXECUTED
   44234:	6a0e           	bpls 44244 <oproc+0x9a>                     <== NOT EXECUTED
        c = '\n';                                                     
   44236:	720a           	moveq #10,%d1                               <== NOT EXECUTED
   44238:	1d41 fffe      	moveb %d1,%fp@(-2)                          <== NOT EXECUTED
        if (tty->termios.c_oflag & ONLRET)                            
   4423c:	0800 0005      	btst #5,%d0                                 <== NOT EXECUTED
   44240:	6700 0094      	beqw 442d6 <oproc+0x12c>                    <== NOT EXECUTED
          tty->column = 0;                                            
        break;                                                        
      }                                                               
      tty->column = 0;                                                
   44244:	42aa 0028      	clrl %a2@(40)                               <== NOT EXECUTED
      break;                                                          
   44248:	6000 008c      	braw 442d6 <oproc+0x12c>                    <== NOT EXECUTED
                                                                      
    case '\t':                                                        
      i = 8 - (tty->column & 7);                                      
   4424c:	222a 0028      	movel %a2@(40),%d1                          
   44250:	7407           	moveq #7,%d2                                
   44252:	307c 0008      	moveaw #8,%a0                               
   44256:	c481           	andl %d1,%d2                                
      if ((tty->termios.c_oflag & TABDLY) == XTABS) {                 
   44258:	0280 0000 1800 	andil #6144,%d0                             
      }                                                               
      tty->column = 0;                                                
      break;                                                          
                                                                      
    case '\t':                                                        
      i = 8 - (tty->column & 7);                                      
   4425e:	91c2           	subal %d2,%a0                               
      if ((tty->termios.c_oflag & TABDLY) == XTABS) {                 
   44260:	0c80 0000 1800 	cmpil #6144,%d0                             
   44266:	6612           	bnes 4427a <oproc+0xd0>                     <== NEVER TAKEN
        tty->column += i;                                             
   44268:	d288           	addl %a0,%d1                                
   4426a:	2541 0028      	movel %d1,%a2@(40)                          
        rtems_termios_puts ( "        ",  i, tty);                    
   4426e:	2f0a           	movel %a2,%sp@-                             
   44270:	2f08           	movel %a0,%sp@-                             
   44272:	4879 0005 c15a 	pea 5c15a <rtems_filesystem_default_pathconf+0xa8>
   44278:	6066           	bras 442e0 <oproc+0x136>                    
        return;                                                       
      }                                                               
      tty->column += i;                                               
   4427a:	d1c1           	addal %d1,%a0                               <== NOT EXECUTED
   4427c:	2548 0028      	movel %a0,%a2@(40)                          <== NOT EXECUTED
      break;                                                          
   44280:	6054           	bras 442d6 <oproc+0x12c>                    <== NOT EXECUTED
                                                                      
    case '\b':                                                        
      if (tty->column > 0)                                            
   44282:	202a 0028      	movel %a2@(40),%d0                          <== NOT EXECUTED
   44286:	6f4e           	bles 442d6 <oproc+0x12c>                    <== NOT EXECUTED
        tty->column--;                                                
   44288:	5380           	subql #1,%d0                                <== NOT EXECUTED
   4428a:	2540 0028      	movel %d0,%a2@(40)                          <== NOT EXECUTED
   4428e:	6046           	bras 442d6 <oproc+0x12c>                    <== NOT EXECUTED
      break;                                                          
                                                                      
    default:                                                          
      if (tty->termios.c_oflag & OLCUC)                               
   44290:	0800 0001      	btst #1,%d0                                 
   44294:	6724           	beqs 442ba <oproc+0x110>                    <== ALWAYS TAKEN
        c = toupper(c);                                               
   44296:	4280           	clrl %d0                                    <== NOT EXECUTED
   44298:	1002           	moveb %d2,%d0                               <== NOT EXECUTED
   4429a:	7403           	moveq #3,%d2                                <== NOT EXECUTED
   4429c:	7602           	moveq #2,%d3                                <== NOT EXECUTED
   4429e:	2079 0005 d308 	moveal 5d308 <__ctype_ptr__>,%a0            <== NOT EXECUTED
   442a4:	1230 0801      	moveb %a0@(00000001,%d0:l),%d1              <== NOT EXECUTED
   442a8:	49c1           	extbl %d1                                   <== NOT EXECUTED
   442aa:	c282           	andl %d2,%d1                                <== NOT EXECUTED
   442ac:	b681           	cmpl %d1,%d3                                <== NOT EXECUTED
   442ae:	6606           	bnes 442b6 <oproc+0x10c>                    <== NOT EXECUTED
   442b0:	0680 ffff ffe0 	addil #-32,%d0                              <== NOT EXECUTED
   442b6:	1d40 fffe      	moveb %d0,%fp@(-2)                          <== NOT EXECUTED
      if (!iscntrl(c))                                                
   442ba:	4280           	clrl %d0                                    
   442bc:	102e fffe      	moveb %fp@(-2),%d0                          
   442c0:	2079 0005 d308 	moveal 5d308 <__ctype_ptr__>,%a0            
   442c6:	1030 0801      	moveb %a0@(00000001,%d0:l),%d0              
   442ca:	49c0           	extbl %d0                                   
   442cc:	0800 0005      	btst #5,%d0                                 
   442d0:	6604           	bnes 442d6 <oproc+0x12c>                    <== NEVER TAKEN
        tty->column++;                                                
   442d2:	52aa 0028      	addql #1,%a2@(40)                           
      break;                                                          
    }                                                                 
  }                                                                   
  rtems_termios_puts (&c, 1, tty);                                    
   442d6:	2f0a           	movel %a2,%sp@-                             
   442d8:	4878 0001      	pea 1 <ADD>                                 
   442dc:	486e fffe      	pea %fp@(-2)                                
   442e0:	4eb9 0004 40b2 	jsr 440b2 <rtems_termios_puts>              
   442e6:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   442ea:	4cee 040c fff0 	moveml %fp@(-16),%d2-%d3/%a2                
   442f0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004a7e8 <pipe_create>: * Called by pipe() to create an anonymous pipe. */ int pipe_create( int filsdes[2] ) {
   4a7e8:	4e56 ffe4      	linkw %fp,#-28                              
   4a7ec:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
  rtems_libio_t *iop;                                                 
  int err = 0;                                                        
                                                                      
  if (rtems_mkdir("/tmp", S_IRWXU | S_IRWXG | S_IRWXO) != 0)          
   4a7f0:	4878 01ff      	pea 1ff <DBL_MANT_DIG+0x1ca>                
   4a7f4:	4879 0005 d9fe 	pea 5d9fe <_CPU_m68k_BFFFO_table+0x100>     
 * Called by pipe() to create an anonymous pipe.                      
 */                                                                   
int pipe_create(                                                      
  int filsdes[2]                                                      
)                                                                     
{                                                                     
   4a7fa:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_libio_t *iop;                                                 
  int err = 0;                                                        
                                                                      
  if (rtems_mkdir("/tmp", S_IRWXU | S_IRWXG | S_IRWXO) != 0)          
   4a7fe:	4eb9 0004 bd30 	jsr 4bd30 <rtems_mkdir>                     
   4a804:	508f           	addql #8,%sp                                
   4a806:	4a80           	tstl %d0                                    
   4a808:	6600 00e8      	bnew 4a8f2 <pipe_create+0x10a>              
    return -1;                                                        
                                                                      
  /* /tmp/.fifoXXXX */                                                
  char fifopath[15];                                                  
  memcpy(fifopath, "/tmp/.fifo", 10);                                 
   4a80c:	4878 000a      	pea a <LASTO>                               
   4a810:	260e           	movel %fp,%d3                               
   4a812:	4879 0005 da03 	pea 5da03 <_CPU_m68k_BFFFO_table+0x105>     
   4a818:	0683 ffff fff1 	addil #-15,%d3                              
   4a81e:	2f03           	movel %d3,%sp@-                             
   4a820:	4eb9 0004 ebf4 	jsr 4ebf4 <memcpy>                          
  sprintf(fifopath + 10, "%04x", rtems_pipe_no ++);                   
   4a826:	3039 0005 f738 	movew 5f738 <rtems_pipe_no>,%d0             
   4a82c:	2200           	movel %d0,%d1                               
   4a82e:	5281           	addql #1,%d1                                
   4a830:	3f00           	movew %d0,%sp@-                             
   4a832:	33c1 0005 f738 	movew %d1,5f738 <rtems_pipe_no>             
   4a838:	4267           	clrw %sp@-                                  
   4a83a:	4879 0005 da0e 	pea 5da0e <_CPU_m68k_BFFFO_table+0x110>     
   4a840:	486e fffb      	pea %fp@(-5)                                
   4a844:	4eb9 0004 f06c 	jsr 4f06c <sprintf>                         
                                                                      
  /* Try creating FIFO file until find an available file name */      
  while (mkfifo(fifopath, S_IRUSR|S_IWUSR) != 0) {                    
   4a84a:	4878 0180      	pea 180 <DBL_MANT_DIG+0x14b>                
   4a84e:	2f03           	movel %d3,%sp@-                             
   4a850:	4eb9 0004 baf0 	jsr 4baf0 <mkfifo>                          
   4a856:	4fef 0020      	lea %sp@(32),%sp                            
   4a85a:	4a80           	tstl %d0                                    
   4a85c:	670a           	beqs 4a868 <pipe_create+0x80>               
    if (errno != EEXIST){                                             
   4a85e:	4eb9 0004 e348 	jsr 4e348 <__errno>                         
   4a864:	6000 008c      	braw 4a8f2 <pipe_create+0x10a>              
    return -1;                                                        
    /* sprintf(fifopath + 10, "%04x", rtems_pipe_no ++); */           
  }                                                                   
                                                                      
  /* Non-blocking open to avoid waiting for writers */                
  filsdes[0] = open(fifopath, O_RDONLY | O_NONBLOCK);                 
   4a868:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   4a86c:	2f03           	movel %d3,%sp@-                             
   4a86e:	4eb9 0004 4660 	jsr 44660 <open>                            
  if (filsdes[0] < 0) {                                               
   4a874:	508f           	addql #8,%sp                                
    return -1;                                                        
    /* sprintf(fifopath + 10, "%04x", rtems_pipe_no ++); */           
  }                                                                   
                                                                      
  /* Non-blocking open to avoid waiting for writers */                
  filsdes[0] = open(fifopath, O_RDONLY | O_NONBLOCK);                 
   4a876:	2480           	movel %d0,%a2@                              
  if (filsdes[0] < 0) {                                               
   4a878:	6c0e           	bges 4a888 <pipe_create+0xa0>               
    err = errno;                                                      
   4a87a:	4eb9 0004 e348 	jsr 4e348 <__errno>                         
   4a880:	2040           	moveal %d0,%a0                              
   4a882:	2410           	movel %a0@,%d2                              
    /* Delete file at errors, or else if pipe is successfully created 
     the file node will be deleted after it is closed by all. */      
    unlink(fifopath);                                                 
   4a884:	2f03           	movel %d3,%sp@-                             
   4a886:	6054           	bras 4a8dc <pipe_create+0xf4>               
  }                                                                   
  else {                                                              
  /* Reset open file to blocking mode */                              
    iop = rtems_libio_iop(filsdes[0]);                                
   4a888:	b0b9 0005 e594 	cmpl 5e594 <rtems_libio_number_iops>,%d0    
   4a88e:	6412           	bccs 4a8a2 <pipe_create+0xba>               <== NEVER TAKEN
   4a890:	2200           	movel %d0,%d1                               
   4a892:	ed88           	lsll #6,%d0                                 
   4a894:	e789           	lsll #3,%d1                                 
   4a896:	2079 0005 fe2c 	moveal 5fe2c <rtems_libio_iops>,%a0         
   4a89c:	9081           	subl %d1,%d0                                
   4a89e:	d1c0           	addal %d0,%a0                               
   4a8a0:	6002           	bras 4a8a4 <pipe_create+0xbc>               
   4a8a2:	91c8           	subal %a0,%a0                               <== NOT EXECUTED
    iop->flags &= ~LIBIO_FLAGS_NO_DELAY;                              
   4a8a4:	70fe           	moveq #-2,%d0                               
   4a8a6:	c1a8 0014      	andl %d0,%a0@(20)                           
                                                                      
    filsdes[1] = open(fifopath, O_WRONLY);                            
   4a8aa:	4878 0001      	pea 1 <ADD>                                 
   4a8ae:	486e fff1      	pea %fp@(-15)                               
   4a8b2:	4eb9 0004 4660 	jsr 44660 <open>                            
                                                                      
    if (filsdes[1] < 0) {                                             
   4a8b8:	508f           	addql #8,%sp                                
  else {                                                              
  /* Reset open file to blocking mode */                              
    iop = rtems_libio_iop(filsdes[0]);                                
    iop->flags &= ~LIBIO_FLAGS_NO_DELAY;                              
                                                                      
    filsdes[1] = open(fifopath, O_WRONLY);                            
   4a8ba:	2540 0004      	movel %d0,%a2@(4)                           
                                                                      
    if (filsdes[1] < 0) {                                             
   4a8be:	6c16           	bges 4a8d6 <pipe_create+0xee>               
    err = errno;                                                      
   4a8c0:	4eb9 0004 e348 	jsr 4e348 <__errno>                         
   4a8c6:	2040           	moveal %d0,%a0                              
   4a8c8:	2410           	movel %a0@,%d2                              
    close(filsdes[0]);                                                
   4a8ca:	2f12           	movel %a2@,%sp@-                            
   4a8cc:	4eb9 0004 3560 	jsr 43560 <close>                           
   4a8d2:	588f           	addql #4,%sp                                
   4a8d4:	6002           	bras 4a8d8 <pipe_create+0xf0>               
int pipe_create(                                                      
  int filsdes[2]                                                      
)                                                                     
{                                                                     
  rtems_libio_t *iop;                                                 
  int err = 0;                                                        
   4a8d6:	4282           	clrl %d2                                    
                                                                      
    if (filsdes[1] < 0) {                                             
    err = errno;                                                      
    close(filsdes[0]);                                                
    }                                                                 
  unlink(fifopath);                                                   
   4a8d8:	486e fff1      	pea %fp@(-15)                               
   4a8dc:	4eb9 0004 6204 	jsr 46204 <unlink>                          
   4a8e2:	588f           	addql #4,%sp                                
  }                                                                   
  if(err != 0)                                                        
   4a8e4:	4a82           	tstl %d2                                    
   4a8e6:	670e           	beqs 4a8f6 <pipe_create+0x10e>              
    rtems_set_errno_and_return_minus_one(err);                        
   4a8e8:	4eb9 0004 e348 	jsr 4e348 <__errno>                         
   4a8ee:	2040           	moveal %d0,%a0                              
   4a8f0:	2082           	movel %d2,%a0@                              
   4a8f2:	70ff           	moveq #-1,%d0                               
   4a8f4:	6002           	bras 4a8f8 <pipe_create+0x110>              
  return 0;                                                           
   4a8f6:	4280           	clrl %d0                                    
}                                                                     
   4a8f8:	4cee 040c ffe4 	moveml %fp@(-28),%d2-%d3/%a2                
   4a8fe:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004bc4a <pipe_ioctl>: pipe_control_t *pipe, uint32_t cmd, void *buffer, rtems_libio_t *iop ) {
   4bc4a:	4e56 0000      	linkw %fp,#0                                
  if (cmd == FIONREAD) {                                              
   4bc4e:	203c 4004 667f 	movel #1074030207,%d0                       
  pipe_control_t *pipe,                                               
  uint32_t        cmd,                                                
  void           *buffer,                                             
  rtems_libio_t  *iop                                                 
)                                                                     
{                                                                     
   4bc54:	2f0b           	movel %a3,%sp@-                             
   4bc56:	266e 0010      	moveal %fp@(16),%a3                         
   4bc5a:	2f0a           	movel %a2,%sp@-                             
   4bc5c:	246e 0008      	moveal %fp@(8),%a2                          
  if (cmd == FIONREAD) {                                              
   4bc60:	b0ae 000c      	cmpl %fp@(12),%d0                           
   4bc64:	662e           	bnes 4bc94 <pipe_ioctl+0x4a>                
    if (buffer == NULL)                                               
   4bc66:	4a8b           	tstl %a3                                    
   4bc68:	672e           	beqs 4bc98 <pipe_ioctl+0x4e>                
      return -EFAULT;                                                 
                                                                      
    if (! PIPE_LOCK(pipe))                                            
   4bc6a:	42a7           	clrl %sp@-                                  
   4bc6c:	42a7           	clrl %sp@-                                  
   4bc6e:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4bc72:	4eb9 0004 759c 	jsr 4759c <rtems_semaphore_obtain>          
   4bc78:	4fef 000c      	lea %sp@(12),%sp                            
   4bc7c:	4a80           	tstl %d0                                    
   4bc7e:	661c           	bnes 4bc9c <pipe_ioctl+0x52>                <== NEVER TAKEN
      return -EINTR;                                                  
                                                                      
    /* Return length of pipe */                                       
    *(unsigned int *)buffer = pipe->Length;                           
   4bc80:	26aa 000c      	movel %a2@(12),%a3@                         
    PIPE_UNLOCK(pipe);                                                
   4bc84:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4bc88:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
    return 0;                                                         
   4bc8e:	588f           	addql #4,%sp                                
   4bc90:	4280           	clrl %d0                                    
   4bc92:	600a           	bras 4bc9e <pipe_ioctl+0x54>                
  }                                                                   
                                                                      
  return -EINVAL;                                                     
   4bc94:	70ea           	moveq #-22,%d0                              
   4bc96:	6006           	bras 4bc9e <pipe_ioctl+0x54>                
  rtems_libio_t  *iop                                                 
)                                                                     
{                                                                     
  if (cmd == FIONREAD) {                                              
    if (buffer == NULL)                                               
      return -EFAULT;                                                 
   4bc98:	70f2           	moveq #-14,%d0                              
   4bc9a:	6002           	bras 4bc9e <pipe_ioctl+0x54>                
                                                                      
    if (! PIPE_LOCK(pipe))                                            
      return -EINTR;                                                  
   4bc9c:	70fc           	moveq #-4,%d0                               <== NOT EXECUTED
    PIPE_UNLOCK(pipe);                                                
    return 0;                                                         
  }                                                                   
                                                                      
  return -EINVAL;                                                     
}                                                                     
   4bc9e:	246e fff8      	moveal %fp@(-8),%a2                         
   4bca2:	266e fffc      	moveal %fp@(-4),%a3                         
   4bca6:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b95e <pipe_read>: pipe_control_t *pipe, void *buffer, size_t count, rtems_libio_t *iop ) {
   4b95e:	4e56 ffd4      	linkw %fp,#-44                              
   4b962:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
  int chunk, chunk1, read = 0, ret = 0;                               
                                                                      
  if (! PIPE_LOCK(pipe))                                              
   4b966:	42a7           	clrl %sp@-                                  
  pipe_control_t *pipe,                                               
  void           *buffer,                                             
  size_t          count,                                              
  rtems_libio_t  *iop                                                 
)                                                                     
{                                                                     
   4b968:	246e 0008      	moveal %fp@(8),%a2                          
  int chunk, chunk1, read = 0, ret = 0;                               
                                                                      
  if (! PIPE_LOCK(pipe))                                              
   4b96c:	2e3c 0004 759c 	movel #292252,%d7                           
   4b972:	2047           	moveal %d7,%a0                              
   4b974:	42a7           	clrl %sp@-                                  
   4b976:	2f2a 0028      	movel %a2@(40),%sp@-                        
  pipe_control_t *pipe,                                               
  void           *buffer,                                             
  size_t          count,                                              
  rtems_libio_t  *iop                                                 
)                                                                     
{                                                                     
   4b97a:	286e 000c      	moveal %fp@(12),%a4                         
   4b97e:	2a2e 0010      	movel %fp@(16),%d5                          
  int chunk, chunk1, read = 0, ret = 0;                               
                                                                      
  if (! PIPE_LOCK(pipe))                                              
   4b982:	4e90           	jsr %a0@                                    
   4b984:	4fef 000c      	lea %sp@(12),%sp                            
   4b988:	4a80           	tstl %d0                                    
   4b98a:	6600 011c      	bnew 4baa8 <pipe_read+0x14a>                
    /* For buffering optimization */                                  
    if (PIPE_EMPTY(pipe))                                             
      pipe->Start = 0;                                                
                                                                      
    if (pipe->waitingWriters > 0)                                     
      PIPE_WAKEUPWRITERS(pipe);                                       
   4b98e:	2c0e           	movel %fp,%d6                               
  rtems_libio_t  *iop                                                 
)                                                                     
{                                                                     
  int chunk, chunk1, read = 0, ret = 0;                               
                                                                      
  if (! PIPE_LOCK(pipe))                                              
   4b990:	4282           	clrl %d2                                    
   4b992:	47f9 0004 f90c 	lea 4f90c <memcpy>,%a3                      
    /* For buffering optimization */                                  
    if (PIPE_EMPTY(pipe))                                             
      pipe->Start = 0;                                                
                                                                      
    if (pipe->waitingWriters > 0)                                     
      PIPE_WAKEUPWRITERS(pipe);                                       
   4b998:	5986           	subql #4,%d6                                
   4b99a:	4bf9 0004 cffc 	lea 4cffc <rtems_barrier_release>,%a5       
   4b9a0:	6000 00e2      	braw 4ba84 <pipe_read+0x126>                
    return -EINTR;                                                    
                                                                      
  while (read < count) {                                              
    while (PIPE_EMPTY(pipe)) {                                        
      /* Not an error */                                              
      if (pipe->Writers == 0)                                         
   4b9a4:	4aaa 0014      	tstl %a2@(20)                               
   4b9a8:	6700 00e0      	beqw 4ba8a <pipe_read+0x12c>                
        goto out_locked;                                              
                                                                      
      if (LIBIO_NODELAY(iop)) {                                       
   4b9ac:	206e 0014      	moveal %fp@(20),%a0                         
   4b9b0:	7001           	moveq #1,%d0                                
   4b9b2:	c0a8 0014      	andl %a0@(20),%d0                           
   4b9b6:	6600 00d6      	bnew 4ba8e <pipe_read+0x130>                
        ret = -EAGAIN;                                                
        goto out_locked;                                              
      }                                                               
                                                                      
      /* Wait until pipe is no more empty or no writer exists */      
      pipe->waitingReaders ++;                                        
   4b9ba:	52aa 0018      	addql #1,%a2@(24)                           
      PIPE_UNLOCK(pipe);                                              
   4b9be:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b9c2:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
      if (! PIPE_READWAIT(pipe))                                      
   4b9c8:	42a7           	clrl %sp@-                                  
   4b9ca:	2f2a 002c      	movel %a2@(44),%sp@-                        
   4b9ce:	4eb9 0004 d060 	jsr 4d060 <rtems_barrier_wait>              
   4b9d4:	4fef 000c      	lea %sp@(12),%sp                            
   4b9d8:	4a80           	tstl %d0                                    
   4b9da:	6604           	bnes 4b9e0 <pipe_read+0x82>                 <== NEVER TAKEN
   4b9dc:	4283           	clrl %d3                                    
   4b9de:	6002           	bras 4b9e2 <pipe_read+0x84>                 
        ret = -EINTR;                                                 
   4b9e0:	76fc           	moveq #-4,%d3                               <== NOT EXECUTED
      if (! PIPE_LOCK(pipe)) {                                        
   4b9e2:	42a7           	clrl %sp@-                                  
   4b9e4:	2047           	moveal %d7,%a0                              
   4b9e6:	42a7           	clrl %sp@-                                  
   4b9e8:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b9ec:	4e90           	jsr %a0@                                    
   4b9ee:	4fef 000c      	lea %sp@(12),%sp                            
   4b9f2:	4a80           	tstl %d0                                    
   4b9f4:	6600 00a8      	bnew 4ba9e <pipe_read+0x140>                
        /* WARN waitingReaders not restored! */                       
        ret = -EINTR;                                                 
        goto out_nolock;                                              
      }                                                               
      pipe->waitingReaders --;                                        
   4b9f8:	53aa 0018      	subql #1,%a2@(24)                           
      if (ret != 0)                                                   
   4b9fc:	4a83           	tstl %d3                                    
   4b9fe:	6600 0090      	bnew 4ba90 <pipe_read+0x132>                
                                                                      
  if (! PIPE_LOCK(pipe))                                              
    return -EINTR;                                                    
                                                                      
  while (read < count) {                                              
    while (PIPE_EMPTY(pipe)) {                                        
   4ba02:	262a 000c      	movel %a2@(12),%d3                          
   4ba06:	679c           	beqs 4b9a4 <pipe_read+0x46>                 <== NEVER TAKEN
      if (ret != 0)                                                   
        goto out_locked;                                              
    }                                                                 
                                                                      
    /* Read chunk bytes */                                            
    chunk = MIN(count - read,  pipe->Length);                         
   4ba08:	2005           	movel %d5,%d0                               
   4ba0a:	9082           	subl %d2,%d0                                
   4ba0c:	b083           	cmpl %d3,%d0                                
   4ba0e:	6402           	bccs 4ba12 <pipe_read+0xb4>                 
   4ba10:	2600           	movel %d0,%d3                               
    chunk1 = pipe->Size - pipe->Start;                                
   4ba12:	222a 0008      	movel %a2@(8),%d1                           
   4ba16:	200c           	movel %a4,%d0                               
   4ba18:	d082           	addl %d2,%d0                                
   4ba1a:	282a 0004      	movel %a2@(4),%d4                           
   4ba1e:	9881           	subl %d1,%d4                                
   4ba20:	d292           	addl %a2@,%d1                               
    if (chunk > chunk1) {                                             
   4ba22:	b883           	cmpl %d3,%d4                                
   4ba24:	6c20           	bges 4ba46 <pipe_read+0xe8>                 
      memcpy(buffer + read, pipe->Buffer + pipe->Start, chunk1);      
   4ba26:	2f04           	movel %d4,%sp@-                             
   4ba28:	2f01           	movel %d1,%sp@-                             
   4ba2a:	2f00           	movel %d0,%sp@-                             
   4ba2c:	4e93           	jsr %a3@                                    
      memcpy(buffer + read + chunk1, pipe->Buffer, chunk - chunk1);   
   4ba2e:	2203           	movel %d3,%d1                               
   4ba30:	9284           	subl %d4,%d1                                
   4ba32:	2002           	movel %d2,%d0                               
   4ba34:	d084           	addl %d4,%d0                                
   4ba36:	2f01           	movel %d1,%sp@-                             
   4ba38:	2f12           	movel %a2@,%sp@-                            
   4ba3a:	4874 0800      	pea %a4@(00000000,%d0:l)                    
   4ba3e:	4e93           	jsr %a3@                                    
   4ba40:	4fef 0018      	lea %sp@(24),%sp                            
   4ba44:	600c           	bras 4ba52 <pipe_read+0xf4>                 
    }                                                                 
    else                                                              
      memcpy(buffer + read, pipe->Buffer + pipe->Start, chunk);       
   4ba46:	2f03           	movel %d3,%sp@-                             
   4ba48:	2f01           	movel %d1,%sp@-                             
   4ba4a:	2f00           	movel %d0,%sp@-                             
   4ba4c:	4e93           	jsr %a3@                                    
   4ba4e:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
    pipe->Start += chunk;                                             
   4ba52:	2003           	movel %d3,%d0                               
   4ba54:	d0aa 0008      	addl %a2@(8),%d0                            
    pipe->Start %= pipe->Size;                                        
   4ba58:	4c6a 0001 0004 	remul %a2@(4),%d1,%d0                       
    pipe->Length -= chunk;                                            
   4ba5e:	202a 000c      	movel %a2@(12),%d0                          
   4ba62:	9083           	subl %d3,%d0                                
    }                                                                 
    else                                                              
      memcpy(buffer + read, pipe->Buffer + pipe->Start, chunk);       
                                                                      
    pipe->Start += chunk;                                             
    pipe->Start %= pipe->Size;                                        
   4ba64:	2541 0008      	movel %d1,%a2@(8)                           
    pipe->Length -= chunk;                                            
   4ba68:	2540 000c      	movel %d0,%a2@(12)                          
    /* For buffering optimization */                                  
    if (PIPE_EMPTY(pipe))                                             
   4ba6c:	6604           	bnes 4ba72 <pipe_read+0x114>                
      pipe->Start = 0;                                                
   4ba6e:	42aa 0008      	clrl %a2@(8)                                
                                                                      
    if (pipe->waitingWriters > 0)                                     
   4ba72:	4aaa 001c      	tstl %a2@(28)                               
   4ba76:	670a           	beqs 4ba82 <pipe_read+0x124>                
      PIPE_WAKEUPWRITERS(pipe);                                       
   4ba78:	2f06           	movel %d6,%sp@-                             
   4ba7a:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4ba7e:	4e95           	jsr %a5@                                    
   4ba80:	508f           	addql #8,%sp                                
    read += chunk;                                                    
   4ba82:	d483           	addl %d3,%d2                                
  int chunk, chunk1, read = 0, ret = 0;                               
                                                                      
  if (! PIPE_LOCK(pipe))                                              
    return -EINTR;                                                    
                                                                      
  while (read < count) {                                              
   4ba84:	ba82           	cmpl %d2,%d5                                
   4ba86:	6200 ff7a      	bhiw 4ba02 <pipe_read+0xa4>                 
    while (PIPE_EMPTY(pipe)) {                                        
      /* Not an error */                                              
      if (pipe->Writers == 0)                                         
   4ba8a:	4283           	clrl %d3                                    
   4ba8c:	6002           	bras 4ba90 <pipe_read+0x132>                
        goto out_locked;                                              
                                                                      
      if (LIBIO_NODELAY(iop)) {                                       
        ret = -EAGAIN;                                                
   4ba8e:	76f5           	moveq #-11,%d3                              
      PIPE_WAKEUPWRITERS(pipe);                                       
    read += chunk;                                                    
  }                                                                   
                                                                      
out_locked:                                                           
  PIPE_UNLOCK(pipe);                                                  
   4ba90:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4ba94:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
   4ba9a:	588f           	addql #4,%sp                                
   4ba9c:	6002           	bras 4baa0 <pipe_read+0x142>                
      PIPE_UNLOCK(pipe);                                              
      if (! PIPE_READWAIT(pipe))                                      
        ret = -EINTR;                                                 
      if (! PIPE_LOCK(pipe)) {                                        
        /* WARN waitingReaders not restored! */                       
        ret = -EINTR;                                                 
   4ba9e:	76fc           	moveq #-4,%d3                               <== NOT EXECUTED
                                                                      
out_locked:                                                           
  PIPE_UNLOCK(pipe);                                                  
                                                                      
out_nolock:                                                           
  if (read > 0)                                                       
   4baa0:	4a82           	tstl %d2                                    
   4baa2:	6f08           	bles 4baac <pipe_read+0x14e>                
   4baa4:	2002           	movel %d2,%d0                               
   4baa6:	6006           	bras 4baae <pipe_read+0x150>                
)                                                                     
{                                                                     
  int chunk, chunk1, read = 0, ret = 0;                               
                                                                      
  if (! PIPE_LOCK(pipe))                                              
    return -EINTR;                                                    
   4baa8:	70fc           	moveq #-4,%d0                               <== NOT EXECUTED
   4baaa:	6002           	bras 4baae <pipe_read+0x150>                <== NOT EXECUTED
  PIPE_UNLOCK(pipe);                                                  
                                                                      
out_nolock:                                                           
  if (read > 0)                                                       
    return read;                                                      
  return ret;                                                         
   4baac:	2003           	movel %d3,%d0                               
}                                                                     
   4baae:	4cee 3cfc ffd4 	moveml %fp@(-44),%d2-%d7/%a2-%a5            
   4bab4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b4fa <pipe_release>: */ void pipe_release( pipe_control_t **pipep, rtems_libio_t *iop ) {
   4b4fa:	4e56 fff0      	linkw %fp,#-16                              
    /* WARN pipe not released! */                                     
    if (!PIPE_LOCK(pipe))                                             
      rtems_fatal_error_occurred(0xdeadbeef);                         
  #endif                                                              
                                                                      
  mode = LIBIO_ACCMODE(iop);                                          
   4b4fe:	206e 000c      	moveal %fp@(12),%a0                         
 */                                                                   
void pipe_release(                                                    
  pipe_control_t **pipep,                                             
  rtems_libio_t *iop                                                  
)                                                                     
{                                                                     
   4b502:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   4b506:	266e 0008      	moveal %fp@(8),%a3                          
    /* WARN pipe not released! */                                     
    if (!PIPE_LOCK(pipe))                                             
      rtems_fatal_error_occurred(0xdeadbeef);                         
  #endif                                                              
                                                                      
  mode = LIBIO_ACCMODE(iop);                                          
   4b50a:	7406           	moveq #6,%d2                                
void pipe_release(                                                    
  pipe_control_t **pipep,                                             
  rtems_libio_t *iop                                                  
)                                                                     
{                                                                     
  pipe_control_t *pipe = *pipep;                                      
   4b50c:	2453           	moveal %a3@,%a2                             
    /* WARN pipe not released! */                                     
    if (!PIPE_LOCK(pipe))                                             
      rtems_fatal_error_occurred(0xdeadbeef);                         
  #endif                                                              
                                                                      
  mode = LIBIO_ACCMODE(iop);                                          
   4b50e:	c4a8 0014      	andl %a0@(20),%d2                           
  if (mode & LIBIO_FLAGS_READ)                                        
   4b512:	0802 0001      	btst #1,%d2                                 
   4b516:	6704           	beqs 4b51c <pipe_release+0x22>              
     pipe->Readers --;                                                
   4b518:	53aa 0010      	subql #1,%a2@(16)                           
  if (mode & LIBIO_FLAGS_WRITE)                                       
   4b51c:	44c2           	movew %d2,%ccr                              
   4b51e:	6604           	bnes 4b524 <pipe_release+0x2a>              
     pipe->Writers --;                                                
   4b520:	53aa 0014      	subql #1,%a2@(20)                           
                                                                      
  PIPE_UNLOCK(pipe);                                                  
   4b524:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4b528:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
                                                                      
  if (pipe->Readers == 0 && pipe->Writers == 0) {                     
   4b52e:	588f           	addql #4,%sp                                
   4b530:	4aaa 0010      	tstl %a2@(16)                               
   4b534:	6622           	bnes 4b558 <pipe_release+0x5e>              
   4b536:	4aaa 0014      	tstl %a2@(20)                               
   4b53a:	660c           	bnes 4b548 <pipe_release+0x4e>              
#if 0                                                                 
    /* To delete an anonymous pipe file when all users closed it */   
    if (pipe->Anonymous)                                              
      delfile = TRUE;                                                 
#endif                                                                
    pipe_free(pipe);                                                  
   4b53c:	2f0a           	movel %a2,%sp@-                             
   4b53e:	4eba ff72      	jsr %pc@(4b4b2 <pipe_free>)                 
    *pipep = NULL;                                                    
   4b542:	588f           	addql #4,%sp                                
   4b544:	4293           	clrl %a3@                                   
   4b546:	602c           	bras 4b574 <pipe_release+0x7a>              
  }                                                                   
  else if (pipe->Readers == 0 && mode != LIBIO_FLAGS_WRITE)           
   4b548:	7004           	moveq #4,%d0                                
   4b54a:	b082           	cmpl %d2,%d0                                
   4b54c:	670a           	beqs 4b558 <pipe_release+0x5e>              <== NEVER TAKEN
    /* Notify waiting Writers that all their partners left */         
    PIPE_WAKEUPWRITERS(pipe);                                         
   4b54e:	486e fffc      	pea %fp@(-4)                                
   4b552:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4b556:	6014           	bras 4b56c <pipe_release+0x72>              
  else if (pipe->Writers == 0 && mode != LIBIO_FLAGS_READ)            
   4b558:	4aaa 0014      	tstl %a2@(20)                               
   4b55c:	6616           	bnes 4b574 <pipe_release+0x7a>              <== NEVER TAKEN
   4b55e:	7002           	moveq #2,%d0                                
   4b560:	b082           	cmpl %d2,%d0                                
   4b562:	6710           	beqs 4b574 <pipe_release+0x7a>              <== NEVER TAKEN
    PIPE_WAKEUPREADERS(pipe);                                         
   4b564:	486e fffc      	pea %fp@(-4)                                
   4b568:	2f2a 002c      	movel %a2@(44),%sp@-                        
   4b56c:	4eb9 0004 cffc 	jsr 4cffc <rtems_barrier_release>           
   4b572:	508f           	addql #8,%sp                                
                                                                      
  pipe_unlock();                                                      
   4b574:	4eba ff26      	jsr %pc@(4b49c <pipe_unlock>)               
  iop->flags &= ~LIBIO_FLAGS_OPEN;                                    
  if(iop->pathinfo.ops->unlink_h(&iop->pathinfo))                     
    return;                                                           
#endif                                                                
                                                                      
}                                                                     
   4b578:	4cee 0c04 fff0 	moveml %fp@(-16),%d2/%a2-%a3                
   4b57e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bab8 <pipe_write>: pipe_control_t *pipe, const void *buffer, size_t count, rtems_libio_t *iop ) {
   4bab8:	4e56 ffd4      	linkw %fp,#-44                              
   4babc:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4bac0:	246e 0008      	moveal %fp@(8),%a2                          
   4bac4:	286e 000c      	moveal %fp@(12),%a4                         
   4bac8:	282e 0010      	movel %fp@(16),%d4                          
  int chunk, chunk1, written = 0, ret = 0;                            
                                                                      
  /* Write nothing */                                                 
  if (count == 0)                                                     
   4bacc:	6700 0168      	beqw 4bc36 <pipe_write+0x17e>               
    return 0;                                                         
                                                                      
  if (! PIPE_LOCK(pipe))                                              
   4bad0:	42a7           	clrl %sp@-                                  
   4bad2:	42a7           	clrl %sp@-                                  
   4bad4:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4bad8:	4eb9 0004 759c 	jsr 4759c <rtems_semaphore_obtain>          
   4bade:	4fef 000c      	lea %sp@(12),%sp                            
   4bae2:	4a80           	tstl %d0                                    
   4bae4:	6600 0154      	bnew 4bc3a <pipe_write+0x182>               
    return -EINTR;                                                    
                                                                      
  if (pipe->Readers == 0) {                                           
   4bae8:	4aaa 0010      	tstl %a2@(16)                               
   4baec:	6700 010a      	beqw 4bbf8 <pipe_write+0x140>               
    ret = -EPIPE;                                                     
    goto out_locked;                                                  
  }                                                                   
                                                                      
  /* Write of PIPE_BUF bytes or less shall not be interleaved */      
  chunk = count <= pipe->Size ? count : 1;                            
   4baf0:	b8aa 0004      	cmpl %a2@(4),%d4                            
   4baf4:	6204           	bhis 4bafa <pipe_write+0x42>                <== NEVER TAKEN
   4baf6:	2a04           	movel %d4,%d5                               
   4baf8:	6002           	bras 4bafc <pipe_write+0x44>                
   4bafa:	7a01           	moveq #1,%d5                                <== NOT EXECUTED
                                                                      
      /* Wait until there is chunk bytes space or no reader exists */ 
      pipe->waitingWriters ++;                                        
      PIPE_UNLOCK(pipe);                                              
      if (! PIPE_WRITEWAIT(pipe))                                     
        ret = -EINTR;                                                 
   4bafc:	4282           	clrl %d2                                    
      }                                                               
                                                                      
      /* Wait until there is chunk bytes space or no reader exists */ 
      pipe->waitingWriters ++;                                        
      PIPE_UNLOCK(pipe);                                              
      if (! PIPE_WRITEWAIT(pipe))                                     
   4bafe:	2e3c 0004 d060 	movel #315488,%d7                           
   4bb04:	47f9 0004 f90c 	lea 4f90c <memcpy>,%a3                      
    else                                                              
      memcpy(pipe->Buffer + PIPE_WSTART(pipe), buffer + written, chunk);
                                                                      
    pipe->Length += chunk;                                            
    if (pipe->waitingReaders > 0)                                     
      PIPE_WAKEUPREADERS(pipe);                                       
   4bb0a:	4bf9 0004 cffc 	lea 4cffc <rtems_barrier_release>,%a5       
      /* Wait until there is chunk bytes space or no reader exists */ 
      pipe->waitingWriters ++;                                        
      PIPE_UNLOCK(pipe);                                              
      if (! PIPE_WRITEWAIT(pipe))                                     
        ret = -EINTR;                                                 
      if (! PIPE_LOCK(pipe)) {                                        
   4bb10:	2c3c 0004 759c 	movel #292252,%d6                           
   4bb16:	6000 00d8      	braw 4bbf0 <pipe_write+0x138>               
  /* Write of PIPE_BUF bytes or less shall not be interleaved */      
  chunk = count <= pipe->Size ? count : 1;                            
                                                                      
  while (written < count) {                                           
    while (PIPE_SPACE(pipe) < chunk) {                                
      if (LIBIO_NODELAY(iop)) {                                       
   4bb1a:	206e 0014      	moveal %fp@(20),%a0                         
   4bb1e:	7001           	moveq #1,%d0                                
   4bb20:	c0a8 0014      	andl %a0@(20),%d0                           
   4bb24:	6600 00d8      	bnew 4bbfe <pipe_write+0x146>               
        ret = -EAGAIN;                                                
        goto out_locked;                                              
      }                                                               
                                                                      
      /* Wait until there is chunk bytes space or no reader exists */ 
      pipe->waitingWriters ++;                                        
   4bb28:	52aa 001c      	addql #1,%a2@(28)                           
      PIPE_UNLOCK(pipe);                                              
   4bb2c:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4bb30:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
      if (! PIPE_WRITEWAIT(pipe))                                     
   4bb36:	2047           	moveal %d7,%a0                              
   4bb38:	42a7           	clrl %sp@-                                  
   4bb3a:	2f2a 0030      	movel %a2@(48),%sp@-                        
   4bb3e:	4e90           	jsr %a0@                                    
   4bb40:	4fef 000c      	lea %sp@(12),%sp                            
   4bb44:	4a80           	tstl %d0                                    
   4bb46:	6604           	bnes 4bb4c <pipe_write+0x94>                <== NEVER TAKEN
   4bb48:	4283           	clrl %d3                                    
   4bb4a:	6002           	bras 4bb4e <pipe_write+0x96>                
        ret = -EINTR;                                                 
   4bb4c:	76fc           	moveq #-4,%d3                               <== NOT EXECUTED
      if (! PIPE_LOCK(pipe)) {                                        
   4bb4e:	42a7           	clrl %sp@-                                  
   4bb50:	2046           	moveal %d6,%a0                              
   4bb52:	42a7           	clrl %sp@-                                  
   4bb54:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4bb58:	4e90           	jsr %a0@                                    
   4bb5a:	4fef 000c      	lea %sp@(12),%sp                            
   4bb5e:	4a80           	tstl %d0                                    
   4bb60:	6600 00ca      	bnew 4bc2c <pipe_write+0x174>               
        /* WARN waitingWriters not restored! */                       
        ret = -EINTR;                                                 
        goto out_nolock;                                              
      }                                                               
      pipe->waitingWriters --;                                        
   4bb64:	53aa 001c      	subql #1,%a2@(28)                           
      if (ret != 0)                                                   
   4bb68:	4a83           	tstl %d3                                    
   4bb6a:	6600 0098      	bnew 4bc04 <pipe_write+0x14c>               
        goto out_locked;                                              
                                                                      
      if (pipe->Readers == 0) {                                       
   4bb6e:	4aaa 0010      	tstl %a2@(16)                               
   4bb72:	6700 008e      	beqw 4bc02 <pipe_write+0x14a>               
                                                                      
  /* Write of PIPE_BUF bytes or less shall not be interleaved */      
  chunk = count <= pipe->Size ? count : 1;                            
                                                                      
  while (written < count) {                                           
    while (PIPE_SPACE(pipe) < chunk) {                                
   4bb76:	202a 0004      	movel %a2@(4),%d0                           
   4bb7a:	2600           	movel %d0,%d3                               
   4bb7c:	222a 000c      	movel %a2@(12),%d1                          
   4bb80:	9681           	subl %d1,%d3                                
   4bb82:	ba83           	cmpl %d3,%d5                                
   4bb84:	6294           	bhis 4bb1a <pipe_write+0x62>                
        ret = -EPIPE;                                                 
        goto out_locked;                                              
      }                                                               
    }                                                                 
                                                                      
    chunk = MIN(count - written, PIPE_SPACE(pipe));                   
   4bb86:	2044           	moveal %d4,%a0                              
   4bb88:	91c2           	subal %d2,%a0                               
   4bb8a:	b1c3           	cmpal %d3,%a0                               
   4bb8c:	6402           	bccs 4bb90 <pipe_write+0xd8>                
   4bb8e:	2608           	movel %a0,%d3                               
    chunk1 = pipe->Size - PIPE_WSTART(pipe);                          
   4bb90:	2a01           	movel %d1,%d5                               
   4bb92:	daaa 0008      	addl %a2@(8),%d5                            
   4bb96:	4c40 5001      	remul %d0,%d1,%d5                           
   4bb9a:	2a00           	movel %d0,%d5                               
   4bb9c:	9a81           	subl %d1,%d5                                
   4bb9e:	2012           	movel %a2@,%d0                              
   4bba0:	d081           	addl %d1,%d0                                
   4bba2:	220c           	movel %a4,%d1                               
   4bba4:	d282           	addl %d2,%d1                                
    if (chunk > chunk1) {                                             
   4bba6:	ba83           	cmpl %d3,%d5                                
   4bba8:	6c20           	bges 4bbca <pipe_write+0x112>               
      memcpy(pipe->Buffer + PIPE_WSTART(pipe), buffer + written, chunk1);
   4bbaa:	2f05           	movel %d5,%sp@-                             
   4bbac:	2f01           	movel %d1,%sp@-                             
   4bbae:	2f00           	movel %d0,%sp@-                             
   4bbb0:	4e93           	jsr %a3@                                    
      memcpy(pipe->Buffer, buffer + written + chunk1, chunk - chunk1);
   4bbb2:	2203           	movel %d3,%d1                               
   4bbb4:	9285           	subl %d5,%d1                                
   4bbb6:	2005           	movel %d5,%d0                               
   4bbb8:	d082           	addl %d2,%d0                                
   4bbba:	2f01           	movel %d1,%sp@-                             
   4bbbc:	4874 0800      	pea %a4@(00000000,%d0:l)                    
   4bbc0:	2f12           	movel %a2@,%sp@-                            
   4bbc2:	4e93           	jsr %a3@                                    
   4bbc4:	4fef 0018      	lea %sp@(24),%sp                            
   4bbc8:	600c           	bras 4bbd6 <pipe_write+0x11e>               
    }                                                                 
    else                                                              
      memcpy(pipe->Buffer + PIPE_WSTART(pipe), buffer + written, chunk);
   4bbca:	2f03           	movel %d3,%sp@-                             
   4bbcc:	2f01           	movel %d1,%sp@-                             
   4bbce:	2f00           	movel %d0,%sp@-                             
   4bbd0:	4e93           	jsr %a3@                                    
   4bbd2:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
    pipe->Length += chunk;                                            
   4bbd6:	d7aa 000c      	addl %d3,%a2@(12)                           
    if (pipe->waitingReaders > 0)                                     
   4bbda:	4aaa 0018      	tstl %a2@(24)                               
   4bbde:	670c           	beqs 4bbec <pipe_write+0x134>               
      PIPE_WAKEUPREADERS(pipe);                                       
   4bbe0:	486e fffc      	pea %fp@(-4)                                
   4bbe4:	2f2a 002c      	movel %a2@(44),%sp@-                        
   4bbe8:	4e95           	jsr %a5@                                    
   4bbea:	508f           	addql #8,%sp                                
    written += chunk;                                                 
   4bbec:	d483           	addl %d3,%d2                                
    /* Write of more than PIPE_BUF bytes can be interleaved */        
    chunk = 1;                                                        
   4bbee:	7a01           	moveq #1,%d5                                
  }                                                                   
                                                                      
  /* Write of PIPE_BUF bytes or less shall not be interleaved */      
  chunk = count <= pipe->Size ? count : 1;                            
                                                                      
  while (written < count) {                                           
   4bbf0:	b882           	cmpl %d2,%d4                                
   4bbf2:	6282           	bhis 4bb76 <pipe_write+0xbe>                
   4bbf4:	4283           	clrl %d3                                    
   4bbf6:	600c           	bras 4bc04 <pipe_write+0x14c>               
                                                                      
  if (! PIPE_LOCK(pipe))                                              
    return -EINTR;                                                    
                                                                      
  if (pipe->Readers == 0) {                                           
    ret = -EPIPE;                                                     
   4bbf8:	76e0           	moveq #-32,%d3                              
  const void     *buffer,                                             
  size_t          count,                                              
  rtems_libio_t  *iop                                                 
)                                                                     
{                                                                     
  int chunk, chunk1, written = 0, ret = 0;                            
   4bbfa:	4282           	clrl %d2                                    
   4bbfc:	6006           	bras 4bc04 <pipe_write+0x14c>               
  chunk = count <= pipe->Size ? count : 1;                            
                                                                      
  while (written < count) {                                           
    while (PIPE_SPACE(pipe) < chunk) {                                
      if (LIBIO_NODELAY(iop)) {                                       
        ret = -EAGAIN;                                                
   4bbfe:	76f5           	moveq #-11,%d3                              
   4bc00:	6002           	bras 4bc04 <pipe_write+0x14c>               
      pipe->waitingWriters --;                                        
      if (ret != 0)                                                   
        goto out_locked;                                              
                                                                      
      if (pipe->Readers == 0) {                                       
        ret = -EPIPE;                                                 
   4bc02:	76e0           	moveq #-32,%d3                              <== NOT EXECUTED
    /* Write of more than PIPE_BUF bytes can be interleaved */        
    chunk = 1;                                                        
  }                                                                   
                                                                      
out_locked:                                                           
  PIPE_UNLOCK(pipe);                                                  
   4bc04:	2f2a 0028      	movel %a2@(40),%sp@-                        
   4bc08:	4eb9 0004 76a4 	jsr 476a4 <rtems_semaphore_release>         
   4bc0e:	588f           	addql #4,%sp                                
                                                                      
out_nolock:                                                           
#ifdef RTEMS_POSIX_API                                                
  /* Signal SIGPIPE */                                                
  if (ret == -EPIPE)                                                  
   4bc10:	70e0           	moveq #-32,%d0                              
   4bc12:	b083           	cmpl %d3,%d0                                
   4bc14:	6618           	bnes 4bc2e <pipe_write+0x176>               
    kill(getpid(), SIGPIPE);                                          
   4bc16:	4eb9 0004 c414 	jsr 4c414 <getpid>                          
   4bc1c:	4878 000d      	pea d <OPER1+0x1>                           
   4bc20:	2f00           	movel %d0,%sp@-                             
   4bc22:	4eb9 0004 c6b0 	jsr 4c6b0 <kill>                            
   4bc28:	508f           	addql #8,%sp                                
   4bc2a:	6002           	bras 4bc2e <pipe_write+0x176>               
      PIPE_UNLOCK(pipe);                                              
      if (! PIPE_WRITEWAIT(pipe))                                     
        ret = -EINTR;                                                 
      if (! PIPE_LOCK(pipe)) {                                        
        /* WARN waitingWriters not restored! */                       
        ret = -EINTR;                                                 
   4bc2c:	76fc           	moveq #-4,%d3                               <== NOT EXECUTED
  /* Signal SIGPIPE */                                                
  if (ret == -EPIPE)                                                  
    kill(getpid(), SIGPIPE);                                          
#endif                                                                
                                                                      
  if (written > 0)                                                    
   4bc2e:	4a82           	tstl %d2                                    
   4bc30:	6f0c           	bles 4bc3e <pipe_write+0x186>               
   4bc32:	2002           	movel %d2,%d0                               
   4bc34:	600a           	bras 4bc40 <pipe_write+0x188>               
{                                                                     
  int chunk, chunk1, written = 0, ret = 0;                            
                                                                      
  /* Write nothing */                                                 
  if (count == 0)                                                     
    return 0;                                                         
   4bc36:	4280           	clrl %d0                                    <== NOT EXECUTED
   4bc38:	6006           	bras 4bc40 <pipe_write+0x188>               <== NOT EXECUTED
                                                                      
  if (! PIPE_LOCK(pipe))                                              
    return -EINTR;                                                    
   4bc3a:	70fc           	moveq #-4,%d0                               <== NOT EXECUTED
   4bc3c:	6002           	bras 4bc40 <pipe_write+0x188>               <== NOT EXECUTED
  /* Signal SIGPIPE */                                                
  if (ret == -EPIPE)                                                  
    kill(getpid(), SIGPIPE);                                          
#endif                                                                
                                                                      
  if (written > 0)                                                    
   4bc3e:	2003           	movel %d3,%d0                               
    return written;                                                   
  return ret;                                                         
}                                                                     
   4bc40:	4cee 3cfc ffd4 	moveml %fp@(-44),%d2-%d7/%a2-%a5            
   4bc46:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046dcc <posix_memalign>: int posix_memalign( void **pointer, size_t alignment, size_t size ) {
   46dcc:	4e56 0000      	linkw %fp,#0                                
   46dd0:	202e 000c      	movel %fp@(12),%d0                          
  /*                                                                  
   *  Update call statistics                                          
   */                                                                 
  MSBUMP(memalign_calls, 1);                                          
                                                                      
  if (((alignment - 1) & alignment) != 0 || (alignment < sizeof(void *)))
   46dd4:	2200           	movel %d0,%d1                               
   46dd6:	5381           	subql #1,%d1                                
)                                                                     
{                                                                     
  /*                                                                  
   *  Update call statistics                                          
   */                                                                 
  MSBUMP(memalign_calls, 1);                                          
   46dd8:	52b9 0006 4150 	addql #1,64150 <rtems_malloc_statistics+0x8>
                                                                      
  if (((alignment - 1) & alignment) != 0 || (alignment < sizeof(void *)))
   46dde:	c280           	andl %d0,%d1                                
   46de0:	6610           	bnes 46df2 <posix_memalign+0x26>            <== NEVER TAKEN
   46de2:	123c 0003      	moveb #3,%d1                                
   46de6:	b280           	cmpl %d0,%d1                                
   46de8:	6408           	bccs 46df2 <posix_memalign+0x26>            
  /*                                                                  
   *  rtems_memalign does all of the error checking work EXCEPT       
   *  for adding restrictionso on the alignment.                      
   */                                                                 
  return rtems_memalign( pointer, alignment, size );                  
}                                                                     
   46dea:	4e5e           	unlk %fp                                    
                                                                      
  /*                                                                  
   *  rtems_memalign does all of the error checking work EXCEPT       
   *  for adding restrictionso on the alignment.                      
   */                                                                 
  return rtems_memalign( pointer, alignment, size );                  
   46dec:	4ef9 0004 6f68 	jmp 46f68 <rtems_memalign>                  
}                                                                     
   46df2:	7016           	moveq #22,%d0                               
   46df4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004a56c <pthread_attr_setschedpolicy>: int pthread_attr_setschedpolicy( pthread_attr_t *attr, int policy ) {
   4a56c:	4e56 0000      	linkw %fp,#0                                
   4a570:	206e 0008      	moveal %fp@(8),%a0                          
   4a574:	222e 000c      	movel %fp@(12),%d1                          
   4a578:	2f02           	movel %d2,%sp@-                             
  if ( !attr || !attr->is_initialized )                               
   4a57a:	4a88           	tstl %a0                                    
   4a57c:	671e           	beqs 4a59c <pthread_attr_setschedpolicy+0x30>
   4a57e:	4a90           	tstl %a0@                                   
   4a580:	671a           	beqs 4a59c <pthread_attr_setschedpolicy+0x30>
    return EINVAL;                                                    
                                                                      
  switch ( policy ) {                                                 
   4a582:	7004           	moveq #4,%d0                                
   4a584:	b081           	cmpl %d1,%d0                                
   4a586:	6518           	bcss 4a5a0 <pthread_attr_setschedpolicy+0x34>
   4a588:	103c 0001      	moveb #1,%d0                                
   4a58c:	7417           	moveq #23,%d2                               
   4a58e:	e3a8           	lsll %d1,%d0                                
   4a590:	c082           	andl %d2,%d0                                
   4a592:	670c           	beqs 4a5a0 <pthread_attr_setschedpolicy+0x34><== NEVER TAKEN
    case SCHED_OTHER:                                                 
    case SCHED_FIFO:                                                  
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
   4a594:	2141 0014      	movel %d1,%a0@(20)                          
      return 0;                                                       
   4a598:	4280           	clrl %d0                                    
   4a59a:	600a           	bras 4a5a6 <pthread_attr_setschedpolicy+0x3a>
  pthread_attr_t  *attr,                                              
  int              policy                                             
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
   4a59c:	7016           	moveq #22,%d0                               
   4a59e:	6006           	bras 4a5a6 <pthread_attr_setschedpolicy+0x3a>
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
   4a5a0:	203c 0000 0086 	movel #134,%d0                              
  }                                                                   
}                                                                     
   4a5a6:	241f           	movel %sp@+,%d2                             
   4a5a8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045c0c <pthread_barrier_init>: int pthread_barrier_init( pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count ) {
   45c0c:	4e56 ffdc      	linkw %fp,#-36                              
   45c10:	206e 000c      	moveal %fp@(12),%a0                         
   45c14:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   45c18:	246e 0008      	moveal %fp@(8),%a2                          
   45c1c:	242e 0010      	movel %fp@(16),%d2                          
  const pthread_barrierattr_t   *the_attr;                            
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !barrier )                                                     
   45c20:	4a8a           	tstl %a2                                    
   45c22:	6700 008e      	beqw 45cb2 <pthread_barrier_init+0xa6>      
    return EINVAL;                                                    
                                                                      
  if ( count == 0 )                                                   
   45c26:	4a82           	tstl %d2                                    
   45c28:	6700 0088      	beqw 45cb2 <pthread_barrier_init+0xa6>      
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
   45c2c:	4a88           	tstl %a0                                    
   45c2e:	6614           	bnes 45c44 <pthread_barrier_init+0x38>      
    the_attr = attr;                                                  
  } else {                                                            
    (void) pthread_barrierattr_init( &my_attr );                      
   45c30:	260e           	movel %fp,%d3                               
   45c32:	0683 ffff fff0 	addil #-16,%d3                              
   45c38:	2f03           	movel %d3,%sp@-                             
   45c3a:	4eb9 0004 5b50 	jsr 45b50 <pthread_barrierattr_init>        
   45c40:	588f           	addql #4,%sp                                
    the_attr = &my_attr;                                              
   45c42:	2043           	moveal %d3,%a0                              
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
   45c44:	4a90           	tstl %a0@                                   
   45c46:	676a           	beqs 45cb2 <pthread_barrier_init+0xa6>      
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
   45c48:	4aa8 0004      	tstl %a0@(4)                                
   45c4c:	6664           	bnes 45cb2 <pthread_barrier_init+0xa6>      <== NEVER TAKEN
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   45c4e:	2039 0005 ffac 	movel 5ffac <_Thread_Dispatch_disable_level>,%d0
   45c54:	5280           	addql #1,%d0                                
  }                                                                   
                                                                      
  /*                                                                  
   * Convert from POSIX attributes to Core Barrier attributes         
   */                                                                 
  the_attributes.discipline    = CORE_BARRIER_AUTOMATIC_RELEASE;      
   45c56:	42ae fff8      	clrl %fp@(-8)                               
  the_attributes.maximum_count = count;                               
   45c5a:	2d42 fffc      	movel %d2,%fp@(-4)                          
   45c5e:	23c0 0005 ffac 	movel %d0,5ffac <_Thread_Dispatch_disable_level>
 *  the inactive chain of free barrier control blocks.                
 */                                                                   
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Allocate( void )
{                                                                     
  return (POSIX_Barrier_Control *)                                    
    _Objects_Allocate( &_POSIX_Barrier_Information );                 
   45c64:	4879 0006 02aa 	pea 602aa <_POSIX_Barrier_Information>      
   45c6a:	49f9 0004 8ab2 	lea 48ab2 <_Thread_Enable_dispatch>,%a4     
   45c70:	4eb9 0004 7b28 	jsr 47b28 <_Objects_Allocate>               
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _POSIX_Barrier_Allocate();                            
                                                                      
  if ( !the_barrier ) {                                               
   45c76:	588f           	addql #4,%sp                                
   45c78:	2640           	moveal %d0,%a3                              
   45c7a:	4a80           	tstl %d0                                    
   45c7c:	6606           	bnes 45c84 <pthread_barrier_init+0x78>      
    _Thread_Enable_dispatch();                                        
   45c7e:	4e94           	jsr %a4@                                    
    return EAGAIN;                                                    
   45c80:	700b           	moveq #11,%d0                               
   45c82:	6030           	bras 45cb4 <pthread_barrier_init+0xa8>      
  }                                                                   
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
   45c84:	486e fff8      	pea %fp@(-8)                                
   45c88:	486b 0010      	pea %a3@(16)                                
   45c8c:	4eb9 0004 7230 	jsr 47230 <_CORE_barrier_Initialize>        
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
   45c92:	202b 0008      	movel %a3@(8),%d0                           
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   45c96:	4281           	clrl %d1                                    
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   45c98:	2079 0006 02c2 	moveal 602c2 <_POSIX_Barrier_Information+0x18>,%a0
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   45c9e:	3200           	movew %d0,%d1                               
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   45ca0:	218b 1c00      	movel %a3,%a0@(00000000,%d1:l:4)            
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
   45ca4:	42ab 000c      	clrl %a3@(12)                               
  );                                                                  
                                                                      
  /*                                                                  
   * Exit the critical section and return the user an operational barrier
   */                                                                 
  *barrier = the_barrier->Object.id;                                  
   45ca8:	2480           	movel %d0,%a2@                              
  _Thread_Enable_dispatch();                                          
   45caa:	4e94           	jsr %a4@                                    
  return 0;                                                           
   45cac:	508f           	addql #8,%sp                                
   45cae:	4280           	clrl %d0                                    
   45cb0:	6002           	bras 45cb4 <pthread_barrier_init+0xa8>      
  switch ( the_attr->process_shared ) {                               
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
   45cb2:	7016           	moveq #22,%d0                               
   * Exit the critical section and return the user an operational barrier
   */                                                                 
  *barrier = the_barrier->Object.id;                                  
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
   45cb4:	4cee 1c0c ffdc 	moveml %fp@(-36),%d2-%d3/%a2-%a4            
   45cba:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045630 <pthread_cleanup_push>: void pthread_cleanup_push( void (*routine)( void * ), void *arg ) {
   45630:	4e56 0000      	linkw %fp,#0                                
   45634:	2f03           	movel %d3,%sp@-                             
   45636:	262e 000c      	movel %fp@(12),%d3                          
   4563a:	2f02           	movel %d2,%sp@-                             
   4563c:	242e 0008      	movel %fp@(8),%d2                           
  /*                                                                  
   *  The POSIX standard does not address what to do when the routine 
   *  is NULL.  It also does not address what happens when we cannot  
   *  allocate memory or anything else bad happens.                   
   */                                                                 
  if ( !routine )                                                     
   45640:	6754           	beqs 45696 <pthread_cleanup_push+0x66>      
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   45642:	2039 0005 f8f2 	movel 5f8f2 <_Thread_Dispatch_disable_level>,%d0
   45648:	5280           	addql #1,%d0                                
   4564a:	23c0 0005 f8f2 	movel %d0,5f8f2 <_Thread_Dispatch_disable_level>
    return;                                                           
                                                                      
  _Thread_Disable_dispatch();                                         
  handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) );
   45650:	4878 0010      	pea 10 <INVALID_OPERATION>                  
   45654:	4eb9 0004 94b8 	jsr 494b8 <_Workspace_Allocate>             
                                                                      
  if ( handler ) {                                                    
   4565a:	588f           	addql #4,%sp                                
   4565c:	4a80           	tstl %d0                                    
   4565e:	6726           	beqs 45686 <pthread_cleanup_push+0x56>      <== NEVER TAKEN
    thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
   45660:	2079 0005 fd5c 	moveal 5fd5c <_Per_CPU_Information+0xc>,%a0 
                                                                      
    handler_stack = &thread_support->Cancellation_Handlers;           
   45666:	2228 0102      	movel %a0@(258),%d1                         
                                                                      
    handler->routine = routine;                                       
   4566a:	2040           	moveal %d0,%a0                              
  handler = _Workspace_Allocate( sizeof( POSIX_Cancel_Handler_control ) );
                                                                      
  if ( handler ) {                                                    
    thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
                                                                      
    handler_stack = &thread_support->Cancellation_Handlers;           
   4566c:	0681 0000 00e4 	addil #228,%d1                              
                                                                      
    handler->routine = routine;                                       
   45672:	2142 0008      	movel %d2,%a0@(8)                           
    handler->arg = arg;                                               
   45676:	2143 000c      	movel %d3,%a0@(12)                          
                                                                      
    _Chain_Append( handler_stack, &handler->Node );                   
   4567a:	2f00           	movel %d0,%sp@-                             
   4567c:	2f01           	movel %d1,%sp@-                             
   4567e:	4eb9 0004 6cc8 	jsr 46cc8 <_Chain_Append>                   
   45684:	508f           	addql #8,%sp                                
  }                                                                   
  _Thread_Enable_dispatch();                                          
}                                                                     
   45686:	242e fff8      	movel %fp@(-8),%d2                          
   4568a:	262e fffc      	movel %fp@(-4),%d3                          
   4568e:	4e5e           	unlk %fp                                    
    handler->routine = routine;                                       
    handler->arg = arg;                                               
                                                                      
    _Chain_Append( handler_stack, &handler->Node );                   
  }                                                                   
  _Thread_Enable_dispatch();                                          
   45690:	4ef9 0004 850e 	jmp 4850e <_Thread_Enable_dispatch>         
}                                                                     
   45696:	242e fff8      	movel %fp@(-8),%d2                          
   4569a:	262e fffc      	movel %fp@(-4),%d3                          
   4569e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00046354 <pthread_cond_init>: int pthread_cond_init( pthread_cond_t *cond, const pthread_condattr_t *attr ) {
   46354:	4e56 fff4      	linkw %fp,#-12                              
   46358:	48d7 1c00      	moveml %a2-%a4,%sp@                         
   4635c:	246e 000c      	moveal %fp@(12),%a2                         
  POSIX_Condition_variables_Control   *the_cond;                      
  const pthread_condattr_t            *the_attr;                      
                                                                      
  if ( attr ) the_attr = attr;                                        
   46360:	4a8a           	tstl %a2                                    
   46362:	6606           	bnes 4636a <pthread_cond_init+0x16>         
  else        the_attr = &_POSIX_Condition_variables_Default_attributes;
   46364:	45f9 0005 e662 	lea 5e662 <_POSIX_Condition_variables_Default_attributes>,%a2
                                                                      
  /*                                                                  
   *  Be careful about attributes when global!!!                      
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
   4636a:	7001           	moveq #1,%d0                                
   4636c:	b0aa 0004      	cmpl %a2@(4),%d0                            
   46370:	6778           	beqs 463ea <pthread_cond_init+0x96>         <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  if ( !the_attr->is_initialized )                                    
   46372:	4a92           	tstl %a2@                                   
   46374:	6774           	beqs 463ea <pthread_cond_init+0x96>         
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   46376:	2039 0006 0ed8 	movel 60ed8 <_Thread_Dispatch_disable_level>,%d0
   4637c:	5280           	addql #1,%d0                                
   4637e:	23c0 0006 0ed8 	movel %d0,60ed8 <_Thread_Dispatch_disable_level>
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control                
  *_POSIX_Condition_variables_Allocate( void )                        
{                                                                     
  return (POSIX_Condition_variables_Control *)                        
    _Objects_Allocate( &_POSIX_Condition_variables_Information );     
   46384:	4879 0006 1262 	pea 61262 <_POSIX_Condition_variables_Information>
   4638a:	49f9 0004 96fe 	lea 496fe <_Thread_Enable_dispatch>,%a4     
   46390:	4eb9 0004 8774 	jsr 48774 <_Objects_Allocate>               
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_cond = _POSIX_Condition_variables_Allocate();                   
                                                                      
  if ( !the_cond ) {                                                  
   46396:	588f           	addql #4,%sp                                
   46398:	2640           	moveal %d0,%a3                              
   4639a:	4a80           	tstl %d0                                    
   4639c:	6606           	bnes 463a4 <pthread_cond_init+0x50>         
    _Thread_Enable_dispatch();                                        
   4639e:	4e94           	jsr %a4@                                    
    return ENOMEM;                                                    
   463a0:	700c           	moveq #12,%d0                               
   463a2:	6048           	bras 463ec <pthread_cond_init+0x98>         
  }                                                                   
                                                                      
  the_cond->process_shared  = the_attr->process_shared;               
   463a4:	276a 0004 0010 	movel %a2@(4),%a3@(16)                      
                                                                      
  the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;               
   463aa:	42ab 0014      	clrl %a3@(20)                               
                                                                      
  _Thread_queue_Initialize(                                           
   463ae:	4878 0074      	pea 74 <DBL_MANT_DIG+0x3f>                  
   463b2:	2f3c 1000 0800 	movel #268437504,%sp@-                      
   463b8:	42a7           	clrl %sp@-                                  
   463ba:	486b 0018      	pea %a3@(24)                                
   463be:	4eb9 0004 9dd0 	jsr 49dd0 <_Thread_queue_Initialize>        
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
   463c4:	202b 0008      	movel %a3@(8),%d0                           
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   463c8:	4281           	clrl %d1                                    
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   463ca:	2079 0006 127a 	moveal 6127a <_POSIX_Condition_variables_Information+0x18>,%a0
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   463d0:	3200           	movew %d0,%d1                               
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   463d2:	218b 1c00      	movel %a3,%a0@(00000000,%d1:l:4)            
    &_POSIX_Condition_variables_Information,                          
    &the_cond->Object,                                                
    0                                                                 
  );                                                                  
                                                                      
  *cond = the_cond->Object.id;                                        
   463d6:	206e 0008      	moveal %fp@(8),%a0                          
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
   463da:	42ab 000c      	clrl %a3@(12)                               
   463de:	2080           	movel %d0,%a0@                              
                                                                      
  _Thread_Enable_dispatch();                                          
   463e0:	4e94           	jsr %a4@                                    
                                                                      
  return 0;                                                           
   463e2:	4fef 0010      	lea %sp@(16),%sp                            
   463e6:	4280           	clrl %d0                                    
   463e8:	6002           	bras 463ec <pthread_cond_init+0x98>         
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
    return EINVAL;                                                    
                                                                      
  if ( !the_attr->is_initialized )                                    
    return EINVAL;                                                    
   463ea:	7016           	moveq #22,%d0                               
  *cond = the_cond->Object.id;                                        
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return 0;                                                           
}                                                                     
   463ec:	4cee 1c00 fff4 	moveml %fp@(-12),%a2-%a4                    
   463f2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000461f0 <pthread_condattr_destroy>: */ int pthread_condattr_destroy( pthread_condattr_t *attr ) {
   461f0:	4e56 0000      	linkw %fp,#0                                
   461f4:	206e 0008      	moveal %fp@(8),%a0                          
  if ( !attr || attr->is_initialized == false )                       
   461f8:	4a88           	tstl %a0                                    
   461fa:	670a           	beqs 46206 <pthread_condattr_destroy+0x16>  
   461fc:	4a90           	tstl %a0@                                   
   461fe:	6706           	beqs 46206 <pthread_condattr_destroy+0x16>  <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
   46200:	4290           	clrl %a0@                                   
  return 0;                                                           
   46202:	4280           	clrl %d0                                    
   46204:	6002           	bras 46208 <pthread_condattr_destroy+0x18>  
int pthread_condattr_destroy(                                         
  pthread_condattr_t *attr                                            
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
   46206:	7016           	moveq #22,%d0                               
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
   46208:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004c634 <pthread_exit>: } void pthread_exit( void *value_ptr ) {
   4c634:	4e56 0000      	linkw %fp,#0                                
  _POSIX_Thread_Exit( _Thread_Executing, value_ptr );                 
   4c638:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4c63c:	2f39 0005 ee32 	movel 5ee32 <_Per_CPU_Information+0xc>,%sp@-
   4c642:	4eb9 0004 c5c4 	jsr 4c5c4 <_POSIX_Thread_Exit>              
   4c648:	508f           	addql #8,%sp                                <== NOT EXECUTED
}                                                                     
   4c64a:	4e5e           	unlk %fp                                    <== NOT EXECUTED
	...                                                                  
                                                                      

0005af68 <pthread_kill>: int pthread_kill( pthread_t thread, int sig ) {
   5af68:	4e56 fff0      	linkw %fp,#-16                              
   5af6c:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   5af70:	242e 000c      	movel %fp@(12),%d2                          
  POSIX_API_Control  *api;                                            
  Thread_Control     *the_thread;                                     
  Objects_Locations  location;                                        
                                                                      
  if ( !sig )                                                         
   5af74:	670a           	beqs 5af80 <pthread_kill+0x18>              
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
   5af76:	2602           	movel %d2,%d3                               
   5af78:	5383           	subql #1,%d3                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
   5af7a:	701f           	moveq #31,%d0                               
   5af7c:	b083           	cmpl %d3,%d0                                
   5af7e:	640e           	bccs 5af8e <pthread_kill+0x26>              
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   5af80:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5af86:	7216           	moveq #22,%d1                               
   5af88:	2040           	moveal %d0,%a0                              
   5af8a:	2081           	movel %d1,%a0@                              
   5af8c:	607a           	bras 5b008 <pthread_kill+0xa0>              
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
   5af8e:	486e fffc      	pea %fp@(-4)                                
   5af92:	2f2e 0008      	movel %fp@(8),%sp@-                         
   5af96:	4eb9 0004 7ae8 	jsr 47ae8 <_Thread_Get>                     
  switch ( location ) {                                               
   5af9c:	508f           	addql #8,%sp                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
   5af9e:	2440           	moveal %d0,%a2                              
  switch ( location ) {                                               
   5afa0:	4aae fffc      	tstl %fp@(-4)                               
   5afa4:	6656           	bnes 5affc <pthread_kill+0x94>              <== NEVER TAKEN
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
                                                                      
      if ( sig ) {                                                    
                                                                      
        if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) {  
   5afa6:	2202           	movel %d2,%d1                               
   5afa8:	2002           	movel %d2,%d0                               
   5afaa:	e589           	lsll #2,%d1                                 
   5afac:	e988           	lsll #4,%d0                                 
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  If sig == 0 then just validate arguments                    
       */                                                             
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
   5afae:	206a 0102      	moveal %a2@(258),%a0                        
                                                                      
      if ( sig ) {                                                    
                                                                      
        if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) {  
   5afb2:	9081           	subl %d1,%d0                                
   5afb4:	0680 0005 ee6c 	addil #388716,%d0                           
   5afba:	7201           	moveq #1,%d1                                
   5afbc:	2240           	moveal %d0,%a1                              
   5afbe:	b291           	cmpl %a1@,%d1                               
   5afc0:	6730           	beqs 5aff2 <pthread_kill+0x8a>              
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
   5afc2:	7001           	moveq #1,%d0                                
   5afc4:	e7a8           	lsll %d3,%d0                                
          return 0;                                                   
        }                                                             
                                                                      
        /* XXX critical section */                                    
                                                                      
        api->signals_pending |= signo_to_mask( sig );                 
   5afc6:	81a8 00d4      	orl %d0,%a0@(212)                           
                                                                      
        (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
   5afca:	42a7           	clrl %sp@-                                  
   5afcc:	2f02           	movel %d2,%sp@-                             
   5afce:	2f0a           	movel %a2,%sp@-                             
   5afd0:	4eb9 0005 ae6c 	jsr 5ae6c <_POSIX_signals_Unblock_thread>   
                                                                      
        if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
   5afd6:	4fef 000c      	lea %sp@(12),%sp                            
   5afda:	4ab9 0005 ee2e 	tstl 5ee2e <_Per_CPU_Information+0x8>       
   5afe0:	6710           	beqs 5aff2 <pthread_kill+0x8a>              
   5afe2:	b5f9 0005 ee32 	cmpal 5ee32 <_Per_CPU_Information+0xc>,%a2  
   5afe8:	6608           	bnes 5aff2 <pthread_kill+0x8a>              
	  _Thread_Dispatch_necessary = true;                                 
   5afea:	7001           	moveq #1,%d0                                
   5afec:	13c0 0005 ee3e 	moveb %d0,5ee3e <_Per_CPU_Information+0x18> 
      }                                                               
      _Thread_Enable_dispatch();                                      
   5aff2:	4eb9 0004 7ac2 	jsr 47ac2 <_Thread_Enable_dispatch>         
      return 0;                                                       
   5aff8:	4280           	clrl %d0                                    
   5affa:	600e           	bras 5b00a <pthread_kill+0xa2>              
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( ESRCH );                      
   5affc:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         <== NOT EXECUTED
   5b002:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   5b004:	7003           	moveq #3,%d0                                <== NOT EXECUTED
   5b006:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   5b008:	70ff           	moveq #-1,%d0                               
}                                                                     
   5b00a:	4cee 040c fff0 	moveml %fp@(-16),%d2-%d3/%a2                
   5b010:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000475c4 <pthread_mutex_timedlock>: int pthread_mutex_timedlock( pthread_mutex_t *mutex, const struct timespec *abstime ) {
   475c4:	4e56 fffc      	linkw %fp,#-4                               
   475c8:	2f03           	movel %d3,%sp@-                             
   475ca:	2f02           	movel %d2,%sp@-                             
   *                                                                  
   *  If the status is POSIX_ABSOLUTE_TIMEOUT_INVALID,                
   *  POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST, or POSIX_ABSOLUTE_TIMEOUT_IS_NOW,
   *  then we should not wait.                                        
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
   475cc:	486e fffc      	pea %fp@(-4)                                
   475d0:	2f2e 000c      	movel %fp@(12),%sp@-                        
   475d4:	4eb9 0004 76ac 	jsr 476ac <_POSIX_Absolute_timeout_to_ticks>
int	_EXFUN(pthread_mutex_trylock, (pthread_mutex_t *__mutex));        
int	_EXFUN(pthread_mutex_unlock, (pthread_mutex_t *__mutex));         
                                                                      
#if defined(_POSIX_TIMEOUTS)                                          
                                                                      
int	_EXFUN(pthread_mutex_timedlock,                                   
   475da:	508f           	addql #8,%sp                                
   475dc:	2400           	movel %d0,%d2                               
   475de:	7003           	moveq #3,%d0                                
   475e0:	b082           	cmpl %d2,%d0                                
   475e2:	57c3           	seq %d3                                     
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Mutex_Lock_support( mutex, do_wait, ticks );   
   475e4:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   475e8:	4483           	negl %d3                                    
   475ea:	4280           	clrl %d0                                    
   475ec:	1003           	moveb %d3,%d0                               
   475ee:	2f00           	movel %d0,%sp@-                             
   475f0:	2f2e 0008      	movel %fp@(8),%sp@-                         
   475f4:	4eb9 0004 74cc 	jsr 474cc <_POSIX_Mutex_Lock_support>       
   *  This service only gives us the option to block.  We used a polling
   *  attempt to lock if the abstime was not in the future.  If we did
   *  not obtain the mutex, then not look at the status immediately,  
   *  make sure the right reason is returned.                         
   */                                                                 
  if ( !do_wait && (lock_status == EBUSY) ) {                         
   475fa:	4fef 000c      	lea %sp@(12),%sp                            
   475fe:	4a03           	tstb %d3                                    
   47600:	661c           	bnes 4761e <pthread_mutex_timedlock+0x5a>   
   47602:	7210           	moveq #16,%d1                               
   47604:	b280           	cmpl %d0,%d1                                
   47606:	6616           	bnes 4761e <pthread_mutex_timedlock+0x5a>   <== NEVER TAKEN
    if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                   
   47608:	4a82           	tstl %d2                                    
   4760a:	670c           	beqs 47618 <pthread_mutex_timedlock+0x54>   <== NEVER TAKEN
      return EINVAL;                                                  
    if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||               
   4760c:	5382           	subql #1,%d2                                
   4760e:	123c 0001      	moveb #1,%d1                                
   47612:	b282           	cmpl %d2,%d1                                
   47614:	6508           	bcss 4761e <pthread_mutex_timedlock+0x5a>   <== NEVER TAKEN
   47616:	6004           	bras 4761c <pthread_mutex_timedlock+0x58>   
   *  not obtain the mutex, then not look at the status immediately,  
   *  make sure the right reason is returned.                         
   */                                                                 
  if ( !do_wait && (lock_status == EBUSY) ) {                         
    if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                   
      return EINVAL;                                                  
   47618:	7016           	moveq #22,%d0                               <== NOT EXECUTED
   4761a:	6002           	bras 4761e <pthread_mutex_timedlock+0x5a>   <== NOT EXECUTED
    if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||               
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
   4761c:	7074           	moveq #116,%d0                              
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
   4761e:	242e fff4      	movel %fp@(-12),%d2                         
   47622:	262e fff8      	movel %fp@(-8),%d3                          
   47626:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004547c <pthread_mutexattr_gettype>: #if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) int pthread_mutexattr_gettype( const pthread_mutexattr_t *attr, int *type ) {
   4547c:	4e56 0000      	linkw %fp,#0                                
   45480:	206e 0008      	moveal %fp@(8),%a0                          
   45484:	226e 000c      	moveal %fp@(12),%a1                         
  if ( !attr )                                                        
   45488:	4a88           	tstl %a0                                    
   4548a:	6710           	beqs 4549c <pthread_mutexattr_gettype+0x20> 
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
   4548c:	4a90           	tstl %a0@                                   
   4548e:	670c           	beqs 4549c <pthread_mutexattr_gettype+0x20> 
    return EINVAL;                                                    
                                                                      
  if ( !type )                                                        
   45490:	4a89           	tstl %a1                                    
   45492:	6708           	beqs 4549c <pthread_mutexattr_gettype+0x20> <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  *type = attr->type;                                                 
   45494:	22a8 0010      	movel %a0@(16),%a1@                         
  return 0;                                                           
   45498:	4280           	clrl %d0                                    
   4549a:	6002           	bras 4549e <pthread_mutexattr_gettype+0x22> 
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
                                                                      
  if ( !type )                                                        
    return EINVAL;                                                    
   4549c:	7016           	moveq #22,%d0                               
                                                                      
  *type = attr->type;                                                 
  return 0;                                                           
}                                                                     
   4549e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004720c <pthread_mutexattr_setpshared>: int pthread_mutexattr_setpshared( pthread_mutexattr_t *attr, int pshared ) {
   4720c:	4e56 0000      	linkw %fp,#0                                
   47210:	206e 0008      	moveal %fp@(8),%a0                          
   47214:	202e 000c      	movel %fp@(12),%d0                          
  if ( !attr || !attr->is_initialized )                               
   47218:	4a88           	tstl %a0                                    
   4721a:	6712           	beqs 4722e <pthread_mutexattr_setpshared+0x22>
   4721c:	4a90           	tstl %a0@                                   
   4721e:	670e           	beqs 4722e <pthread_mutexattr_setpshared+0x22>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
   47220:	7201           	moveq #1,%d1                                
   47222:	b280           	cmpl %d0,%d1                                
   47224:	6508           	bcss 4722e <pthread_mutexattr_setpshared+0x22><== NEVER TAKEN
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
   47226:	2140 0004      	movel %d0,%a0@(4)                           
      return 0;                                                       
   4722a:	4280           	clrl %d0                                    
   4722c:	6002           	bras 47230 <pthread_mutexattr_setpshared+0x24>
                                                                      
    default:                                                          
      return EINVAL;                                                  
   4722e:	7016           	moveq #22,%d0                               
  }                                                                   
}                                                                     
   47230:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000454d0 <pthread_mutexattr_settype>: #if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) int pthread_mutexattr_settype( pthread_mutexattr_t *attr, int type ) {
   454d0:	4e56 0000      	linkw %fp,#0                                
   454d4:	206e 0008      	moveal %fp@(8),%a0                          
   454d8:	202e 000c      	movel %fp@(12),%d0                          
  if ( !attr || !attr->is_initialized )                               
   454dc:	4a88           	tstl %a0                                    
   454de:	6712           	beqs 454f2 <pthread_mutexattr_settype+0x22> 
   454e0:	4a90           	tstl %a0@                                   
   454e2:	670e           	beqs 454f2 <pthread_mutexattr_settype+0x22> <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  switch ( type ) {                                                   
   454e4:	7203           	moveq #3,%d1                                
   454e6:	b280           	cmpl %d0,%d1                                
   454e8:	6508           	bcss 454f2 <pthread_mutexattr_settype+0x22> 
    case PTHREAD_MUTEX_NORMAL:                                        
    case PTHREAD_MUTEX_RECURSIVE:                                     
    case PTHREAD_MUTEX_ERRORCHECK:                                    
    case PTHREAD_MUTEX_DEFAULT:                                       
      attr->type = type;                                              
   454ea:	2140 0010      	movel %d0,%a0@(16)                          
      return 0;                                                       
   454ee:	4280           	clrl %d0                                    
   454f0:	6002           	bras 454f4 <pthread_mutexattr_settype+0x24> 
                                                                      
    default:                                                          
      return EINVAL;                                                  
   454f2:	7016           	moveq #22,%d0                               
  }                                                                   
}                                                                     
   454f4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045f6c <pthread_once>: int pthread_once( pthread_once_t *once_control, void (*init_routine)(void) ) {
   45f6c:	4e56 fffc      	linkw %fp,#-4                               
   45f70:	2f0b           	movel %a3,%sp@-                             
   45f72:	266e 000c      	moveal %fp@(12),%a3                         
   45f76:	2f0a           	movel %a2,%sp@-                             
   45f78:	246e 0008      	moveal %fp@(8),%a2                          
  if ( !once_control || !init_routine )                               
   45f7c:	4a8a           	tstl %a2                                    
   45f7e:	674a           	beqs 45fca <pthread_once+0x5e>              
   45f80:	4a8b           	tstl %a3                                    
   45f82:	6746           	beqs 45fca <pthread_once+0x5e>              
    return EINVAL;                                                    
                                                                      
  if ( !once_control->init_executed ) {                               
   45f84:	4aaa 0004      	tstl %a2@(4)                                
   45f88:	6644           	bnes 45fce <pthread_once+0x62>              
    rtems_mode saveMode;                                              
    rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); 
   45f8a:	486e fffc      	pea %fp@(-4)                                
   45f8e:	4878 0100      	pea 100 <DBL_MANT_DIG+0xcb>                 
   45f92:	4878 0100      	pea 100 <DBL_MANT_DIG+0xcb>                 
   45f96:	4eb9 0004 6a78 	jsr 46a78 <rtems_task_mode>                 
    if ( !once_control->init_executed ) {                             
   45f9c:	4fef 000c      	lea %sp@(12),%sp                            
   45fa0:	4aaa 0004      	tstl %a2@(4)                                
   45fa4:	660c           	bnes 45fb2 <pthread_once+0x46>              <== NEVER TAKEN
      once_control->is_initialized = true;                            
   45fa6:	7001           	moveq #1,%d0                                
   45fa8:	2480           	movel %d0,%a2@                              
      once_control->init_executed = true;                             
   45faa:	7001           	moveq #1,%d0                                
   45fac:	2540 0004      	movel %d0,%a2@(4)                           
      (*init_routine)();                                              
   45fb0:	4e93           	jsr %a3@                                    
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
   45fb2:	486e fffc      	pea %fp@(-4)                                
   45fb6:	4878 0100      	pea 100 <DBL_MANT_DIG+0xcb>                 
   45fba:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   45fbe:	4eb9 0004 6a78 	jsr 46a78 <rtems_task_mode>                 
   45fc4:	4fef 000c      	lea %sp@(12),%sp                            
   45fc8:	6004           	bras 45fce <pthread_once+0x62>              
  pthread_once_t  *once_control,                                      
  void           (*init_routine)(void)                                
)                                                                     
{                                                                     
  if ( !once_control || !init_routine )                               
    return EINVAL;                                                    
   45fca:	7016           	moveq #22,%d0                               
   45fcc:	6002           	bras 45fd0 <pthread_once+0x64>              
      once_control->init_executed = true;                             
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
  }                                                                   
  return 0;                                                           
   45fce:	4280           	clrl %d0                                    
}                                                                     
   45fd0:	246e fff4      	moveal %fp@(-12),%a2                        
   45fd4:	266e fff8      	moveal %fp@(-8),%a3                         
   45fd8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046748 <pthread_rwlock_init>: int pthread_rwlock_init( pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr ) {
   46748:	4e56 ffe4      	linkw %fp,#-28                              
   4674c:	206e 000c      	moveal %fp@(12),%a0                         
   46750:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
   46754:	246e 0008      	moveal %fp@(8),%a2                          
  const pthread_rwlockattr_t  *the_attr;                              
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !rwlock )                                                      
   46758:	4a8a           	tstl %a2                                    
   4675a:	6700 0084      	beqw 467e0 <pthread_rwlock_init+0x98>       
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
   4675e:	4a88           	tstl %a0                                    
   46760:	6614           	bnes 46776 <pthread_rwlock_init+0x2e>       
    the_attr = attr;                                                  
  } else {                                                            
    (void) pthread_rwlockattr_init( &default_attr );                  
   46762:	240e           	movel %fp,%d2                               
   46764:	0682 ffff fff4 	addil #-12,%d2                              
   4676a:	2f02           	movel %d2,%sp@-                             
   4676c:	4eb9 0004 7064 	jsr 47064 <pthread_rwlockattr_init>         
   46772:	588f           	addql #4,%sp                                
    the_attr = &default_attr;                                         
   46774:	2042           	moveal %d2,%a0                              
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
   46776:	4a90           	tstl %a0@                                   
   46778:	6766           	beqs 467e0 <pthread_rwlock_init+0x98>       <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
   4677a:	4aa8 0004      	tstl %a0@(4)                                
   4677e:	6660           	bnes 467e0 <pthread_rwlock_init+0x98>       <== NEVER TAKEN
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   46780:	2039 0006 161c 	movel 6161c <_Thread_Dispatch_disable_level>,%d0
   46786:	5280           	addql #1,%d0                                
 */                                                                   
RTEMS_INLINE_ROUTINE void _CORE_RWLock_Initialize_attributes(         
  CORE_RWLock_Attributes *the_attributes                              
)                                                                     
{                                                                     
  the_attributes->XXX = 0;                                            
   46788:	42ae fffc      	clrl %fp@(-4)                               
   4678c:	23c0 0006 161c 	movel %d0,6161c <_Thread_Dispatch_disable_level>
 *  the inactive chain of free RWLock control blocks.                 
 */                                                                   
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Allocate( void )
{                                                                     
  return (POSIX_RWLock_Control *)                                     
    _Objects_Allocate( &_POSIX_RWLock_Information );                  
   46792:	4879 0006 1784 	pea 61784 <_POSIX_RWLock_Information>       
   46798:	49f9 0004 9b12 	lea 49b12 <_Thread_Enable_dispatch>,%a4     
   4679e:	4eb9 0004 8b88 	jsr 48b88 <_Objects_Allocate>               
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_rwlock = _POSIX_RWLock_Allocate();                              
                                                                      
  if ( !the_rwlock ) {                                                
   467a4:	588f           	addql #4,%sp                                
   467a6:	2640           	moveal %d0,%a3                              
   467a8:	4a80           	tstl %d0                                    
   467aa:	6606           	bnes 467b2 <pthread_rwlock_init+0x6a>       
    _Thread_Enable_dispatch();                                        
   467ac:	4e94           	jsr %a4@                                    
    return EAGAIN;                                                    
   467ae:	700b           	moveq #11,%d0                               
   467b0:	6030           	bras 467e2 <pthread_rwlock_init+0x9a>       
  }                                                                   
                                                                      
  _CORE_RWLock_Initialize( &the_rwlock->RWLock, &the_attributes );    
   467b2:	486e fffc      	pea %fp@(-4)                                
   467b6:	486b 0010      	pea %a3@(16)                                
   467ba:	4eb9 0004 837c 	jsr 4837c <_CORE_RWLock_Initialize>         
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
   467c0:	202b 0008      	movel %a3@(8),%d0                           
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   467c4:	4281           	clrl %d1                                    
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   467c6:	2079 0006 179c 	moveal 6179c <_POSIX_RWLock_Information+0x18>,%a0
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   467cc:	3200           	movew %d0,%d1                               
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   467ce:	218b 1c00      	movel %a3,%a0@(00000000,%d1:l:4)            
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
   467d2:	42ab 000c      	clrl %a3@(12)                               
    &_POSIX_RWLock_Information,                                       
    &the_rwlock->Object,                                              
    0                                                                 
  );                                                                  
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
   467d6:	2480           	movel %d0,%a2@                              
                                                                      
  _Thread_Enable_dispatch();                                          
   467d8:	4e94           	jsr %a4@                                    
  return 0;                                                           
   467da:	508f           	addql #8,%sp                                
   467dc:	4280           	clrl %d0                                    
   467de:	6002           	bras 467e2 <pthread_rwlock_init+0x9a>       
  switch ( the_attr->process_shared ) {                               
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
   467e0:	7016           	moveq #22,%d0                               
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
   467e2:	4cee 1c04 ffe4 	moveml %fp@(-28),%d2/%a2-%a4                
   467e8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000467ec <pthread_rwlock_rdlock>: */ int pthread_rwlock_rdlock( pthread_rwlock_t *rwlock ) {
   467ec:	4e56 fffc      	linkw %fp,#-4                               
   467f0:	2f0a           	movel %a2,%sp@-                             
   467f2:	246e 0008      	moveal %fp@(8),%a2                          
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
   467f6:	4a8a           	tstl %a2                                    
   467f8:	674e           	beqs 46848 <pthread_rwlock_rdlock+0x5c>     <== NEVER TAKEN
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get (        
  pthread_rwlock_t *RWLock,                                           
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_RWLock_Control *) _Objects_Get(                       
   467fa:	486e fffc      	pea %fp@(-4)                                
   467fe:	2f12           	movel %a2@,%sp@-                            
   46800:	4879 0006 1784 	pea 61784 <_POSIX_RWLock_Information>       
   46806:	4eb9 0004 8fdc 	jsr 48fdc <_Objects_Get>                    
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
   4680c:	4fef 000c      	lea %sp@(12),%sp                            
   46810:	4aae fffc      	tstl %fp@(-4)                               
   46814:	6632           	bnes 46848 <pthread_rwlock_rdlock+0x5c>     
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_reading(                                
   46816:	42a7           	clrl %sp@-                                  
   46818:	2040           	moveal %d0,%a0                              
   4681a:	42a7           	clrl %sp@-                                  
   4681c:	4878 0001      	pea 1 <ADD>                                 
   46820:	2f12           	movel %a2@,%sp@-                            
   46822:	4868 0010      	pea %a0@(16)                                
   46826:	4eb9 0004 83b0 	jsr 483b0 <_CORE_RWLock_Obtain_for_reading> 
	true,                 /* we are willing to wait forever */           
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
   4682c:	4eb9 0004 9b12 	jsr 49b12 <_Thread_Enable_dispatch>         
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
        (CORE_RWLock_Status) _Thread_Executing->Wait.return_code      
   46832:	2079 0006 1a86 	moveal 61a86 <_Per_CPU_Information+0xc>,%a0 
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
   46838:	2f28 0034      	movel %a0@(52),%sp@-                        
   4683c:	4eb9 0004 69ac 	jsr 469ac <_POSIX_RWLock_Translate_core_RWLock_return_code>
   46842:	4fef 0018      	lea %sp@(24),%sp                            
   46846:	6002           	bras 4684a <pthread_rwlock_rdlock+0x5e>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
   46848:	7016           	moveq #22,%d0                               
}                                                                     
   4684a:	246e fff8      	moveal %fp@(-8),%a2                         
   4684e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00046854 <pthread_rwlock_timedrdlock>: int pthread_rwlock_timedrdlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
   46854:	4e56 ffec      	linkw %fp,#-20                              
   46858:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   4685c:	246e 0008      	moveal %fp@(8),%a2                          
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
   46860:	4a8a           	tstl %a2                                    
   46862:	6700 008c      	beqw 468f0 <pthread_rwlock_timedrdlock+0x9c>
   *                                                                  
   *  If the status is POSIX_ABSOLUTE_TIMEOUT_INVALID,                
   *  POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST, or POSIX_ABSOLUTE_TIMEOUT_IS_NOW,
   *  then we should not wait.                                        
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
   46866:	486e fff8      	pea %fp@(-8)                                
   4686a:	2f2e 000c      	movel %fp@(12),%sp@-                        
   4686e:	4eb9 0004 c430 	jsr 4c430 <_POSIX_Absolute_timeout_to_ticks>
   46874:	486e fffc      	pea %fp@(-4)                                
   46878:	2400           	movel %d0,%d2                               
   4687a:	2f12           	movel %a2@,%sp@-                            
   4687c:	4879 0006 1784 	pea 61784 <_POSIX_RWLock_Information>       
   46882:	4eb9 0004 8fdc 	jsr 48fdc <_Objects_Get>                    
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
   46888:	4fef 0014      	lea %sp@(20),%sp                            
   4688c:	4aae fffc      	tstl %fp@(-4)                               
   46890:	665e           	bnes 468f0 <pthread_rwlock_timedrdlock+0x9c>
int	_EXFUN(pthread_rwlock_init,                                       
	(pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr));  
int	_EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock));     
int	_EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock));       
int	_EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock));    
int	_EXFUN(pthread_rwlock_timedrdlock,                                
   46892:	7203           	moveq #3,%d1                                
   46894:	b282           	cmpl %d2,%d1                                
   46896:	57c3           	seq %d3                                     
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_reading(                                
   46898:	42a7           	clrl %sp@-                                  
   4689a:	2f2e fff8      	movel %fp@(-8),%sp@-                        
   4689e:	4483           	negl %d3                                    
   468a0:	4281           	clrl %d1                                    
   468a2:	1203           	moveb %d3,%d1                               
   468a4:	2040           	moveal %d0,%a0                              
   468a6:	2f01           	movel %d1,%sp@-                             
   468a8:	2f12           	movel %a2@,%sp@-                            
   468aa:	4868 0010      	pea %a0@(16)                                
   468ae:	4eb9 0004 83b0 	jsr 483b0 <_CORE_RWLock_Obtain_for_reading> 
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
   468b4:	4eb9 0004 9b12 	jsr 49b12 <_Thread_Enable_dispatch>         
      if ( !do_wait ) {                                               
   468ba:	4fef 0014      	lea %sp@(20),%sp                            
   468be:	4a03           	tstb %d3                                    
   468c0:	661a           	bnes 468dc <pthread_rwlock_timedrdlock+0x88>
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
   468c2:	2079 0006 1a86 	moveal 61a86 <_Per_CPU_Information+0xc>,%a0 
   468c8:	7002           	moveq #2,%d0                                
   468ca:	b0a8 0034      	cmpl %a0@(52),%d0                           
   468ce:	660c           	bnes 468dc <pthread_rwlock_timedrdlock+0x88>
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
   468d0:	4a82           	tstl %d2                                    
   468d2:	671c           	beqs 468f0 <pthread_rwlock_timedrdlock+0x9c><== NEVER TAKEN
	    return EINVAL;                                                   
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                
   468d4:	5382           	subql #1,%d2                                
   468d6:	7201           	moveq #1,%d1                                
   468d8:	b282           	cmpl %d2,%d1                                
   468da:	6418           	bccs 468f4 <pthread_rwlock_timedrdlock+0xa0><== ALWAYS TAKEN
	    return ETIMEDOUT;                                                
        }                                                             
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
        (CORE_RWLock_Status) _Thread_Executing->Wait.return_code      
   468dc:	2079 0006 1a86 	moveal 61a86 <_Per_CPU_Information+0xc>,%a0 
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
        }                                                             
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
   468e2:	2f28 0034      	movel %a0@(52),%sp@-                        
   468e6:	4eb9 0004 69ac 	jsr 469ac <_POSIX_RWLock_Translate_core_RWLock_return_code>
   468ec:	588f           	addql #4,%sp                                
   468ee:	6006           	bras 468f6 <pthread_rwlock_timedrdlock+0xa2>
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
	    return EINVAL;                                                   
   468f0:	7016           	moveq #22,%d0                               
   468f2:	6002           	bras 468f6 <pthread_rwlock_timedrdlock+0xa2>
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
   468f4:	7074           	moveq #116,%d0                              
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
   468f6:	4cee 040c ffec 	moveml %fp@(-20),%d2-%d3/%a2                
   468fc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046900 <pthread_rwlock_timedwrlock>: int pthread_rwlock_timedwrlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
   46900:	4e56 ffec      	linkw %fp,#-20                              
   46904:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   46908:	246e 0008      	moveal %fp@(8),%a2                          
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
   4690c:	4a8a           	tstl %a2                                    
   4690e:	6700 008c      	beqw 4699c <pthread_rwlock_timedwrlock+0x9c>
   *                                                                  
   *  If the status is POSIX_ABSOLUTE_TIMEOUT_INVALID,                
   *  POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST, or POSIX_ABSOLUTE_TIMEOUT_IS_NOW,
   *  then we should not wait.                                        
   */                                                                 
  status = _POSIX_Absolute_timeout_to_ticks( abstime, &ticks );       
   46912:	486e fff8      	pea %fp@(-8)                                
   46916:	2f2e 000c      	movel %fp@(12),%sp@-                        
   4691a:	4eb9 0004 c430 	jsr 4c430 <_POSIX_Absolute_timeout_to_ticks>
   46920:	486e fffc      	pea %fp@(-4)                                
   46924:	2400           	movel %d0,%d2                               
   46926:	2f12           	movel %a2@,%sp@-                            
   46928:	4879 0006 1784 	pea 61784 <_POSIX_RWLock_Information>       
   4692e:	4eb9 0004 8fdc 	jsr 48fdc <_Objects_Get>                    
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
   46934:	4fef 0014      	lea %sp@(20),%sp                            
   46938:	4aae fffc      	tstl %fp@(-4)                               
   4693c:	665e           	bnes 4699c <pthread_rwlock_timedwrlock+0x9c>
        (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime));
int	_EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock));       
int	_EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock));       
int	_EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock));    
int	_EXFUN(pthread_rwlock_timedwrlock,                                
   4693e:	7203           	moveq #3,%d1                                
   46940:	b282           	cmpl %d2,%d1                                
   46942:	57c3           	seq %d3                                     
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_writing(                                
   46944:	42a7           	clrl %sp@-                                  
   46946:	2f2e fff8      	movel %fp@(-8),%sp@-                        
   4694a:	4483           	negl %d3                                    
   4694c:	4281           	clrl %d1                                    
   4694e:	1203           	moveb %d3,%d1                               
   46950:	2040           	moveal %d0,%a0                              
   46952:	2f01           	movel %d1,%sp@-                             
   46954:	2f12           	movel %a2@,%sp@-                            
   46956:	4868 0010      	pea %a0@(16)                                
   4695a:	4eb9 0004 8460 	jsr 48460 <_CORE_RWLock_Obtain_for_writing> 
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
   46960:	4eb9 0004 9b12 	jsr 49b12 <_Thread_Enable_dispatch>         
      if ( !do_wait &&                                                
   46966:	4fef 0014      	lea %sp@(20),%sp                            
   4696a:	4a03           	tstb %d3                                    
   4696c:	661a           	bnes 46988 <pthread_rwlock_timedwrlock+0x88>
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
   4696e:	2079 0006 1a86 	moveal 61a86 <_Per_CPU_Information+0xc>,%a0 
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
   46974:	7002           	moveq #2,%d0                                
   46976:	b0a8 0034      	cmpl %a0@(52),%d0                           
   4697a:	660c           	bnes 46988 <pthread_rwlock_timedwrlock+0x88>
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
   4697c:	4a82           	tstl %d2                                    
   4697e:	671c           	beqs 4699c <pthread_rwlock_timedwrlock+0x9c><== NEVER TAKEN
	  return EINVAL;                                                     
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
   46980:	5382           	subql #1,%d2                                
   46982:	7201           	moveq #1,%d1                                
   46984:	b282           	cmpl %d2,%d1                                
   46986:	6418           	bccs 469a0 <pthread_rwlock_timedwrlock+0xa0><== ALWAYS TAKEN
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
        (CORE_RWLock_Status) _Thread_Executing->Wait.return_code      
   46988:	2079 0006 1a86 	moveal 61a86 <_Per_CPU_Information+0xc>,%a0 
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
   4698e:	2f28 0034      	movel %a0@(52),%sp@-                        
   46992:	4eb9 0004 69ac 	jsr 469ac <_POSIX_RWLock_Translate_core_RWLock_return_code>
   46998:	588f           	addql #4,%sp                                
   4699a:	6006           	bras 469a2 <pthread_rwlock_timedwrlock+0xa2>
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
	  return EINVAL;                                                     
   4699c:	7016           	moveq #22,%d0                               
   4699e:	6002           	bras 469a2 <pthread_rwlock_timedwrlock+0xa2>
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
   469a0:	7074           	moveq #116,%d0                              
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
   469a2:	4cee 040c ffec 	moveml %fp@(-20),%d2-%d3/%a2                
   469a8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047084 <pthread_rwlockattr_setpshared>: int pthread_rwlockattr_setpshared( pthread_rwlockattr_t *attr, int pshared ) {
   47084:	4e56 0000      	linkw %fp,#0                                
   47088:	206e 0008      	moveal %fp@(8),%a0                          
   4708c:	202e 000c      	movel %fp@(12),%d0                          
  if ( !attr )                                                        
   47090:	4a88           	tstl %a0                                    
   47092:	6712           	beqs 470a6 <pthread_rwlockattr_setpshared+0x22>
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
   47094:	4a90           	tstl %a0@                                   
   47096:	670e           	beqs 470a6 <pthread_rwlockattr_setpshared+0x22>
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
   47098:	7201           	moveq #1,%d1                                
   4709a:	b280           	cmpl %d0,%d1                                
   4709c:	6508           	bcss 470a6 <pthread_rwlockattr_setpshared+0x22><== NEVER TAKEN
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
   4709e:	2140 0004      	movel %d0,%a0@(4)                           
      return 0;                                                       
   470a2:	4280           	clrl %d0                                    
   470a4:	6002           	bras 470a8 <pthread_rwlockattr_setpshared+0x24>
                                                                      
    default:                                                          
      return EINVAL;                                                  
   470a6:	7016           	moveq #22,%d0                               
  }                                                                   
}                                                                     
   470a8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047dc8 <pthread_setschedparam>: int pthread_setschedparam( pthread_t thread, int policy, struct sched_param *param ) {
   47dc8:	4e56 ffe0      	linkw %fp,#-32                              
   47dcc:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   47dd0:	242e 000c      	movel %fp@(12),%d2                          
   47dd4:	282e 0010      	movel %fp@(16),%d4                          
  int                                  rc;                            
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
   47dd8:	6700 00d8      	beqw 47eb2 <pthread_setschedparam+0xea>     
    return EINVAL;                                                    
                                                                      
  rc = _POSIX_Thread_Translate_sched_param(                           
   47ddc:	486e fff8      	pea %fp@(-8)                                
   47de0:	486e fffc      	pea %fp@(-4)                                
   47de4:	2f04           	movel %d4,%sp@-                             
   47de6:	2f02           	movel %d2,%sp@-                             
   47de8:	4eb9 0004 d2a4 	jsr 4d2a4 <_POSIX_Thread_Translate_sched_param>
    policy,                                                           
    param,                                                            
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
   47dee:	4fef 0010      	lea %sp@(16),%sp                            
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
    return EINVAL;                                                    
                                                                      
  rc = _POSIX_Thread_Translate_sched_param(                           
   47df2:	2600           	movel %d0,%d3                               
    policy,                                                           
    param,                                                            
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
   47df4:	6600 00c2      	bnew 47eb8 <pthread_setschedparam+0xf0>     
    return rc;                                                        
                                                                      
  /*                                                                  
   *  Actually change the scheduling policy and parameters            
   */                                                                 
  the_thread = _Thread_Get( thread, &location );                      
   47df8:	486e fff4      	pea %fp@(-12)                               
   47dfc:	2f2e 0008      	movel %fp@(8),%sp@-                         
   47e00:	4eb9 0004 a6e8 	jsr 4a6e8 <_Thread_Get>                     
  switch ( location ) {                                               
   47e06:	508f           	addql #8,%sp                                
    return rc;                                                        
                                                                      
  /*                                                                  
   *  Actually change the scheduling policy and parameters            
   */                                                                 
  the_thread = _Thread_Get( thread, &location );                      
   47e08:	2640           	moveal %d0,%a3                              
  switch ( location ) {                                               
   47e0a:	4aae fff4      	tstl %fp@(-12)                              
   47e0e:	6600 00a6      	bnew 47eb6 <pthread_setschedparam+0xee>     
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
   47e12:	246b 0102      	moveal %a3@(258),%a2                        
                                                                      
      if ( api->schedpolicy == SCHED_SPORADIC )                       
   47e16:	7004           	moveq #4,%d0                                
   47e18:	b0aa 0084      	cmpl %a2@(132),%d0                          
   47e1c:	660c           	bnes 47e2a <pthread_setschedparam+0x62>     
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
   47e1e:	486a 00a8      	pea %a2@(168)                               
   47e22:	4eb9 0004 b5ec 	jsr 4b5ec <_Watchdog_Remove>                
   47e28:	588f           	addql #4,%sp                                
                                                                      
      api->schedpolicy = policy;                                      
   47e2a:	2542 0084      	movel %d2,%a2@(132)                         
      api->schedparam  = *param;                                      
   47e2e:	4878 001c      	pea 1c <OPER2+0x8>                          
   47e32:	2f04           	movel %d4,%sp@-                             
   47e34:	486a 0088      	pea %a2@(136)                               
   47e38:	4eb9 0004 fe38 	jsr 4fe38 <memcpy>                          
      the_thread->budget_algorithm = budget_algorithm;                
   47e3e:	276e fffc 007a 	movel %fp@(-4),%a3@(122)                    
      the_thread->budget_callout   = budget_callout;                  
                                                                      
      switch ( api->schedpolicy ) {                                   
   47e44:	4fef 000c      	lea %sp@(12),%sp                            
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
                                                                      
      api->schedpolicy = policy;                                      
      api->schedparam  = *param;                                      
      the_thread->budget_algorithm = budget_algorithm;                
      the_thread->budget_callout   = budget_callout;                  
   47e48:	276e fff8 007e 	movel %fp@(-8),%a3@(126)                    
                                                                      
      switch ( api->schedpolicy ) {                                   
   47e4e:	4a82           	tstl %d2                                    
   47e50:	6d58           	blts 47eaa <pthread_setschedparam+0xe2>     <== NEVER TAKEN
   47e52:	7002           	moveq #2,%d0                                
   47e54:	b082           	cmpl %d2,%d0                                
   47e56:	6c0a           	bges 47e62 <pthread_setschedparam+0x9a>     
   47e58:	103c 0004      	moveb #4,%d0                                
   47e5c:	b082           	cmpl %d2,%d0                                
   47e5e:	664a           	bnes 47eaa <pthread_setschedparam+0xe2>     <== NEVER TAKEN
   47e60:	602a           	bras 47e8c <pthread_setschedparam+0xc4>     
   47e62:	4280           	clrl %d0                                    
   47e64:	1039 0006 1bf6 	moveb 61bf6 <rtems_maximum_priority>,%d0    
        case SCHED_OTHER:                                             
        case SCHED_FIFO:                                              
        case SCHED_RR:                                                
          the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;  
   47e6a:	41f9 0006 34d0 	lea 634d0 <_Thread_Ticks_per_timeslice>,%a0 
   47e70:	90aa 0088      	subl %a2@(136),%d0                          
   47e74:	2750 0076      	movel %a0@,%a3@(118)                        
                                                                      
          the_thread->real_priority =                                 
   47e78:	2740 0018      	movel %d0,%a3@(24)                          
            _POSIX_Priority_To_core( api->schedparam.sched_priority );
                                                                      
          _Thread_Change_priority(                                    
   47e7c:	4878 0001      	pea 1 <ADD>                                 
   47e80:	2f00           	movel %d0,%sp@-                             
   47e82:	2f0b           	movel %a3,%sp@-                             
   47e84:	4eb9 0004 a2a4 	jsr 4a2a4 <_Thread_Change_priority>         
   47e8a:	601a           	bras 47ea6 <pthread_setschedparam+0xde>     
             true                                                     
          );                                                          
          break;                                                      
                                                                      
        case SCHED_SPORADIC:                                          
          api->ss_high_priority = api->schedparam.sched_priority;     
   47e8c:	256a 0088 00a4 	movel %a2@(136),%a2@(164)                   
          _Watchdog_Remove( &api->Sporadic_timer );                   
   47e92:	486a 00a8      	pea %a2@(168)                               
   47e96:	4eb9 0004 b5ec 	jsr 4b5ec <_Watchdog_Remove>                
          _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread );        
   47e9c:	2f0b           	movel %a3,%sp@-                             
   47e9e:	42a7           	clrl %sp@-                                  
   47ea0:	4eb9 0004 7ca4 	jsr 47ca4 <_POSIX_Threads_Sporadic_budget_TSR>
          break;                                                      
   47ea6:	4fef 000c      	lea %sp@(12),%sp                            
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
   47eaa:	4eb9 0004 a6c2 	jsr 4a6c2 <_Thread_Enable_dispatch>         
      return 0;                                                       
   47eb0:	6006           	bras 47eb8 <pthread_setschedparam+0xf0>     
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
    return EINVAL;                                                    
   47eb2:	7616           	moveq #22,%d3                               
   47eb4:	6002           	bras 47eb8 <pthread_setschedparam+0xf0>     
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
   47eb6:	7603           	moveq #3,%d3                                
}                                                                     
   47eb8:	2003           	movel %d3,%d0                               
   47eba:	4cee 0c1c ffe0 	moveml %fp@(-32),%d2-%d4/%a2-%a3            
   47ec0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045d54 <pthread_testcancel>: * * 18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ void pthread_testcancel( void ) {
   45d54:	4e56 0000      	linkw %fp,#0                                
   45d58:	2f02           	movel %d2,%sp@-                             
   *  Don't even think about deleting a resource from an ISR.         
   *  Besides this request is supposed to be for _Thread_Executing    
   *  and the ISR context is not a thread.                            
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
   45d5a:	4ab9 0005 fd58 	tstl 5fd58 <_Per_CPU_Information+0x8>       
   45d60:	6646           	bnes 45da8 <pthread_testcancel+0x54>        <== NEVER TAKEN
    return;                                                           
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
   45d62:	2079 0005 fd5c 	moveal 5fd5c <_Per_CPU_Information+0xc>,%a0 
   45d68:	2039 0005 f8f2 	movel 5f8f2 <_Thread_Dispatch_disable_level>,%d0
   45d6e:	5280           	addql #1,%d0                                
   45d70:	2068 0102      	moveal %a0@(258),%a0                        
   45d74:	23c0 0005 f8f2 	movel %d0,5f8f2 <_Thread_Dispatch_disable_level>
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
   45d7a:	4aa8 00d8      	tstl %a0@(216)                              
   45d7e:	660a           	bnes 45d8a <pthread_testcancel+0x36>        <== NEVER TAKEN
                                                                      
/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */          
                                                                      
int	_EXFUN(pthread_setcancelstate, (int __state, int *__oldstate));   
int	_EXFUN(pthread_setcanceltype, (int __type, int *__oldtype));      
void 	_EXFUN(pthread_testcancel, (void));                             
   45d80:	4aa8 00e0      	tstl %a0@(224)                              
   45d84:	56c2           	sne %d2                                     
   45d86:	4482           	negl %d2                                    
   45d88:	6002           	bras 45d8c <pthread_testcancel+0x38>        
 */                                                                   
                                                                      
void pthread_testcancel( void )                                       
{                                                                     
  POSIX_API_Control *thread_support;                                  
  bool               cancel = false;                                  
   45d8a:	4202           	clrb %d2                                    <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
   45d8c:	4eb9 0004 850e 	jsr 4850e <_Thread_Enable_dispatch>         
                                                                      
  if ( cancel )                                                       
   45d92:	4a02           	tstb %d2                                    
   45d94:	6712           	beqs 45da8 <pthread_testcancel+0x54>        
    _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED );        
   45d96:	4878 ffff      	pea ffffffff <LESS>                         
   45d9a:	2f39 0005 fd5c 	movel 5fd5c <_Per_CPU_Information+0xc>,%sp@-
   45da0:	4eb9 0004 b1c8 	jsr 4b1c8 <_POSIX_Thread_Exit>              
   45da6:	508f           	addql #8,%sp                                <== NOT EXECUTED
}                                                                     
   45da8:	242e fffc      	movel %fp@(-4),%d2                          
   45dac:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005a99c <read>: ssize_t read( int fd, void *buffer, size_t count ) {
   5a99c:	4e56 fff4      	linkw %fp,#-12                              
   5a9a0:	202e 0008      	movel %fp@(8),%d0                           
   5a9a4:	222e 000c      	movel %fp@(12),%d1                          
   5a9a8:	206e 0010      	moveal %fp@(16),%a0                         
   5a9ac:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
  ssize_t      rc;                                                    
  rtems_libio_t *iop;                                                 
                                                                      
  rtems_libio_check_fd( fd );                                         
   5a9b0:	b0b9 0005 cff4 	cmpl 5cff4 <rtems_libio_number_iops>,%d0    
   5a9b6:	641a           	bccs 5a9d2 <read+0x36>                      <== NEVER TAKEN
  iop = rtems_libio_iop( fd );                                        
   5a9b8:	2400           	movel %d0,%d2                               
   5a9ba:	ed88           	lsll #6,%d0                                 
   5a9bc:	e78a           	lsll #3,%d2                                 
   5a9be:	2479 0005 e874 	moveal 5e874 <rtems_libio_iops>,%a2         
   5a9c4:	9082           	subl %d2,%d0                                
   5a9c6:	d5c0           	addal %d0,%a2                               
  rtems_libio_check_is_open( iop );                                   
   5a9c8:	202a 0014      	movel %a2@(20),%d0                          
   5a9cc:	0800 0008      	btst #8,%d0                                 
   5a9d0:	660e           	bnes 5a9e0 <read+0x44>                      
   5a9d2:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5a9d8:	7209           	moveq #9,%d1                                
   5a9da:	2040           	moveal %d0,%a0                              
   5a9dc:	2081           	movel %d1,%a0@                              
   5a9de:	601a           	bras 5a9fa <read+0x5e>                      
  rtems_libio_check_buffer( buffer );                                 
   5a9e0:	4a81           	tstl %d1                                    
   5a9e2:	670a           	beqs 5a9ee <read+0x52>                      <== NEVER TAKEN
  rtems_libio_check_count( count );                                   
   5a9e4:	4a88           	tstl %a0                                    
   5a9e6:	6744           	beqs 5aa2c <read+0x90>                      
  rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ );             
   5a9e8:	0800 0001      	btst #1,%d0                                 
   5a9ec:	6610           	bnes 5a9fe <read+0x62>                      
   5a9ee:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5a9f4:	2040           	moveal %d0,%a0                              
   5a9f6:	7016           	moveq #22,%d0                               
   5a9f8:	2080           	movel %d0,%a0@                              
   5a9fa:	70ff           	moveq #-1,%d0                               
   5a9fc:	6030           	bras 5aa2e <read+0x92>                      
                                                                      
  /*                                                                  
   *  Now process the read().                                         
   */                                                                 
  rc = (*iop->pathinfo.handlers->read_h)( iop, buffer, count );       
   5a9fe:	226a 0020      	moveal %a2@(32),%a1                         
   5aa02:	2f08           	movel %a0,%sp@-                             
   5aa04:	2f01           	movel %d1,%sp@-                             
   5aa06:	2f0a           	movel %a2,%sp@-                             
   5aa08:	2069 0008      	moveal %a1@(8),%a0                          
   5aa0c:	4e90           	jsr %a0@                                    
                                                                      
  if ( rc > 0 )                                                       
   5aa0e:	4fef 000c      	lea %sp@(12),%sp                            
   5aa12:	4a80           	tstl %d0                                    
   5aa14:	6f18           	bles 5aa2e <read+0x92>                      
    iop->offset += rc;                                                
   5aa16:	2400           	movel %d0,%d2                               
   5aa18:	5bc1           	smi %d1                                     
   5aa1a:	49c1           	extbl %d1                                   
   5aa1c:	d5aa 0010      	addl %d2,%a2@(16)                           
   5aa20:	262a 000c      	movel %a2@(12),%d3                          
   5aa24:	d781           	addxl %d1,%d3                               
   5aa26:	2543 000c      	movel %d3,%a2@(12)                          
   5aa2a:	6002           	bras 5aa2e <read+0x92>                      
                                                                      
  rtems_libio_check_fd( fd );                                         
  iop = rtems_libio_iop( fd );                                        
  rtems_libio_check_is_open( iop );                                   
  rtems_libio_check_buffer( buffer );                                 
  rtems_libio_check_count( count );                                   
   5aa2c:	4280           	clrl %d0                                    
                                                                      
  if ( rc > 0 )                                                       
    iop->offset += rc;                                                
                                                                      
  return rc;                                                          
}                                                                     
   5aa2e:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   5aa34:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045700 <readlink>: ssize_t readlink( const char *pathname, char *buf, size_t bufsize ) {
   45700:	4e56 ffe0      	linkw %fp,#-32                              
   45704:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   45708:	246e 0008      	moveal %fp@(8),%a2                          
   4570c:	262e 000c      	movel %fp@(12),%d3                          
  rtems_filesystem_location_info_t  loc;                              
  int                               result;                           
                                                                      
  if (!buf)                                                           
   45710:	660e           	bnes 45720 <readlink+0x20>                  
    rtems_set_errno_and_return_minus_one( EFAULT );                   
   45712:	4eb9 0004 f354 	jsr 4f354 <__errno>                         
   45718:	720e           	moveq #14,%d1                               
   4571a:	2040           	moveal %d0,%a0                              
   4571c:	2081           	movel %d1,%a0@                              
   4571e:	6076           	bras 45796 <readlink+0x96>                  
                                                                      
  result = rtems_filesystem_evaluate_path( pathname, strlen( pathname ),
   45720:	2f0a           	movel %a2,%sp@-                             
   45722:	240e           	movel %fp,%d2                               
   45724:	0682 ffff ffec 	addil #-20,%d2                              
   4572a:	4eb9 0005 0e94 	jsr 50e94 <strlen>                          
   45730:	4297           	clrl %sp@                                   
   45732:	2f02           	movel %d2,%sp@-                             
   45734:	42a7           	clrl %sp@-                                  
   45736:	2f00           	movel %d0,%sp@-                             
   45738:	2f0a           	movel %a2,%sp@-                             
   4573a:	4eb9 0004 46bc 	jsr 446bc <rtems_filesystem_evaluate_path>  
                                           0, &loc, false );          
  if ( result != 0 )                                                  
   45740:	4fef 0014      	lea %sp@(20),%sp                            
   45744:	4a80           	tstl %d0                                    
   45746:	664e           	bnes 45796 <readlink+0x96>                  <== NEVER TAKEN
     return -1;                                                       
                                                                      
  if (  (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_SYM_LINK ){
   45748:	206e fff8      	moveal %fp@(-8),%a0                         
   4574c:	45f9 0004 4788 	lea 44788 <rtems_filesystem_freenode>,%a2   
   45752:	2f02           	movel %d2,%sp@-                             
   45754:	2068 0010      	moveal %a0@(16),%a0                         
   45758:	4e90           	jsr %a0@                                    
   4575a:	588f           	addql #4,%sp                                
   4575c:	7204           	moveq #4,%d1                                
   4575e:	b280           	cmpl %d0,%d1                                
   45760:	6714           	beqs 45776 <readlink+0x76>                  
    rtems_filesystem_freenode( &loc );                                
   45762:	2f02           	movel %d2,%sp@-                             
   45764:	4e92           	jsr %a2@                                    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   45766:	4eb9 0004 f354 	jsr 4f354 <__errno>                         
   4576c:	588f           	addql #4,%sp                                
   4576e:	2040           	moveal %d0,%a0                              
   45770:	7016           	moveq #22,%d0                               
   45772:	2080           	movel %d0,%a0@                              
   45774:	6020           	bras 45796 <readlink+0x96>                  
  }                                                                   
                                                                      
  result =  (*loc.ops->readlink_h)( &loc, buf, bufsize );             
   45776:	2f2e 0010      	movel %fp@(16),%sp@-                        
   4577a:	206e fff8      	moveal %fp@(-8),%a0                         
   4577e:	2f03           	movel %d3,%sp@-                             
   45780:	2f02           	movel %d2,%sp@-                             
   45782:	2068 003c      	moveal %a0@(60),%a0                         
   45786:	4e90           	jsr %a0@                                    
   45788:	2600           	movel %d0,%d3                               
                                                                      
  rtems_filesystem_freenode( &loc );                                  
   4578a:	2f02           	movel %d2,%sp@-                             
   4578c:	4e92           	jsr %a2@                                    
                                                                      
  return result;                                                      
   4578e:	4fef 0010      	lea %sp@(16),%sp                            
   45792:	2003           	movel %d3,%d0                               
   45794:	6002           	bras 45798 <readlink+0x98>                  
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  result = rtems_filesystem_evaluate_path( pathname, strlen( pathname ),
                                           0, &loc, false );          
  if ( result != 0 )                                                  
     return -1;                                                       
   45796:	70ff           	moveq #-1,%d0                               
  result =  (*loc.ops->readlink_h)( &loc, buf, bufsize );             
                                                                      
  rtems_filesystem_freenode( &loc );                                  
                                                                      
  return result;                                                      
}                                                                     
   45798:	4cee 040c ffe0 	moveml %fp@(-32),%d2-%d3/%a2                
   4579e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000444f8 <readv>: ssize_t readv( int fd, const struct iovec *iov, int iovcnt ) {
   444f8:	4e56 ffe4      	linkw %fp,#-28                              
   444fc:	202e 0008      	movel %fp@(8),%d0                           
   44500:	48d7 0c7c      	moveml %d2-%d6/%a2-%a3,%sp@                 
   44504:	246e 000c      	moveal %fp@(12),%a2                         
   44508:	262e 0010      	movel %fp@(16),%d3                          
  int            v;                                                   
  int            bytes;                                               
  rtems_libio_t *iop;                                                 
  bool           all_zeros;                                           
                                                                      
  rtems_libio_check_fd( fd );                                         
   4450c:	b0b9 0005 da64 	cmpl 5da64 <rtems_libio_number_iops>,%d0    
   44512:	641a           	bccs 4452e <readv+0x36>                     
  iop = rtems_libio_iop( fd );                                        
   44514:	2200           	movel %d0,%d1                               
   44516:	ed88           	lsll #6,%d0                                 
   44518:	e789           	lsll #3,%d1                                 
   4451a:	2679 0005 f2e4 	moveal 5f2e4 <rtems_libio_iops>,%a3         
   44520:	9081           	subl %d1,%d0                                
   44522:	d7c0           	addal %d0,%a3                               
  rtems_libio_check_is_open( iop );                                   
   44524:	202b 0014      	movel %a3@(20),%d0                          
   44528:	0800 0008      	btst #8,%d0                                 
   4452c:	6610           	bnes 4453e <readv+0x46>                     
   4452e:	4eb9 0004 d74c 	jsr 4d74c <__errno>                         
   44534:	7209           	moveq #9,%d1                                
   44536:	2040           	moveal %d0,%a0                              
   44538:	2081           	movel %d1,%a0@                              
   4453a:	6000 009e      	braw 445da <readv+0xe2>                     
  rtems_libio_check_permissions( iop, LIBIO_FLAGS_READ );             
   4453e:	0800 0001      	btst #1,%d0                                 
   44542:	672c           	beqs 44570 <readv+0x78>                     <== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Argument validation on IO vector                                
   */                                                                 
  if ( !iov )                                                         
   44544:	4a8a           	tstl %a2                                    
   44546:	6728           	beqs 44570 <readv+0x78>                     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt <= 0 )                                                  
   44548:	4a83           	tstl %d3                                    
   4454a:	6f24           	bles 44570 <readv+0x78>                     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt > IOV_MAX )                                             
   4454c:	0c83 0000 0400 	cmpil #1024,%d3                             
   44552:	6e1c           	bgts 44570 <readv+0x78>                     <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   44554:	204a           	moveal %a2,%a0                              
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt <= 0 )                                                  
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt > IOV_MAX )                                             
   44556:	93c9           	subal %a1,%a1                               
   44558:	4281           	clrl %d1                                    
   4455a:	7001           	moveq #1,%d0                                
   4455c:	6002           	bras 44560 <readv+0x68>                     
    if ( iov[v].iov_base == 0 )                                       
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    /* check for wrap */                                              
    old    = total;                                                   
    total += iov[v].iov_len;                                          
   4455e:	2204           	movel %d4,%d1                               
                                                                      
    /*                                                                
     *  iov[v].iov_len cannot be less than 0 because size_t is unsigned.
     *  So we only check for zero.                                    
     */                                                               
    if ( iov[v].iov_base == 0 )                                       
   44560:	4a90           	tstl %a0@                                   
   44562:	670c           	beqs 44570 <readv+0x78>                     
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    /* check for wrap */                                              
    old    = total;                                                   
    total += iov[v].iov_len;                                          
   44564:	2428 0004      	movel %a0@(4),%d2                           
   44568:	2801           	movel %d1,%d4                               
   4456a:	d882           	addl %d2,%d4                                
    if ( total < old )                                                
   4456c:	b284           	cmpl %d4,%d1                                
   4456e:	6f0e           	bles 4457e <readv+0x86>                     
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   44570:	4eb9 0004 d74c 	jsr 4d74c <__errno>                         
   44576:	2040           	moveal %d0,%a0                              
   44578:	7016           	moveq #22,%d0                               
   4457a:	2080           	movel %d0,%a0@                              
   4457c:	605c           	bras 445da <readv+0xe2>                     
                                                                      
    if ( iov[v].iov_len )                                             
      all_zeros = false;                                              
   4457e:	4a82           	tstl %d2                                    
   44580:	57c1           	seq %d1                                     
   *  are obvious errors in the iovec.  So this extra loop ensures    
   *  that we do not do anything if there is an argument error.       
   */                                                                 
                                                                      
  all_zeros = true;                                                   
  for ( total=0, v=0 ; v < iovcnt ; v++ ) {                           
   44582:	5289           	addql #1,%a1                                
   44584:	5088           	addql #8,%a0                                
    total += iov[v].iov_len;                                          
    if ( total < old )                                                
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    if ( iov[v].iov_len )                                             
      all_zeros = false;                                              
   44586:	c081           	andl %d1,%d0                                
   *  are obvious errors in the iovec.  So this extra loop ensures    
   *  that we do not do anything if there is an argument error.       
   */                                                                 
                                                                      
  all_zeros = true;                                                   
  for ( total=0, v=0 ; v < iovcnt ; v++ ) {                           
   44588:	b689           	cmpl %a1,%d3                                
   4458a:	6ed2           	bgts 4455e <readv+0x66>                     
  /*                                                                  
   *  A readv with all zeros logically has no effect.  Even though    
   *  OpenGroup didn't address this case as they did with writev(),   
   *  we will handle it the same way for symmetry.                    
   */                                                                 
  if ( all_zeros == true ) {                                          
   4458c:	4a00           	tstb %d0                                    
   4458e:	6646           	bnes 445d6 <readv+0xde>                     
#include <sys/uio.h>                                                  
                                                                      
#include <rtems/libio_.h>                                             
#include <rtems/seterr.h>                                             
                                                                      
ssize_t readv(                                                        
   44590:	588a           	addql #4,%a2                                
   44592:	4284           	clrl %d4                                    
   44594:	4282           	clrl %d2                                    
                                                                      
  /*                                                                  
   *  Now process the readv().                                        
   */                                                                 
  for ( total=0, v=0 ; v < iovcnt ; v++ ) {                           
    bytes = (*iop->pathinfo.handlers->read_h)(                        
   44596:	206b 0020      	moveal %a3@(32),%a0                         
   4459a:	2f12           	movel %a2@,%sp@-                            
   4459c:	2f2a fffc      	movel %a2@(-4),%sp@-                        
   445a0:	2f0b           	movel %a3,%sp@-                             
   445a2:	2068 0008      	moveal %a0@(8),%a0                          
   445a6:	4e90           	jsr %a0@                                    
      iop,                                                            
      iov[v].iov_base,                                                
      iov[v].iov_len                                                  
    );                                                                
                                                                      
    if ( bytes < 0 )                                                  
   445a8:	4fef 000c      	lea %sp@(12),%sp                            
   445ac:	4a80           	tstl %d0                                    
   445ae:	6d2a           	blts 445da <readv+0xe2>                     <== NEVER TAKEN
      return -1;                                                      
                                                                      
    if ( bytes > 0 ) {                                                
   445b0:	6716           	beqs 445c8 <readv+0xd0>                     <== NEVER TAKEN
      iop->offset += bytes;                                           
      total       += bytes;                                           
   445b2:	d480           	addl %d0,%d2                                
                                                                      
    if ( bytes < 0 )                                                  
      return -1;                                                      
                                                                      
    if ( bytes > 0 ) {                                                
      iop->offset += bytes;                                           
   445b4:	2c00           	movel %d0,%d6                               
   445b6:	5bc5           	smi %d5                                     
   445b8:	49c5           	extbl %d5                                   
   445ba:	ddab 0010      	addl %d6,%a3@(16)                           
   445be:	222b 000c      	movel %a3@(12),%d1                          
   445c2:	d385           	addxl %d5,%d1                               
   445c4:	2741 000c      	movel %d1,%a3@(12)                          
      total       += bytes;                                           
    }                                                                 
                                                                      
    if (bytes != iov[ v ].iov_len)                                    
   445c8:	b092           	cmpl %a2@,%d0                               
   445ca:	6610           	bnes 445dc <readv+0xe4>                     <== NEVER TAKEN
  }                                                                   
                                                                      
  /*                                                                  
   *  Now process the readv().                                        
   */                                                                 
  for ( total=0, v=0 ; v < iovcnt ; v++ ) {                           
   445cc:	5284           	addql #1,%d4                                
   445ce:	508a           	addql #8,%a2                                
   445d0:	b684           	cmpl %d4,%d3                                
   445d2:	6ec2           	bgts 44596 <readv+0x9e>                     
   445d4:	6006           	bras 445dc <readv+0xe4>                     
   *  A readv with all zeros logically has no effect.  Even though    
   *  OpenGroup didn't address this case as they did with writev(),   
   *  we will handle it the same way for symmetry.                    
   */                                                                 
  if ( all_zeros == true ) {                                          
    return 0;                                                         
   445d6:	4282           	clrl %d2                                    
   445d8:	6002           	bras 445dc <readv+0xe4>                     
      iov[v].iov_base,                                                
      iov[v].iov_len                                                  
    );                                                                
                                                                      
    if ( bytes < 0 )                                                  
      return -1;                                                      
   445da:	74ff           	moveq #-1,%d2                               
    if (bytes != iov[ v ].iov_len)                                    
      break;                                                          
  }                                                                   
                                                                      
  return total;                                                       
}                                                                     
   445dc:	2002           	movel %d2,%d0                               
   445de:	4cee 0c7c ffe4 	moveml %fp@(-28),%d2-%d6/%a2-%a3            
   445e4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0005aabc <realloc>: /* * Do not attempt to allocate memory if in a critical section or ISR. */ if (_System_state_Is_up(_System_state_Get())) {
   5aabc:	7003           	moveq #3,%d0                                
                                                                      
void *realloc(                                                        
  void *ptr,                                                          
  size_t size                                                         
)                                                                     
{                                                                     
   5aabe:	4e56 fff0      	linkw %fp,#-16                              
  uintptr_t old_size;                                                 
  char    *new_area;                                                  
                                                                      
  MSBUMP(realloc_calls, 1);                                           
   5aac2:	52b9 0005 e89c 	addql #1,5e89c <rtems_malloc_statistics+0x10>
                                                                      
void *realloc(                                                        
  void *ptr,                                                          
  size_t size                                                         
)                                                                     
{                                                                     
   5aac8:	48d7 001c      	moveml %d2-%d4,%sp@                         
   5aacc:	242e 0008      	movel %fp@(8),%d2                           
   5aad0:	262e 000c      	movel %fp@(12),%d3                          
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if in a critical section or ISR.
   */                                                                 
                                                                      
  if (_System_state_Is_up(_System_state_Get())) {                     
   5aad4:	b0b9 0005 eb14 	cmpl 5eb14 <_System_state_Current>,%d0      
   5aada:	6614           	bnes 5aaf0 <realloc+0x34>                   <== NEVER TAKEN
    if (_Thread_Dispatch_disable_level > 0)                           
   5aadc:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0
   5aae2:	6600 00aa      	bnew 5ab8e <realloc+0xd2>                   
      return (void *) 0;                                              
                                                                      
    if (_ISR_Nest_level > 0)                                          
   5aae6:	4ab9 0005 ee2e 	tstl 5ee2e <_Per_CPU_Information+0x8>       
   5aaec:	6600 00a0      	bnew 5ab8e <realloc+0xd2>                   
  }                                                                   
                                                                      
  /*                                                                  
   * Continue with realloc().                                         
   */                                                                 
  if ( !ptr )                                                         
   5aaf0:	4a82           	tstl %d2                                    
   5aaf2:	6610           	bnes 5ab04 <realloc+0x48>                   
    return malloc( size );                                            
   5aaf4:	2f03           	movel %d3,%sp@-                             
   5aaf6:	4eb9 0004 2cd4 	jsr 42cd4 <malloc>                          
   5aafc:	588f           	addql #4,%sp                                
   5aafe:	2400           	movel %d0,%d2                               
   5ab00:	6000 008e      	braw 5ab90 <realloc+0xd4>                   
                                                                      
  if ( !size ) {                                                      
   5ab04:	4a83           	tstl %d3                                    
   5ab06:	660c           	bnes 5ab14 <realloc+0x58>                   <== ALWAYS TAKEN
    free( ptr );                                                      
   5ab08:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   5ab0a:	4eb9 0004 29ec 	jsr 429ec <free>                            <== NOT EXECUTED
    return (void *) 0;                                                
   5ab10:	588f           	addql #4,%sp                                <== NOT EXECUTED
   5ab12:	607a           	bras 5ab8e <realloc+0xd2>                   <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( !_Protected_heap_Get_block_size(RTEMS_Malloc_Heap, ptr, &old_size) ) {
   5ab14:	486e fffc      	pea %fp@(-4)                                
   5ab18:	2f02           	movel %d2,%sp@-                             
   5ab1a:	2f39 0005 d030 	movel 5d030 <RTEMS_Malloc_Heap>,%sp@-       
   5ab20:	4eb9 0005 b028 	jsr 5b028 <_Protected_heap_Get_block_size>  
   5ab26:	4fef 000c      	lea %sp@(12),%sp                            
   5ab2a:	4a00           	tstb %d0                                    
   5ab2c:	660e           	bnes 5ab3c <realloc+0x80>                   
    errno = EINVAL;                                                   
   5ab2e:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5ab34:	2040           	moveal %d0,%a0                              
   5ab36:	7016           	moveq #22,%d0                               
   5ab38:	2080           	movel %d0,%a0@                              
   5ab3a:	6052           	bras 5ab8e <realloc+0xd2>                   
  }                                                                   
                                                                      
  /*                                                                  
   *  Now resize it.                                                  
   */                                                                 
  if ( _Protected_heap_Resize_block( RTEMS_Malloc_Heap, ptr, size ) ) {
   5ab3c:	2f03           	movel %d3,%sp@-                             
   5ab3e:	2f02           	movel %d2,%sp@-                             
   5ab40:	2f39 0005 d030 	movel 5d030 <RTEMS_Malloc_Heap>,%sp@-       
   5ab46:	4eb9 0005 b064 	jsr 5b064 <_Protected_heap_Resize_block>    
   5ab4c:	4fef 000c      	lea %sp@(12),%sp                            
   5ab50:	4a00           	tstb %d0                                    
   5ab52:	663c           	bnes 5ab90 <realloc+0xd4>                   
   *  There used to be a free on this error case but it is wrong to   
   *  free the memory per OpenGroup Single UNIX Specification V2      
   *  and the C Standard.                                             
   */                                                                 
                                                                      
  new_area = malloc( size );                                          
   5ab54:	2f03           	movel %d3,%sp@-                             
   5ab56:	4eb9 0004 2cd4 	jsr 42cd4 <malloc>                          
                                                                      
  MSBUMP(malloc_calls, (uint32_t) -1);   /* subtract off the malloc */
                                                                      
  if ( !new_area ) {                                                  
   5ab5c:	588f           	addql #4,%sp                                
   *  and the C Standard.                                             
   */                                                                 
                                                                      
  new_area = malloc( size );                                          
                                                                      
  MSBUMP(malloc_calls, (uint32_t) -1);   /* subtract off the malloc */
   5ab5e:	53b9 0005 e890 	subql #1,5e890 <rtems_malloc_statistics+0x4>
   *  There used to be a free on this error case but it is wrong to   
   *  free the memory per OpenGroup Single UNIX Specification V2      
   *  and the C Standard.                                             
   */                                                                 
                                                                      
  new_area = malloc( size );                                          
   5ab64:	2800           	movel %d0,%d4                               
                                                                      
  MSBUMP(malloc_calls, (uint32_t) -1);   /* subtract off the malloc */
                                                                      
  if ( !new_area ) {                                                  
   5ab66:	6726           	beqs 5ab8e <realloc+0xd2>                   
    return (void *) 0;                                                
  }                                                                   
                                                                      
  memcpy( new_area, ptr, (size < old_size) ? size : old_size );       
   5ab68:	202e fffc      	movel %fp@(-4),%d0                          
   5ab6c:	b083           	cmpl %d3,%d0                                
   5ab6e:	6402           	bccs 5ab72 <realloc+0xb6>                   <== NEVER TAKEN
   5ab70:	2600           	movel %d0,%d3                               
   5ab72:	2f03           	movel %d3,%sp@-                             
   5ab74:	2f02           	movel %d2,%sp@-                             
   5ab76:	2f04           	movel %d4,%sp@-                             
   5ab78:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
  free( ptr );                                                        
   5ab7e:	2f02           	movel %d2,%sp@-                             
                                                                      
  return new_area;                                                    
   5ab80:	2404           	movel %d4,%d2                               
  if ( !new_area ) {                                                  
    return (void *) 0;                                                
  }                                                                   
                                                                      
  memcpy( new_area, ptr, (size < old_size) ? size : old_size );       
  free( ptr );                                                        
   5ab82:	4eb9 0004 29ec 	jsr 429ec <free>                            
                                                                      
  return new_area;                                                    
   5ab88:	4fef 0010      	lea %sp@(16),%sp                            
   5ab8c:	6002           	bras 5ab90 <realloc+0xd4>                   
  new_area = malloc( size );                                          
                                                                      
  MSBUMP(malloc_calls, (uint32_t) -1);   /* subtract off the malloc */
                                                                      
  if ( !new_area ) {                                                  
    return (void *) 0;                                                
   5ab8e:	4282           	clrl %d2                                    
  memcpy( new_area, ptr, (size < old_size) ? size : old_size );       
  free( ptr );                                                        
                                                                      
  return new_area;                                                    
                                                                      
}                                                                     
   5ab90:	2002           	movel %d2,%d0                               
   5ab92:	4cee 001c fff0 	moveml %fp@(-16),%d2-%d4                    
   5ab98:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043afc <rmdir>: #include <rtems/seterr.h> int rmdir( const char *pathname ) {
   43afc:	4e56 ffbc      	linkw %fp,#-68                              
   43b00:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   43b04:	246e 0008      	moveal %fp@(8),%a2                          
                                                                      
  /*                                                                  
   *  Get the parent node of the node we wish to remove. Find the parent path.
   */                                                                 
                                                                      
  parentpathlen = rtems_filesystem_dirname ( pathname );              
   43b08:	2f0a           	movel %a2,%sp@-                             
   43b0a:	4eb9 0004 2d90 	jsr 42d90 <rtems_filesystem_dirname>        
                                                                      
  if ( parentpathlen == 0 )                                           
   43b10:	588f           	addql #4,%sp                                
                                                                      
  /*                                                                  
   *  Get the parent node of the node we wish to remove. Find the parent path.
   */                                                                 
                                                                      
  parentpathlen = rtems_filesystem_dirname ( pathname );              
   43b12:	2a00           	movel %d0,%d5                               
   43b14:	200e           	movel %fp,%d0                               
   43b16:	0680 ffff ffe8 	addil #-24,%d0                              
                                                                      
  if ( parentpathlen == 0 )                                           
   43b1c:	4a85           	tstl %d5                                    
   43b1e:	6616           	bnes 43b36 <rmdir+0x3a>                     
    rtems_filesystem_get_start_loc( pathname, &i, &parentloc );       
   43b20:	2f00           	movel %d0,%sp@-                             
   43b22:	486e fffc      	pea %fp@(-4)                                
  const char                       *name;                             
  rtems_filesystem_location_info_t  parentloc;                        
  rtems_filesystem_location_info_t  loc;                              
  int                               i;                                
  int                               result;                           
  bool                              free_parentloc = false;           
   43b26:	4204           	clrb %d4                                    
   */                                                                 
                                                                      
  parentpathlen = rtems_filesystem_dirname ( pathname );              
                                                                      
  if ( parentpathlen == 0 )                                           
    rtems_filesystem_get_start_loc( pathname, &i, &parentloc );       
   43b28:	2f0a           	movel %a2,%sp@-                             
   43b2a:	4eb9 0004 3c20 	jsr 43c20 <rtems_filesystem_get_start_loc>  
   43b30:	4fef 000c      	lea %sp@(12),%sp                            
   43b34:	601e           	bras 43b54 <rmdir+0x58>                     
  else {                                                              
    result = rtems_filesystem_evaluate_path(pathname, parentpathlen,  
   43b36:	42a7           	clrl %sp@-                                  
   43b38:	2f00           	movel %d0,%sp@-                             
   43b3a:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   43b3e:	2f05           	movel %d5,%sp@-                             
   43b40:	2f0a           	movel %a2,%sp@-                             
   43b42:	4eb9 0004 2d44 	jsr 42d44 <rtems_filesystem_evaluate_path>  
                                            RTEMS_LIBIO_PERMS_WRITE,  
                                            &parentloc,               
                                            false );                  
    if ( result != 0 )                                                
   43b48:	4fef 0014      	lea %sp@(20),%sp                            
   43b4c:	4a80           	tstl %d0                                    
   43b4e:	6600 00c2      	bnew 43c12 <rmdir+0x116>                    
      return -1;                                                      
                                                                      
    free_parentloc = true;                                            
   43b52:	7801           	moveq #1,%d4                                
                                                                      
  /*                                                                  
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  loc = parentloc;                                                    
   43b54:	4878 0014      	pea 14 <OPER2>                              
   43b58:	260e           	movel %fp,%d3                               
   43b5a:	0683 ffff ffe8 	addil #-24,%d3                              
   43b60:	240e           	movel %fp,%d2                               
   43b62:	0682 ffff ffd4 	addil #-44,%d2                              
  name = pathname + parentpathlen;                                    
   43b68:	d5c5           	addal %d5,%a2                               
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   43b6a:	47f9 0004 e624 	lea 4e624 <strlen>,%a3                      
                                                                      
  /*                                                                  
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  loc = parentloc;                                                    
   43b70:	2f03           	movel %d3,%sp@-                             
   43b72:	2f02           	movel %d2,%sp@-                             
   43b74:	4eb9 0004 db2c 	jsr 4db2c <memcpy>                          
  name = pathname + parentpathlen;                                    
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   43b7a:	2f0a           	movel %a2,%sp@-                             
   43b7c:	4e93           	jsr %a3@                                    
   43b7e:	2e80           	movel %d0,%sp@                              
   43b80:	2f0a           	movel %a2,%sp@-                             
   43b82:	4eb9 0004 2dd2 	jsr 42dd2 <rtems_filesystem_prefix_separators>
   43b88:	d5c0           	addal %d0,%a2                               
                                                                      
  result = rtems_filesystem_evaluate_relative_path( name , strlen( name ),
   43b8a:	2f0a           	movel %a2,%sp@-                             
   43b8c:	4e93           	jsr %a3@                                    
   43b8e:	4297           	clrl %sp@                                   
   43b90:	2f02           	movel %d2,%sp@-                             
   43b92:	42a7           	clrl %sp@-                                  
   43b94:	2f00           	movel %d0,%sp@-                             
   43b96:	2f0a           	movel %a2,%sp@-                             
   43b98:	4eb9 0004 2cd4 	jsr 42cd4 <rtems_filesystem_evaluate_relative_path>
                                                    0, &loc, false ); 
  if ( result != 0 ) {                                                
   43b9e:	4fef 0028      	lea %sp@(40),%sp                            
   43ba2:	4a80           	tstl %d0                                    
   43ba4:	6710           	beqs 43bb6 <rmdir+0xba>                     
    if ( free_parentloc )                                             
   43ba6:	4a04           	tstb %d4                                    
   43ba8:	6768           	beqs 43c12 <rmdir+0x116>                    <== NEVER TAKEN
      rtems_filesystem_freenode( &parentloc );                        
   43baa:	2f03           	movel %d3,%sp@-                             
   43bac:	4eb9 0004 2e10 	jsr 42e10 <rtems_filesystem_freenode>       
   43bb2:	588f           	addql #4,%sp                                
   43bb4:	605c           	bras 43c12 <rmdir+0x116>                    
  }                                                                   
                                                                      
  /*                                                                  
   * Verify you can remove this node as a directory.                  
   */                                                                 
  if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) {
   43bb6:	206e ffe0      	moveal %fp@(-32),%a0                        
   43bba:	45f9 0004 2e10 	lea 42e10 <rtems_filesystem_freenode>,%a2   
   43bc0:	2f02           	movel %d2,%sp@-                             
   43bc2:	2068 0010      	moveal %a0@(16),%a0                         
   43bc6:	4e90           	jsr %a0@                                    
   43bc8:	588f           	addql #4,%sp                                
   43bca:	7201           	moveq #1,%d1                                
   43bcc:	b280           	cmpl %d0,%d1                                
   43bce:	671e           	beqs 43bee <rmdir+0xf2>                     
    rtems_filesystem_freenode( &loc );                                
   43bd0:	2f02           	movel %d2,%sp@-                             
   43bd2:	4e92           	jsr %a2@                                    
    if ( free_parentloc )                                             
   43bd4:	588f           	addql #4,%sp                                
   43bd6:	4a04           	tstb %d4                                    
   43bd8:	6706           	beqs 43be0 <rmdir+0xe4>                     <== NEVER TAKEN
      rtems_filesystem_freenode( &parentloc );                        
   43bda:	2f03           	movel %d3,%sp@-                             
   43bdc:	4e92           	jsr %a2@                                    
   43bde:	588f           	addql #4,%sp                                
    rtems_set_errno_and_return_minus_one( ENOTDIR );                  
   43be0:	4eb9 0004 d280 	jsr 4d280 <__errno>                         
   43be6:	2040           	moveal %d0,%a0                              
   43be8:	7014           	moveq #20,%d0                               
   43bea:	2080           	movel %d0,%a0@                              
   43bec:	6024           	bras 43c12 <rmdir+0x116>                    
                                                                      
  /*                                                                  
   * Use the filesystems rmnod to remove the node.                    
   */                                                                 
                                                                      
  result =  (*loc.handlers->rmnod_h)( &parentloc, &loc );             
   43bee:	2f02           	movel %d2,%sp@-                             
   43bf0:	206e ffdc      	moveal %fp@(-36),%a0                        
   43bf4:	2f03           	movel %d3,%sp@-                             
   43bf6:	2068 0034      	moveal %a0@(52),%a0                         
   43bfa:	4e90           	jsr %a0@                                    
   43bfc:	2a00           	movel %d0,%d5                               
                                                                      
  rtems_filesystem_freenode( &loc );                                  
   43bfe:	2f02           	movel %d2,%sp@-                             
   43c00:	4e92           	jsr %a2@                                    
  if ( free_parentloc )                                               
   43c02:	4fef 000c      	lea %sp@(12),%sp                            
   43c06:	4a04           	tstb %d4                                    
   43c08:	670a           	beqs 43c14 <rmdir+0x118>                    
    rtems_filesystem_freenode( &parentloc );                          
   43c0a:	2f03           	movel %d3,%sp@-                             
   43c0c:	4e92           	jsr %a2@                                    
   43c0e:	588f           	addql #4,%sp                                
   43c10:	6002           	bras 43c14 <rmdir+0x118>                    
  result = rtems_filesystem_evaluate_relative_path( name , strlen( name ),
                                                    0, &loc, false ); 
  if ( result != 0 ) {                                                
    if ( free_parentloc )                                             
      rtems_filesystem_freenode( &parentloc );                        
    return -1;                                                        
   43c12:	7aff           	moveq #-1,%d5                               
  rtems_filesystem_freenode( &loc );                                  
  if ( free_parentloc )                                               
    rtems_filesystem_freenode( &parentloc );                          
                                                                      
  return result;                                                      
}                                                                     
   43c14:	2005           	movel %d5,%d0                               
   43c16:	4cee 0c3c ffbc 	moveml %fp@(-68),%d2-%d5/%a2-%a3            
   43c1c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046750 <rtems_aio_enqueue>: * errno - otherwise */ int rtems_aio_enqueue (rtems_aio_request *req) {
   46750:	4e56 ffc0      	linkw %fp,#-64                              
   46754:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
  struct sched_param param;                                           
                                                                      
  /* The queue should be initialized */                               
  AIO_assert (aio_request_queue.initialized == AIO_QUEUE_INITIALIZED);
                                                                      
  result = pthread_mutex_lock (&aio_request_queue.mutex);             
   46758:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   4675e:	4bf9 0004 7078 	lea 47078 <pthread_mutex_lock>,%a5          
 *         errno     - otherwise                                      
 */                                                                   
                                                                      
int                                                                   
rtems_aio_enqueue (rtems_aio_request *req)                            
{                                                                     
   46764:	246e 0008      	moveal %fp@(8),%a2                          
  struct sched_param param;                                           
                                                                      
  /* The queue should be initialized */                               
  AIO_assert (aio_request_queue.initialized == AIO_QUEUE_INITIALIZED);
                                                                      
  result = pthread_mutex_lock (&aio_request_queue.mutex);             
   46768:	4e95           	jsr %a5@                                    
  if (result != 0) {                                                  
   4676a:	588f           	addql #4,%sp                                
  struct sched_param param;                                           
                                                                      
  /* The queue should be initialized */                               
  AIO_assert (aio_request_queue.initialized == AIO_QUEUE_INITIALIZED);
                                                                      
  result = pthread_mutex_lock (&aio_request_queue.mutex);             
   4676c:	2400           	movel %d0,%d2                               
  if (result != 0) {                                                  
   4676e:	670c           	beqs 4677c <rtems_aio_enqueue+0x2c>         <== ALWAYS TAKEN
    free (req);                                                       
   46770:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   46772:	4eb9 0004 3434 	jsr 43434 <free>                            <== NOT EXECUTED
   46778:	6000 01c6      	braw 46940 <rtems_aio_enqueue+0x1f0>        <== NOT EXECUTED
    return result;                                                    
  }                                                                   
                                                                      
  /* _POSIX_PRIORITIZED_IO and _POSIX_PRIORITY_SCHEDULING are defined,
     we can use aio_reqprio to lower the priority of the request */   
  pthread_getschedparam (pthread_self(), &policy, ¶m);            
   4677c:	47f9 0004 784c 	lea 4784c <pthread_self>,%a3                
   46782:	4e93           	jsr %a3@                                    
   46784:	486e ffdc      	pea %fp@(-36)                               
   46788:	486e fff8      	pea %fp@(-8)                                
   4678c:	2f00           	movel %d0,%sp@-                             
   4678e:	4eb9 0004 7478 	jsr 47478 <pthread_getschedparam>           
                                                                      
  req->caller_thread = pthread_self ();                               
   46794:	4e93           	jsr %a3@                                    
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
   46796:	206a 0014      	moveal %a2@(20),%a0                         
  req->policy = policy;                                               
  req->aiocbp->error_code = EINPROGRESS;                              
   4679a:	7277           	moveq #119,%d1                              
  req->aiocbp->return_value = 0;                                      
                                                                      
  if ((aio_request_queue.idle_threads == 0) &&                        
   4679c:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
  /* _POSIX_PRIORITIZED_IO and _POSIX_PRIORITY_SCHEDULING are defined,
     we can use aio_reqprio to lower the priority of the request */   
  pthread_getschedparam (pthread_self(), &policy, ¶m);            
                                                                      
  req->caller_thread = pthread_self ();                               
   467a0:	2540 0010      	movel %d0,%a2@(16)                          
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
   467a4:	202e ffdc      	movel %fp@(-36),%d0                         
   467a8:	90a8 0014      	subl %a0@(20),%d0                           
  req->policy = policy;                                               
   467ac:	256e fff8 0008 	movel %fp@(-8),%a2@(8)                      
  /* _POSIX_PRIORITIZED_IO and _POSIX_PRIORITY_SCHEDULING are defined,
     we can use aio_reqprio to lower the priority of the request */   
  pthread_getschedparam (pthread_self(), &policy, ¶m);            
                                                                      
  req->caller_thread = pthread_self ();                               
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
   467b2:	2540 000c      	movel %d0,%a2@(12)                          
  req->policy = policy;                                               
  req->aiocbp->error_code = EINPROGRESS;                              
   467b6:	2141 0030      	movel %d1,%a0@(48)                          
  req->aiocbp->return_value = 0;                                      
   467ba:	42a8 0034      	clrl %a0@(52)                               
                                                                      
  if ((aio_request_queue.idle_threads == 0) &&                        
   467be:	4ab9 0006 13e0 	tstl 613e0 <aio_request_queue+0x68>         
   467c4:	6600 00ae      	bnew 46874 <rtems_aio_enqueue+0x124>        
   467c8:	7004           	moveq #4,%d0                                
   467ca:	b0b9 0006 13dc 	cmpl 613dc <aio_request_queue+0x64>,%d0     
   467d0:	6d00 00a2      	bltw 46874 <rtems_aio_enqueue+0x124>        
      aio_request_queue.active_threads < AIO_MAX_THREADS)             
    /* we still have empty places on the active_threads chain */      
    {                                                                 
      chain = &aio_request_queue.work_req;                            
      r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);
   467d4:	4878 0001      	pea 1 <ADD>                                 
   467d8:	2f10           	movel %a0@,%sp@-                            
   467da:	4879 0006 13c0 	pea 613c0 <aio_request_queue+0x48>          
   467e0:	4eb9 0004 634a 	jsr 4634a <rtems_aio_search_fd>             
                                                                      
      if (r_chain->new_fd == 1) {                                     
   467e6:	4fef 000c      	lea %sp@(12),%sp                            
   467ea:	7201           	moveq #1,%d1                                
  if ((aio_request_queue.idle_threads == 0) &&                        
      aio_request_queue.active_threads < AIO_MAX_THREADS)             
    /* we still have empty places on the active_threads chain */      
    {                                                                 
      chain = &aio_request_queue.work_req;                            
      r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);
   467ec:	2640           	moveal %d0,%a3                              
   467ee:	2800           	movel %d0,%d4                               
   467f0:	2600           	movel %d0,%d3                               
   467f2:	5084           	addql #8,%d4                                
   467f4:	0683 0000 001c 	addil #28,%d3                               
   467fa:	49eb 0020      	lea %a3@(32),%a4                            
                                                                      
      if (r_chain->new_fd == 1) {                                     
   467fe:	b2ab 0018      	cmpl %a3@(24),%d1                           
   46802:	665e           	bnes 46862 <rtems_aio_enqueue+0x112>        
RTEMS_INLINE_ROUTINE void _Chain_Prepend(                             
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  _Chain_Insert(_Chain_Head(the_chain), the_node);                    
   46804:	2f0a           	movel %a2,%sp@-                             
   46806:	2f04           	movel %d4,%sp@-                             
   46808:	4eb9 0004 8914 	jsr 48914 <_Chain_Insert>                   
	rtems_chain_prepend (&r_chain->perfd, &req->next_prio);              
	r_chain->new_fd = 0;                                                 
   4680e:	42ab 0018      	clrl %a3@(24)                               
	pthread_mutex_init (&r_chain->mutex, NULL);                          
   46812:	42a7           	clrl %sp@-                                  
   46814:	2f03           	movel %d3,%sp@-                             
   46816:	4eb9 0004 6f60 	jsr 46f60 <pthread_mutex_init>              
	pthread_cond_init (&r_chain->cond, NULL);                            
   4681c:	42a7           	clrl %sp@-                                  
   4681e:	2f0c           	movel %a4,%sp@-                             
   46820:	4eb9 0004 6c00 	jsr 46c00 <pthread_cond_init>               
	                                                                     
	AIO_printf ("New thread \n");                                        
	result = pthread_create (&thid, &aio_request_queue.attr,             
   46826:	2f0b           	movel %a3,%sp@-                             
   46828:	487a fbe8      	pea %pc@(46412 <rtems_aio_handle>)          
   4682c:	4879 0006 1380 	pea 61380 <aio_request_queue+0x8>           
   46832:	486e fffc      	pea %fp@(-4)                                
   46836:	4eb9 0004 7270 	jsr 47270 <pthread_create>                  
				 rtems_aio_handle, (void *) r_chain);                             
	if (result != 0) {                                                   
   4683c:	4fef 0028      	lea %sp@(40),%sp                            
	r_chain->new_fd = 0;                                                 
	pthread_mutex_init (&r_chain->mutex, NULL);                          
	pthread_cond_init (&r_chain->cond, NULL);                            
	                                                                     
	AIO_printf ("New thread \n");                                        
	result = pthread_create (&thid, &aio_request_queue.attr,             
   46840:	2600           	movel %d0,%d3                               
				 rtems_aio_handle, (void *) r_chain);                             
	if (result != 0) {                                                   
   46842:	6714           	beqs 46858 <rtems_aio_enqueue+0x108>        <== ALWAYS TAKEN
	  pthread_mutex_unlock (&aio_request_queue.mutex);                   
   46844:	4879 0006 1378 	pea 61378 <aio_request_queue>               <== NOT EXECUTED
	  return result;                                                     
   4684a:	2403           	movel %d3,%d2                               <== NOT EXECUTED
	                                                                     
	AIO_printf ("New thread \n");                                        
	result = pthread_create (&thid, &aio_request_queue.attr,             
				 rtems_aio_handle, (void *) r_chain);                             
	if (result != 0) {                                                   
	  pthread_mutex_unlock (&aio_request_queue.mutex);                   
   4684c:	4eb9 0004 7110 	jsr 47110 <pthread_mutex_unlock>            <== NOT EXECUTED
	  return result;                                                     
   46852:	588f           	addql #4,%sp                                <== NOT EXECUTED
   46854:	6000 00ec      	braw 46942 <rtems_aio_enqueue+0x1f2>        <== NOT EXECUTED
	}                                                                    
	++aio_request_queue.active_threads;                                  
   46858:	52b9 0006 13dc 	addql #1,613dc <aio_request_queue+0x64>     
   4685e:	6000 00d4      	braw 46934 <rtems_aio_enqueue+0x1e4>        
      }                                                               
      else {                                                          
	/* put request in the fd chain it belongs to */                      
	pthread_mutex_lock (&r_chain->mutex);                                
   46862:	2f03           	movel %d3,%sp@-                             
   46864:	4e95           	jsr %a5@                                    
	rtems_aio_insert_prio (&r_chain->perfd, req);                        
   46866:	2f0a           	movel %a2,%sp@-                             
   46868:	2f04           	movel %d4,%sp@-                             
   4686a:	4eb9 0004 664c 	jsr 4664c <rtems_aio_insert_prio>           
	pthread_cond_signal (&r_chain->cond);                                
   46870:	2f0c           	movel %a4,%sp@-                             
   46872:	603c           	bras 468b0 <rtems_aio_enqueue+0x160>        
  else                                                                
    {                                                                 
      /* the maximum number of threads has been already created       
	 even though some of them might be idle.                             
	 The request belongs to one of the active fd chain */                
      r_chain = rtems_aio_search_fd (&aio_request_queue.work_req,     
   46874:	42a7           	clrl %sp@-                                  
   46876:	2f10           	movel %a0@,%sp@-                            
   46878:	49f9 0004 634a 	lea 4634a <rtems_aio_search_fd>,%a4         
   4687e:	4879 0006 13c0 	pea 613c0 <aio_request_queue+0x48>          
   46884:	4e94           	jsr %a4@                                    
				     req->aiocbp->aio_fildes, 0);                                 
      if (r_chain != NULL)                                            
   46886:	4fef 000c      	lea %sp@(12),%sp                            
  else                                                                
    {                                                                 
      /* the maximum number of threads has been already created       
	 even though some of them might be idle.                             
	 The request belongs to one of the active fd chain */                
      r_chain = rtems_aio_search_fd (&aio_request_queue.work_req,     
   4688a:	2640           	moveal %d0,%a3                              
				     req->aiocbp->aio_fildes, 0);                                 
      if (r_chain != NULL)                                            
   4688c:	4a80           	tstl %d0                                    
   4688e:	6734           	beqs 468c4 <rtems_aio_enqueue+0x174>        
	{                                                                    
	  pthread_mutex_lock (&r_chain->mutex);                              
   46890:	2600           	movel %d0,%d3                               
   46892:	0683 0000 001c 	addil #28,%d3                               
   46898:	2f03           	movel %d3,%sp@-                             
   4689a:	4eb9 0004 7078 	jsr 47078 <pthread_mutex_lock>              
	  rtems_aio_insert_prio (&r_chain->perfd, req);                      
   468a0:	2f0a           	movel %a2,%sp@-                             
   468a2:	486b 0008      	pea %a3@(8)                                 
   468a6:	4eb9 0004 664c 	jsr 4664c <rtems_aio_insert_prio>           
	  pthread_cond_signal (&r_chain->cond);                              
   468ac:	486b 0020      	pea %a3@(32)                                
   468b0:	4eb9 0004 6ca4 	jsr 46ca4 <pthread_cond_signal>             
	  pthread_mutex_unlock (&r_chain->mutex);                            
   468b6:	2f03           	movel %d3,%sp@-                             
   468b8:	4eb9 0004 7110 	jsr 47110 <pthread_mutex_unlock>            
   468be:	4fef 0014      	lea %sp@(20),%sp                            
   468c2:	6070           	bras 46934 <rtems_aio_enqueue+0x1e4>        
	                                                                     
	} else {                                                             
                                                                      
	/* or to the idle chain */                                           
	chain = &aio_request_queue.idle_req;                                 
	r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);   
   468c4:	4878 0001      	pea 1 <ADD>                                 
   468c8:	206a 0014      	moveal %a2@(20),%a0                         
   468cc:	2f10           	movel %a0@,%sp@-                            
   468ce:	4879 0006 13cc 	pea 613cc <aio_request_queue+0x54>          
   468d4:	4e94           	jsr %a4@                                    
                                                                      
	if (r_chain->new_fd == 1) {                                          
   468d6:	4fef 000c      	lea %sp@(12),%sp                            
   468da:	7201           	moveq #1,%d1                                
	                                                                     
	} else {                                                             
                                                                      
	/* or to the idle chain */                                           
	chain = &aio_request_queue.idle_req;                                 
	r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);   
   468dc:	2640           	moveal %d0,%a3                              
   468de:	5080           	addql #8,%d0                                
                                                                      
	if (r_chain->new_fd == 1) {                                          
   468e0:	b2ab 0018      	cmpl %a3@(24),%d1                           
   468e4:	662c           	bnes 46912 <rtems_aio_enqueue+0x1c2>        
   468e6:	2f0a           	movel %a2,%sp@-                             
   468e8:	2f00           	movel %d0,%sp@-                             
   468ea:	4eb9 0004 8914 	jsr 48914 <_Chain_Insert>                   
	  /* If this is a new fd chain we signal the idle threads that       
	     might be waiting for requests */                                
	  AIO_printf (" New chain on waiting queue \n ");                    
	  rtems_chain_prepend (&r_chain->perfd, &req->next_prio);            
	  r_chain->new_fd = 0;                                               
   468f0:	42ab 0018      	clrl %a3@(24)                               
	  pthread_mutex_init (&r_chain->mutex, NULL);                        
   468f4:	42a7           	clrl %sp@-                                  
   468f6:	486b 001c      	pea %a3@(28)                                
   468fa:	4eb9 0004 6f60 	jsr 46f60 <pthread_mutex_init>              
	  pthread_cond_init (&r_chain->cond, NULL);                          
   46900:	42a7           	clrl %sp@-                                  
   46902:	486b 0020      	pea %a3@(32)                                
   46906:	4eb9 0004 6c00 	jsr 46c00 <pthread_cond_init>               
   4690c:	4fef 0018      	lea %sp@(24),%sp                            
   46910:	600c           	bras 4691e <rtems_aio_enqueue+0x1ce>        
	} else                                                               
	  /* just insert the request in the existing fd chain */             
	  rtems_aio_insert_prio (&r_chain->perfd, req);                      
   46912:	2f0a           	movel %a2,%sp@-                             
   46914:	2f00           	movel %d0,%sp@-                             
   46916:	4eb9 0004 664c 	jsr 4664c <rtems_aio_insert_prio>           
   4691c:	508f           	addql #8,%sp                                
	if (aio_request_queue.idle_threads > 0)                              
   4691e:	4ab9 0006 13e0 	tstl 613e0 <aio_request_queue+0x68>         
   46924:	6f0e           	bles 46934 <rtems_aio_enqueue+0x1e4>        <== ALWAYS TAKEN
	  pthread_cond_signal (&aio_request_queue.new_req);                  
   46926:	4879 0006 137c 	pea 6137c <aio_request_queue+0x4>           <== NOT EXECUTED
   4692c:	4eb9 0004 6ca4 	jsr 46ca4 <pthread_cond_signal>             <== NOT EXECUTED
   46932:	588f           	addql #4,%sp                                <== NOT EXECUTED
      }                                                               
    }                                                                 
                                                                      
  pthread_mutex_unlock (&aio_request_queue.mutex);                    
   46934:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   4693a:	4eb9 0004 7110 	jsr 47110 <pthread_mutex_unlock>            
  return 0;                                                           
   46940:	588f           	addql #4,%sp                                
}                                                                     
   46942:	2002           	movel %d2,%d0                               
   46944:	4cee 3c1c ffc0 	moveml %fp@(-64),%d2-%d4/%a2-%a5            
   4694a:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00046412 <rtems_aio_handle>: * NULL - if error */ static void * rtems_aio_handle (void *arg) {
   46412:	4e56 ffa8      	linkw %fp,#-88                              
   46416:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_lock (&aio_request_queue.mutex);                  
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
   4641a:	240e           	movel %fp,%d2                               
      node = rtems_chain_first (chain);                               
      req = (rtems_aio_request *) node;                               
                                                                      
      /* See _POSIX_PRIORITIZE_IO and _POSIX_PRIORITY_SCHEDULING      
	 discussion in rtems_aio_enqueue () */                               
      pthread_getschedparam (pthread_self(), &policy, ¶m);        
   4641c:	280e           	movel %fp,%d4                               
    /* acquire the mutex of the current fd chain.                     
       we don't need to lock the queue mutex since we can             
       add requests to idle fd chains or even active ones             
       if the working request has been extracted from the             
       chain */                                                       
    result = pthread_mutex_lock (&r_chain->mutex);                    
   4641e:	2e3c 0004 7078 	movel #290936,%d7                           
   46424:	4bf9 0004 7110 	lea 47110 <pthread_mutex_unlock>,%a5        
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_lock (&aio_request_queue.mutex);                  
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
   4642a:	0682 ffff fff4 	addil #-12,%d2                              
   46430:	2c3c 0004 6ad0 	movel #289488,%d6                           
	  timeout.tv_sec += 3;                                               
	  timeout.tv_nsec = 0;                                               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
   46436:	2a3c 0004 6d18 	movel #290072,%d5                           
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
   4643c:	49f9 0004 88b8 	lea 488b8 <_Chain_Extract>,%a4              
      node = rtems_chain_first (chain);                               
      req = (rtems_aio_request *) node;                               
                                                                      
      /* See _POSIX_PRIORITIZE_IO and _POSIX_PRIORITY_SCHEDULING      
	 discussion in rtems_aio_enqueue () */                               
      pthread_getschedparam (pthread_self(), &policy, ¶m);        
   46442:	0684 ffff ffd8 	addil #-40,%d4                              
                                                                      
static void *                                                         
rtems_aio_handle (void *arg)                                          
{                                                                     
                                                                      
  rtems_aio_request_chain *r_chain = arg;                             
   46448:	246e 0008      	moveal %fp@(8),%a2                          
    /* acquire the mutex of the current fd chain.                     
       we don't need to lock the queue mutex since we can             
       add requests to idle fd chains or even active ones             
       if the working request has been extracted from the             
       chain */                                                       
    result = pthread_mutex_lock (&r_chain->mutex);                    
   4644c:	260a           	movel %a2,%d3                               
   4644e:	0683 0000 001c 	addil #28,%d3                               
   46454:	2047           	moveal %d7,%a0                              
   46456:	2f03           	movel %d3,%sp@-                             
   46458:	4e90           	jsr %a0@                                    
    if (result != 0)                                                  
   4645a:	588f           	addql #4,%sp                                
   4645c:	4a80           	tstl %d0                                    
   4645e:	6600 01e0      	bnew 46640 <rtems_aio_handle+0x22e>         
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
   46462:	200a           	movel %a2,%d0                               
   46464:	0680 0000 000c 	addil #12,%d0                               
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   4646a:	266a 0008      	moveal %a2@(8),%a3                          
                                                                      
    /* If the locked chain is not empty, take the first               
       request extract it, unlock the chain and process               
       the request, in this way the user can supply more              
       requests to this fd chain */                                   
    if (!rtems_chain_is_empty (chain)) {                              
   4646e:	b08b           	cmpl %a3,%d0                                
   46470:	6700 00da      	beqw 4654c <rtems_aio_handle+0x13a>         
      node = rtems_chain_first (chain);                               
      req = (rtems_aio_request *) node;                               
                                                                      
      /* See _POSIX_PRIORITIZE_IO and _POSIX_PRIORITY_SCHEDULING      
	 discussion in rtems_aio_enqueue () */                               
      pthread_getschedparam (pthread_self(), &policy, ¶m);        
   46474:	41f9 0004 784c 	lea 4784c <pthread_self>,%a0                
   4647a:	2d48 ffd0      	movel %a0,%fp@(-48)                         
   4647e:	4e90           	jsr %a0@                                    
   46480:	2f04           	movel %d4,%sp@-                             
   46482:	486e fffc      	pea %fp@(-4)                                
   46486:	2f00           	movel %d0,%sp@-                             
   46488:	4eb9 0004 7478 	jsr 47478 <pthread_getschedparam>           
      param.sched_priority = req->priority;                           
      pthread_setschedparam (pthread_self(), req->policy, ¶m);    
   4648e:	202b 0008      	movel %a3@(8),%d0                           
      req = (rtems_aio_request *) node;                               
                                                                      
      /* See _POSIX_PRIORITIZE_IO and _POSIX_PRIORITY_SCHEDULING      
	 discussion in rtems_aio_enqueue () */                               
      pthread_getschedparam (pthread_self(), &policy, ¶m);        
      param.sched_priority = req->priority;                           
   46492:	2d6b 000c ffd8 	movel %a3@(12),%fp@(-40)                    
      pthread_setschedparam (pthread_self(), req->policy, ¶m);    
   46498:	206e ffd0      	moveal %fp@(-48),%a0                        
   4649c:	2d40 ffd4      	movel %d0,%fp@(-44)                         
   464a0:	4e90           	jsr %a0@                                    
   464a2:	2f04           	movel %d4,%sp@-                             
   464a4:	2f2e ffd4      	movel %fp@(-44),%sp@-                       
   464a8:	2f00           	movel %d0,%sp@-                             
   464aa:	4eb9 0004 7860 	jsr 47860 <pthread_setschedparam>           
   464b0:	2f0b           	movel %a3,%sp@-                             
   464b2:	4e94           	jsr %a4@                                    
                                                                      
      rtems_chain_extract (node);                                     
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
   464b4:	2f03           	movel %d3,%sp@-                             
   464b6:	4e95           	jsr %a5@                                    
                                                                      
      switch (req->aiocbp->aio_lio_opcode) {                          
   464b8:	206b 0014      	moveal %a3@(20),%a0                         
   464bc:	4fef 0020      	lea %sp@(32),%sp                            
   464c0:	7202           	moveq #2,%d1                                
   464c2:	2028 002c      	movel %a0@(44),%d0                          
   464c6:	b280           	cmpl %d0,%d1                                
   464c8:	672a           	beqs 464f4 <rtems_aio_handle+0xe2>          
   464ca:	123c 0003      	moveb #3,%d1                                
   464ce:	b280           	cmpl %d0,%d1                                
   464d0:	6740           	beqs 46512 <rtems_aio_handle+0x100>         <== NEVER TAKEN
   464d2:	123c 0001      	moveb #1,%d1                                
   464d6:	b280           	cmpl %d0,%d1                                
   464d8:	6648           	bnes 46522 <rtems_aio_handle+0x110>         <== NEVER TAKEN
      case LIO_READ:                                                  
	AIO_printf ("read\n");                                               
        result = pread (req->aiocbp->aio_fildes,                      
   464da:	2f28 0008      	movel %a0@(8),%sp@-                         
   464de:	2f28 0004      	movel %a0@(4),%sp@-                         
   464e2:	2f28 0010      	movel %a0@(16),%sp@-                        
   464e6:	2f28 000c      	movel %a0@(12),%sp@-                        
   464ea:	2f10           	movel %a0@,%sp@-                            
   464ec:	4eb9 0004 fbf6 	jsr 4fbf6 <pread>                           
   464f2:	6018           	bras 4650c <rtems_aio_handle+0xfa>          
                        req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
                                                                      
      case LIO_WRITE:                                                 
	AIO_printf ("write\n");                                              
        result = pwrite (req->aiocbp->aio_fildes,                     
   464f4:	2f28 0008      	movel %a0@(8),%sp@-                         
   464f8:	2f28 0004      	movel %a0@(4),%sp@-                         
   464fc:	2f28 0010      	movel %a0@(16),%sp@-                        
   46500:	2f28 000c      	movel %a0@(12),%sp@-                        
   46504:	2f10           	movel %a0@,%sp@-                            
   46506:	4eb9 0004 fcbe 	jsr 4fcbe <pwrite>                          
                         (void *) req->aiocbp->aio_buf,               
                         req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
   4650c:	4fef 0014      	lea %sp@(20),%sp                            
   46510:	600a           	bras 4651c <rtems_aio_handle+0x10a>         
                                                                      
      case LIO_SYNC:                                                  
	AIO_printf ("sync\n");                                               
      	result = fsync (req->aiocbp->aio_fildes);                      
   46512:	2f10           	movel %a0@,%sp@-                            <== NOT EXECUTED
   46514:	4eb9 0004 c438 	jsr 4c438 <fsync>                           <== NOT EXECUTED
      	break;                                                         
   4651a:	588f           	addql #4,%sp                                <== NOT EXECUTED
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
   4651c:	72ff           	moveq #-1,%d1                               
   4651e:	b280           	cmpl %d0,%d1                                
   46520:	661a           	bnes 4653c <rtems_aio_handle+0x12a>         <== ALWAYS TAKEN
        req->aiocbp->return_value = -1;                               
   46522:	266b 0014      	moveal %a3@(20),%a3                         <== NOT EXECUTED
   46526:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
   46528:	2740 0034      	movel %d0,%a3@(52)                          <== NOT EXECUTED
	req->aiocbp->error_code = errno;                                     
   4652c:	4eb9 0004 f150 	jsr 4f150 <__errno>                         <== NOT EXECUTED
   46532:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   46534:	2750 0030      	movel %a0@,%a3@(48)                         <== NOT EXECUTED
   46538:	6000 ff12      	braw 4644c <rtems_aio_handle+0x3a>          <== NOT EXECUTED
      } else {                                                        
        req->aiocbp->return_value = result;                           
   4653c:	206b 0014      	moveal %a3@(20),%a0                         
   46540:	2140 0034      	movel %d0,%a0@(52)                          
        req->aiocbp->error_code = 0;                                  
   46544:	42a8 0030      	clrl %a0@(48)                               
   46548:	6000 ff02      	braw 4644c <rtems_aio_handle+0x3a>          
                                                                      
      struct timespec timeout;                                        
                                                                      
      AIO_printf ("Chain is empty [WQ], wait for work\n");            
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
   4654c:	2f03           	movel %d3,%sp@-                             
   4654e:	4e95           	jsr %a5@                                    
      pthread_mutex_lock (&aio_request_queue.mutex);                  
   46550:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   46556:	2047           	moveal %d7,%a0                              
   46558:	4e90           	jsr %a0@                                    
                                                                      
      if (rtems_chain_is_empty (chain))                               
   4655a:	508f           	addql #8,%sp                                
   4655c:	b7ea 0008      	cmpal %a2@(8),%a3                           
   46560:	6600 00d0      	bnew 46632 <rtems_aio_handle+0x220>         
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
   46564:	2f02           	movel %d2,%sp@-                             
   46566:	4878 0001      	pea 1 <ADD>                                 
   4656a:	2046           	moveal %d6,%a0                              
	  timeout.tv_sec += 3;                                               
	  timeout.tv_nsec = 0;                                               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
   4656c:	47ea 0020      	lea %a2@(32),%a3                            
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_lock (&aio_request_queue.mutex);                  
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
   46570:	4e90           	jsr %a0@                                    
	  timeout.tv_sec += 3;                                               
   46572:	56ae fff4      	addql #3,%fp@(-12)                          
	  timeout.tv_nsec = 0;                                               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
   46576:	2045           	moveal %d5,%a0                              
   46578:	2f02           	movel %d2,%sp@-                             
   4657a:	4879 0006 1378 	pea 61378 <aio_request_queue>               
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
	  timeout.tv_sec += 3;                                               
	  timeout.tv_nsec = 0;                                               
   46580:	42ae fff8      	clrl %fp@(-8)                               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
   46584:	2f0b           	movel %a3,%sp@-                             
   46586:	4e90           	jsr %a0@                                    
					   &aio_request_queue.mutex,                                     
					   &timeout);                                                    
                                                                      
	  /* If no requests were added to the chain we delete the fd chain from
	     the queue and start working with idle fd chains */              
	  if (result == ETIMEDOUT) {                                         
   46588:	4fef 0014      	lea %sp@(20),%sp                            
   4658c:	7274           	moveq #116,%d1                              
   4658e:	b280           	cmpl %d0,%d1                                
   46590:	6600 00a0      	bnew 46632 <rtems_aio_handle+0x220>         
   46594:	2f0a           	movel %a2,%sp@-                             
   46596:	4e94           	jsr %a4@                                    
	    rtems_chain_extract (&r_chain->next_fd);                         
	    pthread_mutex_destroy (&r_chain->mutex);                         
   46598:	2f03           	movel %d3,%sp@-                             
   4659a:	4eb9 0004 6e40 	jsr 46e40 <pthread_mutex_destroy>           
	    pthread_cond_destroy (&r_chain->cond);                           
   465a0:	2f0b           	movel %a3,%sp@-                             
   465a2:	4eb9 0004 6b3c 	jsr 46b3c <pthread_cond_destroy>            
	    free (r_chain);                                                  
   465a8:	2f0a           	movel %a2,%sp@-                             
   465aa:	4eb9 0004 3434 	jsr 43434 <free>                            
	                                                                     
	    /* If the idle chain is empty sleep for 3 seconds and wait for a 
	       signal. The thread now becomes idle. */                       
	    if (rtems_chain_is_empty (&aio_request_queue.idle_req)) {        
   465b0:	4fef 0010      	lea %sp@(16),%sp                            
   465b4:	41f9 0006 13d0 	lea 613d0 <aio_request_queue+0x58>,%a0      
   465ba:	b1f9 0006 13cc 	cmpal 613cc <aio_request_queue+0x54>,%a0    
   465c0:	6650           	bnes 46612 <rtems_aio_handle+0x200>         
	      AIO_printf ("Chain is empty [IQ], wait for work\n");	          
                                                                      
	      ++aio_request_queue.idle_threads;                              
	      --aio_request_queue.active_threads;                            
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
   465c2:	2f02           	movel %d2,%sp@-                             
   465c4:	4878 0001      	pea 1 <ADD>                                 
	    /* If the idle chain is empty sleep for 3 seconds and wait for a 
	       signal. The thread now becomes idle. */                       
	    if (rtems_chain_is_empty (&aio_request_queue.idle_req)) {        
	      AIO_printf ("Chain is empty [IQ], wait for work\n");	          
                                                                      
	      ++aio_request_queue.idle_threads;                              
   465c8:	52b9 0006 13e0 	addql #1,613e0 <aio_request_queue+0x68>     
	      --aio_request_queue.active_threads;                            
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
   465ce:	2046           	moveal %d6,%a0                              
	       signal. The thread now becomes idle. */                       
	    if (rtems_chain_is_empty (&aio_request_queue.idle_req)) {        
	      AIO_printf ("Chain is empty [IQ], wait for work\n");	          
                                                                      
	      ++aio_request_queue.idle_threads;                              
	      --aio_request_queue.active_threads;                            
   465d0:	53b9 0006 13dc 	subql #1,613dc <aio_request_queue+0x64>     
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
   465d6:	4e90           	jsr %a0@                                    
	      timeout.tv_sec += 3;                                           
   465d8:	56ae fff4      	addql #3,%fp@(-12)                          
	      timeout.tv_nsec = 0;                                           
                                                                      
	      result = pthread_cond_timedwait (&aio_request_queue.new_req,   
   465dc:	2045           	moveal %d5,%a0                              
   465de:	2f02           	movel %d2,%sp@-                             
   465e0:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   465e6:	4879 0006 137c 	pea 6137c <aio_request_queue+0x4>           
                                                                      
	      ++aio_request_queue.idle_threads;                              
	      --aio_request_queue.active_threads;                            
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
	      timeout.tv_sec += 3;                                           
	      timeout.tv_nsec = 0;                                           
   465ec:	42ae fff8      	clrl %fp@(-8)                               
                                                                      
	      result = pthread_cond_timedwait (&aio_request_queue.new_req,   
   465f0:	4e90           	jsr %a0@                                    
					       &aio_request_queue.mutex,                                 
					       &timeout);                                                
	                                                                     
	      /* If no new fd chain was added in the idle requests           
		 then this thread is finished */                                    
	      if (result == ETIMEDOUT) {                                     
   465f2:	4fef 0014      	lea %sp@(20),%sp                            
   465f6:	7274           	moveq #116,%d1                              
   465f8:	b280           	cmpl %d0,%d1                                
   465fa:	6616           	bnes 46612 <rtems_aio_handle+0x200>         <== NEVER TAKEN
		AIO_printf ("Etimeout\n");                                          
		--aio_request_queue.idle_threads;                                   
		pthread_mutex_unlock (&aio_request_queue.mutex);                    
   465fc:	4879 0006 1378 	pea 61378 <aio_request_queue>               
	                                                                     
	      /* If no new fd chain was added in the idle requests           
		 then this thread is finished */                                    
	      if (result == ETIMEDOUT) {                                     
		AIO_printf ("Etimeout\n");                                          
		--aio_request_queue.idle_threads;                                   
   46602:	53b9 0006 13e0 	subql #1,613e0 <aio_request_queue+0x68>     
		pthread_mutex_unlock (&aio_request_queue.mutex);                    
   46608:	4eb9 0004 7110 	jsr 47110 <pthread_mutex_unlock>            
		return NULL;                                                        
   4660e:	588f           	addql #4,%sp                                
   46610:	602e           	bras 46640 <rtems_aio_handle+0x22e>         
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   46612:	2479 0006 13cc 	moveal 613cc <aio_request_queue+0x54>,%a2   
	      }                                                              
	    }                                                                
	    /* Otherwise move this chain to the working chain and            
	       start the loop all over again */                              
	    AIO_printf ("Work on idle\n");                                   
	    --aio_request_queue.idle_threads;                                
   46618:	53b9 0006 13e0 	subql #1,613e0 <aio_request_queue+0x68>     
	    ++aio_request_queue.active_threads;                              
   4661e:	52b9 0006 13dc 	addql #1,613dc <aio_request_queue+0x64>     
   46624:	2f0a           	movel %a2,%sp@-                             
   46626:	4e94           	jsr %a4@                                    
                                                                      
	    node = rtems_chain_first (&aio_request_queue.idle_req);          
	    rtems_chain_extract (node);                                      
                                                                      
	    r_chain = (rtems_aio_request_chain *) node;                      
	    rtems_aio_move_to_work (r_chain);                                
   46628:	2f0a           	movel %a2,%sp@-                             
   4662a:	4eb9 0004 63dc 	jsr 463dc <rtems_aio_move_to_work>          
   46630:	508f           	addql #8,%sp                                
	                                                                     
	  }                                                                  
	}                                                                    
      /* If there was a request added in the initial fd chain then release
	 the mutex and process it */                                         
      pthread_mutex_unlock (&aio_request_queue.mutex);                
   46632:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   46638:	4e95           	jsr %a5@                                    
   4663a:	588f           	addql #4,%sp                                
   4663c:	6000 fe0e      	braw 4644c <rtems_aio_handle+0x3a>          
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   46640:	4280           	clrl %d0                                    
   46642:	4cee 3cfc ffa8 	moveml %fp@(-88),%d2-%d7/%a2-%a5            
   46648:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046260 <rtems_aio_init>: * 0 - if initialization succeeded */ int rtems_aio_init (void) {
   46260:	4e56 0000      	linkw %fp,#0                                
   46264:	2f02           	movel %d2,%sp@-                             
  int result = 0;                                                     
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
   46266:	4879 0006 1380 	pea 61380 <aio_request_queue+0x8>           
   4626c:	4eb9 0004 721c 	jsr 4721c <pthread_attr_init>               
  if (result != 0)                                                    
   46272:	588f           	addql #4,%sp                                
int                                                                   
rtems_aio_init (void)                                                 
{                                                                     
  int result = 0;                                                     
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
   46274:	2400           	movel %d0,%d2                               
  if (result != 0)                                                    
   46276:	6600 00c8      	bnew 46340 <rtems_aio_init+0xe0>            
    return result;                                                    
                                                                      
  result =                                                            
   4627a:	42a7           	clrl %sp@-                                  
   4627c:	4879 0006 1380 	pea 61380 <aio_request_queue+0x8>           
   46282:	4eb9 0004 7248 	jsr 47248 <pthread_attr_setdetachstate>     
    pthread_attr_setdetachstate (&aio_request_queue.attr,             
                                 PTHREAD_CREATE_DETACHED);            
  if (result != 0)                                                    
   46288:	508f           	addql #8,%sp                                
   4628a:	4a80           	tstl %d0                                    
   4628c:	670e           	beqs 4629c <rtems_aio_init+0x3c>            <== ALWAYS TAKEN
    pthread_attr_destroy (&aio_request_queue.attr);                   
   4628e:	4879 0006 1380 	pea 61380 <aio_request_queue+0x8>           <== NOT EXECUTED
   46294:	4eb9 0004 7200 	jsr 47200 <pthread_attr_destroy>            <== NOT EXECUTED
   4629a:	588f           	addql #4,%sp                                <== NOT EXECUTED
                                                                      
                                                                      
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
   4629c:	42a7           	clrl %sp@-                                  
   4629e:	4879 0006 1378 	pea 61378 <aio_request_queue>               
   462a4:	4eb9 0004 6f60 	jsr 46f60 <pthread_mutex_init>              
  if (result != 0)                                                    
   462aa:	508f           	addql #8,%sp                                
   462ac:	4a80           	tstl %d0                                    
   462ae:	670e           	beqs 462be <rtems_aio_init+0x5e>            <== ALWAYS TAKEN
    pthread_attr_destroy (&aio_request_queue.attr);                   
   462b0:	4879 0006 1380 	pea 61380 <aio_request_queue+0x8>           <== NOT EXECUTED
   462b6:	4eb9 0004 7200 	jsr 47200 <pthread_attr_destroy>            <== NOT EXECUTED
   462bc:	588f           	addql #4,%sp                                <== NOT EXECUTED
                                                                      
                                                                      
  result = pthread_cond_init (&aio_request_queue.new_req, NULL);      
   462be:	42a7           	clrl %sp@-                                  
   462c0:	4879 0006 137c 	pea 6137c <aio_request_queue+0x4>           
   462c6:	4eb9 0004 6c00 	jsr 46c00 <pthread_cond_init>               
  if (result != 0) {                                                  
   462cc:	508f           	addql #8,%sp                                
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
  if (result != 0)                                                    
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_cond_init (&aio_request_queue.new_req, NULL);      
   462ce:	2400           	movel %d0,%d2                               
  if (result != 0) {                                                  
   462d0:	671a           	beqs 462ec <rtems_aio_init+0x8c>            <== ALWAYS TAKEN
    pthread_mutex_destroy (&aio_request_queue.mutex);                 
   462d2:	4879 0006 1378 	pea 61378 <aio_request_queue>               <== NOT EXECUTED
   462d8:	4eb9 0004 6e40 	jsr 46e40 <pthread_mutex_destroy>           <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
   462de:	4879 0006 1380 	pea 61380 <aio_request_queue+0x8>           <== NOT EXECUTED
   462e4:	4eb9 0004 7200 	jsr 47200 <pthread_attr_destroy>            <== NOT EXECUTED
   462ea:	508f           	addql #8,%sp                                <== NOT EXECUTED
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   462ec:	42b9 0006 13c4 	clrl 613c4 <aio_request_queue+0x4c>         
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   462f2:	203c 0006 13c4 	movel #398276,%d0                           
   462f8:	23c0 0006 13c0 	movel %d0,613c0 <aio_request_queue+0x48>    
  head->previous = NULL;                                              
  tail->previous = head;                                              
   462fe:	203c 0006 13c0 	movel #398272,%d0                           
   46304:	23c0 0006 13c8 	movel %d0,613c8 <aio_request_queue+0x50>    
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
   4630a:	203c 0006 13d0 	movel #398288,%d0                           
   46310:	23c0 0006 13cc 	movel %d0,613cc <aio_request_queue+0x54>    
  head->previous = NULL;                                              
  tail->previous = head;                                              
   46316:	203c 0006 13cc 	movel #398284,%d0                           
   4631c:	23c0 0006 13d4 	movel %d0,613d4 <aio_request_queue+0x5c>    
  rtems_chain_initialize_empty (&aio_request_queue.work_req);         
  rtems_chain_initialize_empty (&aio_request_queue.idle_req);         
                                                                      
  aio_request_queue.active_threads = 0;                               
  aio_request_queue.idle_threads = 0;                                 
  aio_request_queue.initialized = AIO_QUEUE_INITIALIZED;              
   46322:	203c 0000 b00b 	movel #45067,%d0                            
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
   46328:	42b9 0006 13d0 	clrl 613d0 <aio_request_queue+0x58>         
  }                                                                   
                                                                      
  rtems_chain_initialize_empty (&aio_request_queue.work_req);         
  rtems_chain_initialize_empty (&aio_request_queue.idle_req);         
                                                                      
  aio_request_queue.active_threads = 0;                               
   4632e:	42b9 0006 13dc 	clrl 613dc <aio_request_queue+0x64>         
  aio_request_queue.idle_threads = 0;                                 
   46334:	42b9 0006 13e0 	clrl 613e0 <aio_request_queue+0x68>         
  aio_request_queue.initialized = AIO_QUEUE_INITIALIZED;              
   4633a:	23c0 0006 13d8 	movel %d0,613d8 <aio_request_queue+0x60>    
                                                                      
  return result;                                                      
}                                                                     
   46340:	2002           	movel %d2,%d0                               
   46342:	242e fffc      	movel %fp@(-4),%d2                          
   46346:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004664c <rtems_aio_insert_prio>: * NONE */ void rtems_aio_insert_prio (rtems_chain_control *chain, rtems_aio_request *req) {
   4664c:	4e56 0000      	linkw %fp,#0                                
   46650:	202e 0008      	movel %fp@(8),%d0                           
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   46654:	2240           	moveal %d0,%a1                              
 *        NONE                                                        
 */                                                                   
                                                                      
void                                                                  
rtems_aio_insert_prio (rtems_chain_control *chain, rtems_aio_request *req)
{                                                                     
   46656:	2f0b           	movel %a3,%sp@-                             
   46658:	2f0a           	movel %a2,%sp@-                             
   4665a:	246e 000c      	moveal %fp@(12),%a2                         
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   4665e:	2059           	moveal %a1@+,%a0                            
  rtems_chain_node *node;                                             
                                                                      
  AIO_printf ("FD exists \n");                                        
  node = rtems_chain_first (chain);                                   
                                                                      
  if (rtems_chain_is_empty (chain)) {                                 
   46660:	b3c8           	cmpal %a0,%a1                               
   46662:	672e           	beqs 46692 <rtems_aio_insert_prio+0x46>     <== NEVER TAKEN
    AIO_printf ("First in chain \n");                                 
    rtems_chain_prepend (chain, &req->next_prio);                     
  } else {                                                            
    AIO_printf ("Add by priority \n");                                
    int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;     
   46664:	2668 0014      	moveal %a0@(20),%a3                         
   46668:	202b 0014      	movel %a3@(20),%d0                          
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
   4666c:	266a 0014      	moveal %a2@(20),%a3                         
   46670:	222b 0014      	movel %a3@(20),%d1                          
   46674:	600a           	bras 46680 <rtems_aio_insert_prio+0x34>     
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   46676:	2050           	moveal %a0@,%a0                             <== NOT EXECUTED
    int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;     
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
           !rtems_chain_is_tail (chain, node)) {                      
      node = rtems_chain_next (node);                                 
      prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;       
   46678:	2668 0014      	moveal %a0@(20),%a3                         <== NOT EXECUTED
   4667c:	202b 0014      	movel %a3@(20),%d0                          <== NOT EXECUTED
    rtems_chain_prepend (chain, &req->next_prio);                     
  } else {                                                            
    AIO_printf ("Add by priority \n");                                
    int prio = ((rtems_aio_request *) node)->aiocbp->aio_reqprio;     
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
   46680:	b081           	cmpl %d1,%d0                                
   46682:	6c04           	bges 46688 <rtems_aio_insert_prio+0x3c>     <== ALWAYS TAKEN
   46684:	b3c8           	cmpal %a0,%a1                               <== NOT EXECUTED
   46686:	66ee           	bnes 46676 <rtems_aio_insert_prio+0x2a>     <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void rtems_chain_insert(                         
  rtems_chain_node *after_node,                                       
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Insert( after_node, the_node );                              
   46688:	2d4a 000c      	movel %a2,%fp@(12)                          
   4668c:	2d68 0004 0008 	movel %a0@(4),%fp@(8)                       
    }                                                                 
                                                                      
    rtems_chain_insert (node->previous, &req->next_prio);             
                                                                      
  }                                                                   
}                                                                     
   46692:	245f           	moveal %sp@+,%a2                            
   46694:	265f           	moveal %sp@+,%a3                            
   46696:	4e5e           	unlk %fp                                    
   46698:	4ef9 0004 8914 	jmp 48914 <_Chain_Insert>                   
                                                                      

000463dc <rtems_aio_move_to_work>: * NONE */ void rtems_aio_move_to_work (rtems_aio_request_chain *r_chain) {
   463dc:	4e56 0000      	linkw %fp,#0                                
   463e0:	226e 0008      	moveal %fp@(8),%a1                          
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   463e4:	2079 0006 13c0 	moveal 613c0 <aio_request_queue+0x48>,%a0   
  rtems_chain_node *node;                                             
                                                                      
  node = rtems_chain_first (&aio_request_queue.work_req);             
  temp = (rtems_aio_request_chain *) node;                            
                                                                      
  while (temp->fildes < r_chain->fildes &&                            
   463ea:	2029 0014      	movel %a1@(20),%d0                          
   463ee:	6002           	bras 463f2 <rtems_aio_move_to_work+0x16>    
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   463f0:	2050           	moveal %a0@,%a0                             
  rtems_chain_node *node;                                             
                                                                      
  node = rtems_chain_first (&aio_request_queue.work_req);             
  temp = (rtems_aio_request_chain *) node;                            
                                                                      
  while (temp->fildes < r_chain->fildes &&                            
   463f2:	b0a8 0014      	cmpl %a0@(20),%d0                           
   463f6:	6f08           	bles 46400 <rtems_aio_move_to_work+0x24>    
   463f8:	b1fc 0006 13c4 	cmpal #398276,%a0                           
   463fe:	66f0           	bnes 463f0 <rtems_aio_move_to_work+0x14>    <== ALWAYS TAKEN
   46400:	2f09           	movel %a1,%sp@-                             
   46402:	2f28 0004      	movel %a0@(4),%sp@-                         
   46406:	4eb9 0004 8914 	jsr 48914 <_Chain_Insert>                   
   4640c:	508f           	addql #8,%sp                                
    node = rtems_chain_next (node);                                   
    temp = (rtems_aio_request_chain *) node;                          
  }                                                                   
                                                                      
  rtems_chain_insert (rtems_chain_previous (node), &r_chain->next_fd);
}                                                                     
   4640e:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000466f4 <rtems_aio_remove_req>: * AIO_NOTCANCELED - if request was not canceled * AIO_CANCELED - if request was canceled */ int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp) {
   466f4:	4e56 0000      	linkw %fp,#0                                
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   466f8:	206e 0008      	moveal %fp@(8),%a0                          
 *         AIO_NOTCANCELED   - if request was not canceled            
 *         AIO_CANCELED      - if request was canceled                
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
   466fc:	2f0a           	movel %a2,%sp@-                             
   466fe:	202e 000c      	movel %fp@(12),%d0                          
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   46702:	2458           	moveal %a0@+,%a2                            
 *         AIO_CANCELED      - if request was canceled                
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
  if (rtems_chain_is_empty (chain))                                   
   46704:	b1ca           	cmpal %a2,%a0                               
   46706:	6608           	bnes 46710 <rtems_aio_remove_req+0x1c>      
   46708:	6038           	bras 46742 <rtems_aio_remove_req+0x4e>      
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
   4670a:	2451           	moveal %a1@,%a2                             <== NOT EXECUTED
  rtems_chain_node *node = rtems_chain_first (chain);                 
  rtems_aio_request *current;                                         
                                                                      
  current = (rtems_aio_request *) node;                               
                                                                      
  while (!rtems_chain_is_tail (chain, node) && current->aiocbp != aiocbp) {
   4670c:	b1ca           	cmpal %a2,%a0                               <== NOT EXECUTED
   4670e:	6736           	beqs 46746 <rtems_aio_remove_req+0x52>      <== NOT EXECUTED
    node = rtems_chain_next (node);                                   
    current = (rtems_aio_request *) node;                             
   46710:	224a           	moveal %a2,%a1                              
  rtems_chain_node *node = rtems_chain_first (chain);                 
  rtems_aio_request *current;                                         
                                                                      
  current = (rtems_aio_request *) node;                               
                                                                      
  while (!rtems_chain_is_tail (chain, node) && current->aiocbp != aiocbp) {
   46712:	b0aa 0014      	cmpl %a2@(20),%d0                           
   46716:	66f2           	bnes 4670a <rtems_aio_remove_req+0x16>      <== NEVER TAKEN
   46718:	2f0a           	movel %a2,%sp@-                             
   4671a:	4eb9 0004 88b8 	jsr 488b8 <_Chain_Extract>                  
  if (rtems_chain_is_tail (chain, node))                              
    return AIO_NOTCANCELED;                                           
  else                                                                
    {                                                                 
      rtems_chain_extract (node);                                     
      current->aiocbp->error_code = ECANCELED;                        
   46720:	206a 0014      	moveal %a2@(20),%a0                         
   46724:	203c 0000 008c 	movel #140,%d0                              
   4672a:	2140 0030      	movel %d0,%a0@(48)                          
      current->aiocbp->return_value = -1;                             
   4672e:	70ff           	moveq #-1,%d0                               
   46730:	2140 0034      	movel %d0,%a0@(52)                          
      free (current);                                                 
   46734:	2f0a           	movel %a2,%sp@-                             
   46736:	4eb9 0004 3434 	jsr 43434 <free>                            
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
   4673c:	508f           	addql #8,%sp                                
   4673e:	4280           	clrl %d0                                    
   46740:	6006           	bras 46748 <rtems_aio_remove_req+0x54>      
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
  if (rtems_chain_is_empty (chain))                                   
    return AIO_ALLDONE;                                               
   46742:	7002           	moveq #2,%d0                                
   46744:	6002           	bras 46748 <rtems_aio_remove_req+0x54>      
    node = rtems_chain_next (node);                                   
    current = (rtems_aio_request *) node;                             
  }                                                                   
                                                                      
  if (rtems_chain_is_tail (chain, node))                              
    return AIO_NOTCANCELED;                                           
   46746:	7001           	moveq #1,%d0                                <== NOT EXECUTED
      current->aiocbp->return_value = -1;                             
      free (current);                                                 
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
}                                                                     
   46748:	246e fffc      	moveal %fp@(-4),%a2                         
   4674c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004cf60 <rtems_barrier_delete>: */ rtems_status_code rtems_barrier_delete( rtems_id id ) {
   4cf60:	4e56 fffc      	linkw %fp,#-4                               
   4cf64:	2f0a           	movel %a2,%sp@-                             
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Barrier_Control *)                                          
    _Objects_Get( &_Barrier_Information, id, location );              
   4cf66:	486e fffc      	pea %fp@(-4)                                
   4cf6a:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4cf6e:	4879 0006 15b8 	pea 615b8 <_Barrier_Information>            
   4cf74:	4eb9 0004 8c14 	jsr 48c14 <_Objects_Get>                    
  Barrier_Control   *the_barrier;                                     
  Objects_Locations  location;                                        
                                                                      
  the_barrier = _Barrier_Get( id, &location );                        
  switch ( location ) {                                               
   4cf7a:	4fef 000c      	lea %sp@(12),%sp                            
   4cf7e:	2440           	moveal %d0,%a2                              
   4cf80:	4aae fffc      	tstl %fp@(-4)                               
   4cf84:	663a           	bnes 4cfc0 <rtems_barrier_delete+0x60>      <== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_barrier_Flush(                                            
   4cf86:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   4cf8a:	42a7           	clrl %sp@-                                  
   4cf8c:	486a 0014      	pea %a2@(20)                                
   4cf90:	4eb9 0004 9db8 	jsr 49db8 <_Thread_queue_Flush>             
        &the_barrier->Barrier,                                        
        NULL,                                                         
        CORE_BARRIER_WAS_DELETED                                      
      );                                                              
                                                                      
      _Objects_Close( &_Barrier_Information, &the_barrier->Object );  
   4cf96:	2f0a           	movel %a2,%sp@-                             
   4cf98:	4879 0006 15b8 	pea 615b8 <_Barrier_Information>            
   4cf9e:	4eb9 0004 883c 	jsr 4883c <_Objects_Close>                  
 */                                                                   
RTEMS_INLINE_ROUTINE void _Barrier_Free (                             
  Barrier_Control *the_barrier                                        
)                                                                     
{                                                                     
  _Objects_Free( &_Barrier_Information, &the_barrier->Object );       
   4cfa4:	2f0a           	movel %a2,%sp@-                             
   4cfa6:	4879 0006 15b8 	pea 615b8 <_Barrier_Information>            
   4cfac:	4eb9 0004 8ab0 	jsr 48ab0 <_Objects_Free>                   
                                                                      
      _Barrier_Free( the_barrier );                                   
                                                                      
      _Thread_Enable_dispatch();                                      
   4cfb2:	4eb9 0004 977a 	jsr 4977a <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   4cfb8:	4fef 001c      	lea %sp@(28),%sp                            
   4cfbc:	4280           	clrl %d0                                    
   4cfbe:	6002           	bras 4cfc2 <rtems_barrier_delete+0x62>      
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   4cfc0:	7004           	moveq #4,%d0                                
}                                                                     
   4cfc2:	246e fff8      	moveal %fp@(-8),%a2                         
   4cfc6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000464a4 <rtems_chain_get_with_wait>: rtems_chain_control *chain, rtems_event_set events, rtems_interval timeout, rtems_chain_node **node_ptr ) {
   464a4:	4e56 ffe0      	linkw %fp,#-32                              
   464a8:	48d7 0c7c      	moveml %d2-%d6/%a2-%a3,%sp@                 
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
   464ac:	260e           	movel %fp,%d3                               
 */                                                                   
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(               
  rtems_chain_control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Get( the_chain );                                     
   464ae:	47f9 0004 6a80 	lea 46a80 <_Chain_Get>,%a3                  
   464b4:	5983           	subql #4,%d3                                
   464b6:	45f9 0004 5930 	lea 45930 <rtems_event_receive>,%a2         
  rtems_chain_control *chain,                                         
  rtems_event_set events,                                             
  rtems_interval timeout,                                             
  rtems_chain_node **node_ptr                                         
)                                                                     
{                                                                     
   464bc:	2c2e 0008      	movel %fp@(8),%d6                           
   464c0:	2a2e 000c      	movel %fp@(12),%d5                          
   464c4:	282e 0010      	movel %fp@(16),%d4                          
   464c8:	6012           	bras 464dc <rtems_chain_get_with_wait+0x38> 
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
   464ca:	2f03           	movel %d3,%sp@-                             
   464cc:	2f04           	movel %d4,%sp@-                             
   464ce:	42a7           	clrl %sp@-                                  
   464d0:	2f05           	movel %d5,%sp@-                             
   464d2:	4e92           	jsr %a2@                                    
)                                                                     
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
   464d4:	4fef 0010      	lea %sp@(16),%sp                            
   464d8:	4a80           	tstl %d0                                    
   464da:	660c           	bnes 464e8 <rtems_chain_get_with_wait+0x44> <== ALWAYS TAKEN
   464dc:	2f06           	movel %d6,%sp@-                             
   464de:	4e93           	jsr %a3@                                    
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
   464e0:	588f           	addql #4,%sp                                
   464e2:	2400           	movel %d0,%d2                               
   464e4:	67e4           	beqs 464ca <rtems_chain_get_with_wait+0x26> 
   464e6:	4280           	clrl %d0                                    
      timeout,                                                        
      &out                                                            
    );                                                                
  }                                                                   
                                                                      
  *node_ptr = node;                                                   
   464e8:	206e 0014      	moveal %fp@(20),%a0                         
   464ec:	2082           	movel %d2,%a0@                              
                                                                      
  return sc;                                                          
}                                                                     
   464ee:	4cee 0c7c ffe0 	moveml %fp@(-32),%d2-%d6/%a2-%a3            
   464f4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004f3b8 <rtems_clock_get_tod_timeval>: #include <rtems/score/watchdog.h> rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) {
   4f3b8:	4e56 fff8      	linkw %fp,#-8                               
   4f3bc:	2f0a           	movel %a2,%sp@-                             
   4f3be:	246e 0008      	moveal %fp@(8),%a2                          
   4f3c2:	2f02           	movel %d2,%sp@-                             
  if ( !time )                                                        
   4f3c4:	4a8a           	tstl %a2                                    
   4f3c6:	673c           	beqs 4f404 <rtems_clock_get_tod_timeval+0x4c><== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
   4f3c8:	4a39 0007 752c 	tstb 7752c <_TOD_Is_set>                    
   4f3ce:	6738           	beqs 4f408 <rtems_clock_get_tod_timeval+0x50><== NEVER TAKEN
{                                                                     
  ISR_Level       level;                                              
  struct timespec now;                                                
  suseconds_t     useconds;                                           
                                                                      
  _ISR_Disable(level);                                                
   4f3d0:	203c 0000 0700 	movel #1792,%d0                             
   4f3d6:	40c2           	movew %sr,%d2                               
   4f3d8:	8082           	orl %d2,%d0                                 
   4f3da:	46c0           	movew %d0,%sr                               
    _TOD_Get( &now );                                                 
   4f3dc:	486e fff8      	pea %fp@(-8)                                
   4f3e0:	4eb9 0005 355c 	jsr 5355c <_TOD_Get>                        
  _ISR_Enable(level);                                                 
   4f3e6:	46c2           	movew %d2,%sr                               
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
  time->tv_usec = useconds;                                           
   4f3e8:	243c 0000 03e8 	movel #1000,%d2                             
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4f3ee:	588f           	addql #4,%sp                                
                                                                      
  _ISR_Disable(level);                                                
    _TOD_Get( &now );                                                 
  _ISR_Enable(level);                                                 
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
   4f3f0:	202e fffc      	movel %fp@(-4),%d0                          
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
  time->tv_usec = useconds;                                           
   4f3f4:	4c42 0800      	remsl %d2,%d0,%d0                           
  _ISR_Enable(level);                                                 
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
                                                                      
  time->tv_sec  = now.tv_sec;                                         
   4f3f8:	24ae fff8      	movel %fp@(-8),%a2@                         
  time->tv_usec = useconds;                                           
   4f3fc:	2540 0004      	movel %d0,%a2@(4)                           
   4f400:	4280           	clrl %d0                                    
   4f402:	6006           	bras 4f40a <rtems_clock_get_tod_timeval+0x52>
rtems_status_code rtems_clock_get_tod_timeval(                        
  struct timeval  *time                                               
)                                                                     
{                                                                     
  if ( !time )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
   4f404:	7009           	moveq #9,%d0                                
   4f406:	6002           	bras 4f40a <rtems_clock_get_tod_timeval+0x52>
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
   4f408:	700b           	moveq #11,%d0                               
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4f40a:	242e fff0      	movel %fp@(-16),%d2                         
   4f40e:	246e fff4      	moveal %fp@(-12),%a2                        
   4f412:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004ca08 <rtems_deviceio_errno>: [RTEMS_IO_ERROR] = EIO, [RTEMS_PROXY_BLOCKING] = EIO }; int rtems_deviceio_errno(rtems_status_code sc) {
   4ca08:	4e56 0000      	linkw %fp,#0                                
   4ca0c:	202e 0008      	movel %fp@(8),%d0                           
   4ca10:	2f02           	movel %d2,%sp@-                             
  if (sc == RTEMS_SUCCESSFUL) {                                       
   4ca12:	4a80           	tstl %d0                                    
   4ca14:	6722           	beqs 4ca38 <rtems_deviceio_errno+0x30>      
    return 0;                                                         
  } else {                                                            
    int eno = EINVAL;                                                 
                                                                      
    if ((unsigned) sc <= RTEMS_STATUS_CODES_LAST) {                   
   4ca16:	721c           	moveq #28,%d1                               
   4ca18:	b280           	cmpl %d0,%d1                                
   4ca1a:	650c           	bcss 4ca28 <rtems_deviceio_errno+0x20>      <== NEVER TAKEN
      eno = status_code_to_errno [sc];                                
   4ca1c:	41f9 0005 c6b6 	lea 5c6b6 <status_code_to_errno>,%a0        
   4ca22:	2430 0c00      	movel %a0@(00000000,%d0:l:4),%d2            
   4ca26:	6002           	bras 4ca2a <rtems_deviceio_errno+0x22>      
int rtems_deviceio_errno(rtems_status_code sc)                        
{                                                                     
  if (sc == RTEMS_SUCCESSFUL) {                                       
    return 0;                                                         
  } else {                                                            
    int eno = EINVAL;                                                 
   4ca28:	7416           	moveq #22,%d2                               <== NOT EXECUTED
                                                                      
    if ((unsigned) sc <= RTEMS_STATUS_CODES_LAST) {                   
      eno = status_code_to_errno [sc];                                
    }                                                                 
                                                                      
    errno = eno;                                                      
   4ca2a:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4ca30:	2040           	moveal %d0,%a0                              
                                                                      
    return -1;                                                        
   4ca32:	70ff           	moveq #-1,%d0                               
                                                                      
    if ((unsigned) sc <= RTEMS_STATUS_CODES_LAST) {                   
      eno = status_code_to_errno [sc];                                
    }                                                                 
                                                                      
    errno = eno;                                                      
   4ca34:	2082           	movel %d2,%a0@                              
                                                                      
    return -1;                                                        
   4ca36:	6002           	bras 4ca3a <rtems_deviceio_errno+0x32>      
};                                                                    
                                                                      
int rtems_deviceio_errno(rtems_status_code sc)                        
{                                                                     
  if (sc == RTEMS_SUCCESSFUL) {                                       
    return 0;                                                         
   4ca38:	4280           	clrl %d0                                    
                                                                      
    errno = eno;                                                      
                                                                      
    return -1;                                                        
  }                                                                   
}                                                                     
   4ca3a:	242e fffc      	movel %fp@(-4),%d2                          
   4ca3e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049dc6 <rtems_filesystem_get_mount_handler>: rtems_filesystem_fsmount_me_t rtems_filesystem_get_mount_handler( const char *type ) {
   49dc6:	4e56 fff8      	linkw %fp,#-8                               
   49dca:	202e 0008      	movel %fp@(8),%d0                           
  find_arg fa = {                                                     
   49dce:	42ae fffc      	clrl %fp@(-4)                               
   49dd2:	2d40 fff8      	movel %d0,%fp@(-8)                          
    .type = type,                                                     
    .mount_h = NULL                                                   
  };                                                                  
                                                                      
  if ( type != NULL ) {                                               
   49dd6:	6710           	beqs 49de8 <rtems_filesystem_get_mount_handler+0x22><== NEVER TAKEN
    rtems_filesystem_iterate( find_handler, &fa );                    
   49dd8:	486e fff8      	pea %fp@(-8)                                
   49ddc:	487a ff16      	pea %pc@(49cf4 <find_handler>)              
   49de0:	4eb9 0004 9d5e 	jsr 49d5e <rtems_filesystem_iterate>        
   49de6:	508f           	addql #8,%sp                                
  }                                                                   
                                                                      
  return fa.mount_h;                                                  
}                                                                     
   49de8:	202e fffc      	movel %fp@(-4),%d0                          
   49dec:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00042560 <rtems_filesystem_initialize>: /* * Set the default umask to "022". */ rtems_filesystem_umask = 022;
   42560:	7012           	moveq #18,%d0                               
 *  configuration is a single instantiation of the IMFS or miniIMFS with
 *  a single "/dev" directory in it.                                  
 */                                                                   
                                                                      
void rtems_filesystem_initialize( void )                              
{                                                                     
   42562:	4e56 ffe0      	linkw %fp,#-32                              
                                                                      
  /*                                                                  
   *  Set the default umask to "022".                                 
   */                                                                 
                                                                      
  rtems_filesystem_umask = 022;                                       
   42566:	2079 0005 d244 	moveal 5d244 <rtems_current_user_env>,%a0   
 *  configuration is a single instantiation of the IMFS or miniIMFS with
 *  a single "/dev" directory in it.                                  
 */                                                                   
                                                                      
void rtems_filesystem_initialize( void )                              
{                                                                     
   4256c:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
                                                                      
  /*                                                                  
   *  Set the default umask to "022".                                 
   */                                                                 
                                                                      
  rtems_filesystem_umask = 022;                                       
   42570:	2140 002c      	movel %d0,%a0@(44)                          
                                                                      
  /*                                                                  
   *  mount the first filesystem.                                     
   */                                                                 
  if ( rtems_filesystem_mount_table_size == 0 )                       
   42574:	4ab9 0005 b54e 	tstl 5b54e <rtems_filesystem_mount_table_size>
   4257a:	6608           	bnes 42584 <rtems_filesystem_initialize+0x24><== ALWAYS TAKEN
    rtems_fatal_error_occurred( 0xABCD0001 );                         
   4257c:	2f3c abcd 0001 	movel #-1412628479,%sp@-                    <== NOT EXECUTED
   42582:	602c           	bras 425b0 <rtems_filesystem_initialize+0x50><== NOT EXECUTED
                                                                      
  mt = &rtems_filesystem_mount_table[0];                              
   42584:	2079 0005 cffc 	moveal 5cffc <rtems_filesystem_mount_table>,%a0
                                                                      
  status = mount( mt->device, mt->mount_point, mt->type, mt->fsoptions, NULL );
   4258a:	42a7           	clrl %sp@-                                  
   4258c:	2f28 0004      	movel %a0@(4),%sp@-                         
   42590:	2f10           	movel %a0@,%sp@-                            
   42592:	2f28 000c      	movel %a0@(12),%sp@-                        
   42596:	2f28 0008      	movel %a0@(8),%sp@-                         
   4259a:	4eb9 0004 2ef8 	jsr 42ef8 <mount>                           
  if ( status == -1 )                                                 
   425a0:	4fef 0014      	lea %sp@(20),%sp                            
   425a4:	72ff           	moveq #-1,%d1                               
   425a6:	b280           	cmpl %d0,%d1                                
   425a8:	660c           	bnes 425b6 <rtems_filesystem_initialize+0x56><== ALWAYS TAKEN
    rtems_fatal_error_occurred( 0xABCD0002 );                         
   425aa:	2f3c abcd 0002 	movel #-1412628478,%sp@-                    <== NOT EXECUTED
   425b0:	4eb9 0004 5efc 	jsr 45efc <rtems_fatal_error_occurred>      <== NOT EXECUTED
                                                                      
  rtems_filesystem_link_counts = 0;                                   
   425b6:	2079 0005 d244 	moveal 5d244 <rtems_current_user_env>,%a0   
   *       gonna hit performance.                                     
   *                                                                  
   *       Till Straumann, 10/25/2002                                 
   */                                                                 
  /* Clone the root pathloc */                                        
  rtems_filesystem_evaluate_path("/", 1, 0, &loc, 0);                 
   425bc:	240e           	movel %fp,%d2                               
   425be:	0682 ffff ffec 	addil #-20,%d2                              
   425c4:	47f9 0004 290c 	lea 4290c <rtems_filesystem_evaluate_path>,%a3
  rtems_filesystem_root        = loc;                                 
   425ca:	45f9 0004 d37c 	lea 4d37c <memcpy>,%a2                      
                                                                      
  status = mount( mt->device, mt->mount_point, mt->type, mt->fsoptions, NULL );
  if ( status == -1 )                                                 
    rtems_fatal_error_occurred( 0xABCD0002 );                         
                                                                      
  rtems_filesystem_link_counts = 0;                                   
   425d0:	4240           	clrw %d0                                    
   425d2:	3140 0030      	movew %d0,%a0@(48)                          
   *       gonna hit performance.                                     
   *                                                                  
   *       Till Straumann, 10/25/2002                                 
   */                                                                 
  /* Clone the root pathloc */                                        
  rtems_filesystem_evaluate_path("/", 1, 0, &loc, 0);                 
   425d6:	42a7           	clrl %sp@-                                  
   425d8:	2f02           	movel %d2,%sp@-                             
   425da:	42a7           	clrl %sp@-                                  
   425dc:	4878 0001      	pea 1 <ADD>                                 
   425e0:	4879 0005 bbfe 	pea 5bbfe <IMFS_ops+0x48>                   
   425e6:	4e93           	jsr %a3@                                    
  rtems_filesystem_root        = loc;                                 
   425e8:	4878 0014      	pea 14 <OPER2>                              
   425ec:	2079 0005 d244 	moveal 5d244 <rtems_current_user_env>,%a0   
   425f2:	41e8 0018      	lea %a0@(24),%a0                            
   425f6:	2f02           	movel %d2,%sp@-                             
   425f8:	2f08           	movel %a0,%sp@-                             
   425fa:	4e92           	jsr %a2@                                    
  /* One more clone for the current node */                           
  rtems_filesystem_evaluate_path("/", 1, 0, &loc, 0);                 
   425fc:	4fef 001c      	lea %sp@(28),%sp                            
   42600:	4297           	clrl %sp@                                   
   42602:	2f02           	movel %d2,%sp@-                             
   42604:	42a7           	clrl %sp@-                                  
   42606:	4878 0001      	pea 1 <ADD>                                 
   4260a:	4879 0005 bbfe 	pea 5bbfe <IMFS_ops+0x48>                   
   42610:	4e93           	jsr %a3@                                    
  rtems_filesystem_current     = loc;                                 
   42612:	4878 0014      	pea 14 <OPER2>                              
   42616:	2039 0005 d244 	movel 5d244 <rtems_current_user_env>,%d0    
   4261c:	5880           	addql #4,%d0                                
   4261e:	2f02           	movel %d2,%sp@-                             
   42620:	2f00           	movel %d0,%sp@-                             
   42622:	4e92           	jsr %a2@                                    
   *                                                                  
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).  It is actually
   *        created that way by the IMFS.                             
   */                                                                 
                                                                      
  status = mkdir( "/dev", 0777);                                      
   42624:	4fef 0020      	lea %sp@(32),%sp                            
   42628:	4878 01ff      	pea 1ff <DBL_MANT_DIG+0x1ca>                
   4262c:	4879 0005 bc00 	pea 5bc00 <IMFS_ops+0x4a>                   
   42632:	4eb9 0004 2d80 	jsr 42d80 <mkdir>                           
  if ( status != 0 )                                                  
   42638:	508f           	addql #8,%sp                                
   4263a:	4a80           	tstl %d0                                    
   4263c:	670a           	beqs 42648 <rtems_filesystem_initialize+0xe8><== ALWAYS TAKEN
    rtems_fatal_error_occurred( 0xABCD0003 );                         
   4263e:	2f3c abcd 0003 	movel #-1412628477,%sp@-                    <== NOT EXECUTED
   42644:	6000 ff6a      	braw 425b0 <rtems_filesystem_initialize+0x50><== NOT EXECUTED
   *  it will be mounted onto is created.  Moreover, if it is going to
   *  use a device, then it is REALLY unfair to attempt this          
   *  before device drivers are initialized.  So we return via a base 
   *  filesystem image and nothing auto-mounted at this point.        
   */                                                                 
}                                                                     
   42648:	4cee 0c04 ffe0 	moveml %fp@(-32),%d2/%a2-%a3                
   4264e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049d5e <rtems_filesystem_iterate>: bool rtems_filesystem_iterate( rtems_per_filesystem_routine routine, void *routine_arg ) {
   49d5e:	4e56 fff0      	linkw %fp,#-16                              
  const rtems_filesystem_table_t *table_entry = &rtems_filesystem_table [0];
  rtems_chain_node *node = NULL;                                      
  bool stop = false;                                                  
   49d62:	4200           	clrb %d0                                    
                                                                      
bool rtems_filesystem_iterate(                                        
  rtems_per_filesystem_routine routine,                               
  void *routine_arg                                                   
)                                                                     
{                                                                     
   49d64:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   49d68:	266e 0008      	moveal %fp@(8),%a3                          
  const rtems_filesystem_table_t *table_entry = &rtems_filesystem_table [0];
   49d6c:	45f9 0005 b52e 	lea 5b52e <rtems_filesystem_table>,%a2      
                                                                      
bool rtems_filesystem_iterate(                                        
  rtems_per_filesystem_routine routine,                               
  void *routine_arg                                                   
)                                                                     
{                                                                     
   49d72:	242e 000c      	movel %fp@(12),%d2                          
  const rtems_filesystem_table_t *table_entry = &rtems_filesystem_table [0];
  rtems_chain_node *node = NULL;                                      
  bool stop = false;                                                  
                                                                      
  while ( table_entry->type && !stop ) {                              
   49d76:	600a           	bras 49d82 <rtems_filesystem_iterate+0x24>  
    stop = (*routine)( table_entry, routine_arg );                    
   49d78:	2f02           	movel %d2,%sp@-                             
   49d7a:	2f0a           	movel %a2,%sp@-                             
    ++table_entry;                                                    
   49d7c:	508a           	addql #8,%a2                                
  const rtems_filesystem_table_t *table_entry = &rtems_filesystem_table [0];
  rtems_chain_node *node = NULL;                                      
  bool stop = false;                                                  
                                                                      
  while ( table_entry->type && !stop ) {                              
    stop = (*routine)( table_entry, routine_arg );                    
   49d7e:	4e93           	jsr %a3@                                    
    ++table_entry;                                                    
   49d80:	508f           	addql #8,%sp                                
{                                                                     
  const rtems_filesystem_table_t *table_entry = &rtems_filesystem_table [0];
  rtems_chain_node *node = NULL;                                      
  bool stop = false;                                                  
                                                                      
  while ( table_entry->type && !stop ) {                              
   49d82:	4a92           	tstl %a2@                                   
   49d84:	6706           	beqs 49d8c <rtems_filesystem_iterate+0x2e>  
   49d86:	4a00           	tstb %d0                                    
   49d88:	67ee           	beqs 49d78 <rtems_filesystem_iterate+0x1a>  
   49d8a:	6030           	bras 49dbc <rtems_filesystem_iterate+0x5e>  
   49d8c:	1600           	moveb %d0,%d3                               
    stop = (*routine)( table_entry, routine_arg );                    
    ++table_entry;                                                    
  }                                                                   
                                                                      
  if ( !stop ) {                                                      
   49d8e:	662c           	bnes 49dbc <rtems_filesystem_iterate+0x5e>  
    rtems_libio_lock();                                               
   49d90:	4eba ff9a      	jsr %pc@(49d2c <rtems_libio_lock>)          
    }                                                                 
  }                                                                   
  rtems_libio_unlock();                                               
                                                                      
  rtems_set_errno_and_return_minus_one( ENOENT );                     
}                                                                     
   49d94:	2479 0005 d24c 	moveal 5d24c <filesystem_chain>,%a2         
    ++table_entry;                                                    
  }                                                                   
                                                                      
  if ( !stop ) {                                                      
    rtems_libio_lock();                                               
    for (                                                             
   49d9a:	600e           	bras 49daa <rtems_filesystem_iterate+0x4c>  
      !rtems_chain_is_tail( &filesystem_chain, node ) && !stop;       
      node = rtems_chain_next( node )                                 
    ) {                                                               
      const filesystem_node *fsn = (filesystem_node *) node;          
                                                                      
      stop = (*routine)( &fsn->entry, routine_arg );                  
   49d9c:	2f02           	movel %d2,%sp@-                             
   49d9e:	486a 0008      	pea %a2@(8)                                 
   49da2:	4e93           	jsr %a3@                                    
    }                                                                 
  }                                                                   
  rtems_libio_unlock();                                               
                                                                      
  rtems_set_errno_and_return_minus_one( ENOENT );                     
}                                                                     
   49da4:	2452           	moveal %a2@,%a2                             
  if ( !stop ) {                                                      
    rtems_libio_lock();                                               
    for (                                                             
      node = rtems_chain_first( &filesystem_chain );                  
      !rtems_chain_is_tail( &filesystem_chain, node ) && !stop;       
      node = rtems_chain_next( node )                                 
   49da6:	508f           	addql #8,%sp                                
    ) {                                                               
      const filesystem_node *fsn = (filesystem_node *) node;          
                                                                      
      stop = (*routine)( &fsn->entry, routine_arg );                  
   49da8:	1600           	moveb %d0,%d3                               
    ++table_entry;                                                    
  }                                                                   
                                                                      
  if ( !stop ) {                                                      
    rtems_libio_lock();                                               
    for (                                                             
   49daa:	b5fc 0005 d250 	cmpal #381520,%a2                           
   49db0:	6704           	beqs 49db6 <rtems_filesystem_iterate+0x58>  
      node = rtems_chain_first( &filesystem_chain );                  
      !rtems_chain_is_tail( &filesystem_chain, node ) && !stop;       
   49db2:	4a03           	tstb %d3                                    
   49db4:	67e6           	beqs 49d9c <rtems_filesystem_iterate+0x3e>  <== ALWAYS TAKEN
    ) {                                                               
      const filesystem_node *fsn = (filesystem_node *) node;          
                                                                      
      stop = (*routine)( &fsn->entry, routine_arg );                  
    }                                                                 
    rtems_libio_unlock();                                             
   49db6:	4eba ff90      	jsr %pc@(49d48 <rtems_libio_unlock>)        
   49dba:	1003           	moveb %d3,%d0                               
  }                                                                   
                                                                      
  return stop;                                                        
}                                                                     
   49dbc:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   49dc2:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00042eae <rtems_filesystem_mount_iterate>: bool rtems_filesystem_mount_iterate( rtems_per_filesystem_mount_routine routine, void *routine_arg ) {
   42eae:	4e56 fff0      	linkw %fp,#-16                              
   42eb2:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   42eb6:	266e 0008      	moveal %fp@(8),%a3                          
   42eba:	242e 000c      	movel %fp@(12),%d2                          
  rtems_chain_node *node = NULL;                                      
  bool stop = false;                                                  
                                                                      
  rtems_libio_lock();                                                 
   42ebe:	4eba ffbc      	jsr %pc@(42e7c <rtems_libio_lock>)          
    stop = (*routine)( mt_entry, routine_arg );                       
  }                                                                   
  rtems_libio_unlock();                                               
                                                                      
  return stop;                                                        
}                                                                     
   42ec2:	2479 0005 d128 	moveal 5d128 <mount_chain>,%a2              
  rtems_per_filesystem_mount_routine routine,                         
  void *routine_arg                                                   
)                                                                     
{                                                                     
  rtems_chain_node *node = NULL;                                      
  bool stop = false;                                                  
   42ec8:	4200           	clrb %d0                                    
                                                                      
  rtems_libio_lock();                                                 
  for (                                                               
   42eca:	600a           	bras 42ed6 <rtems_filesystem_mount_iterate+0x28>
    node = rtems_chain_next( node )                                   
  ) {                                                                 
    const rtems_filesystem_mount_table_entry_t *mt_entry =            
      (rtems_filesystem_mount_table_entry_t *) node;                  
                                                                      
    stop = (*routine)( mt_entry, routine_arg );                       
   42ecc:	2f02           	movel %d2,%sp@-                             
   42ece:	2f0a           	movel %a2,%sp@-                             
   42ed0:	4e93           	jsr %a3@                                    
  }                                                                   
  rtems_libio_unlock();                                               
                                                                      
  return stop;                                                        
}                                                                     
   42ed2:	2452           	moveal %a2@,%a2                             
                                                                      
  rtems_libio_lock();                                                 
  for (                                                               
    node = rtems_chain_first( &mount_chain );                         
    !rtems_chain_is_tail( &mount_chain, node ) && !stop;              
    node = rtems_chain_next( node )                                   
   42ed4:	508f           	addql #8,%sp                                
{                                                                     
  rtems_chain_node *node = NULL;                                      
  bool stop = false;                                                  
                                                                      
  rtems_libio_lock();                                                 
  for (                                                               
   42ed6:	b5fc 0005 d12c 	cmpal #381228,%a2                           
   42edc:	6704           	beqs 42ee2 <rtems_filesystem_mount_iterate+0x34>
    node = rtems_chain_first( &mount_chain );                         
    !rtems_chain_is_tail( &mount_chain, node ) && !stop;              
   42ede:	4a00           	tstb %d0                                    
   42ee0:	67ea           	beqs 42ecc <rtems_filesystem_mount_iterate+0x1e><== ALWAYS TAKEN
    const rtems_filesystem_mount_table_entry_t *mt_entry =            
      (rtems_filesystem_mount_table_entry_t *) node;                  
                                                                      
    stop = (*routine)( mt_entry, routine_arg );                       
  }                                                                   
  rtems_libio_unlock();                                               
   42ee2:	2d40 fffc      	movel %d0,%fp@(-4)                          
   42ee6:	4eba ffb0      	jsr %pc@(42e98 <rtems_libio_unlock>)        
                                                                      
  return stop;                                                        
}                                                                     
   42eea:	202e fffc      	movel %fp@(-4),%d0                          
   42eee:	4cee 0c04 fff0 	moveml %fp@(-16),%d2/%a2-%a3                
   42ef4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004299a <rtems_filesystem_prefix_separators>: int rtems_filesystem_prefix_separators( const char *pathname, int pathnamelen ) {
   4299a:	4e56 fff0      	linkw %fp,#-16                              
   4299e:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   429a2:	262e 000c      	movel %fp@(12),%d3                          
  /*                                                                  
   * Eat any separators at start of the path.                         
   */                                                                 
  int stripped = 0;                                                   
   429a6:	4282           	clrl %d2                                    
  while ( *pathname && pathnamelen && rtems_filesystem_is_separator( *pathname ) )
   429a8:	47f9 0004 3728 	lea 43728 <rtems_filesystem_is_separator>,%a3
)                                                                     
{                                                                     
  /*                                                                  
   * Eat any separators at start of the path.                         
   */                                                                 
  int stripped = 0;                                                   
   429ae:	246e 0008      	moveal %fp@(8),%a2                          
  while ( *pathname && pathnamelen && rtems_filesystem_is_separator( *pathname ) )
   429b2:	6002           	bras 429b6 <rtems_filesystem_prefix_separators+0x1c>
  {                                                                   
    pathname++;                                                       
    pathnamelen--;                                                    
    stripped++;                                                       
   429b4:	5282           	addql #1,%d2                                
{                                                                     
  /*                                                                  
   * Eat any separators at start of the path.                         
   */                                                                 
  int stripped = 0;                                                   
  while ( *pathname && pathnamelen && rtems_filesystem_is_separator( *pathname ) )
   429b6:	101a           	moveb %a2@+,%d0                             
   429b8:	6710           	beqs 429ca <rtems_filesystem_prefix_separators+0x30><== NEVER TAKEN
   429ba:	b483           	cmpl %d3,%d2                                
   429bc:	670c           	beqs 429ca <rtems_filesystem_prefix_separators+0x30><== NEVER TAKEN
   429be:	49c0           	extbl %d0                                   
   429c0:	2f00           	movel %d0,%sp@-                             
   429c2:	4e93           	jsr %a3@                                    
   429c4:	588f           	addql #4,%sp                                
   429c6:	4a80           	tstl %d0                                    
   429c8:	66ea           	bnes 429b4 <rtems_filesystem_prefix_separators+0x1a>
    pathname++;                                                       
    pathnamelen--;                                                    
    stripped++;                                                       
  }                                                                   
  return stripped;                                                    
}                                                                     
   429ca:	2002           	movel %d2,%d0                               
   429cc:	4cee 0c0c fff0 	moveml %fp@(-16),%d2-%d3/%a2-%a3            
   429d2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000432a6 <rtems_gxx_key_create>: int rtems_gxx_key_create (__gthread_key_t *key, void (*dtor) (void *)) {
   432a6:	4e56 0000      	linkw %fp,#0                                
   432aa:	2f0a           	movel %a2,%sp@-                             
   432ac:	2f02           	movel %d2,%sp@-                             
   * pointer to the buffer that will hold the value of the key itself.
   * We have to to this, because the others functions on this interface
   * deal with the value of the key, as used with the POSIX API.      
   */                                                                 
   /* Do not pull your hair, trust me this works. :-) */              
  __gthread_key_t new_key = (__gthread_key_t) malloc( sizeof( *new_key ) );
   432ae:	4878 0008      	pea 8 <DIVIDE_BY_ZERO>                      
  }                                                                   
  return 0;                                                           
}                                                                     
                                                                      
int rtems_gxx_key_create (__gthread_key_t *key, void (*dtor) (void *))
{                                                                     
   432b2:	242e 000c      	movel %fp@(12),%d2                          
   * pointer to the buffer that will hold the value of the key itself.
   * We have to to this, because the others functions on this interface
   * deal with the value of the key, as used with the POSIX API.      
   */                                                                 
   /* Do not pull your hair, trust me this works. :-) */              
  __gthread_key_t new_key = (__gthread_key_t) malloc( sizeof( *new_key ) );
   432b6:	4eb9 0004 368c 	jsr 4368c <malloc>                          
  *key = new_key;                                                     
   432bc:	206e 0008      	moveal %fp@(8),%a0                          
   * pointer to the buffer that will hold the value of the key itself.
   * We have to to this, because the others functions on this interface
   * deal with the value of the key, as used with the POSIX API.      
   */                                                                 
   /* Do not pull your hair, trust me this works. :-) */              
  __gthread_key_t new_key = (__gthread_key_t) malloc( sizeof( *new_key ) );
   432c0:	2440           	moveal %d0,%a2                              
  *key = new_key;                                                     
   432c2:	2080           	movel %d0,%a0@                              
      "gxx_wrappers: create key=%x, dtor=%x, new_key=%x\n", key, dtor, new_key
    );                                                                
  #endif                                                              
                                                                      
  /* register with RTEMS the buffer that will hold the key values */  
  status = rtems_task_variable_add( RTEMS_SELF, (void **)new_key, dtor );
   432c4:	2f02           	movel %d2,%sp@-                             
   432c6:	2f00           	movel %d0,%sp@-                             
   * deal with the value of the key, as used with the POSIX API.      
   */                                                                 
   /* Do not pull your hair, trust me this works. :-) */              
  __gthread_key_t new_key = (__gthread_key_t) malloc( sizeof( *new_key ) );
  *key = new_key;                                                     
  new_key->val  = NULL;                                               
   432c8:	4292           	clrl %a2@                                   
      "gxx_wrappers: create key=%x, dtor=%x, new_key=%x\n", key, dtor, new_key
    );                                                                
  #endif                                                              
                                                                      
  /* register with RTEMS the buffer that will hold the key values */  
  status = rtems_task_variable_add( RTEMS_SELF, (void **)new_key, dtor );
   432ca:	42a7           	clrl %sp@-                                  
   */                                                                 
   /* Do not pull your hair, trust me this works. :-) */              
  __gthread_key_t new_key = (__gthread_key_t) malloc( sizeof( *new_key ) );
  *key = new_key;                                                     
  new_key->val  = NULL;                                               
  new_key->dtor = dtor;                                               
   432cc:	2542 0004      	movel %d2,%a2@(4)                           
      "gxx_wrappers: create key=%x, dtor=%x, new_key=%x\n", key, dtor, new_key
    );                                                                
  #endif                                                              
                                                                      
  /* register with RTEMS the buffer that will hold the key values */  
  status = rtems_task_variable_add( RTEMS_SELF, (void **)new_key, dtor );
   432d0:	4eb9 0004 67cc 	jsr 467cc <rtems_task_variable_add>         
  if ( status == RTEMS_SUCCESSFUL )                                   
   432d6:	4fef 0010      	lea %sp@(16),%sp                            
   432da:	4a80           	tstl %d0                                    
   432dc:	670e           	beqs 432ec <rtems_gxx_key_create+0x46>      <== ALWAYS TAKEN
    return 0;                                                         
                                                                      
  free( new_key );                                                    
   432de:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   432e0:	4eb9 0004 313c 	jsr 4313c <free>                            <== NOT EXECUTED
  return -1;                                                          
   432e6:	588f           	addql #4,%sp                                <== NOT EXECUTED
   432e8:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
   432ea:	6002           	bras 432ee <rtems_gxx_key_create+0x48>      <== NOT EXECUTED
  #endif                                                              
                                                                      
  /* register with RTEMS the buffer that will hold the key values */  
  status = rtems_task_variable_add( RTEMS_SELF, (void **)new_key, dtor );
  if ( status == RTEMS_SUCCESSFUL )                                   
    return 0;                                                         
   432ec:	4280           	clrl %d0                                    
                                                                      
  free( new_key );                                                    
  return -1;                                                          
}                                                                     
   432ee:	242e fff8      	movel %fp@(-8),%d2                          
   432f2:	246e fffc      	moveal %fp@(-4),%a2                         
   432f6:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004330a <rtems_gxx_key_delete>: int rtems_gxx_key_delete (__gthread_key_t key) {
   4330a:	4e56 0000      	linkw %fp,#0                                
   4330e:	2f0a           	movel %a2,%sp@-                             
   43310:	246e 0008      	moveal %fp@(8),%a2                          
  #ifdef DEBUG_GXX_WRAPPERS                                           
    printk( "gxx_wrappers: delete key=%x\n", key );                   
  #endif                                                              
                                                                      
  /* register with RTEMS the buffer that will hold the key values */  
  status = rtems_task_variable_delete( RTEMS_SELF, (void **)key );    
   43314:	2f0a           	movel %a2,%sp@-                             
   43316:	42a7           	clrl %sp@-                                  
   43318:	4eb9 0004 6860 	jsr 46860 <rtems_task_variable_delete>      
  if ( status == RTEMS_SUCCESSFUL ) {                                 
   4331e:	508f           	addql #8,%sp                                
   43320:	4a80           	tstl %d0                                    
   43322:	660e           	bnes 43332 <rtems_gxx_key_delete+0x28>      <== NEVER TAKEN
    /* Hmm - hopefully all tasks using this key have gone away... */  
    if ( key ) free( *(void **)key );                                 
   43324:	4a8a           	tstl %a2                                    
   43326:	670a           	beqs 43332 <rtems_gxx_key_delete+0x28>      <== NEVER TAKEN
   43328:	2f12           	movel %a2@,%sp@-                            
   4332a:	4eb9 0004 313c 	jsr 4313c <free>                            
   43330:	588f           	addql #4,%sp                                
    return 0;                                                         
  }                                                                   
  key = NULL;                                                         
  return 0;                                                           
}                                                                     
   43332:	246e fffc      	moveal %fp@(-4),%a2                         
   43336:	4280           	clrl %d0                                    
   43338:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043248 <rtems_gxx_once>: /* uncomment this if you need to debug this interface */ /*#define DEBUG_GXX_WRAPPERS 1*/ int rtems_gxx_once(__gthread_once_t *once, void (*func) (void)) {
   43248:	4e56 fffc      	linkw %fp,#-4                               
   4324c:	2f0a           	movel %a2,%sp@-                             
   4324e:	246e 0008      	moveal %fp@(8),%a2                          
  #ifdef DEBUG_GXX_WRAPPERS                                           
    printk( "gxx_wrappers: once=%x, func=%x\n", *once, func );        
  #endif                                                              
                                                                      
  if ( *(volatile __gthread_once_t *)once == 0 ) {                    
   43252:	2012           	movel %a2@,%d0                              
                                                                      
/* uncomment this if you need to debug this interface */              
/*#define DEBUG_GXX_WRAPPERS 1*/                                      
                                                                      
int rtems_gxx_once(__gthread_once_t *once, void (*func) (void))       
{                                                                     
   43254:	2f02           	movel %d2,%sp@-                             
  #ifdef DEBUG_GXX_WRAPPERS                                           
    printk( "gxx_wrappers: once=%x, func=%x\n", *once, func );        
  #endif                                                              
                                                                      
  if ( *(volatile __gthread_once_t *)once == 0 ) {                    
   43256:	4a80           	tstl %d0                                    
   43258:	663e           	bnes 43298 <rtems_gxx_once+0x50>            
    rtems_mode saveMode;                                              
    __gthread_once_t o;                                               
                                                                      
    rtems_task_mode(RTEMS_NO_PREEMPT, RTEMS_PREEMPT_MASK, &saveMode); 
   4325a:	486e fffc      	pea %fp@(-4)                                
   4325e:	4878 0100      	pea 100 <DBL_MANT_DIG+0xcb>                 
   43262:	4878 0100      	pea 100 <DBL_MANT_DIG+0xcb>                 
   43266:	4eb9 0004 65f4 	jsr 465f4 <rtems_task_mode>                 
    if ( (o = *(volatile __gthread_once_t *)once) == 0 ) {            
   4326c:	2412           	movel %a2@,%d2                              
   4326e:	4fef 000c      	lea %sp@(12),%sp                            
   43272:	6604           	bnes 43278 <rtems_gxx_once+0x30>            <== NEVER TAKEN
      *(volatile __gthread_once_t *)once = 1;                         
   43274:	7001           	moveq #1,%d0                                
   43276:	2480           	movel %d0,%a2@                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
   43278:	486e fffc      	pea %fp@(-4)                                
   4327c:	4878 0100      	pea 100 <DBL_MANT_DIG+0xcb>                 
   43280:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   43284:	4eb9 0004 65f4 	jsr 465f4 <rtems_task_mode>                 
    if ( o == 0 )                                                     
   4328a:	4fef 000c      	lea %sp@(12),%sp                            
   4328e:	4a82           	tstl %d2                                    
   43290:	6606           	bnes 43298 <rtems_gxx_once+0x50>            <== NEVER TAKEN
      (*func)();                                                      
   43292:	206e 000c      	moveal %fp@(12),%a0                         
   43296:	4e90           	jsr %a0@                                    
  }                                                                   
  return 0;                                                           
}                                                                     
   43298:	242e fff4      	movel %fp@(-12),%d2                         
   4329c:	4280           	clrl %d0                                    
   4329e:	246e fff8      	moveal %fp@(-8),%a2                         
   432a2:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043398 <rtems_gxx_setspecific>: int rtems_gxx_setspecific(__gthread_key_t key, const void *ptr) {
   43398:	4e56 0000      	linkw %fp,#0                                
   4339c:	2f0a           	movel %a2,%sp@-                             
   4339e:	246e 0008      	moveal %fp@(8),%a2                          
      rtems_task_self()                                               
      );                                                              
  #endif                                                              
                                                                      
  /* register with RTEMS the buffer that will hold the key values */  
  status = rtems_task_variable_add( RTEMS_SELF, (void **)key, key->dtor );
   433a2:	2f2a 0004      	movel %a2@(4),%sp@-                         
   433a6:	2f0a           	movel %a2,%sp@-                             
   433a8:	42a7           	clrl %sp@-                                  
   433aa:	4eb9 0004 67cc 	jsr 467cc <rtems_task_variable_add>         
  if ( status == RTEMS_SUCCESSFUL ) {                                 
   433b0:	4fef 000c      	lea %sp@(12),%sp                            
   433b4:	4a80           	tstl %d0                                    
   433b6:	6606           	bnes 433be <rtems_gxx_setspecific+0x26>     <== NEVER TAKEN
    /* now let's set the proper value */                              
    key->val =  (void *)ptr;                                          
   433b8:	24ae 000c      	movel %fp@(12),%a2@                         
    return 0;                                                         
   433bc:	6002           	bras 433c0 <rtems_gxx_setspecific+0x28>     
  }                                                                   
  return -1;                                                          
   433be:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
}                                                                     
   433c0:	246e fffc      	moveal %fp@(-4),%a2                         
   433c4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046f24 <rtems_heap_allocate_aligned_with_boundary>: size_t size, uintptr_t alignment, uintptr_t boundary ) { if (
   46f24:	7003           	moveq #3,%d0                                
void *rtems_heap_allocate_aligned_with_boundary(                      
  size_t size,                                                        
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
   46f26:	4e56 0000      	linkw %fp,#0                                
  if (                                                                
   46f2a:	b0b9 0006 43d0 	cmpl 643d0 <_System_state_Current>,%d0      
   46f30:	660a           	bnes 46f3c <rtems_heap_allocate_aligned_with_boundary+0x18><== NEVER TAKEN
    _System_state_Is_up( _System_state_Get() )                        
      && !malloc_is_system_state_OK()                                 
   46f32:	4eb9 0004 6054 	jsr 46054 <malloc_is_system_state_OK>       
   46f38:	4a00           	tstb %d0                                    
   46f3a:	6724           	beqs 46f60 <rtems_heap_allocate_aligned_with_boundary+0x3c>
  ) {                                                                 
    return NULL;                                                      
  }                                                                   
                                                                      
  malloc_deferred_frees_process();                                    
   46f3c:	4eb9 0004 6092 	jsr 46092 <malloc_deferred_frees_process>   
                                                                      
  /* FIXME: Statistics, boundary checks */                            
                                                                      
  return _Protected_heap_Allocate_aligned_with_boundary(              
   46f42:	2f2e 0010      	movel %fp@(16),%sp@-                        
   46f46:	2f2e 000c      	movel %fp@(12),%sp@-                        
   46f4a:	2f2e 0008      	movel %fp@(8),%sp@-                         
   46f4e:	2f39 0006 2010 	movel 62010 <RTEMS_Malloc_Heap>,%sp@-       
   46f54:	4eb9 0004 b4f4 	jsr 4b4f4 <_Protected_heap_Allocate_aligned_with_boundary>
   46f5a:	4fef 0010      	lea %sp@(16),%sp                            
   46f5e:	6002           	bras 46f62 <rtems_heap_allocate_aligned_with_boundary+0x3e>
{                                                                     
  if (                                                                
    _System_state_Is_up( _System_state_Get() )                        
      && !malloc_is_system_state_OK()                                 
  ) {                                                                 
    return NULL;                                                      
   46f60:	4280           	clrl %d0                                    
    RTEMS_Malloc_Heap,                                                
    size,                                                             
    alignment,                                                        
    boundary                                                          
  );                                                                  
}                                                                     
   46f62:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000424d0 <rtems_io_lookup_name>: rtems_status_code rtems_io_lookup_name( const char *name, rtems_driver_name_t *device_info ) {
   424d0:	4e56 ffd4      	linkw %fp,#-44                              
   424d4:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 
   424d8:	242e 0008      	movel %fp@(8),%d2                           
  IMFS_jnode_t                      *the_jnode;                       
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path(                            
   424dc:	49f9 0004 df28 	lea 4df28 <strlen>,%a4                      
   424e2:	260e           	movel %fp,%d3                               
   424e4:	0683 ffff ffec 	addil #-20,%d3                              
   424ea:	2f02           	movel %d2,%sp@-                             
                                                                      
rtems_status_code rtems_io_lookup_name(                               
  const char           *name,                                         
  rtems_driver_name_t  *device_info                                   
)                                                                     
{                                                                     
   424ec:	246e 000c      	moveal %fp@(12),%a2                         
  IMFS_jnode_t                      *the_jnode;                       
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path(                            
   424f0:	4e94           	jsr %a4@                                    
   424f2:	7201           	moveq #1,%d1                                
   424f4:	2e81           	movel %d1,%sp@                              
   424f6:	2f03           	movel %d3,%sp@-                             
   424f8:	42a7           	clrl %sp@-                                  
   424fa:	2f00           	movel %d0,%sp@-                             
   424fc:	2f02           	movel %d2,%sp@-                             
   424fe:	4eb9 0004 290c 	jsr 4290c <rtems_filesystem_evaluate_path>  
      name, strlen( name ), 0x00, &loc, true );                       
  the_jnode = loc.node_access;                                        
                                                                      
  node_type = (*loc.ops->node_type_h)( &loc );                        
   42504:	206e fff8      	moveal %fp@(-8),%a0                         
  IMFS_jnode_t                      *the_jnode;                       
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path(                            
   42508:	2800           	movel %d0,%d4                               
      name, strlen( name ), 0x00, &loc, true );                       
  the_jnode = loc.node_access;                                        
                                                                      
  node_type = (*loc.ops->node_type_h)( &loc );                        
   4250a:	2f03           	movel %d3,%sp@-                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path(                            
      name, strlen( name ), 0x00, &loc, true );                       
  the_jnode = loc.node_access;                                        
   4250c:	266e ffec      	moveal %fp@(-20),%a3                        
                                                                      
  node_type = (*loc.ops->node_type_h)( &loc );                        
   42510:	2068 0010      	moveal %a0@(16),%a0                         
   42514:	4e90           	jsr %a0@                                    
                                                                      
  if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {      
   42516:	4fef 0018      	lea %sp@(24),%sp                            
   4251a:	4a84           	tstl %d4                                    
   4251c:	6606           	bnes 42524 <rtems_io_lookup_name+0x54>      <== NEVER TAKEN
   4251e:	7202           	moveq #2,%d1                                
   42520:	b280           	cmpl %d0,%d1                                
   42522:	6710           	beqs 42534 <rtems_io_lookup_name+0x64>      
    rtems_filesystem_freenode( &loc );                                
   42524:	486e ffec      	pea %fp@(-20)                               
   42528:	4eb9 0004 29d8 	jsr 429d8 <rtems_filesystem_freenode>       
    return RTEMS_UNSATISFIED;                                         
   4252e:	588f           	addql #4,%sp                                
   42530:	700d           	moveq #13,%d0                               
   42532:	6022           	bras 42556 <rtems_io_lookup_name+0x86>      
  }                                                                   
                                                                      
  device_info->device_name        = (char *) name;                    
   42534:	2482           	movel %d2,%a2@                              
  device_info->device_name_length = strlen( name );                   
   42536:	2f02           	movel %d2,%sp@-                             
   42538:	4e94           	jsr %a4@                                    
   4253a:	2540 0004      	movel %d0,%a2@(4)                           
  device_info->major              = the_jnode->info.device.major;     
   4253e:	256b 004c 0008 	movel %a3@(76),%a2@(8)                      
  device_info->minor              = the_jnode->info.device.minor;     
   42544:	256b 0050 000c 	movel %a3@(80),%a2@(12)                     
                                                                      
  rtems_filesystem_freenode( &loc );                                  
   4254a:	2e83           	movel %d3,%sp@                              
   4254c:	4eb9 0004 29d8 	jsr 429d8 <rtems_filesystem_freenode>       
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   42552:	588f           	addql #4,%sp                                
   42554:	4280           	clrl %d0                                    
}                                                                     
   42556:	4cee 1c1c ffd4 	moveml %fp@(-44),%d2-%d4/%a2-%a4            
   4255c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00047dc0 <rtems_iterate_over_all_threads>: #include <rtems/system.h> #include <rtems/score/thread.h> void rtems_iterate_over_all_threads(rtems_per_thread_routine routine) {
   47dc0:	4e56 fff0      	linkw %fp,#-16                              
   47dc4:	48d7 1c04      	moveml %d2/%a2-%a4,%sp@                     
   47dc8:	286e 0008      	moveal %fp@(8),%a4                          
  uint32_t             i;                                             
  uint32_t             api_index;                                     
  Thread_Control      *the_thread;                                    
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
   47dcc:	4a8c           	tstl %a4                                    
   47dce:	6738           	beqs 47e08 <rtems_iterate_over_all_threads+0x48><== NEVER TAKEN
   47dd0:	45f9 0006 0e08 	lea 60e08 <_Objects_Information_table+0x4>,%a2
    #if !defined(RTEMS_POSIX_API) || defined(RTEMS_DEBUG)             
      if ( !_Objects_Information_table[ api_index ] )                 
        continue;                                                     
    #endif                                                            
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
   47dd6:	205a           	moveal %a2@+,%a0                            
   47dd8:	2668 0004      	moveal %a0@(4),%a3                          
    if ( !information )                                               
   47ddc:	4a8b           	tstl %a3                                    
   47dde:	6720           	beqs 47e00 <rtems_iterate_over_all_threads+0x40>
   47de0:	7401           	moveq #1,%d2                                
   47de2:	6012           	bras 47df6 <rtems_iterate_over_all_threads+0x36>
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
      the_thread = (Thread_Control *)information->local_table[ i ];   
   47de4:	206b 0018      	moveal %a3@(24),%a0                         
   47de8:	2030 2c00      	movel %a0@(00000000,%d2:l:4),%d0            
                                                                      
      if ( !the_thread )                                              
   47dec:	6706           	beqs 47df4 <rtems_iterate_over_all_threads+0x34><== NEVER TAKEN
	continue;                                                            
                                                                      
      (*routine)(the_thread);                                         
   47dee:	2f00           	movel %d0,%sp@-                             
   47df0:	4e94           	jsr %a4@                                    
   47df2:	588f           	addql #4,%sp                                
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( !information )                                               
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
   47df4:	5282           	addql #1,%d2                                
   47df6:	4280           	clrl %d0                                    
   47df8:	302b 000e      	movew %a3@(14),%d0                          
   47dfc:	b082           	cmpl %d2,%d0                                
   47dfe:	64e4           	bccs 47de4 <rtems_iterate_over_all_threads+0x24>
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
   47e00:	b5fc 0006 0e14 	cmpal #396820,%a2                           
   47e06:	66ce           	bnes 47dd6 <rtems_iterate_over_all_threads+0x16>
                                                                      
      (*routine)(the_thread);                                         
    }                                                                 
  }                                                                   
                                                                      
}                                                                     
   47e08:	4cee 1c04 fff0 	moveml %fp@(-16),%d2/%a2-%a4                
   47e0e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049b74 <rtems_libio_allocate>: * This routine searches the IOP Table for an unused entry. If it * finds one, it returns it. Otherwise, it returns NULL. */ rtems_libio_t *rtems_libio_allocate( void ) {
   49b74:	4e56 fffc      	linkw %fp,#-4                               
   49b78:	2f0a           	movel %a2,%sp@-                             
   49b7a:	2f02           	movel %d2,%sp@-                             
  rtems_libio_t *iop, *next;                                          
  rtems_status_code rc;                                               
  rtems_id sema;                                                      
                                                                      
  rtems_libio_lock();                                                 
   49b7c:	4eba ff36      	jsr %pc@(49ab4 <rtems_libio_lock>)          
                                                                      
  if (rtems_libio_iop_freelist) {                                     
   49b80:	2039 0005 e878 	movel 5e878 <rtems_libio_iop_freelist>,%d0  
   49b86:	676a           	beqs 49bf2 <rtems_libio_allocate+0x7e>      <== NEVER TAKEN
    rc = rtems_semaphore_create(                                      
   49b88:	486e fffc      	pea %fp@(-4)                                
      RTEMS_LIBIO_IOP_SEM(rtems_libio_iop_freelist - rtems_libio_iops),
   49b8c:	90b9 0005 e874 	subl 5e874 <rtems_libio_iops>,%d0           
   49b92:	223c b6db 6db7 	movel #-1227133513,%d1                      
  rtems_id sema;                                                      
                                                                      
  rtems_libio_lock();                                                 
                                                                      
  if (rtems_libio_iop_freelist) {                                     
    rc = rtems_semaphore_create(                                      
   49b98:	42a7           	clrl %sp@-                                  
   49b9a:	4878 0054      	pea 54 <DBL_MANT_DIG+0x1f>                  
      RTEMS_LIBIO_IOP_SEM(rtems_libio_iop_freelist - rtems_libio_iops),
   49b9e:	e680           	asrl #3,%d0                                 
   49ba0:	4c01 0800      	mulsl %d1,%d0                               
  rtems_id sema;                                                      
                                                                      
  rtems_libio_lock();                                                 
                                                                      
  if (rtems_libio_iop_freelist) {                                     
    rc = rtems_semaphore_create(                                      
   49ba4:	4878 0001      	pea 1 <ADD>                                 
   49ba8:	0080 4c42 4900 	oril #1279412480,%d0                        
   49bae:	2f00           	movel %d0,%sp@-                             
   49bb0:	4eb9 0004 561c 	jsr 4561c <rtems_semaphore_create>          
      1,                                                              
      RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
      0,                                                              
      &sema                                                           
    );                                                                
    if (rc != RTEMS_SUCCESSFUL)                                       
   49bb6:	4fef 0014      	lea %sp@(20),%sp                            
   49bba:	4a80           	tstl %d0                                    
   49bbc:	6634           	bnes 49bf2 <rtems_libio_allocate+0x7e>      
      goto failed;                                                    
    iop = rtems_libio_iop_freelist;                                   
   49bbe:	2479 0005 e878 	moveal 5e878 <rtems_libio_iop_freelist>,%a2 
    next = iop->data1;                                                
   49bc4:	242a 0034      	movel %a2@(52),%d2                          
    (void) memset( iop, 0, sizeof(rtems_libio_t) );                   
   49bc8:	4878 0038      	pea 38 <DBL_MANT_DIG+0x3>                   
   49bcc:	42a7           	clrl %sp@-                                  
   49bce:	2f0a           	movel %a2,%sp@-                             
   49bd0:	4eb9 0004 d3ec 	jsr 4d3ec <memset>                          
    iop->flags = LIBIO_FLAGS_OPEN;                                    
    iop->sem = sema;                                                  
   49bd6:	256e fffc 002c 	movel %fp@(-4),%a2@(44)                     
    if (rc != RTEMS_SUCCESSFUL)                                       
      goto failed;                                                    
    iop = rtems_libio_iop_freelist;                                   
    next = iop->data1;                                                
    (void) memset( iop, 0, sizeof(rtems_libio_t) );                   
    iop->flags = LIBIO_FLAGS_OPEN;                                    
   49bdc:	203c 0000 0100 	movel #256,%d0                              
    iop->sem = sema;                                                  
    rtems_libio_iop_freelist = next;                                  
    goto done;                                                        
   49be2:	4fef 000c      	lea %sp@(12),%sp                            
    if (rc != RTEMS_SUCCESSFUL)                                       
      goto failed;                                                    
    iop = rtems_libio_iop_freelist;                                   
    next = iop->data1;                                                
    (void) memset( iop, 0, sizeof(rtems_libio_t) );                   
    iop->flags = LIBIO_FLAGS_OPEN;                                    
   49be6:	2540 0014      	movel %d0,%a2@(20)                          
    iop->sem = sema;                                                  
    rtems_libio_iop_freelist = next;                                  
   49bea:	23c2 0005 e878 	movel %d2,5e878 <rtems_libio_iop_freelist>  
    goto done;                                                        
   49bf0:	6002           	bras 49bf4 <rtems_libio_allocate+0x80>      
  }                                                                   
                                                                      
failed:                                                               
  iop = 0;                                                            
   49bf2:	95ca           	subal %a2,%a2                               
                                                                      
done:                                                                 
  rtems_libio_unlock();                                               
   49bf4:	4eba feda      	jsr %pc@(49ad0 <rtems_libio_unlock>)        
  return iop;                                                         
}                                                                     
   49bf8:	242e fff4      	movel %fp@(-12),%d2                         
   49bfc:	200a           	movel %a2,%d0                               
   49bfe:	246e fff8      	moveal %fp@(-8),%a2                         
   49c02:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00049c06 <rtems_libio_free>: */ void rtems_libio_free( rtems_libio_t *iop ) {
   49c06:	4e56 0000      	linkw %fp,#0                                
   49c0a:	2f0a           	movel %a2,%sp@-                             
   49c0c:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_libio_lock();                                                 
   49c10:	4eba fea2      	jsr %pc@(49ab4 <rtems_libio_lock>)          
                                                                      
    if (iop->sem)                                                     
   49c14:	202a 002c      	movel %a2@(44),%d0                          
   49c18:	670a           	beqs 49c24 <rtems_libio_free+0x1e>          <== NEVER TAKEN
      rtems_semaphore_delete(iop->sem);                               
   49c1a:	2f00           	movel %d0,%sp@-                             
   49c1c:	4eb9 0004 57b8 	jsr 457b8 <rtems_semaphore_delete>          
   49c22:	588f           	addql #4,%sp                                
                                                                      
    iop->flags &= ~LIBIO_FLAGS_OPEN;                                  
    iop->data1 = rtems_libio_iop_freelist;                            
   49c24:	41f9 0005 e878 	lea 5e878 <rtems_libio_iop_freelist>,%a0    
  rtems_libio_lock();                                                 
                                                                      
    if (iop->sem)                                                     
      rtems_semaphore_delete(iop->sem);                               
                                                                      
    iop->flags &= ~LIBIO_FLAGS_OPEN;                                  
   49c2a:	203c ffff feff 	movel #-257,%d0                             
    iop->data1 = rtems_libio_iop_freelist;                            
   49c30:	2550 0034      	movel %a0@,%a2@(52)                         
  rtems_libio_lock();                                                 
                                                                      
    if (iop->sem)                                                     
      rtems_semaphore_delete(iop->sem);                               
                                                                      
    iop->flags &= ~LIBIO_FLAGS_OPEN;                                  
   49c34:	c1aa 0014      	andl %d0,%a2@(20)                           
    iop->data1 = rtems_libio_iop_freelist;                            
    rtems_libio_iop_freelist = iop;                                   
   49c38:	23ca 0005 e878 	movel %a2,5e878 <rtems_libio_iop_freelist>  
                                                                      
  rtems_libio_unlock();                                               
}                                                                     
   49c3e:	246e fffc      	moveal %fp@(-4),%a2                         
   49c42:	4e5e           	unlk %fp                                    
                                                                      
    iop->flags &= ~LIBIO_FLAGS_OPEN;                                  
    iop->data1 = rtems_libio_iop_freelist;                            
    rtems_libio_iop_freelist = iop;                                   
                                                                      
  rtems_libio_unlock();                                               
   49c44:	6000 fe8a      	braw 49ad0 <rtems_libio_unlock>             
                                                                      

00042af8 <rtems_libio_init>: * * Called by BSP startup code to initialize the libio subsystem. */ void rtems_libio_init( void ) {
   42af8:	4e56 0000      	linkw %fp,#0                                
   42afc:	2f02           	movel %d2,%sp@-                             
    rtems_status_code rc;                                             
    uint32_t i;                                                       
    rtems_libio_t *iop;                                               
                                                                      
    if (rtems_libio_number_iops > 0)                                  
   42afe:	2439 0005 cff4 	movel 5cff4 <rtems_libio_number_iops>,%d2   
   42b04:	6744           	beqs 42b4a <rtems_libio_init+0x52>          <== NEVER TAKEN
    {                                                                 
        rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops,
   42b06:	4878 0038      	pea 38 <DBL_MANT_DIG+0x3>                   
   42b0a:	2f02           	movel %d2,%sp@-                             
   42b0c:	4eb9 0004 2654 	jsr 42654 <calloc>                          
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
   42b12:	508f           	addql #8,%sp                                
    uint32_t i;                                                       
    rtems_libio_t *iop;                                               
                                                                      
    if (rtems_libio_number_iops > 0)                                  
    {                                                                 
        rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops,
   42b14:	23c0 0005 e874 	movel %d0,5e874 <rtems_libio_iops>          
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
   42b1a:	6606           	bnes 42b22 <rtems_libio_init+0x2a>          
            rtems_fatal_error_occurred(RTEMS_NO_MEMORY);              
   42b1c:	4878 001a      	pea 1a <OPER2+0x6>                          
   42b20:	604e           	bras 42b70 <rtems_libio_init+0x78>          
                                                                      
        iop = rtems_libio_iop_freelist = rtems_libio_iops;            
   42b22:	23c0 0005 e878 	movel %d0,5e878 <rtems_libio_iop_freelist>  
   42b28:	2040           	moveal %d0,%a0                              
        for (i = 0 ; (i + 1) < rtems_libio_number_iops ; i++, iop++)  
   42b2a:	4281           	clrl %d1                                    
   42b2c:	6004           	bras 42b32 <rtems_libio_init+0x3a>          
          iop->data1 = iop + 1;                                       
   42b2e:	2148 fffc      	movel %a0,%a0@(-4)                          
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
            rtems_fatal_error_occurred(RTEMS_NO_MEMORY);              
                                                                      
        iop = rtems_libio_iop_freelist = rtems_libio_iops;            
        for (i = 0 ; (i + 1) < rtems_libio_number_iops ; i++, iop++)  
   42b32:	5281           	addql #1,%d1                                
   42b34:	41e8 0038      	lea %a0@(56),%a0                            
   42b38:	b481           	cmpl %d1,%d2                                
   42b3a:	62f2           	bhis 42b2e <rtems_libio_init+0x36>          
          iop->data1 = iop + 1;                                       
        iop->data1 = NULL;                                            
   42b3c:	2202           	movel %d2,%d1                               
   42b3e:	2040           	moveal %d0,%a0                              
   42b40:	e789           	lsll #3,%d1                                 
   42b42:	ed8a           	lsll #6,%d2                                 
   42b44:	9481           	subl %d1,%d2                                
   42b46:	42b0 28fc      	clrl %a0@(fffffffc,%d2:l)                   
  /*                                                                  
   *  Create the binary semaphore used to provide mutual exclusion    
   *  on the IOP Table.                                               
   */                                                                 
                                                                      
  rc = rtems_semaphore_create(                                        
   42b4a:	4879 0005 e87c 	pea 5e87c <rtems_libio_semaphore>           
   42b50:	42a7           	clrl %sp@-                                  
   42b52:	4878 0054      	pea 54 <DBL_MANT_DIG+0x1f>                  
   42b56:	4878 0001      	pea 1 <ADD>                                 
   42b5a:	2f3c 4c42 494f 	movel #1279412559,%sp@-                     
   42b60:	4eb9 0004 561c 	jsr 4561c <rtems_semaphore_create>          
    1,                                                                
    RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, 
    RTEMS_NO_PRIORITY,                                                
    &rtems_libio_semaphore                                            
  );                                                                  
  if ( rc != RTEMS_SUCCESSFUL )                                       
   42b66:	4fef 0014      	lea %sp@(20),%sp                            
   42b6a:	4a80           	tstl %d0                                    
   42b6c:	6708           	beqs 42b76 <rtems_libio_init+0x7e>          <== ALWAYS TAKEN
    rtems_fatal_error_occurred( rc );                                 
   42b6e:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   42b70:	4eb9 0004 5efc 	jsr 45efc <rtems_fatal_error_occurred>      
                                                                      
  /*                                                                  
   *  Initialize the base file system infrastructure.                 
   */                                                                 
                                                                      
  if (rtems_fs_init_helper)                                           
   42b76:	2279 0005 cff0 	moveal 5cff0 <rtems_fs_init_helper>,%a1     
   42b7c:	4a89           	tstl %a1                                    
   42b7e:	6708           	beqs 42b88 <rtems_libio_init+0x90>          <== NEVER TAKEN
     (* rtems_fs_init_helper)();                                      
}                                                                     
   42b80:	242e fffc      	movel %fp@(-4),%d2                          
   42b84:	4e5e           	unlk %fp                                    
  /*                                                                  
   *  Initialize the base file system infrastructure.                 
   */                                                                 
                                                                      
  if (rtems_fs_init_helper)                                           
     (* rtems_fs_init_helper)();                                      
   42b86:	4ed1           	jmp %a1@                                    
}                                                                     
   42b88:	242e fffc      	movel %fp@(-4),%d2                          <== NOT EXECUTED
   42b8c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043eb0 <rtems_libio_share_private_env>: * b) mutex access to rtems_filesystem_current, rtems_filesytem_root * while changing any of those (chdir(), chroot()). */ rtems_status_code rtems_libio_share_private_env(rtems_id task_id) {
   43eb0:	4e56 fff8      	linkw %fp,#-8                               
   43eb4:	2f03           	movel %d3,%sp@-                             
   43eb6:	262e 0008      	movel %fp@(8),%d3                           
   43eba:	2f02           	movel %d2,%sp@-                             
  rtems_id           current_task_id;                                 
                                                                      
  /*                                                                  
   * get current task id                                              
   */                                                                 
  current_task_id = rtems_task_self();                                
   43ebc:	4eb9 0004 6534 	jsr 46534 <rtems_task_self>                 
   43ec2:	2400           	movel %d0,%d2                               
  /*                                                                  
   * If this was an attempt to share the task with self,              
   * if somebody wanted to do it... Lets tell them, its shared        
   */                                                                 
                                                                      
  if( task_id == current_task_id )                                    
   43ec4:	b083           	cmpl %d3,%d0                                
   43ec6:	6740           	beqs 43f08 <rtems_libio_share_private_env+0x58><== NEVER TAKEN
    return RTEMS_SUCCESSFUL;                                          
  /*                                                                  
   * Try to get the requested user environment                        
   */                                                                 
  sc = rtems_task_variable_get(                                       
   43ec8:	486e fffc      	pea %fp@(-4)                                
   43ecc:	4879 0005 da4c 	pea 5da4c <rtems_current_user_env>          
   43ed2:	2f03           	movel %d3,%sp@-                             
   43ed4:	4eb9 0004 6688 	jsr 46688 <rtems_task_variable_get>         
	 (void*)&shared_user_env );                                          
                                                                      
  /*                                                                  
   * If it was not successful, return the error code                  
   */                                                                 
    if (sc != RTEMS_SUCCESSFUL)                                       
   43eda:	4fef 000c      	lea %sp@(12),%sp                            
   43ede:	4a80           	tstl %d0                                    
   43ee0:	6628           	bnes 43f0a <rtems_libio_share_private_env+0x5a><== NEVER TAKEN
     * If we have a current environment in place, we need to          
     * free it, since we will be sharing the variable with the        
     * shared_user_env                                                
     */                                                               
                                                                      
  if (rtems_current_user_env->task_id==current_task_id) {             
   43ee2:	2079 0005 da4c 	moveal 5da4c <rtems_current_user_env>,%a0   
   43ee8:	b490           	cmpl %a0@,%d2                               
   43eea:	6610           	bnes 43efc <rtems_libio_share_private_env+0x4c><== NEVER TAKEN
    rtems_user_env_t  *tmp = rtems_current_user_env;                  
    free_user_env( tmp );                                             
   43eec:	2f08           	movel %a0,%sp@-                             
   43eee:	2d40 fff8      	movel %d0,%fp@(-8)                          
   43ef2:	4eba fe70      	jsr %pc@(43d64 <free_user_env>)             
   43ef6:	202e fff8      	movel %fp@(-8),%d0                          
   43efa:	588f           	addql #4,%sp                                
  }                                                                   
                                                                      
  /* the current_user_env is the same pointer that remote env */      
  rtems_current_user_env = shared_user_env;                           
   43efc:	41ee fffc      	lea %fp@(-4),%a0                            
   43f00:	23d0 0005 da4c 	movel %a0@,5da4c <rtems_current_user_env>   
  /* increase the reference count */                                  
#ifdef HAVE_USERENV_REFCNT                                            
  rtems_current_user_env->refcnt++;                                   
#endif                                                                
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   43f06:	6002           	bras 43f0a <rtems_libio_share_private_env+0x5a>
   * If this was an attempt to share the task with self,              
   * if somebody wanted to do it... Lets tell them, its shared        
   */                                                                 
                                                                      
  if( task_id == current_task_id )                                    
    return RTEMS_SUCCESSFUL;                                          
   43f08:	4280           	clrl %d0                                    <== NOT EXECUTED
#ifdef HAVE_USERENV_REFCNT                                            
  rtems_current_user_env->refcnt++;                                   
#endif                                                                
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   43f0a:	242e fff0      	movel %fp@(-16),%d2                         
   43f0e:	262e fff4      	movel %fp@(-12),%d3                         
   43f12:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00049b26 <rtems_libio_to_fcntl_flags>: uint32_t flags ) { uint32_t fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) {
   49b26:	7006           	moveq #6,%d0                                
 */                                                                   
                                                                      
uint32_t   rtems_libio_to_fcntl_flags(                                
  uint32_t   flags                                                    
)                                                                     
{                                                                     
   49b28:	4e56 0000      	linkw %fp,#0                                
   49b2c:	222e 0008      	movel %fp@(8),%d1                           
  uint32_t   fcntl_flags = 0;                                         
                                                                      
  if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 
   49b30:	c081           	andl %d1,%d0                                
 */                                                                   
                                                                      
uint32_t   rtems_libio_to_fcntl_flags(                                
  uint32_t   flags                                                    
)                                                                     
{                                                                     
   49b32:	2f02           	movel %d2,%sp@-                             
  uint32_t   fcntl_flags = 0;                                         
                                                                      
  if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 
   49b34:	7406           	moveq #6,%d2                                
   49b36:	b480           	cmpl %d0,%d2                                
   49b38:	6710           	beqs 49b4a <rtems_libio_to_fcntl_flags+0x24>
    fcntl_flags |= O_RDWR;                                            
  } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) {       
   49b3a:	0801 0001      	btst #1,%d1                                 
   49b3e:	660e           	bnes 49b4e <rtems_libio_to_fcntl_flags+0x28><== ALWAYS TAKEN
)                                                                     
{                                                                     
  uint32_t   fcntl_flags = 0;                                         
                                                                      
  if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 
    fcntl_flags |= O_RDWR;                                            
   49b40:	44c1           	movew %d1,%ccr                              <== NOT EXECUTED
   49b42:	57c0           	seq %d0                                     <== NOT EXECUTED
   49b44:	49c0           	extbl %d0                                   <== NOT EXECUTED
   49b46:	4480           	negl %d0                                    <== NOT EXECUTED
   49b48:	6006           	bras 49b50 <rtems_libio_to_fcntl_flags+0x2a><== NOT EXECUTED
   49b4a:	7002           	moveq #2,%d0                                
   49b4c:	6002           	bras 49b50 <rtems_libio_to_fcntl_flags+0x2a>
  } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) {       
    fcntl_flags |= O_RDONLY;                                          
   49b4e:	4280           	clrl %d0                                    
  } else if ( (flags & LIBIO_FLAGS_WRITE) == LIBIO_FLAGS_WRITE) {     
    fcntl_flags |= O_WRONLY;                                          
  }                                                                   
                                                                      
  if ( (flags & LIBIO_FLAGS_NO_DELAY) == LIBIO_FLAGS_NO_DELAY ) {     
   49b50:	0801 0000      	btst #0,%d1                                 
   49b54:	6704           	beqs 49b5a <rtems_libio_to_fcntl_flags+0x34>
    fcntl_flags |= O_NONBLOCK;                                        
   49b56:	08c0 000e      	bset #14,%d0                                
  }                                                                   
                                                                      
  if ( (flags & LIBIO_FLAGS_APPEND) == LIBIO_FLAGS_APPEND ) {         
   49b5a:	0801 0009      	btst #9,%d1                                 
   49b5e:	6704           	beqs 49b64 <rtems_libio_to_fcntl_flags+0x3e>
    fcntl_flags |= O_APPEND;                                          
   49b60:	7408           	moveq #8,%d2                                
   49b62:	8082           	orl %d2,%d0                                 
  }                                                                   
                                                                      
  if ( (flags & LIBIO_FLAGS_CREATE) == LIBIO_FLAGS_CREATE ) {         
   49b64:	0801 000a      	btst #10,%d1                                
   49b68:	6704           	beqs 49b6e <rtems_libio_to_fcntl_flags+0x48>
    fcntl_flags |= O_CREAT;                                           
   49b6a:	08c0 0009      	bset #9,%d0                                 
  }                                                                   
                                                                      
  return fcntl_flags;                                                 
}                                                                     
   49b6e:	241f           	movel %sp@+,%d2                             
   49b70:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000463a4 <rtems_malloc_statistics_at_free>: * size and thus we skip updating the statistics. */ static void rtems_malloc_statistics_at_free( void *pointer ) {
   463a4:	4e56 fffc      	linkw %fp,#-4                               
   463a8:	2f03           	movel %d3,%sp@-                             
   463aa:	2f02           	movel %d2,%sp@-                             
  uintptr_t size;                                                     
                                                                      
  if (_Protected_heap_Get_block_size(RTEMS_Malloc_Heap, pointer, &size) ) {
   463ac:	486e fffc      	pea %fp@(-4)                                
   463b0:	2f2e 0008      	movel %fp@(8),%sp@-                         
   463b4:	2f39 0006 2010 	movel 62010 <RTEMS_Malloc_Heap>,%sp@-       
   463ba:	4eb9 0004 b5ac 	jsr 4b5ac <_Protected_heap_Get_block_size>  
   463c0:	4fef 000c      	lea %sp@(12),%sp                            
   463c4:	4a00           	tstb %d0                                    
   463c6:	671a           	beqs 463e2 <rtems_malloc_statistics_at_free+0x3e><== NEVER TAKEN
    MSBUMP(lifetime_freed, size);                                     
   463c8:	262e fffc      	movel %fp@(-4),%d3                          
   463cc:	4282           	clrl %d2                                    
   463ce:	d7b9 0006 4170 	addl %d3,64170 <rtems_malloc_statistics+0x28>
   463d4:	2039 0006 416c 	movel 6416c <rtems_malloc_statistics+0x24>,%d0
   463da:	d182           	addxl %d2,%d0                               
   463dc:	23c0 0006 416c 	movel %d0,6416c <rtems_malloc_statistics+0x24>
  }                                                                   
}                                                                     
   463e2:	242e fff4      	movel %fp@(-12),%d2                         
   463e6:	262e fff8      	movel %fp@(-8),%d3                          
   463ea:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000463ee <rtems_malloc_statistics_at_malloc>: } static void rtems_malloc_statistics_at_malloc( void *pointer ) {
   463ee:	4e56 fffc      	linkw %fp,#-4                               
   463f2:	202e 0008      	movel %fp@(8),%d0                           
   463f6:	2f03           	movel %d3,%sp@-                             
  uintptr_t actual_size = 0;                                          
   463f8:	42ae fffc      	clrl %fp@(-4)                               
}                                                                     
                                                                      
static void rtems_malloc_statistics_at_malloc(                        
  void *pointer                                                       
)                                                                     
{                                                                     
   463fc:	2f02           	movel %d2,%sp@-                             
  uintptr_t actual_size = 0;                                          
  uint32_t current_depth;                                             
  rtems_malloc_statistics_t *s = &rtems_malloc_statistics;            
                                                                      
  if ( !pointer )                                                     
   463fe:	4a80           	tstl %d0                                    
   46400:	674c           	beqs 4644e <rtems_malloc_statistics_at_malloc+0x60><== NEVER TAKEN
    return;                                                           
                                                                      
  _Protected_heap_Get_block_size(RTEMS_Malloc_Heap, pointer, &actual_size);
   46402:	486e fffc      	pea %fp@(-4)                                
                                                                      
  MSBUMP(lifetime_allocated, actual_size);                            
   46406:	4282           	clrl %d2                                    
  rtems_malloc_statistics_t *s = &rtems_malloc_statistics;            
                                                                      
  if ( !pointer )                                                     
    return;                                                           
                                                                      
  _Protected_heap_Get_block_size(RTEMS_Malloc_Heap, pointer, &actual_size);
   46408:	2f00           	movel %d0,%sp@-                             
   4640a:	2f39 0006 2010 	movel 62010 <RTEMS_Malloc_Heap>,%sp@-       
   46410:	4eb9 0004 b5ac 	jsr 4b5ac <_Protected_heap_Get_block_size>  
                                                                      
  MSBUMP(lifetime_allocated, actual_size);                            
   46416:	262e fffc      	movel %fp@(-4),%d3                          
                                                                      
  current_depth = (uint32_t) (s->lifetime_allocated - s->lifetime_freed);
  if (current_depth > s->max_depth)                                   
   4641a:	4fef 000c      	lea %sp@(12),%sp                            
  if ( !pointer )                                                     
    return;                                                           
                                                                      
  _Protected_heap_Get_block_size(RTEMS_Malloc_Heap, pointer, &actual_size);
                                                                      
  MSBUMP(lifetime_allocated, actual_size);                            
   4641e:	2039 0006 4164 	movel 64164 <rtems_malloc_statistics+0x1c>,%d0
   46424:	d6b9 0006 4168 	addl 64168 <rtems_malloc_statistics+0x20>,%d3
   4642a:	d580           	addxl %d0,%d2                               
                                                                      
  current_depth = (uint32_t) (s->lifetime_allocated - s->lifetime_freed);
   4642c:	2003           	movel %d3,%d0                               
   4642e:	90b9 0006 4170 	subl 64170 <rtems_malloc_statistics+0x28>,%d0
  if ( !pointer )                                                     
    return;                                                           
                                                                      
  _Protected_heap_Get_block_size(RTEMS_Malloc_Heap, pointer, &actual_size);
                                                                      
  MSBUMP(lifetime_allocated, actual_size);                            
   46434:	23c2 0006 4164 	movel %d2,64164 <rtems_malloc_statistics+0x1c>
   4643a:	23c3 0006 4168 	movel %d3,64168 <rtems_malloc_statistics+0x20>
                                                                      
  current_depth = (uint32_t) (s->lifetime_allocated - s->lifetime_freed);
  if (current_depth > s->max_depth)                                   
   46440:	b0b9 0006 4160 	cmpl 64160 <rtems_malloc_statistics+0x18>,%d0
   46446:	6306           	blss 4644e <rtems_malloc_statistics_at_malloc+0x60>
      s->max_depth = current_depth;                                   
   46448:	23c0 0006 4160 	movel %d0,64160 <rtems_malloc_statistics+0x18>
}                                                                     
   4644e:	242e fff4      	movel %fp@(-12),%d2                         
   46452:	262e fff8      	movel %fp@(-8),%d3                          
   46456:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004d464 <rtems_memalign>: int rtems_memalign( void **pointer, size_t alignment, size_t size ) {
   4d464:	4e56 0000      	linkw %fp,#0                                
   4d468:	2f0a           	movel %a2,%sp@-                             
   4d46a:	246e 0008      	moveal %fp@(8),%a2                          
   4d46e:	2f02           	movel %d2,%sp@-                             
  void *return_this;                                                  
                                                                      
  /*                                                                  
   *  Parameter error checks                                          
   */                                                                 
  if ( !pointer )                                                     
   4d470:	4a8a           	tstl %a2                                    
   4d472:	6754           	beqs 4d4c8 <rtems_memalign+0x64>            
    return EINVAL;                                                    
                                                                      
  *pointer = NULL;                                                    
   4d474:	4292           	clrl %a2@                                   
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if not in correct system state.
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
   4d476:	7003           	moveq #3,%d0                                
   4d478:	b0b9 0006 213c 	cmpl 6213c <_System_state_Current>,%d0      
   4d47e:	660a           	bnes 4d48a <rtems_memalign+0x26>            <== NEVER TAKEN
       !malloc_is_system_state_OK() )                                 
   4d480:	4eb9 0004 3840 	jsr 43840 <malloc_is_system_state_OK>       
  *pointer = NULL;                                                    
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if not in correct system state.
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
   4d486:	4a00           	tstb %d0                                    
   4d488:	673e           	beqs 4d4c8 <rtems_memalign+0x64>            <== NEVER TAKEN
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  If some free's have been deferred, then do them now.            
   */                                                                 
  malloc_deferred_frees_process();                                    
   4d48a:	4eb9 0004 387e 	jsr 4387e <malloc_deferred_frees_process>   
  Heap_Control *heap,                                                 
  uintptr_t size,                                                     
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return                                                              
   4d490:	42a7           	clrl %sp@-                                  
   4d492:	2f2e 000c      	movel %fp@(12),%sp@-                        
   4d496:	2f2e 0010      	movel %fp@(16),%sp@-                        
   4d49a:	2f39 0006 05b0 	movel 605b0 <RTEMS_Malloc_Heap>,%sp@-       
   4d4a0:	4eb9 0004 814c 	jsr 4814c <_Protected_heap_Allocate_aligned_with_boundary>
  return_this = _Protected_heap_Allocate_aligned(                     
    RTEMS_Malloc_Heap,                                                
    size,                                                             
    alignment                                                         
  );                                                                  
  if ( !return_this )                                                 
   4d4a6:	4fef 0010      	lea %sp@(16),%sp                            
   4d4aa:	2400           	movel %d0,%d2                               
   4d4ac:	671e           	beqs 4d4cc <rtems_memalign+0x68>            
    return ENOMEM;                                                    
                                                                      
  /*                                                                  
   *  If configured, update the more involved statistics              
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
   4d4ae:	2079 0006 0d96 	moveal 60d96 <rtems_malloc_statistics_helpers>,%a0
   4d4b4:	4a88           	tstl %a0                                    
   4d4b6:	670a           	beqs 4d4c2 <rtems_memalign+0x5e>            
    (*rtems_malloc_statistics_helpers->at_malloc)(pointer);           
   4d4b8:	2f0a           	movel %a2,%sp@-                             
   4d4ba:	2068 0004      	moveal %a0@(4),%a0                          
   4d4be:	4e90           	jsr %a0@                                    
   4d4c0:	588f           	addql #4,%sp                                
                                                                      
  *pointer = return_this;                                             
   4d4c2:	2482           	movel %d2,%a2@                              
  return 0;                                                           
   4d4c4:	4280           	clrl %d0                                    
   4d4c6:	6006           	bras 4d4ce <rtems_memalign+0x6a>            
  /*                                                                  
   *  Do not attempt to allocate memory if not in correct system state.
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
       !malloc_is_system_state_OK() )                                 
    return EINVAL;                                                    
   4d4c8:	7016           	moveq #22,%d0                               
   4d4ca:	6002           	bras 4d4ce <rtems_memalign+0x6a>            
    RTEMS_Malloc_Heap,                                                
    size,                                                             
    alignment                                                         
  );                                                                  
  if ( !return_this )                                                 
    return ENOMEM;                                                    
   4d4cc:	700c           	moveq #12,%d0                               
  if ( rtems_malloc_statistics_helpers )                              
    (*rtems_malloc_statistics_helpers->at_malloc)(pointer);           
                                                                      
  *pointer = return_this;                                             
  return 0;                                                           
}                                                                     
   4d4ce:	242e fff8      	movel %fp@(-8),%d2                          
   4d4d2:	246e fffc      	moveal %fp@(-4),%a2                         
   4d4d6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004bd30 <rtems_mkdir>: return (retval); } int rtems_mkdir(const char *path, mode_t mode) {
   4bd30:	4e56 ff90      	linkw %fp,#-112                             
   4bd34:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
  int success = 0;                                                    
  char *dup_path = strdup(path);                                      
   4bd38:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4bd3c:	4eb9 0004 f2f8 	jsr 4f2f8 <strdup>                          
                                                                      
  if (dup_path != NULL) {                                             
   4bd42:	588f           	addql #4,%sp                                
                                                                      
int                                                                   
rtems_mkdir(const char *path, mode_t mode)                            
{                                                                     
  int success = 0;                                                    
  char *dup_path = strdup(path);                                      
   4bd44:	2440           	moveal %d0,%a2                              
                                                                      
  if (dup_path != NULL) {                                             
   4bd46:	4a80           	tstl %d0                                    
   4bd48:	6700 0122      	beqw 4be6c <rtems_mkdir+0x13c>              
  char *p;                                                            
                                                                      
  p = path;                                                           
  oumask = 0;                                                         
  retval = 1;                                                         
  if (p[0] == '/')    /* Skip leading '/'. */                         
   4bd4c:	722f           	moveq #47,%d1                               
   4bd4e:	1012           	moveb %a2@,%d0                              
   4bd50:	49c0           	extbl %d0                                   
   4bd52:	b280           	cmpl %d0,%d1                                
   4bd54:	6606           	bnes 4bd5c <rtems_mkdir+0x2c>               
    ++p;                                                              
   4bd56:	47ea 0001      	lea %a2@(1),%a3                             
   4bd5a:	6002           	bras 4bd5e <rtems_mkdir+0x2e>               
  char *p;                                                            
                                                                      
  p = path;                                                           
  oumask = 0;                                                         
  retval = 1;                                                         
  if (p[0] == '/')    /* Skip leading '/'. */                         
   4bd5c:	264a           	moveal %a2,%a3                              
    }                                                                 
    if (last)                                                         
      (void)umask(oumask);                                            
    if (mkdir(path, last ? omode : S_IRWXU | S_IRWXG | S_IRWXO) < 0) {
      if (errno == EEXIST || errno == EISDIR) {                       
        if (stat(path, &sb) < 0) {                                    
   4bd5e:	2c0e           	movel %fp,%d6                               
                                                                      
  p = path;                                                           
  oumask = 0;                                                         
  retval = 1;                                                         
  if (p[0] == '/')    /* Skip leading '/'. */                         
    ++p;                                                              
   4bd60:	2a4b           	moveal %a3,%a5                              
  char *p;                                                            
                                                                      
  p = path;                                                           
  oumask = 0;                                                         
  retval = 1;                                                         
  if (p[0] == '/')    /* Skip leading '/'. */                         
   4bd62:	4283           	clrl %d3                                    
   4bd64:	7001           	moveq #1,%d0                                
      (void)umask(numask);                                            
      first = 0;                                                      
    }                                                                 
    if (last)                                                         
      (void)umask(oumask);                                            
    if (mkdir(path, last ? omode : S_IRWXU | S_IRWXG | S_IRWXO) < 0) {
   4bd66:	2e3c 0004 3f48 	movel #278344,%d7                           
      if (errno == EEXIST || errno == EISDIR) {                       
   4bd6c:	283c 0004 e348 	movel #320328,%d4                           
        if (stat(path, &sb) < 0) {                                    
   4bd72:	0686 ffff ffba 	addil #-70,%d6                              
   4bd78:	2a3c 0004 be88 	movel #310920,%d5                           
      numask = oumask & ~(S_IWUSR | S_IXUSR);                         
      (void)umask(numask);                                            
      first = 0;                                                      
    }                                                                 
    if (last)                                                         
      (void)umask(oumask);                                            
   4bd7e:	49f9 0004 bf2c 	lea 4bf2c <umask>,%a4                       
  oumask = 0;                                                         
  retval = 1;                                                         
  if (p[0] == '/')    /* Skip leading '/'. */                         
    ++p;                                                              
  for (first = 1, last = 0; !last ; ++p) {                            
    if (p[0] == '\0')                                                 
   4bd84:	121d           	moveb %a5@+,%d1                             
   4bd86:	670e           	beqs 4bd96 <rtems_mkdir+0x66>               
      last = 1;                                                       
    else if (p[0] != '/')                                             
   4bd88:	49c1           	extbl %d1                                   
   4bd8a:	742f           	moveq #47,%d2                               
   4bd8c:	b481           	cmpl %d1,%d2                                
   4bd8e:	6600 00b8      	bnew 4be48 <rtems_mkdir+0x118>              
   4bd92:	4281           	clrl %d1                                    
   4bd94:	6002           	bras 4bd98 <rtems_mkdir+0x68>               
  retval = 1;                                                         
  if (p[0] == '/')    /* Skip leading '/'. */                         
    ++p;                                                              
  for (first = 1, last = 0; !last ; ++p) {                            
    if (p[0] == '\0')                                                 
      last = 1;                                                       
   4bd96:	7201           	moveq #1,%d1                                
    else if (p[0] != '/')                                             
      continue;                                                       
    *p = '\0';                                                        
   4bd98:	4213           	clrb %a3@                                   
    if (!last && p[1] == '\0')                                        
   4bd9a:	4a81           	tstl %d1                                    
   4bd9c:	660a           	bnes 4bda8 <rtems_mkdir+0x78>               
   4bd9e:	4a15           	tstb %a5@                                   
   4bda0:	57c2           	seq %d2                                     
   4bda2:	49c2           	extbl %d2                                   
   4bda4:	4482           	negl %d2                                    
   4bda6:	6002           	bras 4bdaa <rtems_mkdir+0x7a>               
   4bda8:	7401           	moveq #1,%d2                                
      last = 1;                                                       
    if (first) {                                                      
   4bdaa:	4a80           	tstl %d0                                    
   4bdac:	6712           	beqs 4bdc0 <rtems_mkdir+0x90>               
       *    mkdir [-m mode] dir                                       
       *                                                              
       * We change the user's umask and then restore it,              
       * instead of doing chmod's.                                    
       */                                                             
      oumask = umask(0);                                              
   4bdae:	42a7           	clrl %sp@-                                  
   4bdb0:	4e94           	jsr %a4@                                    
   4bdb2:	2600           	movel %d0,%d3                               
      numask = oumask & ~(S_IWUSR | S_IXUSR);                         
      (void)umask(numask);                                            
   4bdb4:	0280 ffff ff3f 	andil #-193,%d0                             
   4bdba:	2f00           	movel %d0,%sp@-                             
   4bdbc:	4e94           	jsr %a4@                                    
   4bdbe:	508f           	addql #8,%sp                                
      first = 0;                                                      
    }                                                                 
    if (last)                                                         
      (void)umask(oumask);                                            
    if (mkdir(path, last ? omode : S_IRWXU | S_IRWXG | S_IRWXO) < 0) {
   4bdc0:	203c 0000 01ff 	movel #511,%d0                              
      oumask = umask(0);                                              
      numask = oumask & ~(S_IWUSR | S_IXUSR);                         
      (void)umask(numask);                                            
      first = 0;                                                      
    }                                                                 
    if (last)                                                         
   4bdc6:	4a82           	tstl %d2                                    
   4bdc8:	670a           	beqs 4bdd4 <rtems_mkdir+0xa4>               
      (void)umask(oumask);                                            
   4bdca:	2f03           	movel %d3,%sp@-                             
   4bdcc:	4e94           	jsr %a4@                                    
    if (mkdir(path, last ? omode : S_IRWXU | S_IRWXG | S_IRWXO) < 0) {
   4bdce:	202e 000c      	movel %fp@(12),%d0                          
      numask = oumask & ~(S_IWUSR | S_IXUSR);                         
      (void)umask(numask);                                            
      first = 0;                                                      
    }                                                                 
    if (last)                                                         
      (void)umask(oumask);                                            
   4bdd2:	588f           	addql #4,%sp                                
    if (mkdir(path, last ? omode : S_IRWXU | S_IRWXG | S_IRWXO) < 0) {
   4bdd4:	2f00           	movel %d0,%sp@-                             
   4bdd6:	2047           	moveal %d7,%a0                              
   4bdd8:	2f0a           	movel %a2,%sp@-                             
   4bdda:	4e90           	jsr %a0@                                    
   4bddc:	508f           	addql #8,%sp                                
   4bdde:	4a80           	tstl %d0                                    
   4bde0:	6c5c           	bges 4be3e <rtems_mkdir+0x10e>              
      if (errno == EEXIST || errno == EISDIR) {                       
   4bde2:	2044           	moveal %d4,%a0                              
   4bde4:	4e90           	jsr %a0@                                    
   4bde6:	7211           	moveq #17,%d1                               
   4bde8:	2040           	moveal %d0,%a0                              
   4bdea:	b290           	cmpl %a0@,%d1                               
   4bdec:	670c           	beqs 4bdfa <rtems_mkdir+0xca>               
   4bdee:	2044           	moveal %d4,%a0                              
   4bdf0:	4e90           	jsr %a0@                                    
   4bdf2:	7215           	moveq #21,%d1                               
   4bdf4:	2040           	moveal %d0,%a0                              
   4bdf6:	b290           	cmpl %a0@,%d1                               
   4bdf8:	667e           	bnes 4be78 <rtems_mkdir+0x148>              <== ALWAYS TAKEN
        if (stat(path, &sb) < 0) {                                    
   4bdfa:	2f06           	movel %d6,%sp@-                             
   4bdfc:	2045           	moveal %d5,%a0                              
   4bdfe:	2f0a           	movel %a2,%sp@-                             
   4be00:	4e90           	jsr %a0@                                    
   4be02:	508f           	addql #8,%sp                                
   4be04:	4a80           	tstl %d0                                    
   4be06:	6d70           	blts 4be78 <rtems_mkdir+0x148>              <== NEVER TAKEN
          retval = 0;                                                 
          break;                                                      
        } else if (!S_ISDIR(sb.st_mode)) {                            
   4be08:	202e ffc6      	movel %fp@(-58),%d0                         
   4be0c:	0280 0000 f000 	andil #61440,%d0                            
   4be12:	0c80 0000 4000 	cmpil #16384,%d0                            
   4be18:	671e           	beqs 4be38 <rtems_mkdir+0x108>              
   4be1a:	41f9 0004 e348 	lea 4e348 <__errno>,%a0                     
          if (last)                                                   
   4be20:	4a82           	tstl %d2                                    
   4be22:	670a           	beqs 4be2e <rtems_mkdir+0xfe>               
            errno = EEXIST;                                           
   4be24:	4e90           	jsr %a0@                                    
   4be26:	7211           	moveq #17,%d1                               
   4be28:	2040           	moveal %d0,%a0                              
   4be2a:	2081           	movel %d1,%a0@                              
   4be2c:	602a           	bras 4be58 <rtems_mkdir+0x128>              
          else                                                        
            errno = ENOTDIR;                                          
   4be2e:	4e90           	jsr %a0@                                    
   4be30:	2040           	moveal %d0,%a0                              
   4be32:	7014           	moveq #20,%d0                               
   4be34:	2080           	movel %d0,%a0@                              
   4be36:	6016           	bras 4be4e <rtems_mkdir+0x11e>              
          retval = 0;                                                 
          break;                                                      
        }                                                             
        if (last)                                                     
   4be38:	4a82           	tstl %d2                                    
   4be3a:	6642           	bnes 4be7e <rtems_mkdir+0x14e>              
   4be3c:	6004           	bras 4be42 <rtems_mkdir+0x112>              
      } else {                                                        
        retval = 0;                                                   
        break;                                                        
      }                                                               
    }                                                                 
    if (!last)                                                        
   4be3e:	4a82           	tstl %d2                                    
   4be40:	6640           	bnes 4be82 <rtems_mkdir+0x152>              
        *p = '/';                                                     
   4be42:	4280           	clrl %d0                                    
   4be44:	16bc 002f      	moveb #47,%a3@                              
  p = path;                                                           
  oumask = 0;                                                         
  retval = 1;                                                         
  if (p[0] == '/')    /* Skip leading '/'. */                         
    ++p;                                                              
  for (first = 1, last = 0; !last ; ++p) {                            
   4be48:	528b           	addql #1,%a3                                
   4be4a:	6000 ff38      	braw 4bd84 <rtems_mkdir+0x54>               
    }                                                                 
    if (!last)                                                        
        *p = '/';                                                     
  }                                                                   
  if (!first && !last)                                                
    (void)umask(oumask);                                              
   4be4e:	2f03           	movel %d3,%sp@-                             
   4be50:	4eb9 0004 bf2c 	jsr 4bf2c <umask>                           
   4be56:	588f           	addql #4,%sp                                
   4be58:	4282           	clrl %d2                                    
  int success = 0;                                                    
  char *dup_path = strdup(path);                                      
                                                                      
  if (dup_path != NULL) {                                             
    success = build(dup_path, mode);                                  
    free(dup_path);                                                   
   4be5a:	2f0a           	movel %a2,%sp@-                             
   4be5c:	4eb9 0004 3930 	jsr 43930 <free>                            
  }                                                                   
                                                                      
  return success != 0 ? 0 : -1;                                       
   4be62:	588f           	addql #4,%sp                                
   4be64:	4a82           	tstl %d2                                    
   4be66:	57c0           	seq %d0                                     
   4be68:	49c0           	extbl %d0                                   
   4be6a:	6002           	bras 4be6e <rtems_mkdir+0x13e>              
   4be6c:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
}                                                                     
   4be6e:	4cee 3cfc ff90 	moveml %fp@(-112),%d2-%d7/%a2-%a5           
   4be74:	4e5e           	unlk %fp                                    
   4be76:	4e75           	rts                                         
      }                                                               
    }                                                                 
    if (!last)                                                        
        *p = '/';                                                     
  }                                                                   
  if (!first && !last)                                                
   4be78:	4a82           	tstl %d2                                    
   4be7a:	67d2           	beqs 4be4e <rtems_mkdir+0x11e>              <== NEVER TAKEN
   4be7c:	60da           	bras 4be58 <rtems_mkdir+0x128>              
            errno = ENOTDIR;                                          
          retval = 0;                                                 
          break;                                                      
        }                                                             
        if (last)                                                     
          retval = 2;                                                 
   4be7e:	7402           	moveq #2,%d2                                
   4be80:	60d8           	bras 4be5a <rtems_mkdir+0x12a>              
      } else {                                                        
        retval = 0;                                                   
        break;                                                        
      }                                                               
    }                                                                 
    if (!last)                                                        
   4be82:	7401           	moveq #1,%d2                                
   4be84:	60d4           	bras 4be5a <rtems_mkdir+0x12a>              
	...                                                                  
                                                                      

00042866 <rtems_panic>: void rtems_panic( const char *printf_format, ... ) {
   42866:	4e56 0000      	linkw %fp,#0                                
  va_list arglist;                                                    
                                                                      
  va_start(arglist, printf_format);                                   
  (void) rtems_verror(RTEMS_ERROR_PANIC, printf_format, arglist);     
   4286a:	486e 000c      	pea %fp@(12)                                
   4286e:	2f2e 0008      	movel %fp@(8),%sp@-                         
   42872:	2f3c 2000 0000 	movel #536870912,%sp@-                      
   42878:	4eba fe3e      	jsr %pc@(426b8 <rtems_verror>)              
  va_end(arglist);                                                    
                                                                      
  rtems_error(0, "fatal error, exiting");                             
   4287c:	4879 0005 bc34 	pea 5bc34 <IMFS_ops+0x7e>                   
   42882:	42a7           	clrl %sp@-                                  
   42884:	4eb9 0004 2804 	jsr 42804 <rtems_error>                     
  _exit(errno);                                                       
   4288a:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   42890:	2040           	moveal %d0,%a0                              
   42892:	2f10           	movel %a0@,%sp@-                            
   42894:	4eb9 0004 31b8 	jsr 431b8 <_exit>                           
	...                                                                  
                                                                      

00050188 <rtems_partition_return_buffer>: rtems_status_code rtems_partition_return_buffer( rtems_id id, void *buffer ) {
   50188:	4e56 fffc      	linkw %fp,#-4                               
   5018c:	2f0a           	movel %a2,%sp@-                             
   5018e:	2f02           	movel %d2,%sp@-                             
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
   50190:	486e fffc      	pea %fp@(-4)                                
   50194:	2f2e 0008      	movel %fp@(8),%sp@-                         
   50198:	4879 0007 73b2 	pea 773b2 <_Partition_Information>          
   5019e:	242e 000c      	movel %fp@(12),%d2                          
   501a2:	4eb9 0005 46c4 	jsr 546c4 <_Objects_Get>                    
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
   501a8:	4fef 000c      	lea %sp@(12),%sp                            
   501ac:	2440           	moveal %d0,%a2                              
   501ae:	4aae fffc      	tstl %fp@(-4)                               
   501b2:	663e           	bnes 501f2 <rtems_partition_return_buffer+0x6a>
)                                                                     
{                                                                     
  void *starting;                                                     
  void *ending;                                                       
                                                                      
  starting = the_partition->starting_address;                         
   501b4:	202a 0010      	movel %a2@(16),%d0                          
  ending   = _Addresses_Add_offset( starting, the_partition->length );
   501b8:	222a 0014      	movel %a2@(20),%d1                          
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
   501bc:	b082           	cmpl %d2,%d0                                
   501be:	6240           	bhis 50200 <rtems_partition_return_buffer+0x78>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
   501c0:	d280           	addl %d0,%d1                                
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
   501c2:	b282           	cmpl %d2,%d1                                
   501c4:	653a           	bcss 50200 <rtems_partition_return_buffer+0x78><== NEVER TAKEN
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (                    
  const void *left,                                                   
  const void *right                                                   
)                                                                     
{                                                                     
  return (int32_t) ((const char *) left - (const char *) right);      
   501c6:	2202           	movel %d2,%d1                               
   501c8:	9280           	subl %d0,%d1                                
   501ca:	2001           	movel %d1,%d0                               
  offset = (uint32_t) _Addresses_Subtract(                            
    the_buffer,                                                       
    the_partition->starting_address                                   
  );                                                                  
                                                                      
  return ((offset % the_partition->buffer_size) == 0);                
   501cc:	4c6a 0001 0018 	remul %a2@(24),%d1,%d0                      
                                                                      
  starting = the_partition->starting_address;                         
  ending   = _Addresses_Add_offset( starting, the_partition->length );
                                                                      
  return (                                                            
    _Addresses_Is_in_range( the_buffer, starting, ending ) &&         
   501d2:	4a81           	tstl %d1                                    
   501d4:	662a           	bnes 50200 <rtems_partition_return_buffer+0x78>
RTEMS_INLINE_ROUTINE void _Partition_Free_buffer (                    
  Partition_Control *the_partition,                                   
  Chain_Node        *the_buffer                                       
)                                                                     
{                                                                     
  _Chain_Append( &the_partition->Memory, the_buffer );                
   501d6:	2f02           	movel %d2,%sp@-                             
   501d8:	486a 0024      	pea %a2@(36)                                
   501dc:	4eb9 0005 2d24 	jsr 52d24 <_Chain_Append>                   
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) {    
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
   501e2:	53aa 0020      	subql #1,%a2@(32)                           
        _Thread_Enable_dispatch();                                    
   501e6:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   501ec:	508f           	addql #8,%sp                                
   501ee:	4280           	clrl %d0                                    
   501f0:	6002           	bras 501f4 <rtems_partition_return_buffer+0x6c>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   501f2:	7004           	moveq #4,%d0                                
}                                                                     
   501f4:	242e fff4      	movel %fp@(-12),%d2                         
   501f8:	246e fff8      	moveal %fp@(-8),%a2                         
   501fc:	4e5e           	unlk %fp                                    
   501fe:	4e75           	rts                                         
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
   50200:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
      return RTEMS_INVALID_ADDRESS;                                   
   50206:	7009           	moveq #9,%d0                                
   50208:	60ea           	bras 501f4 <rtems_partition_return_buffer+0x6c>
	...                                                                  
                                                                      

0004f7ac <rtems_port_internal_to_external>: rtems_status_code rtems_port_internal_to_external( rtems_id id, void *internal, void **external ) {
   4f7ac:	4e56 fffc      	linkw %fp,#-4                               
   4f7b0:	2f0a           	movel %a2,%sp@-                             
   4f7b2:	246e 0010      	moveal %fp@(16),%a2                         
   4f7b6:	2f02           	movel %d2,%sp@-                             
   4f7b8:	242e 000c      	movel %fp@(12),%d2                          
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !external )                                                    
   4f7bc:	4a8a           	tstl %a2                                    
   4f7be:	6740           	beqs 4f800 <rtems_port_internal_to_external+0x54><== NEVER TAKEN
   4f7c0:	486e fffc      	pea %fp@(-4)                                
   4f7c4:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4f7c8:	4879 0007 7378 	pea 77378 <_Dual_ported_memory_Information> 
   4f7ce:	4eb9 0005 46c4 	jsr 546c4 <_Objects_Get>                    
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_port = _Dual_ported_memory_Get( id, &location );                
  switch ( location ) {                                               
   4f7d4:	4fef 000c      	lea %sp@(12),%sp                            
   4f7d8:	2040           	moveal %d0,%a0                              
   4f7da:	4aae fffc      	tstl %fp@(-4)                               
   4f7de:	6624           	bnes 4f804 <rtems_port_internal_to_external+0x58><== NEVER TAKEN
RTEMS_INLINE_ROUTINE int32_t _Addresses_Subtract (                    
  const void *left,                                                   
  const void *right                                                   
)                                                                     
{                                                                     
  return (int32_t) ((const char *) left - (const char *) right);      
   4f7e0:	2002           	movel %d2,%d0                               
   4f7e2:	90a8 0010      	subl %a0@(16),%d0                           
                                                                      
    case OBJECTS_LOCAL:                                               
      ending = _Addresses_Subtract( internal, the_port->internal_base );
      if ( ending > the_port->length )                                
   4f7e6:	b0a8 0018      	cmpl %a0@(24),%d0                           
   4f7ea:	6304           	blss 4f7f0 <rtems_port_internal_to_external+0x44>
        *external = internal;                                         
   4f7ec:	2482           	movel %d2,%a2@                              
   4f7ee:	6006           	bras 4f7f6 <rtems_port_internal_to_external+0x4a>
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
   4f7f0:	d0a8 0014      	addl %a0@(20),%d0                           
   4f7f4:	2480           	movel %d0,%a2@                              
      else                                                            
        *external = _Addresses_Add_offset( the_port->external_base,   
                                           ending );                  
      _Thread_Enable_dispatch();                                      
   4f7f6:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   4f7fc:	4280           	clrl %d0                                    
   4f7fe:	6006           	bras 4f806 <rtems_port_internal_to_external+0x5a>
  register Dual_ported_memory_Control *the_port;                      
  Objects_Locations                    location;                      
  uint32_t                             ending;                        
                                                                      
  if ( !external )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
   4f800:	7009           	moveq #9,%d0                                
   4f802:	6002           	bras 4f806 <rtems_port_internal_to_external+0x5a>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   4f804:	7004           	moveq #4,%d0                                
}                                                                     
   4f806:	242e fff4      	movel %fp@(-12),%d2                         
   4f80a:	246e fff8      	moveal %fp@(-8),%a2                         
   4f80e:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004bfb4 <rtems_rate_monotonic_get_statistics>: rtems_status_code rtems_rate_monotonic_get_statistics( rtems_id id, rtems_rate_monotonic_period_statistics *statistics ) {
   4bfb4:	4e56 fffc      	linkw %fp,#-4                               
   4bfb8:	2f0a           	movel %a2,%sp@-                             
   4bfba:	246e 000c      	moveal %fp@(12),%a2                         
  Objects_Locations                        location;                  
  Rate_monotonic_Control                  *the_period;                
  rtems_rate_monotonic_period_statistics  *dst;                       
  Rate_monotonic_Statistics               *src;                       
                                                                      
  if ( !statistics )                                                  
   4bfbe:	4a8a           	tstl %a2                                    
   4bfc0:	6700 0096      	beqw 4c058 <rtems_rate_monotonic_get_statistics+0xa4>
   4bfc4:	486e fffc      	pea %fp@(-4)                                
   4bfc8:	2f2e 0008      	movel %fp@(8),%sp@-                         
   4bfcc:	4879 0006 04ec 	pea 604ec <_Rate_monotonic_Information>     
   4bfd2:	4eb9 0004 8540 	jsr 48540 <_Objects_Get>                    
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
   4bfd8:	4fef 000c      	lea %sp@(12),%sp                            
   4bfdc:	2040           	moveal %d0,%a0                              
   4bfde:	4aae fffc      	tstl %fp@(-4)                               
   4bfe2:	6678           	bnes 4c05c <rtems_rate_monotonic_get_statistics+0xa8><== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      dst = statistics;                                               
      src = &the_period->Statistics;                                  
      dst->count        = src->count;                                 
   4bfe4:	24a8 0054      	movel %a0@(84),%a2@                         
      dst->missed_count = src->missed_count;                          
   4bfe8:	2568 0058 0004 	movel %a0@(88),%a2@(4)                      
      #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                      
        _Timestamp_To_timespec( &src->min_cpu_time,   &dst->min_cpu_time );
   4bfee:	2028 005c      	movel %a0@(92),%d0                          
   4bff2:	2228 0060      	movel %a0@(96),%d1                          
   4bff6:	2540 0008      	movel %d0,%a2@(8)                           
   4bffa:	2541 000c      	movel %d1,%a2@(12)                          
        _Timestamp_To_timespec( &src->max_cpu_time,   &dst->max_cpu_time );
   4bffe:	2028 0064      	movel %a0@(100),%d0                         
   4c002:	2228 0068      	movel %a0@(104),%d1                         
   4c006:	2540 0010      	movel %d0,%a2@(16)                          
   4c00a:	2541 0014      	movel %d1,%a2@(20)                          
        _Timestamp_To_timespec( &src->total_cpu_time, &dst->total_cpu_time );
   4c00e:	2028 006c      	movel %a0@(108),%d0                         
   4c012:	2228 0070      	movel %a0@(112),%d1                         
   4c016:	2540 0018      	movel %d0,%a2@(24)                          
   4c01a:	2541 001c      	movel %d1,%a2@(28)                          
        _Timestamp_To_timespec( &src->min_wall_time,   &dst->min_wall_time );
   4c01e:	2028 0074      	movel %a0@(116),%d0                         
   4c022:	2228 0078      	movel %a0@(120),%d1                         
   4c026:	2540 0020      	movel %d0,%a2@(32)                          
   4c02a:	2541 0024      	movel %d1,%a2@(36)                          
        _Timestamp_To_timespec( &src->max_wall_time,   &dst->max_wall_time );
   4c02e:	2028 007c      	movel %a0@(124),%d0                         
   4c032:	2228 0080      	movel %a0@(128),%d1                         
   4c036:	2540 0028      	movel %d0,%a2@(40)                          
   4c03a:	2541 002c      	movel %d1,%a2@(44)                          
        _Timestamp_To_timespec( &src->total_wall_time, &dst->total_wall_time );
   4c03e:	2028 0084      	movel %a0@(132),%d0                         
   4c042:	2228 0088      	movel %a0@(136),%d1                         
   4c046:	2540 0030      	movel %d0,%a2@(48)                          
   4c04a:	2541 0034      	movel %d1,%a2@(52)                          
        dst->min_wall_time   = src->min_wall_time;                    
        dst->max_wall_time   = src->max_wall_time;                    
        dst->total_wall_time = src->total_wall_time;                  
      #endif                                                          
                                                                      
      _Thread_Enable_dispatch();                                      
   4c04e:	4eb9 0004 90ea 	jsr 490ea <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   4c054:	4280           	clrl %d0                                    
   4c056:	6006           	bras 4c05e <rtems_rate_monotonic_get_statistics+0xaa>
  Rate_monotonic_Control                  *the_period;                
  rtems_rate_monotonic_period_statistics  *dst;                       
  Rate_monotonic_Statistics               *src;                       
                                                                      
  if ( !statistics )                                                  
    return RTEMS_INVALID_ADDRESS;                                     
   4c058:	7009           	moveq #9,%d0                                
   4c05a:	6002           	bras 4c05e <rtems_rate_monotonic_get_statistics+0xaa>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   4c05c:	7004           	moveq #4,%d0                                
}                                                                     
   4c05e:	246e fff8      	moveal %fp@(-8),%a2                         
   4c062:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00046586 <rtems_rate_monotonic_period>: rtems_status_code rtems_rate_monotonic_period( rtems_id id, rtems_interval length ) {
   46586:	4e56 ffec      	linkw %fp,#-20                              
   4658a:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
   4658e:	486e fffc      	pea %fp@(-4)                                
   46592:	262e 0008      	movel %fp@(8),%d3                           
   46596:	2f03           	movel %d3,%sp@-                             
   46598:	4879 0006 04ec 	pea 604ec <_Rate_monotonic_Information>     
   4659e:	242e 000c      	movel %fp@(12),%d2                          
   465a2:	4eb9 0004 8540 	jsr 48540 <_Objects_Get>                    
  rtems_rate_monotonic_period_states   local_state;                   
  ISR_Level                            level;                         
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
                                                                      
  switch ( location ) {                                               
   465a8:	4fef 000c      	lea %sp@(12),%sp                            
   465ac:	2440           	moveal %d0,%a2                              
   465ae:	4aae fffc      	tstl %fp@(-4)                               
   465b2:	6600 0148      	bnew 466fc <rtems_rate_monotonic_period+0x176>
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
   465b6:	2039 0006 0a4c 	movel 60a4c <_Per_CPU_Information+0xc>,%d0  
   465bc:	b0aa 0040      	cmpl %a2@(64),%d0                           
   465c0:	670c           	beqs 465ce <rtems_rate_monotonic_period+0x48>
        _Thread_Enable_dispatch();                                    
   465c2:	4eb9 0004 90ea 	jsr 490ea <_Thread_Enable_dispatch>         
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
   465c8:	7417           	moveq #23,%d2                               
   465ca:	6000 0132      	braw 466fe <rtems_rate_monotonic_period+0x178>
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
   465ce:	4a82           	tstl %d2                                    
   465d0:	6622           	bnes 465f4 <rtems_rate_monotonic_period+0x6e>
        switch ( the_period->state ) {                                
   465d2:	202a 0038      	movel %a2@(56),%d0                          
   465d6:	7204           	moveq #4,%d1                                
   465d8:	b280           	cmpl %d0,%d1                                
   465da:	650c           	bcss 465e8 <rtems_rate_monotonic_period+0x62><== NEVER TAKEN
   465dc:	41f9 0005 db46 	lea 5db46 <CSWTCH.2>,%a0                    
   465e2:	2430 0c00      	movel %a0@(00000000,%d0:l:4),%d2            
   465e6:	6002           	bras 465ea <rtems_rate_monotonic_period+0x64>
   465e8:	4282           	clrl %d2                                    <== NOT EXECUTED
          case RATE_MONOTONIC_ACTIVE:                                 
          default:              /* unreached -- only to remove warnings */
            return_value = RTEMS_SUCCESSFUL;                          
            break;                                                    
        }                                                             
        _Thread_Enable_dispatch();                                    
   465ea:	4eb9 0004 90ea 	jsr 490ea <_Thread_Enable_dispatch>         
        return( return_value );                                       
   465f0:	6000 010c      	braw 466fe <rtems_rate_monotonic_period+0x178>
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
   465f4:	203c 0000 0700 	movel #1792,%d0                             
   465fa:	40c4           	movew %sr,%d4                               
   465fc:	8084           	orl %d4,%d0                                 
   465fe:	46c0           	movew %d0,%sr                               
      if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {           
   46600:	202a 0038      	movel %a2@(56),%d0                          
   46604:	664a           	bnes 46650 <rtems_rate_monotonic_period+0xca>
        _ISR_Enable( level );                                         
   46606:	46c4           	movew %d4,%sr                               
                                                                      
        /*                                                            
         *  Baseline statistics information for the beginning of a period.
         */                                                           
        _Rate_monotonic_Initiate_statistics( the_period );            
   46608:	2f0a           	movel %a2,%sp@-                             
   4660a:	4eb9 0004 641a 	jsr 4641a <_Rate_monotonic_Initiate_statistics>
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
   46610:	7002           	moveq #2,%d0                                
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   46612:	223c 0004 6948 	movel #289096,%d1                           
   46618:	2540 0038      	movel %d0,%a2@(56)                          
   4661c:	2541 002c      	movel %d1,%a2@(44)                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   46620:	42aa 0018      	clrl %a2@(24)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
   46624:	2543 0030      	movel %d3,%a2@(48)                          
  the_watchdog->user_data = user_data;                                
   46628:	42aa 0034      	clrl %a2@(52)                               
          _Rate_monotonic_Timeout,                                    
          id,                                                         
          NULL                                                        
        );                                                            
                                                                      
        the_period->next_length = length;                             
   4662c:	2542 003c      	movel %d2,%a2@(60)                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   46630:	2542 001c      	movel %d2,%a2@(28)                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   46634:	486a 0010      	pea %a2@(16)                                
   46638:	4879 0006 06a2 	pea 606a2 <_Watchdog_Ticks_chain>           
   4663e:	4eb9 0004 9e70 	jsr 49e70 <_Watchdog_Insert>                
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
   46644:	4eb9 0004 90ea 	jsr 490ea <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   4664a:	4fef 000c      	lea %sp@(12),%sp                            
   4664e:	606c           	bras 466bc <rtems_rate_monotonic_period+0x136>
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_ACTIVE ) {             
   46650:	7202           	moveq #2,%d1                                
   46652:	b280           	cmpl %d0,%d1                                
   46654:	666a           	bnes 466c0 <rtems_rate_monotonic_period+0x13a>
        /*                                                            
         *  Update statistics from the concluding period.             
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
   46656:	2f0a           	movel %a2,%sp@-                             
   46658:	4eb9 0004 6492 	jsr 46492 <_Rate_monotonic_Update_statistics>
        /*                                                            
         *  This tells the _Rate_monotonic_Timeout that this task is  
         *  in the process of blocking on the period and that we      
         *  may be changing the length of the next period.            
         */                                                           
        the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;         
   4665e:	7001           	moveq #1,%d0                                
        the_period->next_length = length;                             
   46660:	2542 003c      	movel %d2,%a2@(60)                          
        /*                                                            
         *  This tells the _Rate_monotonic_Timeout that this task is  
         *  in the process of blocking on the period and that we      
         *  may be changing the length of the next period.            
         */                                                           
        the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;         
   46664:	2540 0038      	movel %d0,%a2@(56)                          
        the_period->next_length = length;                             
                                                                      
        _ISR_Enable( level );                                         
   46668:	46c4           	movew %d4,%sr                               
                                                                      
        _Thread_Executing->Wait.id = the_period->Object.id;           
   4666a:	2079 0006 0a4c 	moveal 60a4c <_Per_CPU_Information+0xc>,%a0 
   46670:	216a 0008 0020 	movel %a2@(8),%a0@(32)                      
        _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   46676:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   4667a:	2f08           	movel %a0,%sp@-                             
   4667c:	4eb9 0004 987c 	jsr 4987c <_Thread_Set_state>               
                                                                      
        /*                                                            
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
   46682:	203c 0000 0700 	movel #1792,%d0                             
   46688:	40c1           	movew %sr,%d1                               
   4668a:	8081           	orl %d1,%d0                                 
   4668c:	46c0           	movew %d0,%sr                               
          local_state = the_period->state;                            
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   4668e:	7402           	moveq #2,%d2                                
        /*                                                            
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
          local_state = the_period->state;                            
   46690:	202a 0038      	movel %a2@(56),%d0                          
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
   46694:	2542 0038      	movel %d2,%a2@(56)                          
        _ISR_Enable( level );                                         
   46698:	46c1           	movew %d1,%sr                               
                                                                      
        /*                                                            
         *  If it did, then we want to unblock ourself and continue as
         *  if nothing happen.  The period was reset in the timeout routine.
         */                                                           
        if ( local_state == RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING )   
   4669a:	7203           	moveq #3,%d1                                
   4669c:	4fef 000c      	lea %sp@(12),%sp                            
   466a0:	b280           	cmpl %d0,%d1                                
   466a2:	6612           	bnes 466b6 <rtems_rate_monotonic_period+0x130>
          _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
   466a4:	4878 4000      	pea 4000 <D_MAX_EXP+0x3801>                 
   466a8:	2f39 0006 0a4c 	movel 60a4c <_Per_CPU_Information+0xc>,%sp@-
   466ae:	4eb9 0004 8da8 	jsr 48da8 <_Thread_Clear_state>             
   466b4:	508f           	addql #8,%sp                                
                                                                      
        _Thread_Enable_dispatch();                                    
   466b6:	4eb9 0004 90ea 	jsr 490ea <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   466bc:	4282           	clrl %d2                                    
   466be:	603e           	bras 466fe <rtems_rate_monotonic_period+0x178>
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_EXPIRED ) {            
   466c0:	7204           	moveq #4,%d1                                
   466c2:	b280           	cmpl %d0,%d1                                
   466c4:	6636           	bnes 466fc <rtems_rate_monotonic_period+0x176><== NEVER TAKEN
        /*                                                            
         *  Update statistics from the concluding period              
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
   466c6:	2f0a           	movel %a2,%sp@-                             
   466c8:	4eb9 0004 6492 	jsr 46492 <_Rate_monotonic_Update_statistics>
                                                                      
        _ISR_Enable( level );                                         
   466ce:	46c4           	movew %d4,%sr                               
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
   466d0:	7002           	moveq #2,%d0                                
        the_period->next_length = length;                             
   466d2:	2542 003c      	movel %d2,%a2@(60)                          
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
                                                                      
        _ISR_Enable( level );                                         
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
   466d6:	2540 0038      	movel %d0,%a2@(56)                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   466da:	2542 001c      	movel %d2,%a2@(28)                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   466de:	486a 0010      	pea %a2@(16)                                
        the_period->next_length = length;                             
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
        return RTEMS_TIMEOUT;                                         
   466e2:	7406           	moveq #6,%d2                                
   466e4:	4879 0006 06a2 	pea 606a2 <_Watchdog_Ticks_chain>           
   466ea:	4eb9 0004 9e70 	jsr 49e70 <_Watchdog_Insert>                
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
        the_period->next_length = length;                             
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
   466f0:	4eb9 0004 90ea 	jsr 490ea <_Thread_Enable_dispatch>         
        return RTEMS_TIMEOUT;                                         
   466f6:	4fef 000c      	lea %sp@(12),%sp                            
   466fa:	6002           	bras 466fe <rtems_rate_monotonic_period+0x178>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   466fc:	7404           	moveq #4,%d2                                
}                                                                     
   466fe:	2002           	movel %d2,%d0                               
   46700:	4cee 041c ffec 	moveml %fp@(-20),%d2-%d4/%a2                
   46706:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00050d70 <rtems_region_get_segment_size>: rtems_status_code rtems_region_get_segment_size( rtems_id id, void *segment, uintptr_t *size ) {
   50d70:	4e56 fffc      	linkw %fp,#-4                               
   50d74:	2f03           	movel %d3,%sp@-                             
   50d76:	262e 0010      	movel %fp@(16),%d3                          
   50d7a:	2f02           	movel %d2,%sp@-                             
   50d7c:	242e 000c      	movel %fp@(12),%d2                          
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
  register Region_Control *the_region;                                
                                                                      
  if ( !segment )                                                     
   50d80:	6768           	beqs 50dea <rtems_region_get_segment_size+0x7a>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
   50d82:	4a83           	tstl %d3                                    
   50d84:	6764           	beqs 50dea <rtems_region_get_segment_size+0x7a>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
   50d86:	2f39 0007 75bc 	movel 775bc <_RTEMS_Allocator_Mutex>,%sp@-  
   50d8c:	4eb9 0005 2c90 	jsr 52c90 <_API_Mutex_Lock>                 
   50d92:	486e fffc      	pea %fp@(-4)                                
   50d96:	2f2e 0008      	movel %fp@(8),%sp@-                         
   50d9a:	4879 0007 7426 	pea 77426 <_Region_Information>             
   50da0:	4eb9 0005 468c 	jsr 5468c <_Objects_Get_no_protection>      
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
   50da6:	222e fffc      	movel %fp@(-4),%d1                          
   50daa:	4fef 0010      	lea %sp@(16),%sp                            
   50dae:	6708           	beqs 50db8 <rtems_region_get_segment_size+0x48>
   50db0:	7001           	moveq #1,%d0                                
   50db2:	b081           	cmpl %d1,%d0                                
   50db4:	661a           	bnes 50dd0 <rtems_region_get_segment_size+0x60><== NEVER TAKEN
   50db6:	601c           	bras 50dd4 <rtems_region_get_segment_size+0x64>
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( !_Heap_Size_of_alloc_area( &the_region->Memory, segment, size ) )
   50db8:	2f03           	movel %d3,%sp@-                             
   50dba:	2040           	moveal %d0,%a0                              
   50dbc:	2f02           	movel %d2,%sp@-                             
   50dbe:	4868 0068      	pea %a0@(104)                               
   50dc2:	4eb9 0005 4104 	jsr 54104 <_Heap_Size_of_alloc_area>        
   50dc8:	4fef 000c      	lea %sp@(12),%sp                            
   50dcc:	4a00           	tstb %d0                                    
   50dce:	6708           	beqs 50dd8 <rtems_region_get_segment_size+0x68><== NEVER TAKEN
  void      *segment,                                                 
  uintptr_t *size                                                     
)                                                                     
{                                                                     
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
   50dd0:	4282           	clrl %d2                                    
   50dd2:	6006           	bras 50dda <rtems_region_get_segment_size+0x6a>
      case OBJECTS_REMOTE:        /* this error cannot be returned */ 
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
   50dd4:	7404           	moveq #4,%d2                                
   50dd6:	6002           	bras 50dda <rtems_region_get_segment_size+0x6a>
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( !_Heap_Size_of_alloc_area( &the_region->Memory, segment, size ) )
          return_status = RTEMS_INVALID_ADDRESS;                      
   50dd8:	7409           	moveq #9,%d2                                <== NOT EXECUTED
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
   50dda:	2f39 0007 75bc 	movel 775bc <_RTEMS_Allocator_Mutex>,%sp@-  
   50de0:	4eb9 0005 2cf0 	jsr 52cf0 <_API_Mutex_Unlock>               
  return return_status;                                               
   50de6:	588f           	addql #4,%sp                                
   50de8:	6002           	bras 50dec <rtems_region_get_segment_size+0x7c>
                                                                      
  if ( !segment )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
   50dea:	7409           	moveq #9,%d2                                
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
}                                                                     
   50dec:	2002           	movel %d2,%d0                               
   50dee:	242e fff4      	movel %fp@(-12),%d2                         
   50df2:	262e fff8      	movel %fp@(-8),%d3                          
   50df6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045e94 <rtems_shutdown_executive>: void rtems_shutdown_executive( uint32_t result ) { if ( _System_state_Is_up( _System_state_Get() ) ) {
   45e94:	7003           	moveq #3,%d0                                
 */                                                                   
                                                                      
void rtems_shutdown_executive(                                        
   uint32_t   result                                                  
)                                                                     
{                                                                     
   45e96:	4e56 0000      	linkw %fp,#0                                
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
   45e9a:	b0b9 0005 eb14 	cmpl 5eb14 <_System_state_Current>,%d0      
   45ea0:	6618           	bnes 45eba <rtems_shutdown_executive+0x26>  
   45ea2:	103c 0004      	moveb #4,%d0                                
   *  if we were running within the same context, it would work.      
   *                                                                  
   *  And we will not return to this thread, so there is no point of  
   *  saving the context.                                             
   */                                                                 
  _Context_Restart_self( &_Thread_BSP_context );                      
   45ea6:	4879 0005 e994 	pea 5e994 <_Thread_BSP_context>             
   45eac:	23c0 0005 eb14 	movel %d0,5eb14 <_System_state_Current>     
   45eb2:	4eb9 0004 8a5a 	jsr 48a5a <_CPU_Context_Restart_self>       
   45eb8:	588f           	addql #4,%sp                                <== NOT EXECUTED
    _System_state_Set( SYSTEM_STATE_SHUTDOWN );                       
    _Thread_Stop_multitasking();                                      
  }                                                                   
  _Internal_error_Occurred(                                           
   45eba:	4878 0014      	pea 14 <OPER2>                              
   45ebe:	4878 0001      	pea 1 <ADD>                                 
   45ec2:	42a7           	clrl %sp@-                                  
   45ec4:	4eb9 0004 6a08 	jsr 46a08 <_Internal_error_Occurred>        
	...                                                                  
                                                                      

000513d0 <rtems_signal_send>: rtems_status_code rtems_signal_send( rtems_id id, rtems_signal_set signal_set ) {
   513d0:	4e56 fffc      	linkw %fp,#-4                               
   513d4:	2f03           	movel %d3,%sp@-                             
   513d6:	2f02           	movel %d2,%sp@-                             
   513d8:	242e 000c      	movel %fp@(12),%d2                          
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
   513dc:	677a           	beqs 51458 <rtems_signal_send+0x88>         <== NEVER TAKEN
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   513de:	486e fffc      	pea %fp@(-4)                                
   513e2:	2f2e 0008      	movel %fp@(8),%sp@-                         
   513e6:	4eb9 0005 5294 	jsr 55294 <_Thread_Get>                     
  switch ( location ) {                                               
   513ec:	508f           	addql #8,%sp                                
   513ee:	4aae fffc      	tstl %fp@(-4)                               
   513f2:	6668           	bnes 5145c <rtems_signal_send+0x8c>         <== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
   513f4:	2240           	moveal %d0,%a1                              
   513f6:	2069 00fe      	moveal %a1@(254),%a0                        
      asr = &api->Signal;                                             
                                                                      
      if ( ! _ASR_Is_null_handler( asr->handler ) ) {                 
   513fa:	4aa8 000a      	tstl %a0@(10)                               
   513fe:	674e           	beqs 5144e <rtems_signal_send+0x7e>         
        if ( asr->is_enabled ) {                                      
   51400:	4a28 0008      	tstb %a0@(8)                                
   51404:	672c           	beqs 51432 <rtems_signal_send+0x62>         
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
   51406:	223c 0000 0700 	movel #1792,%d1                             
   5140c:	40c3           	movew %sr,%d3                               
   5140e:	8283           	orl %d3,%d1                                 
   51410:	46c1           	movew %d1,%sr                               
    *signal_set |= signals;                                           
   51412:	85a8 0012      	orl %d2,%a0@(18)                            
  _ISR_Enable( _level );                                              
   51416:	46c3           	movew %d3,%sr                               
          _ASR_Post_signals( signal_set, &asr->signals_posted );      
                                                                      
          if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
   51418:	4ab9 0007 798a 	tstl 7798a <_Per_CPU_Information+0x8>       
   5141e:	6724           	beqs 51444 <rtems_signal_send+0x74>         
   51420:	b0b9 0007 798e 	cmpl 7798e <_Per_CPU_Information+0xc>,%d0   
   51426:	661c           	bnes 51444 <rtems_signal_send+0x74>         <== NEVER TAKEN
            _Thread_Dispatch_necessary = true;                        
   51428:	7001           	moveq #1,%d0                                
   5142a:	13c0 0007 799a 	moveb %d0,7799a <_Per_CPU_Information+0x18> 
   51430:	6012           	bras 51444 <rtems_signal_send+0x74>         
  rtems_signal_set *signal_set                                        
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
   51432:	203c 0000 0700 	movel #1792,%d0                             
   51438:	40c1           	movew %sr,%d1                               
   5143a:	8081           	orl %d1,%d0                                 
   5143c:	46c0           	movew %d0,%sr                               
    *signal_set |= signals;                                           
   5143e:	85a8 0016      	orl %d2,%a0@(22)                            
  _ISR_Enable( _level );                                              
   51442:	46c1           	movew %d1,%sr                               
        } else {                                                      
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
   51444:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
        return RTEMS_SUCCESSFUL;                                      
   5144a:	4280           	clrl %d0                                    
   5144c:	6010           	bras 5145e <rtems_signal_send+0x8e>         
      }                                                               
      _Thread_Enable_dispatch();                                      
   5144e:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
      return RTEMS_NOT_DEFINED;                                       
   51454:	700b           	moveq #11,%d0                               
   51456:	6006           	bras 5145e <rtems_signal_send+0x8e>         
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
    return RTEMS_INVALID_NUMBER;                                      
   51458:	700a           	moveq #10,%d0                               
   5145a:	6002           	bras 5145e <rtems_signal_send+0x8e>         
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   5145c:	7004           	moveq #4,%d0                                
}                                                                     
   5145e:	242e fff4      	movel %fp@(-12),%d2                         
   51462:	262e fff8      	movel %fp@(-8),%d3                          
   51466:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00042722 <rtems_stack_checker_begin_extension>: * rtems_stack_checker_Begin_extension */ void rtems_stack_checker_begin_extension( Thread_Control *the_thread ) {
   42722:	4e56 0000      	linkw %fp,#0                                
   42726:	206e 0008      	moveal %fp@(8),%a0                          
  Stack_check_Control  *the_pattern;                                  
                                                                      
  if ( the_thread->Object.id == 0 )        /* skip system tasks */    
   4272a:	4aa8 0008      	tstl %a0@(8)                                
   4272e:	671c           	beqs 4274c <rtems_stack_checker_begin_extension+0x2a><== NEVER TAKEN
    return;                                                           
                                                                      
  the_pattern = Stack_check_Get_pattern_area(&the_thread->Start.Initial_stack);
                                                                      
  *the_pattern = Stack_check_Pattern;                                 
   42730:	4878 0010      	pea 10 <INVALID_OPERATION>                  
   42734:	4879 0006 12c4 	pea 612c4 <Stack_check_Pattern>             
   4273a:	2068 00b6      	moveal %a0@(182),%a0                        
   4273e:	5088           	addql #8,%a0                                
   42740:	2f08           	movel %a0,%sp@-                             
   42742:	4eb9 0004 fa7c 	jsr 4fa7c <memcpy>                          
   42748:	4fef 000c      	lea %sp@(12),%sp                            
}                                                                     
   4274c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000426ee <rtems_stack_checker_create_extension>: */ bool rtems_stack_checker_create_extension( Thread_Control *running __attribute__((unused)), Thread_Control *the_thread ) {
   426ee:	4e56 0000      	linkw %fp,#0                                
   426f2:	2f0a           	movel %a2,%sp@-                             
   426f4:	246e 000c      	moveal %fp@(12),%a2                         
  Stack_check_Initialize();                                           
   426f8:	4eb9 0004 2676 	jsr 42676 <Stack_check_Initialize>          
                                                                      
  if (the_thread)                                                     
   426fe:	4a8a           	tstl %a2                                    
   42700:	6716           	beqs 42718 <rtems_stack_checker_create_extension+0x2a><== NEVER TAKEN
    Stack_check_Dope_stack(&the_thread->Start.Initial_stack);         
   42702:	2f2a 00b2      	movel %a2@(178),%sp@-                       
   42706:	4878 00a5      	pea a5 <DBL_MANT_DIG+0x70>                  
   4270a:	2f2a 00b6      	movel %a2@(182),%sp@-                       
   4270e:	4eb9 0004 faec 	jsr 4faec <memset>                          
   42714:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
  return true;                                                        
}                                                                     
   42718:	246e fffc      	moveal %fp@(-4),%a2                         
   4271c:	4e5e           	unlk %fp                                    
   4271e:	7001           	moveq #1,%d0                                <== NOT EXECUTED
                                                                      

0004285e <rtems_stack_checker_is_blown>: /* * Check if blown */ bool rtems_stack_checker_is_blown( void ) {
   4285e:	4e56 0000      	linkw %fp,#0                                
  Stack_Control *the_stack = &_Thread_Executing->Start.Initial_stack; 
   42862:	2279 0006 190a 	moveal 6190a <_Per_CPU_Information+0xc>,%a1 
)                                                                     
{                                                                     
  #if defined(__GNUC__)                                               
    void *sp = __builtin_frame_address(0);                            
                                                                      
    if ( sp < the_stack->area ) {                                     
   42868:	2069 00b6      	moveal %a1@(182),%a0                        
                                                                      
/*                                                                    
 *  Check if blown                                                    
 */                                                                   
bool rtems_stack_checker_is_blown( void )                             
{                                                                     
   4286c:	2f02           	movel %d2,%sp@-                             
)                                                                     
{                                                                     
  #if defined(__GNUC__)                                               
    void *sp = __builtin_frame_address(0);                            
                                                                      
    if ( sp < the_stack->area ) {                                     
   4286e:	b1ce           	cmpal %fp,%a0                               
   42870:	620e           	bhis 42880 <rtems_stack_checker_is_blown+0x22><== NEVER TAKEN
      return false;                                                   
    }                                                                 
    if ( sp > (the_stack->area + the_stack->size) ) {                 
   42872:	2008           	movel %a0,%d0                               
   42874:	d0a9 00b2      	addl %a1@(178),%d0                          
}                                                                     
                                                                      
/*                                                                    
 *  Check if blown                                                    
 */                                                                   
bool rtems_stack_checker_is_blown( void )                             
   42878:	b08e           	cmpl %fp,%d0                                
   4287a:	54c2           	scc %d2                                     
   4287c:	4482           	negl %d2                                    
   4287e:	6002           	bras 42882 <rtems_stack_checker_is_blown+0x24>
{                                                                     
  #if defined(__GNUC__)                                               
    void *sp = __builtin_frame_address(0);                            
                                                                      
    if ( sp < the_stack->area ) {                                     
      return false;                                                   
   42880:	4202           	clrb %d2                                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   * The stack checker must be initialized before the pattern is there
   * to check.                                                        
   */                                                                 
  if ( Stack_check_Initialized ) {                                    
   42882:	4ab9 0006 0ac0 	tstl 60ac0 <Stack_check_Initialized>        
   42888:	6720           	beqs 428aa <rtems_stack_checker_is_blown+0x4c><== NEVER TAKEN
    pattern_ok = (!memcmp(                                            
   4288a:	4878 0010      	pea 10 <INVALID_OPERATION>                  
   4288e:	4879 0006 12c4 	pea 612c4 <Stack_check_Pattern>             
   42894:	4868 0008      	pea %a0@(8)                                 
   42898:	4eb9 0004 f9fc 	jsr 4f9fc <memcmp>                          
   4289e:	4fef 000c      	lea %sp@(12),%sp                            
   428a2:	4a80           	tstl %d0                                    
   428a4:	57c0           	seq %d0                                     
   428a6:	4480           	negl %d0                                    
   428a8:	6002           	bras 428ac <rtems_stack_checker_is_blown+0x4e>
 */                                                                   
bool rtems_stack_checker_is_blown( void )                             
{                                                                     
  Stack_Control *the_stack = &_Thread_Executing->Start.Initial_stack; 
  bool           sp_ok;                                               
  bool           pattern_ok = true;                                   
   428aa:	7001           	moveq #1,%d0                                <== NOT EXECUTED
                                                                      
                                                                      
  /*                                                                  
   * Let's report as much as we can.                                  
   */                                                                 
  if ( !sp_ok || !pattern_ok ) {                                      
   428ac:	4a02           	tstb %d2                                    
   428ae:	6704           	beqs 428b4 <rtems_stack_checker_is_blown+0x56><== NEVER TAKEN
   428b0:	4a00           	tstb %d0                                    
   428b2:	6614           	bnes 428c8 <rtems_stack_checker_is_blown+0x6a><== ALWAYS TAKEN
    Stack_check_report_blown_task( _Thread_Executing, pattern_ok );   
   428b4:	0280 0000 00ff 	andil #255,%d0                              <== NOT EXECUTED
   428ba:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   428bc:	2f39 0006 190a 	movel 6190a <_Per_CPU_Information+0xc>,%sp@-<== NOT EXECUTED
   428c2:	4eb9 0004 2750 	jsr 42750 <Stack_check_report_blown_task>   <== NOT EXECUTED
                                                                      
  /*                                                                  
   * The Stack Pointer and the Pattern Area are OK so return false.   
   */                                                                 
  return false;                                                       
}                                                                     
   428c8:	242e fffc      	movel %fp@(-4),%d2                          
   428cc:	4e5e           	unlk %fp                                    
   428ce:	4200           	clrb %d0                                    <== NOT EXECUTED
                                                                      

00042938 <rtems_stack_checker_report_usage>: void rtems_stack_checker_report_usage( void ) {
   42938:	4e56 0000      	linkw %fp,#0                                <== NOT EXECUTED
  rtems_stack_checker_report_usage_with_plugin( NULL, printk_plugin );
   4293c:	4879 0004 4420 	pea 44420 <printk_plugin>                   <== NOT EXECUTED
   42942:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   42944:	4eb9 0004 28d2 	jsr 428d2 <rtems_stack_checker_report_usage_with_plugin><== NOT EXECUTED
   4294a:	508f           	addql #8,%sp                                <== NOT EXECUTED
}                                                                     
   4294c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000428d2 <rtems_stack_checker_report_usage_with_plugin>: void rtems_stack_checker_report_usage_with_plugin( void *context, rtems_printk_plugin_t print ) {
   428d2:	4e56 0000      	linkw %fp,#0                                <== NOT EXECUTED
   428d6:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   428d8:	246e 000c      	moveal %fp@(12),%a2                         <== NOT EXECUTED
   428dc:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   428de:	242e 0008      	movel %fp@(8),%d2                           <== NOT EXECUTED
  if ( !print )                                                       
   428e2:	4a8a           	tstl %a2                                    <== NOT EXECUTED
   428e4:	6746           	beqs 4292c <rtems_stack_checker_report_usage_with_plugin+0x5a><== NOT EXECUTED
    return;                                                           
                                                                      
  print_context = context;                                            
  print_handler = print;                                              
                                                                      
  (*print)( context, "Stack usage by thread\n");                      
   428e6:	4879 0005 e55c 	pea 5e55c <IntUartPollCallbacks.6374+0x13c> <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !print )                                                       
    return;                                                           
                                                                      
  print_context = context;                                            
   428ec:	23c2 0006 0ab8 	movel %d2,60ab8 <print_context>             <== NOT EXECUTED
  print_handler = print;                                              
                                                                      
  (*print)( context, "Stack usage by thread\n");                      
   428f2:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
{                                                                     
  if ( !print )                                                       
    return;                                                           
                                                                      
  print_context = context;                                            
  print_handler = print;                                              
   428f4:	23ca 0006 0abc 	movel %a2,60abc <print_handler>             <== NOT EXECUTED
                                                                      
  (*print)( context, "Stack usage by thread\n");                      
   428fa:	4e92           	jsr %a2@                                    <== NOT EXECUTED
  (*print)( context,                                                  
   428fc:	4879 0005 e573 	pea 5e573 <IntUartPollCallbacks.6374+0x153> <== NOT EXECUTED
   42902:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   42904:	4e92           	jsr %a2@                                    <== NOT EXECUTED
"    ID      NAME    LOW          HIGH     CURRENT     AVAILABLE     USED\n"
  );                                                                  
                                                                      
  /* iterate over all threads and dump the usage */                   
  rtems_iterate_over_all_threads( Stack_check_Dump_threads_usage );   
   42906:	4879 0004 2554 	pea 42554 <Stack_check_Dump_threads_usage>  <== NOT EXECUTED
   4290c:	4eb9 0004 9194 	jsr 49194 <rtems_iterate_over_all_threads>  <== NOT EXECUTED
                                                                      
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    /* dump interrupt stack info if any */                            
    Stack_check_Dump_threads_usage((Thread_Control *) -1);            
   42912:	4878 ffff      	pea ffffffff <LESS>                         <== NOT EXECUTED
   42916:	4eb9 0004 2554 	jsr 42554 <Stack_check_Dump_threads_usage>  <== NOT EXECUTED
  #endif                                                              
                                                                      
  print_context = NULL;                                               
  print_handler = NULL;                                               
   4291c:	4fef 0018      	lea %sp@(24),%sp                            <== NOT EXECUTED
  #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)                          
    /* dump interrupt stack info if any */                            
    Stack_check_Dump_threads_usage((Thread_Control *) -1);            
  #endif                                                              
                                                                      
  print_context = NULL;                                               
   42920:	42b9 0006 0ab8 	clrl 60ab8 <print_context>                  <== NOT EXECUTED
  print_handler = NULL;                                               
   42926:	42b9 0006 0abc 	clrl 60abc <print_handler>                  <== NOT EXECUTED
}                                                                     
   4292c:	242e fff8      	movel %fp@(-8),%d2                          <== NOT EXECUTED
   42930:	246e fffc      	moveal %fp@(-4),%a2                         <== NOT EXECUTED
   42934:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000427f6 <rtems_stack_checker_switch_extension>: */ void rtems_stack_checker_switch_extension( Thread_Control *running __attribute__((unused)), Thread_Control *heir __attribute__((unused)) ) {
   427f6:	4e56 0000      	linkw %fp,#0                                
   427fa:	2f0a           	movel %a2,%sp@-                             
   427fc:	246e 0008      	moveal %fp@(8),%a2                          
  Stack_Control *the_stack = &running->Start.Initial_stack;           
  void          *pattern;                                             
  bool           sp_ok;                                               
  bool           pattern_ok = true;                                   
                                                                      
  pattern = Stack_check_Get_pattern_area(the_stack);                  
   42800:	222a 00b6      	movel %a2@(182),%d1                         
   42804:	5081           	addql #8,%d1                                
)                                                                     
{                                                                     
  #if defined(__GNUC__)                                               
    void *sp = __builtin_frame_address(0);                            
                                                                      
    if ( sp < the_stack->area ) {                                     
   42806:	202a 00b6      	movel %a2@(182),%d0                         
 */                                                                   
void rtems_stack_checker_switch_extension(                            
  Thread_Control *running __attribute__((unused)),                    
  Thread_Control *heir __attribute__((unused))                        
)                                                                     
{                                                                     
   4280a:	2f02           	movel %d2,%sp@-                             
)                                                                     
{                                                                     
  #if defined(__GNUC__)                                               
    void *sp = __builtin_frame_address(0);                            
                                                                      
    if ( sp < the_stack->area ) {                                     
   4280c:	b08e           	cmpl %fp,%d0                                
   4280e:	620c           	bhis 4281c <rtems_stack_checker_switch_extension+0x26><== NEVER TAKEN
      return false;                                                   
    }                                                                 
    if ( sp > (the_stack->area + the_stack->size) ) {                 
   42810:	d0aa 00b2      	addl %a2@(178),%d0                          
}                                                                     
                                                                      
/*                                                                    
 *  rtems_stack_checker_switch_extension                              
 */                                                                   
void rtems_stack_checker_switch_extension(                            
   42814:	b08e           	cmpl %fp,%d0                                
   42816:	54c2           	scc %d2                                     
   42818:	4482           	negl %d2                                    
   4281a:	6002           	bras 4281e <rtems_stack_checker_switch_extension+0x28>
{                                                                     
  #if defined(__GNUC__)                                               
    void *sp = __builtin_frame_address(0);                            
                                                                      
    if ( sp < the_stack->area ) {                                     
      return false;                                                   
   4281c:	4202           	clrb %d2                                    <== NOT EXECUTED
  /*                                                                  
   *  Check for an out of bounds stack pointer or an overwrite        
   */                                                                 
  sp_ok = Stack_check_Frame_pointer_in_range( the_stack );            
                                                                      
  pattern_ok = (!memcmp( pattern,                                     
   4281e:	4878 0010      	pea 10 <INVALID_OPERATION>                  
   42822:	4879 0006 12c4 	pea 612c4 <Stack_check_Pattern>             
   42828:	2f01           	movel %d1,%sp@-                             
   4282a:	4eb9 0004 f9fc 	jsr 4f9fc <memcmp>                          
   42830:	4fef 000c      	lea %sp@(12),%sp                            
   42834:	4a80           	tstl %d0                                    
   42836:	57c0           	seq %d0                                     
   42838:	4480           	negl %d0                                    
            (void *) Stack_check_Pattern.pattern, PATTERN_SIZE_BYTES));
                                                                      
  if ( !sp_ok || !pattern_ok ) {                                      
   4283a:	4a02           	tstb %d2                                    
   4283c:	6704           	beqs 42842 <rtems_stack_checker_switch_extension+0x4c><== NEVER TAKEN
   4283e:	4a00           	tstb %d0                                    
   42840:	6610           	bnes 42852 <rtems_stack_checker_switch_extension+0x5c><== ALWAYS TAKEN
    Stack_check_report_blown_task( running, pattern_ok );             
   42842:	0280 0000 00ff 	andil #255,%d0                              <== NOT EXECUTED
   42848:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   4284a:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   4284c:	4eb9 0004 2750 	jsr 42750 <Stack_check_report_blown_task>   <== NOT EXECUTED
  }                                                                   
}                                                                     
   42852:	242e fff8      	movel %fp@(-8),%d2                          
   42856:	246e fffc      	moveal %fp@(-4),%a2                         
   4285a:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b928 <rtems_string_to_double>: rtems_status_code rtems_string_to_double ( const char *s, double *n, char **endptr ) {
   4b928:	4e56 ffe8      	linkw %fp,#-24                              <== NOT EXECUTED
   4b92c:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 <== NOT EXECUTED
   4b930:	282e 0008      	movel %fp@(8),%d4                           <== NOT EXECUTED
   4b934:	246e 000c      	moveal %fp@(12),%a2                         <== NOT EXECUTED
   4b938:	266e 0010      	moveal %fp@(16),%a3                         <== NOT EXECUTED
  double result;                                                      
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4b93c:	4a8a           	tstl %a2                                    <== NOT EXECUTED
   4b93e:	6700 009c      	beqw 4b9dc <rtems_string_to_double+0xb4>    <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4b942:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         <== NOT EXECUTED
  *n = 0;                                                             
   4b948:	4281           	clrl %d1                                    <== NOT EXECUTED
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4b94a:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
  *n = 0;                                                             
   4b94c:	4280           	clrl %d0                                    <== NOT EXECUTED
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4b94e:	4290           	clrl %a0@                                   <== NOT EXECUTED
  *n = 0;                                                             
   4b950:	2480           	movel %d0,%a2@                              <== NOT EXECUTED
   4b952:	2541 0004      	movel %d1,%a2@(4)                           <== NOT EXECUTED
                                                                      
  result = strtod( s, &end );                                         
   4b956:	486e fffc      	pea %fp@(-4)                                <== NOT EXECUTED
   4b95a:	2f04           	movel %d4,%sp@-                             <== NOT EXECUTED
   4b95c:	4eb9 0005 0f8e 	jsr 50f8e <strtod>                          <== NOT EXECUTED
                                                                      
  if ( endptr )                                                       
   4b962:	508f           	addql #8,%sp                                <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtod( s, &end );                                         
   4b964:	2400           	movel %d0,%d2                               <== NOT EXECUTED
   4b966:	2601           	movel %d1,%d3                               <== NOT EXECUTED
                                                                      
  if ( endptr )                                                       
   4b968:	4a8b           	tstl %a3                                    <== NOT EXECUTED
   4b96a:	6704           	beqs 4b970 <rtems_string_to_double+0x48>    <== NOT EXECUTED
    *endptr = end;                                                    
   4b96c:	26ae fffc      	movel %fp@(-4),%a3@                         <== NOT EXECUTED
                                                                      
  if ( end == s )                                                     
   4b970:	b8ae fffc      	cmpl %fp@(-4),%d4                           <== NOT EXECUTED
   4b974:	676a           	beqs 4b9e0 <rtems_string_to_double+0xb8>    <== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4b976:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         <== NOT EXECUTED
   4b97c:	7222           	moveq #34,%d1                               <== NOT EXECUTED
   4b97e:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4b980:	b290           	cmpl %a0@,%d1                               <== NOT EXECUTED
   4b982:	664e           	bnes 4b9d2 <rtems_string_to_double+0xaa>    <== NOT EXECUTED
   4b984:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   4b986:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   4b988:	2f03           	movel %d3,%sp@-                             <== NOT EXECUTED
   4b98a:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   4b98c:	4eb9 0004 24c8 	jsr 424c8 <__eqdf2>                         <== NOT EXECUTED
   4b992:	4fef 0010      	lea %sp@(16),%sp                            <== NOT EXECUTED
   4b996:	4a80           	tstl %d0                                    <== NOT EXECUTED
   4b998:	674a           	beqs 4b9e4 <rtems_string_to_double+0xbc>    <== NOT EXECUTED
    (( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
   4b99a:	4878 ffff      	pea ffffffff <LESS>                         <== NOT EXECUTED
   4b99e:	2f3c 7fef ffff 	movel #2146435071,%sp@-                     <== NOT EXECUTED
   4b9a4:	2f03           	movel %d3,%sp@-                             <== NOT EXECUTED
   4b9a6:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   4b9a8:	4eb9 0005 cac0 	jsr 5cac0 <__gtdf2>                         <== NOT EXECUTED
   4b9ae:	4fef 0010      	lea %sp@(16),%sp                            <== NOT EXECUTED
   4b9b2:	4a80           	tstl %d0                                    <== NOT EXECUTED
   4b9b4:	6e2e           	bgts 4b9e4 <rtems_string_to_double+0xbc>    <== NOT EXECUTED
   4b9b6:	4878 ffff      	pea ffffffff <LESS>                         <== NOT EXECUTED
   4b9ba:	2f3c ffef ffff 	movel #-1048577,%sp@-                       <== NOT EXECUTED
   4b9c0:	2f03           	movel %d3,%sp@-                             <== NOT EXECUTED
   4b9c2:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   4b9c4:	4eb9 0005 cb08 	jsr 5cb08 <__ltdf2>                         <== NOT EXECUTED
   4b9ca:	4fef 0010      	lea %sp@(16),%sp                            <== NOT EXECUTED
   4b9ce:	4a80           	tstl %d0                                    <== NOT EXECUTED
   4b9d0:	6d12           	blts 4b9e4 <rtems_string_to_double+0xbc>    <== NOT EXECUTED
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
   4b9d2:	2482           	movel %d2,%a2@                              <== NOT EXECUTED
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4b9d4:	4280           	clrl %d0                                    <== NOT EXECUTED
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
   4b9d6:	2543 0004      	movel %d3,%a2@(4)                           <== NOT EXECUTED
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4b9da:	600a           	bras 4b9e6 <rtems_string_to_double+0xbe>    <== NOT EXECUTED
{                                                                     
  double result;                                                      
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4b9dc:	7009           	moveq #9,%d0                                <== NOT EXECUTED
   4b9de:	6006           	bras 4b9e6 <rtems_string_to_double+0xbe>    <== NOT EXECUTED
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4b9e0:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   4b9e2:	6002           	bras 4b9e6 <rtems_string_to_double+0xbe>    <== NOT EXECUTED
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
      return RTEMS_INVALID_NUMBER;                                    
   4b9e4:	700a           	moveq #10,%d0                               <== NOT EXECUTED
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4b9e6:	4cee 0c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a3            <== NOT EXECUTED
   4b9ec:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004b9f0 <rtems_string_to_float>: rtems_status_code rtems_string_to_float ( const char *s, float *n, char **endptr ) {
   4b9f0:	4e56 ffec      	linkw %fp,#-20                              
   4b9f4:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4b9f8:	262e 0008      	movel %fp@(8),%d3                           
   4b9fc:	246e 000c      	moveal %fp@(12),%a2                         
   4ba00:	266e 0010      	moveal %fp@(16),%a3                         
  float result;                                                       
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4ba04:	4a8a           	tstl %a2                                    
   4ba06:	677e           	beqs 4ba86 <rtems_string_to_float+0x96>     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4ba08:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4ba0e:	2040           	moveal %d0,%a0                              
   4ba10:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4ba12:	24bc 0000 0000 	movel #0,%a2@                               
                                                                      
  result = strtof( s, &end );                                         
   4ba18:	486e fffc      	pea %fp@(-4)                                
   4ba1c:	2f03           	movel %d3,%sp@-                             
   4ba1e:	4eb9 0005 0fae 	jsr 50fae <strtof>                          
                                                                      
  if ( endptr )                                                       
   4ba24:	508f           	addql #8,%sp                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtof( s, &end );                                         
   4ba26:	2400           	movel %d0,%d2                               
                                                                      
  if ( endptr )                                                       
   4ba28:	4a8b           	tstl %a3                                    
   4ba2a:	6704           	beqs 4ba30 <rtems_string_to_float+0x40>     
    *endptr = end;                                                    
   4ba2c:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4ba30:	b6ae fffc      	cmpl %fp@(-4),%d3                           
   4ba34:	6754           	beqs 4ba8a <rtems_string_to_float+0x9a>     
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4ba36:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4ba3c:	7222           	moveq #34,%d1                               
   4ba3e:	2040           	moveal %d0,%a0                              
   4ba40:	b290           	cmpl %a0@,%d1                               
   4ba42:	663c           	bnes 4ba80 <rtems_string_to_float+0x90>     
   4ba44:	2f3c 0000 0000 	movel #0,%sp@-                              
   4ba4a:	2f02           	movel %d2,%sp@-                             
   4ba4c:	4eb9 0004 24ec 	jsr 424ec <__eqsf2>                         
   4ba52:	508f           	addql #8,%sp                                
   4ba54:	4a80           	tstl %d0                                    
   4ba56:	6736           	beqs 4ba8e <rtems_string_to_float+0x9e>     <== NEVER TAKEN
    (( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
   4ba58:	2f3c 7f7f ffff 	movel #2139095039,%sp@-                     
   4ba5e:	2f02           	movel %d2,%sp@-                             
   4ba60:	4eb9 0005 cb50 	jsr 5cb50 <__gtsf2>                         
   4ba66:	508f           	addql #8,%sp                                
   4ba68:	4a80           	tstl %d0                                    
   4ba6a:	6e22           	bgts 4ba8e <rtems_string_to_float+0x9e>     <== NEVER TAKEN
   4ba6c:	2f3c ff7f ffff 	movel #-8388609,%sp@-                       
   4ba72:	2f02           	movel %d2,%sp@-                             
   4ba74:	4eb9 0005 cb6c 	jsr 5cb6c <__ltsf2>                         
   4ba7a:	508f           	addql #8,%sp                                
   4ba7c:	4a80           	tstl %d0                                    
   4ba7e:	6d0e           	blts 4ba8e <rtems_string_to_float+0x9e>     <== NEVER TAKEN
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
   4ba80:	2482           	movel %d2,%a2@                              
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4ba82:	4280           	clrl %d0                                    
   4ba84:	600a           	bras 4ba90 <rtems_string_to_float+0xa0>     
{                                                                     
  float result;                                                       
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4ba86:	7009           	moveq #9,%d0                                
   4ba88:	6006           	bras 4ba90 <rtems_string_to_float+0xa0>     
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4ba8a:	700b           	moveq #11,%d0                               
   4ba8c:	6002           	bras 4ba90 <rtems_string_to_float+0xa0>     
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
      return RTEMS_INVALID_NUMBER;                                    
   4ba8e:	700a           	moveq #10,%d0                               <== NOT EXECUTED
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4ba90:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4ba96:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004ba9c <rtems_string_to_int>: const char *s, int *n, char **endptr, int base ) {
   4ba9c:	4e56 ffec      	linkw %fp,#-20                              
   4baa0:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4baa4:	262e 0008      	movel %fp@(8),%d3                           
   4baa8:	246e 000c      	moveal %fp@(12),%a2                         
   4baac:	266e 0010      	moveal %fp@(16),%a3                         
  long result;                                                        
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4bab0:	4a8a           	tstl %a2                                    
   4bab2:	6758           	beqs 4bb0c <rtems_string_to_int+0x70>       
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bab4:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4baba:	2040           	moveal %d0,%a0                              
   4babc:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4babe:	4292           	clrl %a2@                                   
                                                                      
  result = strtol( s, &end, base );                                   
   4bac0:	2f2e 0014      	movel %fp@(20),%sp@-                        
   4bac4:	486e fffc      	pea %fp@(-4)                                
   4bac8:	2f03           	movel %d3,%sp@-                             
   4baca:	4eb9 0005 116a 	jsr 5116a <strtol>                          
                                                                      
  if ( endptr )                                                       
   4bad0:	4fef 000c      	lea %sp@(12),%sp                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtol( s, &end, base );                                   
   4bad4:	2400           	movel %d0,%d2                               
                                                                      
  if ( endptr )                                                       
   4bad6:	4a8b           	tstl %a3                                    
   4bad8:	6704           	beqs 4bade <rtems_string_to_int+0x42>       
    *endptr = end;                                                    
   4bada:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4bade:	b6ae fffc      	cmpl %fp@(-4),%d3                           
   4bae2:	672c           	beqs 4bb10 <rtems_string_to_int+0x74>       
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bae4:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4baea:	7222           	moveq #34,%d1                               
   4baec:	2040           	moveal %d0,%a0                              
   4baee:	b290           	cmpl %a0@,%d1                               
   4baf0:	6614           	bnes 4bb06 <rtems_string_to_int+0x6a>       
   4baf2:	4a82           	tstl %d2                                    
   4baf4:	671e           	beqs 4bb14 <rtems_string_to_int+0x78>       <== NEVER TAKEN
    (( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
   4baf6:	0c82 7fff ffff 	cmpil #2147483647,%d2                       
   4bafc:	6716           	beqs 4bb14 <rtems_string_to_int+0x78>       <== ALWAYS TAKEN
   4bafe:	0c82 8000 0000 	cmpil #-2147483648,%d2                      <== NOT EXECUTED
   4bb04:	670e           	beqs 4bb14 <rtems_string_to_int+0x78>       <== NOT EXECUTED
    errno = ERANGE;                                                   
    return RTEMS_INVALID_NUMBER;                                      
  }                                                                   
#endif                                                                
                                                                      
  *n = result;                                                        
   4bb06:	2482           	movel %d2,%a2@                              
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bb08:	4280           	clrl %d0                                    
   4bb0a:	600a           	bras 4bb16 <rtems_string_to_int+0x7a>       
{                                                                     
  long result;                                                        
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4bb0c:	7009           	moveq #9,%d0                                
   4bb0e:	6006           	bras 4bb16 <rtems_string_to_int+0x7a>       
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4bb10:	700b           	moveq #11,%d0                               
   4bb12:	6002           	bras 4bb16 <rtems_string_to_int+0x7a>       
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
      return RTEMS_INVALID_NUMBER;                                    
   4bb14:	700a           	moveq #10,%d0                               
#endif                                                                
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4bb16:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4bb1c:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bbc0 <rtems_string_to_long>: const char *s, long *n, char **endptr, int base ) {
   4bbc0:	4e56 ffec      	linkw %fp,#-20                              
   4bbc4:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4bbc8:	262e 0008      	movel %fp@(8),%d3                           
   4bbcc:	246e 000c      	moveal %fp@(12),%a2                         
   4bbd0:	266e 0010      	moveal %fp@(16),%a3                         
  long result;                                                        
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4bbd4:	4a8a           	tstl %a2                                    
   4bbd6:	6758           	beqs 4bc30 <rtems_string_to_long+0x70>      <== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bbd8:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bbde:	2040           	moveal %d0,%a0                              
   4bbe0:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4bbe2:	4292           	clrl %a2@                                   
                                                                      
  result = strtol( s, &end, base );                                   
   4bbe4:	2f2e 0014      	movel %fp@(20),%sp@-                        
   4bbe8:	486e fffc      	pea %fp@(-4)                                
   4bbec:	2f03           	movel %d3,%sp@-                             
   4bbee:	4eb9 0005 116a 	jsr 5116a <strtol>                          
                                                                      
  if ( endptr )                                                       
   4bbf4:	4fef 000c      	lea %sp@(12),%sp                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtol( s, &end, base );                                   
   4bbf8:	2400           	movel %d0,%d2                               
                                                                      
  if ( endptr )                                                       
   4bbfa:	4a8b           	tstl %a3                                    
   4bbfc:	6704           	beqs 4bc02 <rtems_string_to_long+0x42>      <== NEVER TAKEN
    *endptr = end;                                                    
   4bbfe:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4bc02:	b6ae fffc      	cmpl %fp@(-4),%d3                           
   4bc06:	672c           	beqs 4bc34 <rtems_string_to_long+0x74>      
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bc08:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bc0e:	7222           	moveq #34,%d1                               
   4bc10:	2040           	moveal %d0,%a0                              
   4bc12:	b290           	cmpl %a0@,%d1                               
   4bc14:	6614           	bnes 4bc2a <rtems_string_to_long+0x6a>      
   4bc16:	4a82           	tstl %d2                                    
   4bc18:	671e           	beqs 4bc38 <rtems_string_to_long+0x78>      <== NEVER TAKEN
    (( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
   4bc1a:	0c82 7fff ffff 	cmpil #2147483647,%d2                       
   4bc20:	6716           	beqs 4bc38 <rtems_string_to_long+0x78>      
   4bc22:	0c82 8000 0000 	cmpil #-2147483648,%d2                      
   4bc28:	670e           	beqs 4bc38 <rtems_string_to_long+0x78>      <== ALWAYS TAKEN
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
   4bc2a:	2482           	movel %d2,%a2@                              
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bc2c:	4280           	clrl %d0                                    
   4bc2e:	600a           	bras 4bc3a <rtems_string_to_long+0x7a>      
{                                                                     
  long result;                                                        
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4bc30:	7009           	moveq #9,%d0                                
   4bc32:	6006           	bras 4bc3a <rtems_string_to_long+0x7a>      
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4bc34:	700b           	moveq #11,%d0                               
   4bc36:	6002           	bras 4bc3a <rtems_string_to_long+0x7a>      
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
      return RTEMS_INVALID_NUMBER;                                    
   4bc38:	700a           	moveq #10,%d0                               
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4bc3a:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4bc40:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bb20 <rtems_string_to_long_long>: const char *s, long long *n, char **endptr, int base ) {
   4bb20:	4e56 ffe8      	linkw %fp,#-24                              
   4bb24:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   4bb28:	282e 0008      	movel %fp@(8),%d4                           
   4bb2c:	246e 000c      	moveal %fp@(12),%a2                         
   4bb30:	266e 0010      	moveal %fp@(16),%a3                         
  long long result;                                                   
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4bb34:	4a8a           	tstl %a2                                    
   4bb36:	6774           	beqs 4bbac <rtems_string_to_long_long+0x8c> 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bb38:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bb3e:	2040           	moveal %d0,%a0                              
  *n = 0;                                                             
   4bb40:	4280           	clrl %d0                                    
   4bb42:	4281           	clrl %d1                                    
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bb44:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4bb46:	2480           	movel %d0,%a2@                              
   4bb48:	2541 0004      	movel %d1,%a2@(4)                           
                                                                      
  result = strtoll( s, &end, base );                                  
   4bb4c:	2f2e 0014      	movel %fp@(20),%sp@-                        
   4bb50:	486e fffc      	pea %fp@(-4)                                
   4bb54:	2f04           	movel %d4,%sp@-                             
   4bb56:	4eb9 0005 118c 	jsr 5118c <strtoll>                         
                                                                      
  if ( endptr )                                                       
   4bb5c:	4fef 000c      	lea %sp@(12),%sp                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtoll( s, &end, base );                                  
   4bb60:	2400           	movel %d0,%d2                               
   4bb62:	2601           	movel %d1,%d3                               
                                                                      
  if ( endptr )                                                       
   4bb64:	4a8b           	tstl %a3                                    
   4bb66:	6704           	beqs 4bb6c <rtems_string_to_long_long+0x4c> 
    *endptr = end;                                                    
   4bb68:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4bb6c:	b8ae fffc      	cmpl %fp@(-4),%d4                           
   4bb70:	673e           	beqs 4bbb0 <rtems_string_to_long_long+0x90> 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bb72:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bb78:	7222           	moveq #34,%d1                               
   4bb7a:	2040           	moveal %d0,%a0                              
   4bb7c:	b290           	cmpl %a0@,%d1                               
   4bb7e:	6622           	bnes 4bba2 <rtems_string_to_long_long+0x82> 
   4bb80:	2002           	movel %d2,%d0                               
   4bb82:	8083           	orl %d3,%d0                                 
   4bb84:	672e           	beqs 4bbb4 <rtems_string_to_long_long+0x94> <== NEVER TAKEN
    (( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
   4bb86:	203c 7fff ffff 	movel #2147483647,%d0                       
   4bb8c:	72ff           	moveq #-1,%d1                               
   4bb8e:	9283           	subl %d3,%d1                                
   4bb90:	9182           	subxl %d2,%d0                               
   4bb92:	6720           	beqs 4bbb4 <rtems_string_to_long_long+0x94> 
   4bb94:	203c 8000 0000 	movel #-2147483648,%d0                      
   4bb9a:	4281           	clrl %d1                                    
   4bb9c:	9283           	subl %d3,%d1                                
   4bb9e:	9182           	subxl %d2,%d0                               
   4bba0:	6712           	beqs 4bbb4 <rtems_string_to_long_long+0x94> <== ALWAYS TAKEN
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bba2:	4280           	clrl %d0                                    
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
   4bba4:	2482           	movel %d2,%a2@                              
   4bba6:	2543 0004      	movel %d3,%a2@(4)                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bbaa:	600a           	bras 4bbb6 <rtems_string_to_long_long+0x96> 
{                                                                     
  long long result;                                                   
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4bbac:	7009           	moveq #9,%d0                                
   4bbae:	6006           	bras 4bbb6 <rtems_string_to_long_long+0x96> 
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4bbb0:	700b           	moveq #11,%d0                               
   4bbb2:	6002           	bras 4bbb6 <rtems_string_to_long_long+0x96> 
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
      return RTEMS_INVALID_NUMBER;                                    
   4bbb4:	700a           	moveq #10,%d0                               
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4bbb6:	4cee 0c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a3            
   4bbbc:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bc60 <rtems_string_to_unsigned_char>: const char *s, unsigned char *n, char **endptr, int base ) {
   4bc60:	4e56 ffec      	linkw %fp,#-20                              
   4bc64:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4bc68:	262e 0008      	movel %fp@(8),%d3                           
   4bc6c:	246e 000c      	moveal %fp@(12),%a2                         
   4bc70:	266e 0010      	moveal %fp@(16),%a3                         
  unsigned long result;                                               
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4bc74:	4a8a           	tstl %a2                                    
   4bc76:	6764           	beqs 4bcdc <rtems_string_to_unsigned_char+0x7c>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bc78:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bc7e:	2040           	moveal %d0,%a0                              
   4bc80:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4bc82:	4212           	clrb %a2@                                   
                                                                      
  result = strtoul( s, &end, base );                                  
   4bc84:	2f2e 0014      	movel %fp@(20),%sp@-                        
   4bc88:	486e fffc      	pea %fp@(-4)                                
   4bc8c:	2f03           	movel %d3,%sp@-                             
   4bc8e:	4eb9 0005 15ae 	jsr 515ae <strtoul>                         
                                                                      
  if ( endptr )                                                       
   4bc94:	4fef 000c      	lea %sp@(12),%sp                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtoul( s, &end, base );                                  
   4bc98:	2400           	movel %d0,%d2                               
                                                                      
  if ( endptr )                                                       
   4bc9a:	4a8b           	tstl %a3                                    
   4bc9c:	6704           	beqs 4bca2 <rtems_string_to_unsigned_char+0x42>
    *endptr = end;                                                    
   4bc9e:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4bca2:	b6ae fffc      	cmpl %fp@(-4),%d3                           
   4bca6:	6738           	beqs 4bce0 <rtems_string_to_unsigned_char+0x80>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bca8:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bcae:	7222           	moveq #34,%d1                               
   4bcb0:	2040           	moveal %d0,%a0                              
   4bcb2:	b290           	cmpl %a0@,%d1                               
   4bcb4:	660a           	bnes 4bcc0 <rtems_string_to_unsigned_char+0x60><== ALWAYS TAKEN
    (( result == 0 ) || ( result == ULONG_MAX )))                     
   4bcb6:	2002           	movel %d2,%d0                               <== NOT EXECUTED
   4bcb8:	5380           	subql #1,%d0                                <== NOT EXECUTED
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bcba:	72fd           	moveq #-3,%d1                               <== NOT EXECUTED
   4bcbc:	b280           	cmpl %d0,%d1                                <== NOT EXECUTED
   4bcbe:	6524           	bcss 4bce4 <rtems_string_to_unsigned_char+0x84><== NOT EXECUTED
    (( result == 0 ) || ( result == ULONG_MAX )))                     
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
#if (UCHAR_MAX < ULONG_MAX)                                           
  if ( result > UCHAR_MAX ) {                                         
   4bcc0:	0c82 0000 00ff 	cmpil #255,%d2                              
   4bcc6:	630e           	blss 4bcd6 <rtems_string_to_unsigned_char+0x76><== ALWAYS TAKEN
    errno = ERANGE;                                                   
   4bcc8:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         <== NOT EXECUTED
   4bcce:	2040           	moveal %d0,%a0                              <== NOT EXECUTED
   4bcd0:	7022           	moveq #34,%d0                               <== NOT EXECUTED
   4bcd2:	2080           	movel %d0,%a0@                              <== NOT EXECUTED
   4bcd4:	600e           	bras 4bce4 <rtems_string_to_unsigned_char+0x84><== NOT EXECUTED
  }                                                                   
#endif                                                                
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bcd6:	4280           	clrl %d0                                    
    errno = ERANGE;                                                   
    return RTEMS_INVALID_NUMBER;                                      
  }                                                                   
#endif                                                                
                                                                      
  *n = result;                                                        
   4bcd8:	1482           	moveb %d2,%a2@                              
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bcda:	600a           	bras 4bce6 <rtems_string_to_unsigned_char+0x86>
{                                                                     
  unsigned long result;                                               
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4bcdc:	7009           	moveq #9,%d0                                
   4bcde:	6006           	bras 4bce6 <rtems_string_to_unsigned_char+0x86>
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4bce0:	700b           	moveq #11,%d0                               
   4bce2:	6002           	bras 4bce6 <rtems_string_to_unsigned_char+0x86>
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == ULONG_MAX )))                     
      return RTEMS_INVALID_NUMBER;                                    
   4bce4:	700a           	moveq #10,%d0                               <== NOT EXECUTED
#endif                                                                
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4bce6:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4bcec:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004bcf0 <rtems_string_to_unsigned_int>: const char *s, unsigned int *n, char **endptr, int base ) {
   4bcf0:	4e56 ffec      	linkw %fp,#-20                              
   4bcf4:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4bcf8:	262e 0008      	movel %fp@(8),%d3                           
   4bcfc:	246e 000c      	moveal %fp@(12),%a2                         
   4bd00:	266e 0010      	moveal %fp@(16),%a3                         
  unsigned long result;                                               
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4bd04:	4a8a           	tstl %a2                                    
   4bd06:	674e           	beqs 4bd56 <rtems_string_to_unsigned_int+0x66>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bd08:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bd0e:	2040           	moveal %d0,%a0                              
   4bd10:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4bd12:	4292           	clrl %a2@                                   
                                                                      
  result = strtoul( s, &end, base );                                  
   4bd14:	2f2e 0014      	movel %fp@(20),%sp@-                        
   4bd18:	486e fffc      	pea %fp@(-4)                                
   4bd1c:	2f03           	movel %d3,%sp@-                             
   4bd1e:	4eb9 0005 15ae 	jsr 515ae <strtoul>                         
                                                                      
  if ( endptr )                                                       
   4bd24:	4fef 000c      	lea %sp@(12),%sp                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtoul( s, &end, base );                                  
   4bd28:	2400           	movel %d0,%d2                               
                                                                      
  if ( endptr )                                                       
   4bd2a:	4a8b           	tstl %a3                                    
   4bd2c:	6704           	beqs 4bd32 <rtems_string_to_unsigned_int+0x42>
    *endptr = end;                                                    
   4bd2e:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4bd32:	b6ae fffc      	cmpl %fp@(-4),%d3                           
   4bd36:	6722           	beqs 4bd5a <rtems_string_to_unsigned_int+0x6a>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bd38:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bd3e:	7222           	moveq #34,%d1                               
   4bd40:	2040           	moveal %d0,%a0                              
   4bd42:	b290           	cmpl %a0@,%d1                               
   4bd44:	660a           	bnes 4bd50 <rtems_string_to_unsigned_int+0x60>
    (( result == 0 ) || ( result == ULONG_MAX )))                     
   4bd46:	2002           	movel %d2,%d0                               
   4bd48:	5380           	subql #1,%d0                                
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bd4a:	72fd           	moveq #-3,%d1                               
   4bd4c:	b280           	cmpl %d0,%d1                                
   4bd4e:	650e           	bcss 4bd5e <rtems_string_to_unsigned_int+0x6e><== ALWAYS TAKEN
    errno = ERANGE;                                                   
    return RTEMS_INVALID_NUMBER;                                      
  }                                                                   
#endif                                                                
                                                                      
  *n = result;                                                        
   4bd50:	2482           	movel %d2,%a2@                              
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bd52:	4280           	clrl %d0                                    
   4bd54:	600a           	bras 4bd60 <rtems_string_to_unsigned_int+0x70>
{                                                                     
  unsigned long result;                                               
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4bd56:	7009           	moveq #9,%d0                                
   4bd58:	6006           	bras 4bd60 <rtems_string_to_unsigned_int+0x70>
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4bd5a:	700b           	moveq #11,%d0                               
   4bd5c:	6002           	bras 4bd60 <rtems_string_to_unsigned_int+0x70>
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == ULONG_MAX )))                     
      return RTEMS_INVALID_NUMBER;                                    
   4bd5e:	700a           	moveq #10,%d0                               
#endif                                                                
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4bd60:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4bd66:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004bdfc <rtems_string_to_unsigned_long>: const char *s, unsigned long *n, char **endptr, int base ) {
   4bdfc:	4e56 ffec      	linkw %fp,#-20                              
   4be00:	48d7 0c0c      	moveml %d2-%d3/%a2-%a3,%sp@                 
   4be04:	262e 0008      	movel %fp@(8),%d3                           
   4be08:	246e 000c      	moveal %fp@(12),%a2                         
   4be0c:	266e 0010      	moveal %fp@(16),%a3                         
  unsigned long result;                                               
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4be10:	4a8a           	tstl %a2                                    
   4be12:	674e           	beqs 4be62 <rtems_string_to_unsigned_long+0x66>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4be14:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4be1a:	2040           	moveal %d0,%a0                              
   4be1c:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4be1e:	4292           	clrl %a2@                                   
                                                                      
  result = strtoul( s, &end, base );                                  
   4be20:	2f2e 0014      	movel %fp@(20),%sp@-                        
   4be24:	486e fffc      	pea %fp@(-4)                                
   4be28:	2f03           	movel %d3,%sp@-                             
   4be2a:	4eb9 0005 15ae 	jsr 515ae <strtoul>                         
                                                                      
  if ( endptr )                                                       
   4be30:	4fef 000c      	lea %sp@(12),%sp                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtoul( s, &end, base );                                  
   4be34:	2400           	movel %d0,%d2                               
                                                                      
  if ( endptr )                                                       
   4be36:	4a8b           	tstl %a3                                    
   4be38:	6704           	beqs 4be3e <rtems_string_to_unsigned_long+0x42>
    *endptr = end;                                                    
   4be3a:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4be3e:	b6ae fffc      	cmpl %fp@(-4),%d3                           
   4be42:	6722           	beqs 4be66 <rtems_string_to_unsigned_long+0x6a>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4be44:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4be4a:	7222           	moveq #34,%d1                               
   4be4c:	2040           	moveal %d0,%a0                              
   4be4e:	b290           	cmpl %a0@,%d1                               
   4be50:	660a           	bnes 4be5c <rtems_string_to_unsigned_long+0x60>
    (( result == 0 ) || ( result == ULONG_MAX )))                     
   4be52:	2002           	movel %d2,%d0                               
   4be54:	5380           	subql #1,%d0                                
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4be56:	72fd           	moveq #-3,%d1                               
   4be58:	b280           	cmpl %d0,%d1                                
   4be5a:	650e           	bcss 4be6a <rtems_string_to_unsigned_long+0x6e><== ALWAYS TAKEN
    (( result == 0 ) || ( result == ULONG_MAX )))                     
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
   4be5c:	2482           	movel %d2,%a2@                              
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4be5e:	4280           	clrl %d0                                    
   4be60:	600a           	bras 4be6c <rtems_string_to_unsigned_long+0x70>
{                                                                     
  unsigned long result;                                               
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4be62:	7009           	moveq #9,%d0                                
   4be64:	6006           	bras 4be6c <rtems_string_to_unsigned_long+0x70>
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4be66:	700b           	moveq #11,%d0                               
   4be68:	6002           	bras 4be6c <rtems_string_to_unsigned_long+0x70>
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == ULONG_MAX )))                     
      return RTEMS_INVALID_NUMBER;                                    
   4be6a:	700a           	moveq #10,%d0                               
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4be6c:	4cee 0c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a3            
   4be72:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004bd6c <rtems_string_to_unsigned_long_long>: const char *s, unsigned long long *n, char **endptr, int base ) {
   4bd6c:	4e56 ffe4      	linkw %fp,#-28                              
   4bd70:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   4bd74:	282e 0008      	movel %fp@(8),%d4                           
   4bd78:	246e 000c      	moveal %fp@(12),%a2                         
   4bd7c:	266e 0010      	moveal %fp@(16),%a3                         
  unsigned long long result;                                          
  char *end;                                                          
                                                                      
  if ( !n )                                                           
   4bd80:	4a8a           	tstl %a2                                    
   4bd82:	6764           	beqs 4bde8 <rtems_string_to_unsigned_long_long+0x7c>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bd84:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bd8a:	2040           	moveal %d0,%a0                              
  *n = 0;                                                             
   4bd8c:	4280           	clrl %d0                                    
   4bd8e:	4281           	clrl %d1                                    
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
   4bd90:	4290           	clrl %a0@                                   
  *n = 0;                                                             
   4bd92:	2480           	movel %d0,%a2@                              
   4bd94:	2541 0004      	movel %d1,%a2@(4)                           
                                                                      
  result = strtoull( s, &end, base );                                 
   4bd98:	2f2e 0014      	movel %fp@(20),%sp@-                        
   4bd9c:	486e fffc      	pea %fp@(-4)                                
   4bda0:	2f04           	movel %d4,%sp@-                             
   4bda2:	4eb9 0005 15d0 	jsr 515d0 <strtoull>                        
                                                                      
  if ( endptr )                                                       
   4bda8:	4fef 000c      	lea %sp@(12),%sp                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  errno = 0;                                                          
  *n = 0;                                                             
                                                                      
  result = strtoull( s, &end, base );                                 
   4bdac:	2400           	movel %d0,%d2                               
   4bdae:	2601           	movel %d1,%d3                               
                                                                      
  if ( endptr )                                                       
   4bdb0:	4a8b           	tstl %a3                                    
   4bdb2:	6704           	beqs 4bdb8 <rtems_string_to_unsigned_long_long+0x4c>
    *endptr = end;                                                    
   4bdb4:	26ae fffc      	movel %fp@(-4),%a3@                         
                                                                      
  if ( end == s )                                                     
   4bdb8:	b8ae fffc      	cmpl %fp@(-4),%d4                           
   4bdbc:	672e           	beqs 4bdec <rtems_string_to_unsigned_long_long+0x80>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bdbe:	4eb9 0004 e66c 	jsr 4e66c <__errno>                         
   4bdc4:	7222           	moveq #34,%d1                               
   4bdc6:	2040           	moveal %d0,%a0                              
   4bdc8:	b290           	cmpl %a0@,%d1                               
   4bdca:	6612           	bnes 4bdde <rtems_string_to_unsigned_long_long+0x72>
    (( result == 0 ) || ( result == ULONG_LONG_MAX )))                
   4bdcc:	70ff           	moveq #-1,%d0                               
   4bdce:	72ff           	moveq #-1,%d1                               
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bdd0:	78ff           	moveq #-1,%d4                               
   4bdd2:	7afd           	moveq #-3,%d5                               
    (( result == 0 ) || ( result == ULONG_LONG_MAX )))                
   4bdd4:	d283           	addl %d3,%d1                                
   4bdd6:	d182           	addxl %d2,%d0                               
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( ( errno == ERANGE ) &&                                         
   4bdd8:	9a81           	subl %d1,%d5                                
   4bdda:	9980           	subxl %d0,%d4                               
   4bddc:	6512           	bcss 4bdf0 <rtems_string_to_unsigned_long_long+0x84><== ALWAYS TAKEN
    (( result == 0 ) || ( result == ULONG_LONG_MAX )))                
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bdde:	4280           	clrl %d0                                    
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == ULONG_LONG_MAX )))                
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  *n = result;                                                        
   4bde0:	2482           	movel %d2,%a2@                              
   4bde2:	2543 0004      	movel %d3,%a2@(4)                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4bde6:	600a           	bras 4bdf2 <rtems_string_to_unsigned_long_long+0x86>
{                                                                     
  unsigned long long result;                                          
  char *end;                                                          
                                                                      
  if ( !n )                                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4bde8:	7009           	moveq #9,%d0                                
   4bdea:	6006           	bras 4bdf2 <rtems_string_to_unsigned_long_long+0x86>
                                                                      
  if ( endptr )                                                       
    *endptr = end;                                                    
                                                                      
  if ( end == s )                                                     
    return RTEMS_NOT_DEFINED;                                         
   4bdec:	700b           	moveq #11,%d0                               
   4bdee:	6002           	bras 4bdf2 <rtems_string_to_unsigned_long_long+0x86>
                                                                      
  if ( ( errno == ERANGE ) &&                                         
    (( result == 0 ) || ( result == ULONG_LONG_MAX )))                
      return RTEMS_INVALID_NUMBER;                                    
   4bdf0:	700a           	moveq #10,%d0                               
                                                                      
  *n = result;                                                        
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   4bdf2:	4cee 0c3c ffe4 	moveml %fp@(-28),%d2-%d5/%a2-%a3            
   4bdf8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004258c <rtems_tarfs_load>: int rtems_tarfs_load( char *mountpoint, uint8_t *tar_image, size_t tar_size ) {
   4258c:	4e56 fe3c      	linkw %fp,#-452                             
   42590:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   42594:	2e2e 0008      	movel %fp@(8),%d7                           
   int                              offset;                           
   unsigned long                    nblocks;                          
   IMFS_jnode_t                    *node;                             
   int                              status;                           
                                                                      
   status = rtems_filesystem_evaluate_path(                           
   42598:	2f07           	movel %d7,%sp@-                             
   4259a:	4eb9 0005 1094 	jsr 51094 <strlen>                          
   425a0:	4297           	clrl %sp@                                   
   425a2:	486e ffe8      	pea %fp@(-24)                               
   425a6:	42a7           	clrl %sp@-                                  
   425a8:	2f00           	movel %d0,%sp@-                             
   425aa:	2f07           	movel %d7,%sp@-                             
   425ac:	4eb9 0004 2fcc 	jsr 42fcc <rtems_filesystem_evaluate_path>  
      strlen(mountpoint),                                             
      0,                                                              
      &root_loc,                                                      
      0                                                               
   );                                                                 
   if (status != 0)                                                   
   425b2:	4fef 0014      	lea %sp@(20),%sp                            
   int                              offset;                           
   unsigned long                    nblocks;                          
   IMFS_jnode_t                    *node;                             
   int                              status;                           
                                                                      
   status = rtems_filesystem_evaluate_path(                           
   425b6:	2800           	movel %d0,%d4                               
      strlen(mountpoint),                                             
      0,                                                              
      &root_loc,                                                      
      0                                                               
   );                                                                 
   if (status != 0)                                                   
   425b8:	6600 01a8      	bnew 42762 <rtems_tarfs_load+0x1d6>         
     return -1;                                                       
                                                                      
   if (root_loc.ops != &IMFS_ops && root_loc.ops != &fifoIMFS_ops)    
   425bc:	202e fff4      	movel %fp@(-12),%d0                         
   425c0:	0c80 0006 0ae0 	cmpil #396000,%d0                           
   425c6:	6710           	beqs 425d8 <rtems_tarfs_load+0x4c>          
   425c8:	0c80 0006 1334 	cmpil #398132,%d0                           
   425ce:	6600 0192      	bnew 42762 <rtems_tarfs_load+0x1d6>         
   425d2:	6004           	bras 425d8 <rtems_tarfs_load+0x4c>          <== NOT EXECUTED
   425d4:	2443           	moveal %d3,%a2                              
   425d6:	602e           	bras 42606 <rtems_tarfs_load+0x7a>          
    hdr_ptr = (char *) &tar_image[offset];                            
    offset += 512;                                                    
    if (strncmp(&hdr_ptr[257], "ustar", 5))                           
      break;                                                          
                                                                      
    strncpy(filename, hdr_ptr, MAX_NAME_FIELD_SIZE);                  
   425d8:	2c0e           	movel %fp,%d6                               
     *        should not have this path.                              
     */                                                               
    else if (linkflag == REGTYPE) {                                   
      const char  *name;                                              
                                                                      
      loc = root_loc;                                                 
   425da:	2a0e           	movel %fp,%d5                               
     * - For directories, just create directories as usual.  IMFS     
     *   will take care of the rest.                                  
     * - For files, create a file node with special tarfs properties. 
     */                                                               
    if (linkflag == DIRTYPE) {                                        
      strcpy(full_filename, mountpoint);                              
   425dc:	240e           	movel %fp,%d2                               
      0                                                               
   );                                                                 
   if (status != 0)                                                   
     return -1;                                                       
                                                                      
   if (root_loc.ops != &IMFS_ops && root_loc.ops != &fifoIMFS_ops)    
   425de:	95ca           	subal %a2,%a2                               
    hdr_ptr = (char *) &tar_image[offset];                            
    offset += 512;                                                    
    if (strncmp(&hdr_ptr[257], "ustar", 5))                           
      break;                                                          
                                                                      
    strncpy(filename, hdr_ptr, MAX_NAME_FIELD_SIZE);                  
   425e0:	0686 ffff ff70 	addil #-144,%d6                             
   425e6:	4bf9 0005 119c 	lea 5119c <strncpy>,%a5                     
    filename[MAX_NAME_FIELD_SIZE] = '\0';                             
                                                                      
    linkflag   = hdr_ptr[156];                                        
    file_mode  = _rtems_octal2ulong(&hdr_ptr[100], 8);                
   425ec:	47f9 0004 95d4 	lea 495d4 <_rtems_octal2ulong>,%a3          
     *        should not have this path.                              
     */                                                               
    else if (linkflag == REGTYPE) {                                   
      const char  *name;                                              
                                                                      
      loc = root_loc;                                                 
   425f2:	0685 ffff ffd4 	addil #-44,%d5                              
     * - For directories, just create directories as usual.  IMFS     
     *   will take care of the rest.                                  
     * - For files, create a file node with special tarfs properties. 
     */                                                               
    if (linkflag == DIRTYPE) {                                        
      strcpy(full_filename, mountpoint);                              
   425f8:	0682 ffff fe70 	addil #-400,%d2                             
   425fe:	2d44 fe6c      	movel %d4,%fp@(-404)                        
   42602:	2d47 fe66      	movel %d7,%fp@(-410)                        
   /*                                                                 
    * Create an IMFS node structure pointing to tar image memory.     
    */                                                                
   offset = 0;                                                        
   while (1) {                                                        
    if (offset + 512 > tar_size)                                      
   42606:	260a           	movel %a2,%d3                               
   42608:	0683 0000 0200 	addil #512,%d3                              
   4260e:	b6ae 0010      	cmpl %fp@(16),%d3                           
   42612:	6200 0152      	bhiw 42766 <rtems_tarfs_load+0x1da>         
    /*                                                                
     * Read a header.                                                 
     */                                                               
    hdr_ptr = (char *) &tar_image[offset];                            
    offset += 512;                                                    
    if (strncmp(&hdr_ptr[257], "ustar", 5))                           
   42616:	4878 0005      	pea 5 <COMPARE>                             
      break;                                                          
                                                                      
    /*                                                                
     * Read a header.                                                 
     */                                                               
    hdr_ptr = (char *) &tar_image[offset];                            
   4261a:	d5ee 000c      	addal %fp@(12),%a2                          
    offset += 512;                                                    
    if (strncmp(&hdr_ptr[257], "ustar", 5))                           
   4261e:	4879 0006 0b28 	pea 60b28 <IMFS_ops+0x48>                   
   42624:	486a 0101      	pea %a2@(257)                               
   42628:	4eb9 0005 10ac 	jsr 510ac <strncmp>                         
   4262e:	4fef 000c      	lea %sp@(12),%sp                            
   42632:	4a80           	tstl %d0                                    
   42634:	6600 0130      	bnew 42766 <rtems_tarfs_load+0x1da>         
      break;                                                          
                                                                      
    strncpy(filename, hdr_ptr, MAX_NAME_FIELD_SIZE);                  
   42638:	4878 0063      	pea 63 <DBL_MANT_DIG+0x2e>                  
   4263c:	2f0a           	movel %a2,%sp@-                             
   4263e:	2f06           	movel %d6,%sp@-                             
   42640:	4e95           	jsr %a5@                                    
    filename[MAX_NAME_FIELD_SIZE] = '\0';                             
   42642:	4200           	clrb %d0                                    
   42644:	1d40 ffd3      	moveb %d0,%fp@(-45)                         
                                                                      
    linkflag   = hdr_ptr[156];                                        
   42648:	122a 009c      	moveb %a2@(156),%d1                         
    file_mode  = _rtems_octal2ulong(&hdr_ptr[100], 8);                
   4264c:	4878 0008      	pea 8 <DIVIDE_BY_ZERO>                      
   42650:	486a 0064      	pea %a2@(100)                               
      break;                                                          
                                                                      
    strncpy(filename, hdr_ptr, MAX_NAME_FIELD_SIZE);                  
    filename[MAX_NAME_FIELD_SIZE] = '\0';                             
                                                                      
    linkflag   = hdr_ptr[156];                                        
   42654:	1d41 fe6b      	moveb %d1,%fp@(-405)                        
    file_mode  = _rtems_octal2ulong(&hdr_ptr[100], 8);                
   42658:	4e93           	jsr %a3@                                    
    file_size  = _rtems_octal2ulong(&hdr_ptr[124], 12);               
   4265a:	4878 000c      	pea c <OPER1>                               
                                                                      
    strncpy(filename, hdr_ptr, MAX_NAME_FIELD_SIZE);                  
    filename[MAX_NAME_FIELD_SIZE] = '\0';                             
                                                                      
    linkflag   = hdr_ptr[156];                                        
    file_mode  = _rtems_octal2ulong(&hdr_ptr[100], 8);                
   4265e:	2800           	movel %d0,%d4                               
    file_size  = _rtems_octal2ulong(&hdr_ptr[124], 12);               
   42660:	486a 007c      	pea %a2@(124)                               
   42664:	4e93           	jsr %a3@                                    
    hdr_chksum = _rtems_octal2ulong(&hdr_ptr[148], 8);                
   42666:	4878 0008      	pea 8 <DIVIDE_BY_ZERO>                      
    strncpy(filename, hdr_ptr, MAX_NAME_FIELD_SIZE);                  
    filename[MAX_NAME_FIELD_SIZE] = '\0';                             
                                                                      
    linkflag   = hdr_ptr[156];                                        
    file_mode  = _rtems_octal2ulong(&hdr_ptr[100], 8);                
    file_size  = _rtems_octal2ulong(&hdr_ptr[124], 12);               
   4266a:	2840           	moveal %d0,%a4                              
    hdr_chksum = _rtems_octal2ulong(&hdr_ptr[148], 8);                
   4266c:	486a 0094      	pea %a2@(148)                               
   42670:	4e93           	jsr %a3@                                    
                                                                      
    if (_rtems_tar_header_checksum(hdr_ptr) != hdr_chksum)            
   42672:	4fef 0020      	lea %sp@(32),%sp                            
    filename[MAX_NAME_FIELD_SIZE] = '\0';                             
                                                                      
    linkflag   = hdr_ptr[156];                                        
    file_mode  = _rtems_octal2ulong(&hdr_ptr[100], 8);                
    file_size  = _rtems_octal2ulong(&hdr_ptr[124], 12);               
    hdr_chksum = _rtems_octal2ulong(&hdr_ptr[148], 8);                
   42676:	2e00           	movel %d0,%d7                               
                                                                      
    if (_rtems_tar_header_checksum(hdr_ptr) != hdr_chksum)            
   42678:	2e8a           	movel %a2,%sp@                              
   4267a:	4eb9 0004 961a 	jsr 4961a <_rtems_tar_header_checksum>      
   42680:	588f           	addql #4,%sp                                
   42682:	be80           	cmpl %d0,%d7                                
   42684:	6600 00e0      	bnew 42766 <rtems_tarfs_load+0x1da>         
     * Generate an IMFS node depending on the file type.              
     * - For directories, just create directories as usual.  IMFS     
     *   will take care of the rest.                                  
     * - For files, create a file node with special tarfs properties. 
     */                                                               
    if (linkflag == DIRTYPE) {                                        
   42688:	4280           	clrl %d0                                    
   4268a:	102e fe6b      	moveb %fp@(-405),%d0                        
   4268e:	7235           	moveq #53,%d1                               
   42690:	b280           	cmpl %d0,%d1                                
   42692:	6656           	bnes 426ea <rtems_tarfs_load+0x15e>         
      strcpy(full_filename, mountpoint);                              
   42694:	2f2e fe66      	movel %fp@(-410),%sp@-                      
   42698:	2f02           	movel %d2,%sp@-                             
   4269a:	4eb9 0005 0be8 	jsr 50be8 <strcpy>                          
      if (full_filename[strlen(full_filename)-1] != '/')              
   426a0:	2f02           	movel %d2,%sp@-                             
   426a2:	4eb9 0005 1094 	jsr 51094 <strlen>                          
   426a8:	4fef 000c      	lea %sp@(12),%sp                            
   426ac:	722f           	moveq #47,%d1                               
   426ae:	41f6 0800      	lea %fp@(00000000,%d0:l),%a0                
   426b2:	1028 fe6f      	moveb %a0@(-401),%d0                        
   426b6:	49c0           	extbl %d0                                   
   426b8:	b280           	cmpl %d0,%d1                                
   426ba:	6710           	beqs 426cc <rtems_tarfs_load+0x140>         <== ALWAYS TAKEN
        strcat(full_filename, "/");                                   
   426bc:	4879 0005 da59 	pea 5da59 <_rodata_start+0x19>              <== NOT EXECUTED
   426c2:	2f02           	movel %d2,%sp@-                             <== NOT EXECUTED
   426c4:	4eb9 0005 0ad0 	jsr 50ad0 <strcat>                          <== NOT EXECUTED
   426ca:	508f           	addql #8,%sp                                <== NOT EXECUTED
      strcat(full_filename, filename);                                
   426cc:	2f06           	movel %d6,%sp@-                             
   426ce:	2f02           	movel %d2,%sp@-                             
   426d0:	4eb9 0005 0ad0 	jsr 50ad0 <strcat>                          
      mkdir(full_filename, S_IRWXU | S_IRWXG | S_IRWXO);              
   426d6:	4878 01ff      	pea 1ff <DBL_MANT_DIG+0x1ca>                
   426da:	2f02           	movel %d2,%sp@-                             
   426dc:	4eb9 0004 3784 	jsr 43784 <mkdir>                           
   426e2:	4fef 0010      	lea %sp@(16),%sp                            
   426e6:	6000 feec      	braw 425d4 <rtems_tarfs_load+0x48>          
     *        IMFS_create_node was ONLY passed a NULL when we created the
     *        root node.  We added a new IMFS_create_root_node() so this
     *        path no longer existed.  The result was simpler code which
     *        should not have this path.                              
     */                                                               
    else if (linkflag == REGTYPE) {                                   
   426ea:	7230           	moveq #48,%d1                               
   426ec:	b280           	cmpl %d0,%d1                                
   426ee:	6600 fee4      	bnew 425d4 <rtems_tarfs_load+0x48>          
      const char  *name;                                              
                                                                      
      loc = root_loc;                                                 
   426f2:	4878 0014      	pea 14 <OPER2>                              
   426f6:	486e ffe8      	pea %fp@(-24)                               
   426fa:	2f05           	movel %d5,%sp@-                             
   426fc:	4eb9 0005 005c 	jsr 5005c <memcpy>                          
      if (IMFS_evaluate_for_make(filename, &loc, &name) == 0) {       
   42702:	486e fffc      	pea %fp@(-4)                                
   42706:	2f05           	movel %d5,%sp@-                             
   42708:	2f06           	movel %d6,%sp@-                             
   4270a:	4eb9 0004 a10e 	jsr 4a10e <IMFS_evaluate_for_make>          
   42710:	4fef 0018      	lea %sp@(24),%sp                            
   42714:	4a80           	tstl %d0                                    
   42716:	6636           	bnes 4274e <rtems_tarfs_load+0x1c2>         <== NEVER TAKEN
        node = IMFS_create_node(                                      
   42718:	42a7           	clrl %sp@-                                  
          &loc,                                                       
          IMFS_LINEAR_FILE, (char *)name,                             
          (file_mode & (S_IRWXU | S_IRWXG | S_IRWXO)) | S_IFREG,      
   4271a:	0284 0000 01ff 	andil #511,%d4                              
    else if (linkflag == REGTYPE) {                                   
      const char  *name;                                              
                                                                      
      loc = root_loc;                                                 
      if (IMFS_evaluate_for_make(filename, &loc, &name) == 0) {       
        node = IMFS_create_node(                                      
   42720:	08c4 000f      	bset #15,%d4                                
   42724:	2f04           	movel %d4,%sp@-                             
   42726:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   4272a:	4878 0006      	pea 6 <EXTENDSFDF>                          
   4272e:	2f05           	movel %d5,%sp@-                             
   42730:	4eb9 0004 9b8e 	jsr 49b8e <IMFS_create_node>                
          IMFS_LINEAR_FILE, (char *)name,                             
          (file_mode & (S_IRWXU | S_IRWXG | S_IRWXO)) | S_IFREG,      
          NULL                                                        
        );                                                            
        node->info.linearfile.size   = file_size;                     
        node->info.linearfile.direct = &tar_image[offset];            
   42736:	4fef 0014      	lea %sp@(20),%sp                            
    else if (linkflag == REGTYPE) {                                   
      const char  *name;                                              
                                                                      
      loc = root_loc;                                                 
      if (IMFS_evaluate_for_make(filename, &loc, &name) == 0) {       
        node = IMFS_create_node(                                      
   4273a:	2040           	moveal %d0,%a0                              
          IMFS_LINEAR_FILE, (char *)name,                             
          (file_mode & (S_IRWXU | S_IRWXG | S_IRWXO)) | S_IFREG,      
          NULL                                                        
        );                                                            
        node->info.linearfile.size   = file_size;                     
        node->info.linearfile.direct = &tar_image[offset];            
   4273c:	202e 000c      	movel %fp@(12),%d0                          
   42740:	d083           	addl %d3,%d0                                
          &loc,                                                       
          IMFS_LINEAR_FILE, (char *)name,                             
          (file_mode & (S_IRWXU | S_IRWXG | S_IRWXO)) | S_IFREG,      
          NULL                                                        
        );                                                            
        node->info.linearfile.size   = file_size;                     
   42742:	214c 0050      	movel %a4,%a0@(80)                          
   42746:	42a8 004c      	clrl %a0@(76)                               
        node->info.linearfile.direct = &tar_image[offset];            
   4274a:	2140 0054      	movel %d0,%a0@(84)                          
      }                                                               
                                                                      
      nblocks = (((file_size) + 511) & ~511) / 512;                   
   4274e:	200c           	movel %a4,%d0                               
   42750:	0680 0000 01ff 	addil #511,%d0                              
      offset += 512 * nblocks;                                        
   42756:	0280 ffff fe00 	andil #-512,%d0                             
   4275c:	d680           	addl %d0,%d3                                
   4275e:	6000 fe74      	braw 425d4 <rtems_tarfs_load+0x48>          
   );                                                                 
   if (status != 0)                                                   
     return -1;                                                       
                                                                      
   if (root_loc.ops != &IMFS_ops && root_loc.ops != &fifoIMFS_ops)    
     return -1;                                                       
   42762:	78ff           	moveq #-1,%d4                               
   42764:	6004           	bras 4276a <rtems_tarfs_load+0x1de>         
   42766:	282e fe6c      	movel %fp@(-404),%d4                        
      nblocks = (((file_size) + 511) & ~511) / 512;                   
      offset += 512 * nblocks;                                        
    }                                                                 
  }                                                                   
  return status;                                                      
}                                                                     
   4276a:	2004           	movel %d4,%d0                               
   4276c:	4cee 3cfc fe3c 	moveml %fp@(-452),%d2-%d7/%a2-%a5           
   42772:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004c650 <rtems_task_mode>: rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) {
   4c650:	4e56 ffe4      	linkw %fp,#-28                              
   4c654:	48d7 1c3c      	moveml %d2-%d5/%a2-%a4,%sp@                 
   4c658:	262e 0008      	movel %fp@(8),%d3                           
   4c65c:	282e 000c      	movel %fp@(12),%d4                          
   4c660:	286e 0010      	moveal %fp@(16),%a4                         
  ASR_Information    *asr;                                            
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
   4c664:	4a8c           	tstl %a4                                    
   4c666:	6700 0104      	beqw 4c76c <rtems_task_mode+0x11c>          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
   4c66a:	2679 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a3 
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
   4c670:	4a2b 0074      	tstb %a3@(116)                              
   4c674:	57c2           	seq %d2                                     
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
   4c676:	246b 00fe      	moveal %a3@(254),%a2                        
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
   4c67a:	49c2           	extbl %d2                                   
   4c67c:	0282 0000 0100 	andil #256,%d2                              
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
   4c682:	4aab 007a      	tstl %a3@(122)                              
   4c686:	6704           	beqs 4c68c <rtems_task_mode+0x3c>           
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
   4c688:	08c2 0009      	bset #9,%d2                                 
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
   4c68c:	4a2a 0008      	tstb %a2@(8)                                
   4c690:	57c5           	seq %d5                                     
  old_mode |= _ISR_Get_level();                                       
   4c692:	4eb9 0004 8b00 	jsr 48b00 <_CPU_ISR_Get_level>              
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
   4c698:	49c5           	extbl %d5                                   
   4c69a:	0285 0000 0400 	andil #1024,%d5                             
   4c6a0:	8085           	orl %d5,%d0                                 
  old_mode |= _ISR_Get_level();                                       
   4c6a2:	8082           	orl %d2,%d0                                 
   4c6a4:	2880           	movel %d0,%a4@                              
  *previous_mode_set = old_mode;                                      
                                                                      
  /*                                                                  
   *  These are generic thread scheduling characteristics.            
   */                                                                 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
   4c6a6:	0804 0008      	btst #8,%d4                                 
   4c6aa:	670c           	beqs 4c6b8 <rtems_task_mode+0x68>           
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
   4c6ac:	0803 0008      	btst #8,%d3                                 
   4c6b0:	57c0           	seq %d0                                     
   4c6b2:	4480           	negl %d0                                    
   4c6b4:	1740 0074      	moveb %d0,%a3@(116)                         
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
   4c6b8:	0804 0009      	btst #9,%d4                                 
   4c6bc:	671c           	beqs 4c6da <rtems_task_mode+0x8a>           
    if ( _Modes_Is_timeslice(mode_set) ) {                            
   4c6be:	0803 0009      	btst #9,%d3                                 
   4c6c2:	6712           	beqs 4c6d6 <rtems_task_mode+0x86>           
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
   4c6c4:	41f9 0005 e980 	lea 5e980 <_Thread_Ticks_per_timeslice>,%a0 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
   4c6ca:	7001           	moveq #1,%d0                                
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
   4c6cc:	2750 0076      	movel %a0@,%a3@(118)                        
  if ( mask & RTEMS_PREEMPT_MASK )                                    
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
   4c6d0:	2740 007a      	movel %d0,%a3@(122)                         
   4c6d4:	6004           	bras 4c6da <rtems_task_mode+0x8a>           
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
    } else                                                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 
   4c6d6:	42ab 007a      	clrl %a3@(122)                              
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
   4c6da:	7007           	moveq #7,%d0                                
   4c6dc:	c084           	andl %d4,%d0                                
   4c6de:	6712           	beqs 4c6f2 <rtems_task_mode+0xa2>           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (                
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );           
   4c6e0:	40c0           	movew %sr,%d0                               
 */                                                                   
RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level (           
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  return ( mode_set & RTEMS_INTERRUPT_MASK );                         
   4c6e2:	7207           	moveq #7,%d1                                
   4c6e4:	c283           	andl %d3,%d1                                
 */                                                                   
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (                
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );           
   4c6e6:	0280 0000 f8ff 	andil #63743,%d0                            
   4c6ec:	e189           	lsll #8,%d1                                 
   4c6ee:	8081           	orl %d1,%d0                                 
   4c6f0:	46c0           	movew %d0,%sr                               
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
   4c6f2:	0804 000a      	btst #10,%d4                                
   4c6f6:	6740           	beqs 4c738 <rtems_task_mode+0xe8>           
    is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true;
    if ( is_asr_enabled != asr->is_enabled ) {                        
   4c6f8:	4281           	clrl %d1                                    
   4c6fa:	122a 0008      	moveb %a2@(8),%d1                           
   4c6fe:	4282           	clrl %d2                                    
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
   4c700:	0803 000a      	btst #10,%d3                                
   4c704:	57c0           	seq %d0                                     
   4c706:	4480           	negl %d0                                    
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
    is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true;
    if ( is_asr_enabled != asr->is_enabled ) {                        
   4c708:	1400           	moveb %d0,%d2                               
   4c70a:	b282           	cmpl %d2,%d1                                
   4c70c:	672a           	beqs 4c738 <rtems_task_mode+0xe8>           
      asr->is_enabled = is_asr_enabled;                               
   4c70e:	1540 0008      	moveb %d0,%a2@(8)                           
)                                                                     
{                                                                     
  rtems_signal_set _signals;                                          
  ISR_Level        _level;                                            
                                                                      
  _ISR_Disable( _level );                                             
   4c712:	203c 0000 0700 	movel #1792,%d0                             
   4c718:	40c1           	movew %sr,%d1                               
   4c71a:	8081           	orl %d1,%d0                                 
   4c71c:	46c0           	movew %d0,%sr                               
    _signals                     = information->signals_pending;      
   4c71e:	202a 0016      	movel %a2@(22),%d0                          
    information->signals_pending = information->signals_posted;       
   4c722:	256a 0012 0016 	movel %a2@(18),%a2@(22)                     
    information->signals_posted  = _signals;                          
   4c728:	2540 0012      	movel %d0,%a2@(18)                          
  _ISR_Enable( _level );                                              
   4c72c:	46c1           	movew %d1,%sr                               
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
   4c72e:	4aaa 0012      	tstl %a2@(18)                               
   4c732:	56c0           	sne %d0                                     
   4c734:	4480           	negl %d0                                    
   4c736:	6002           	bras 4c73a <rtems_task_mode+0xea>           
   4c738:	4200           	clrb %d0                                    
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
   4c73a:	7203           	moveq #3,%d1                                
   4c73c:	b2b9 0005 eb14 	cmpl 5eb14 <_System_state_Current>,%d1      
   4c742:	662c           	bnes 4c770 <rtems_task_mode+0x120>          
  bool are_signals_pending                                            
)                                                                     
{                                                                     
  Thread_Control     *executing;                                      
                                                                      
  executing = _Thread_Executing;                                      
   4c744:	2079 0005 ee32 	moveal 5ee32 <_Per_CPU_Information+0xc>,%a0 
                                                                      
  if ( are_signals_pending ||                                         
   4c74a:	4a00           	tstb %d0                                    
   4c74c:	660e           	bnes 4c75c <rtems_task_mode+0x10c>          
   4c74e:	b1f9 0005 ee36 	cmpal 5ee36 <_Per_CPU_Information+0x10>,%a0 
   4c754:	671a           	beqs 4c770 <rtems_task_mode+0x120>          
       (!_Thread_Is_heir( executing ) && executing->is_preemptible) ) {
   4c756:	4a28 0074      	tstb %a0@(116)                              
   4c75a:	6714           	beqs 4c770 <rtems_task_mode+0x120>          <== NEVER TAKEN
    _Thread_Dispatch_necessary = true;                                
   4c75c:	7001           	moveq #1,%d0                                
   4c75e:	13c0 0005 ee3e 	moveb %d0,5ee3e <_Per_CPU_Information+0x18> 
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
   4c764:	4eb9 0004 7984 	jsr 47984 <_Thread_Dispatch>                
   4c76a:	6004           	bras 4c770 <rtems_task_mode+0x120>          
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
   4c76c:	7009           	moveq #9,%d0                                
   4c76e:	6002           	bras 4c772 <rtems_task_mode+0x122>          
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
   4c770:	4280           	clrl %d0                                    
}                                                                     
   4c772:	4cee 1c3c ffe4 	moveml %fp@(-28),%d2-%d5/%a2-%a4            
   4c778:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004952c <rtems_task_set_priority>: rtems_status_code rtems_task_set_priority( rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) {
   4952c:	4e56 fffc      	linkw %fp,#-4                               
   49530:	2f0a           	movel %a2,%sp@-                             
   49532:	246e 0010      	moveal %fp@(16),%a2                         
   49536:	2f02           	movel %d2,%sp@-                             
   49538:	242e 000c      	movel %fp@(12),%d2                          
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
   4953c:	670c           	beqs 4954a <rtems_task_set_priority+0x1e>   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
   4953e:	4280           	clrl %d0                                    
   49540:	1039 0006 0952 	moveb 60952 <rtems_maximum_priority>,%d0    
   49546:	b082           	cmpl %d2,%d0                                
   49548:	654e           	bcss 49598 <rtems_task_set_priority+0x6c>   
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
   4954a:	4a8a           	tstl %a2                                    
   4954c:	674e           	beqs 4959c <rtems_task_set_priority+0x70>   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   4954e:	486e fffc      	pea %fp@(-4)                                
   49552:	2f2e 0008      	movel %fp@(8),%sp@-                         
   49556:	4eb9 0004 b580 	jsr 4b580 <_Thread_Get>                     
  switch ( location ) {                                               
   4955c:	508f           	addql #8,%sp                                
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
   4955e:	2040           	moveal %d0,%a0                              
  switch ( location ) {                                               
   49560:	4aae fffc      	tstl %fp@(-4)                               
   49564:	663a           	bnes 495a0 <rtems_task_set_priority+0x74>   
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
   49566:	24a8 0014      	movel %a0@(20),%a2@                         
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
   4956a:	4a82           	tstl %d2                                    
   4956c:	6720           	beqs 4958e <rtems_task_set_priority+0x62>   
        the_thread->real_priority = new_priority;                     
   4956e:	2142 0018      	movel %d2,%a0@(24)                          
        if ( the_thread->resource_count == 0 ||                       
   49572:	4aa8 001c      	tstl %a0@(28)                               
   49576:	6706           	beqs 4957e <rtems_task_set_priority+0x52>   
   49578:	b4a8 0014      	cmpl %a0@(20),%d2                           
   4957c:	6410           	bccs 4958e <rtems_task_set_priority+0x62>   <== ALWAYS TAKEN
             the_thread->current_priority > new_priority )            
          _Thread_Change_priority( the_thread, new_priority, false ); 
   4957e:	42a7           	clrl %sp@-                                  
   49580:	2f02           	movel %d2,%sp@-                             
   49582:	2f08           	movel %a0,%sp@-                             
   49584:	4eb9 0004 b13c 	jsr 4b13c <_Thread_Change_priority>         
   4958a:	4fef 000c      	lea %sp@(12),%sp                            
      }                                                               
      _Thread_Enable_dispatch();                                      
   4958e:	4eb9 0004 b55a 	jsr 4b55a <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   49594:	4280           	clrl %d0                                    
   49596:	600a           	bras 495a2 <rtems_task_set_priority+0x76>   
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
   49598:	7013           	moveq #19,%d0                               
   4959a:	6006           	bras 495a2 <rtems_task_set_priority+0x76>   
                                                                      
  if ( !old_priority )                                                
    return RTEMS_INVALID_ADDRESS;                                     
   4959c:	7009           	moveq #9,%d0                                
   4959e:	6002           	bras 495a2 <rtems_task_set_priority+0x76>   
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   495a0:	7004           	moveq #4,%d0                                
}                                                                     
   495a2:	242e fff4      	movel %fp@(-12),%d2                         
   495a6:	246e fff8      	moveal %fp@(-8),%a2                         
   495aa:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000468d4 <rtems_task_variable_get>: rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) {
   468d4:	4e56 fffc      	linkw %fp,#-4                               
   468d8:	2f0a           	movel %a2,%sp@-                             
   468da:	246e 0010      	moveal %fp@(16),%a2                         
   468de:	2f02           	movel %d2,%sp@-                             
   468e0:	242e 000c      	movel %fp@(12),%d2                          
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
   468e4:	6742           	beqs 46928 <rtems_task_variable_get+0x54>   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
   468e6:	4a8a           	tstl %a2                                    
   468e8:	673e           	beqs 46928 <rtems_task_variable_get+0x54>   <== NEVER TAKEN
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
   468ea:	486e fffc      	pea %fp@(-4)                                
   468ee:	2f2e 0008      	movel %fp@(8),%sp@-                         
   468f2:	4eb9 0004 86c0 	jsr 486c0 <_Thread_Get>                     
  switch (location) {                                                 
   468f8:	508f           	addql #8,%sp                                
   468fa:	4aae fffc      	tstl %fp@(-4)                               
   468fe:	662c           	bnes 4692c <rtems_task_variable_get+0x58>   
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
   46900:	2240           	moveal %d0,%a1                              
   46902:	2069 010a      	moveal %a1@(266),%a0                        
      while (tvp) {                                                   
   46906:	6016           	bras 4691e <rtems_task_variable_get+0x4a>   
        if (tvp->ptr == ptr) {                                        
   46908:	b4a8 0004      	cmpl %a0@(4),%d2                            
   4690c:	660e           	bnes 4691c <rtems_task_variable_get+0x48>   
	  /*                                                                 
	   * Should this return the current (i.e not the                     
	   * saved) value if `tid' is the current task?                      
	   */                                                                
          *result = tvp->tval;                                        
   4690e:	24a8 000c      	movel %a0@(12),%a2@                         
          _Thread_Enable_dispatch();                                  
   46912:	4eb9 0004 869a 	jsr 4869a <_Thread_Enable_dispatch>         
          return RTEMS_SUCCESSFUL;                                    
   46918:	4280           	clrl %d0                                    
   4691a:	6012           	bras 4692e <rtems_task_variable_get+0x5a>   
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
   4691c:	2050           	moveal %a0@,%a0                             
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
   4691e:	4a88           	tstl %a0                                    
   46920:	66e6           	bnes 46908 <rtems_task_variable_get+0x34>   
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
   46922:	4eb9 0004 869a 	jsr 4869a <_Thread_Enable_dispatch>         
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
   46928:	7009           	moveq #9,%d0                                
   4692a:	6002           	bras 4692e <rtems_task_variable_get+0x5a>   
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
   4692c:	7004           	moveq #4,%d0                                
}                                                                     
   4692e:	242e fff4      	movel %fp@(-12),%d2                         
   46932:	246e fff8      	moveal %fp@(-8),%a2                         
   46936:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004692c <rtems_task_wake_when>: */ rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ) {
   4692c:	4e56 0000      	linkw %fp,#0                                
   46930:	2f0a           	movel %a2,%sp@-                             
   46932:	246e 0008      	moveal %fp@(8),%a2                          
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
   46936:	4a39 0005 ff80 	tstb 5ff80 <_TOD_Is_set>                    
   4693c:	6700 0096      	beqw 469d4 <rtems_task_wake_when+0xa8>      
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
   46940:	4a8a           	tstl %a2                                    
   46942:	6700 0094      	beqw 469d8 <rtems_task_wake_when+0xac>      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  time_buffer->ticks = 0;                                             
   46946:	42aa 0018      	clrl %a2@(24)                               
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
   4694a:	2f0a           	movel %a2,%sp@-                             
   4694c:	4eb9 0004 5de0 	jsr 45de0 <_TOD_Validate>                   
   46952:	588f           	addql #4,%sp                                
   46954:	4a00           	tstb %d0                                    
   46956:	6700 0084      	beqw 469dc <rtems_task_wake_when+0xb0>      
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
   4695a:	2f0a           	movel %a2,%sp@-                             
   4695c:	4eb9 0004 5d44 	jsr 45d44 <_TOD_To_seconds>                 
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   46962:	588f           	addql #4,%sp                                
  time_buffer->ticks = 0;                                             
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
   46964:	2440           	moveal %d0,%a2                              
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   46966:	b0b9 0005 fffa 	cmpl 5fffa <_TOD_Now>,%d0                   
   4696c:	636e           	blss 469dc <rtems_task_wake_when+0xb0>      <== NEVER TAKEN
   4696e:	2039 0005 ff70 	movel 5ff70 <_Thread_Dispatch_disable_level>,%d0
   46974:	5280           	addql #1,%d0                                
   46976:	23c0 0005 ff70 	movel %d0,5ff70 <_Thread_Dispatch_disable_level>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
   4697c:	4878 0010      	pea 10 <INVALID_OPERATION>                  
   46980:	2f39 0006 03da 	movel 603da <_Per_CPU_Information+0xc>,%sp@-
   46986:	4eb9 0004 8e7c 	jsr 48e7c <_Thread_Set_state>               
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
   4698c:	2079 0006 03da 	moveal 603da <_Per_CPU_Information+0xc>,%a0 
      NULL                                                            
    );                                                                
    _Watchdog_Insert_seconds(                                         
   46992:	95f9 0005 fffa 	subal 5fffa <_TOD_Now>,%a2                  
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   46998:	223c 0004 8570 	movel #296304,%d1                           
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
    _Watchdog_Initialize(                                             
   4699e:	2028 0008      	movel %a0@(8),%d0                           
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   469a2:	42a8 0050      	clrl %a0@(80)                               
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
   469a6:	2140 0068      	movel %d0,%a0@(104)                         
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   469aa:	2141 0064      	movel %d1,%a0@(100)                         
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   469ae:	42a8 006c      	clrl %a0@(108)                              
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_seconds(                                         
   469b2:	214a 0054      	movel %a2,%a0@(84)                          
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
   469b6:	4868 0048      	pea %a0@(72)                                
   469ba:	4879 0006 0024 	pea 60024 <_Watchdog_Seconds_chain>         
   469c0:	4eb9 0004 9400 	jsr 49400 <_Watchdog_Insert>                
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
   469c6:	4eb9 0004 86ea 	jsr 486ea <_Thread_Enable_dispatch>         
  return RTEMS_SUCCESSFUL;                                            
   469cc:	4fef 0010      	lea %sp@(16),%sp                            
   469d0:	4280           	clrl %d0                                    
   469d2:	600a           	bras 469de <rtems_task_wake_when+0xb2>      
)                                                                     
{                                                                     
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
   469d4:	700b           	moveq #11,%d0                               
   469d6:	6006           	bras 469de <rtems_task_wake_when+0xb2>      
                                                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
   469d8:	7009           	moveq #9,%d0                                
   469da:	6002           	bras 469de <rtems_task_wake_when+0xb2>      
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
   469dc:	7014           	moveq #20,%d0                               
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   469de:	246e fffc      	moveal %fp@(-4),%a2                         
   469e2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00044f00 <rtems_termios_baud_to_index>: rtems_termios_baud_t termios_baud ) { int baud_index; switch (termios_baud) {
   44f00:	7209           	moveq #9,%d1                                
#include <rtems/termiostypes.h>                                       
                                                                      
int rtems_termios_baud_to_index(                                      
  rtems_termios_baud_t termios_baud                                   
)                                                                     
{                                                                     
   44f02:	4e56 0000      	linkw %fp,#0                                
   44f06:	202e 0008      	movel %fp@(8),%d0                           
  int baud_index;                                                     
                                                                      
  switch (termios_baud) {                                             
   44f0a:	b280           	cmpl %d0,%d1                                
   44f0c:	6700 00c4      	beqw 44fd2 <rtems_termios_baud_to_index+0xd2>
   44f10:	6d50           	blts 44f62 <rtems_termios_baud_to_index+0x62>
   44f12:	123c 0004      	moveb #4,%d1                                
   44f16:	b280           	cmpl %d0,%d1                                
   44f18:	6700 00a4      	beqw 44fbe <rtems_termios_baud_to_index+0xbe>
   44f1c:	6d28           	blts 44f46 <rtems_termios_baud_to_index+0x46>
   44f1e:	123c 0001      	moveb #1,%d1                                
   44f22:	b280           	cmpl %d0,%d1                                
   44f24:	6700 00dc      	beqw 45002 <rtems_termios_baud_to_index+0x102>
   44f28:	6d0a           	blts 44f34 <rtems_termios_baud_to_index+0x34>
   44f2a:	4a80           	tstl %d0                                    
   44f2c:	6700 0084      	beqw 44fb2 <rtems_termios_baud_to_index+0xb2>
   44f30:	6000 00cc      	braw 44ffe <rtems_termios_baud_to_index+0xfe>
   44f34:	7202           	moveq #2,%d1                                
   44f36:	b280           	cmpl %d0,%d1                                
   44f38:	677c           	beqs 44fb6 <rtems_termios_baud_to_index+0xb6>
   44f3a:	123c 0003      	moveb #3,%d1                                
   44f3e:	b280           	cmpl %d0,%d1                                
   44f40:	6600 00bc      	bnew 44ffe <rtems_termios_baud_to_index+0xfe>
   44f44:	6074           	bras 44fba <rtems_termios_baud_to_index+0xba>
   44f46:	7206           	moveq #6,%d1                                
   44f48:	b280           	cmpl %d0,%d1                                
   44f4a:	677a           	beqs 44fc6 <rtems_termios_baud_to_index+0xc6>
   44f4c:	6e74           	bgts 44fc2 <rtems_termios_baud_to_index+0xc2>
   44f4e:	123c 0007      	moveb #7,%d1                                
   44f52:	b280           	cmpl %d0,%d1                                
   44f54:	6774           	beqs 44fca <rtems_termios_baud_to_index+0xca>
   44f56:	123c 0008      	moveb #8,%d1                                
   44f5a:	b280           	cmpl %d0,%d1                                
   44f5c:	6600 00a0      	bnew 44ffe <rtems_termios_baud_to_index+0xfe>
   44f60:	606c           	bras 44fce <rtems_termios_baud_to_index+0xce>
   44f62:	720e           	moveq #14,%d1                               
   44f64:	b280           	cmpl %d0,%d1                                
   44f66:	677e           	beqs 44fe6 <rtems_termios_baud_to_index+0xe6>
   44f68:	6d1c           	blts 44f86 <rtems_termios_baud_to_index+0x86>
   44f6a:	123c 000b      	moveb #11,%d1                               
   44f6e:	b280           	cmpl %d0,%d1                                
   44f70:	6768           	beqs 44fda <rtems_termios_baud_to_index+0xda>
   44f72:	6e62           	bgts 44fd6 <rtems_termios_baud_to_index+0xd6>
   44f74:	123c 000c      	moveb #12,%d1                               
   44f78:	b280           	cmpl %d0,%d1                                
   44f7a:	6762           	beqs 44fde <rtems_termios_baud_to_index+0xde>
   44f7c:	123c 000d      	moveb #13,%d1                               
   44f80:	b280           	cmpl %d0,%d1                                
   44f82:	667a           	bnes 44ffe <rtems_termios_baud_to_index+0xfe><== NEVER TAKEN
   44f84:	605c           	bras 44fe2 <rtems_termios_baud_to_index+0xe2>
   44f86:	0c80 0000 1002 	cmpil #4098,%d0                             
   44f8c:	6764           	beqs 44ff2 <rtems_termios_baud_to_index+0xf2>
   44f8e:	6e10           	bgts 44fa0 <rtems_termios_baud_to_index+0xa0>
   44f90:	720f           	moveq #15,%d1                               
   44f92:	b280           	cmpl %d0,%d1                                
   44f94:	6754           	beqs 44fea <rtems_termios_baud_to_index+0xea>
   44f96:	0c80 0000 1001 	cmpil #4097,%d0                             
   44f9c:	6660           	bnes 44ffe <rtems_termios_baud_to_index+0xfe><== NEVER TAKEN
   44f9e:	604e           	bras 44fee <rtems_termios_baud_to_index+0xee>
   44fa0:	0c80 0000 1003 	cmpil #4099,%d0                             
   44fa6:	674e           	beqs 44ff6 <rtems_termios_baud_to_index+0xf6>
   44fa8:	0c80 0000 1004 	cmpil #4100,%d0                             
   44fae:	664e           	bnes 44ffe <rtems_termios_baud_to_index+0xfe><== NEVER TAKEN
   44fb0:	6048           	bras 44ffa <rtems_termios_baud_to_index+0xfa>
    case B0:        baud_index =  0;  break;                          
   44fb2:	4280           	clrl %d0                                    
   44fb4:	604e           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B50:       baud_index =  1;  break;                          
    case B75:       baud_index =  2;  break;                          
   44fb6:	7002           	moveq #2,%d0                                
   44fb8:	604a           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B110:      baud_index =  3;  break;                          
   44fba:	7003           	moveq #3,%d0                                
   44fbc:	6046           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B134:      baud_index =  4;  break;                          
   44fbe:	7004           	moveq #4,%d0                                
   44fc0:	6042           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B150:      baud_index =  5;  break;                          
   44fc2:	7005           	moveq #5,%d0                                
   44fc4:	603e           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B200:      baud_index =  6;  break;                          
   44fc6:	7006           	moveq #6,%d0                                
   44fc8:	603a           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B300:      baud_index =  7;  break;                          
   44fca:	7007           	moveq #7,%d0                                
   44fcc:	6036           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B600:      baud_index =  8;  break;                          
   44fce:	7008           	moveq #8,%d0                                
   44fd0:	6032           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B1200:     baud_index =  9;  break;                          
   44fd2:	7009           	moveq #9,%d0                                
   44fd4:	602e           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B1800:     baud_index = 10;  break;                          
   44fd6:	700a           	moveq #10,%d0                               
   44fd8:	602a           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B2400:     baud_index = 11;  break;                          
   44fda:	700b           	moveq #11,%d0                               
   44fdc:	6026           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B4800:     baud_index = 12;  break;                          
   44fde:	700c           	moveq #12,%d0                               
   44fe0:	6022           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B9600:     baud_index = 13;  break;                          
   44fe2:	700d           	moveq #13,%d0                               
   44fe4:	601e           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B19200:    baud_index = 14;  break;                          
   44fe6:	700e           	moveq #14,%d0                               
   44fe8:	601a           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B38400:    baud_index = 15;  break;                          
   44fea:	700f           	moveq #15,%d0                               
   44fec:	6016           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B57600:    baud_index = 16;  break;                          
   44fee:	7010           	moveq #16,%d0                               
   44ff0:	6012           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B115200:   baud_index = 17;  break;                          
   44ff2:	7011           	moveq #17,%d0                               
   44ff4:	600e           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B230400:   baud_index = 18;  break;                          
   44ff6:	7012           	moveq #18,%d0                               
   44ff8:	600a           	bras 45004 <rtems_termios_baud_to_index+0x104>
    case B460800:   baud_index = 19;  break;                          
   44ffa:	7013           	moveq #19,%d0                               
   44ffc:	6006           	bras 45004 <rtems_termios_baud_to_index+0x104>
    default:        baud_index = -1;  break;                          
   44ffe:	70ff           	moveq #-1,%d0                               
   45000:	6002           	bras 45004 <rtems_termios_baud_to_index+0x104>
{                                                                     
  int baud_index;                                                     
                                                                      
  switch (termios_baud) {                                             
    case B0:        baud_index =  0;  break;                          
    case B50:       baud_index =  1;  break;                          
   45002:	7001           	moveq #1,%d0                                
    case B460800:   baud_index = 19;  break;                          
    default:        baud_index = -1;  break;                          
  }                                                                   
                                                                      
  return baud_index;                                                  
}                                                                     
   45004:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043c0c <rtems_termios_close>: } } rtems_status_code rtems_termios_close (void *arg) {
   43c0c:	4e56 fff4      	linkw %fp,#-12                              
   43c10:	48d7 1c00      	moveml %a2-%a4,%sp@                         
   43c14:	266e 0008      	moveal %fp@(8),%a3                          
  rtems_libio_open_close_args_t *args = arg;                          
  struct rtems_termios_tty *tty = args->iop->data1;                   
  rtems_status_code sc;                                               
                                                                      
  sc = rtems_semaphore_obtain(                                        
   43c18:	49f9 0004 5854 	lea 45854 <rtems_semaphore_obtain>,%a4      
                                                                      
rtems_status_code                                                     
rtems_termios_close (void *arg)                                       
{                                                                     
  rtems_libio_open_close_args_t *args = arg;                          
  struct rtems_termios_tty *tty = args->iop->data1;                   
   43c1e:	2053           	moveal %a3@,%a0                             
   43c20:	2468 0034      	moveal %a0@(52),%a2                         
  rtems_status_code sc;                                               
                                                                      
  sc = rtems_semaphore_obtain(                                        
   43c24:	42a7           	clrl %sp@-                                  
   43c26:	42a7           	clrl %sp@-                                  
   43c28:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  
   43c2e:	4e94           	jsr %a4@                                    
    rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);            
  if (sc != RTEMS_SUCCESSFUL)                                         
   43c30:	4fef 000c      	lea %sp@(12),%sp                            
   43c34:	4a80           	tstl %d0                                    
   43c36:	667c           	bnes 43cb4 <rtems_termios_close+0xa8>       <== NEVER TAKEN
    rtems_fatal_error_occurred (sc);                                  
  if (--tty->refcount == 0) {                                         
   43c38:	202a 0008      	movel %a2@(8),%d0                           
   43c3c:	5380           	subql #1,%d0                                
   43c3e:	2540 0008      	movel %d0,%a2@(8)                           
   43c42:	6600 011c      	bnew 43d60 <rtems_termios_close+0x154>      
    if (rtems_termios_linesw[tty->t_line].l_close != NULL) {          
   43c46:	202a 00cc      	movel %a2@(204),%d0                         
   43c4a:	eb88           	lsll #5,%d0                                 
   43c4c:	0680 0005 e080 	addil #385152,%d0                           
   43c52:	2240           	moveal %d0,%a1                              
   43c54:	2051           	moveal %a1@,%a0                             
   43c56:	4a88           	tstl %a0                                    
   43c58:	6708           	beqs 43c62 <rtems_termios_close+0x56>       
      /*                                                              
       * call discipline-specific close                               
       */                                                             
      sc = rtems_termios_linesw[tty->t_line].l_close(tty);            
   43c5a:	2f0a           	movel %a2,%sp@-                             
   43c5c:	4e90           	jsr %a0@                                    
   43c5e:	588f           	addql #4,%sp                                
   43c60:	6024           	bras 43c86 <rtems_termios_close+0x7a>       
    } else {                                                          
      /*                                                              
       * default: just flush output buffer                            
       */                                                             
      sc = rtems_semaphore_obtain(tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   43c62:	42a7           	clrl %sp@-                                  
   43c64:	42a7           	clrl %sp@-                                  
   43c66:	2f2a 0018      	movel %a2@(24),%sp@-                        
   43c6a:	4e94           	jsr %a4@                                    
      if (sc != RTEMS_SUCCESSFUL) {                                   
   43c6c:	4fef 000c      	lea %sp@(12),%sp                            
   43c70:	4a80           	tstl %d0                                    
   43c72:	6640           	bnes 43cb4 <rtems_termios_close+0xa8>       <== NEVER TAKEN
        rtems_fatal_error_occurred (sc);                              
      }                                                               
      drainOutput (tty);                                              
   43c74:	2f0a           	movel %a2,%sp@-                             
   43c76:	4eba fb48      	jsr %pc@(437c0 <drainOutput>)               
      rtems_semaphore_release (tty->osem);                            
   43c7a:	2f2a 0018      	movel %a2@(24),%sp@-                        
   43c7e:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
   43c84:	508f           	addql #8,%sp                                
    }                                                                 
                                                                      
    if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {    
   43c86:	7002           	moveq #2,%d0                                
   43c88:	b0aa 00b4      	cmpl %a2@(180),%d0                          
   43c8c:	662e           	bnes 43cbc <rtems_termios_close+0xb0>       
      /*                                                              
       * send "terminate" to I/O tasks                                
       */                                                             
      sc = rtems_event_send( tty->rxTaskId, TERMIOS_RX_TERMINATE_EVENT );
   43c8e:	4878 0001      	pea 1 <ADD>                                 
   43c92:	49f9 0004 5404 	lea 45404 <rtems_event_send>,%a4            
   43c98:	2f2a 00c4      	movel %a2@(196),%sp@-                       
   43c9c:	4e94           	jsr %a4@                                    
      if (sc != RTEMS_SUCCESSFUL)                                     
   43c9e:	508f           	addql #8,%sp                                
   43ca0:	4a80           	tstl %d0                                    
   43ca2:	6610           	bnes 43cb4 <rtems_termios_close+0xa8>       <== NEVER TAKEN
        rtems_fatal_error_occurred (sc);                              
      sc = rtems_event_send( tty->txTaskId, TERMIOS_TX_TERMINATE_EVENT );
   43ca4:	4878 0001      	pea 1 <ADD>                                 
   43ca8:	2f2a 00c8      	movel %a2@(200),%sp@-                       
   43cac:	4e94           	jsr %a4@                                    
      if (sc != RTEMS_SUCCESSFUL)                                     
   43cae:	508f           	addql #8,%sp                                
   43cb0:	4a80           	tstl %d0                                    
   43cb2:	6708           	beqs 43cbc <rtems_termios_close+0xb0>       <== ALWAYS TAKEN
        rtems_fatal_error_occurred (sc);                              
   43cb4:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   43cb6:	4eb9 0004 5efc 	jsr 45efc <rtems_fatal_error_occurred>      <== NOT EXECUTED
    }                                                                 
    if (tty->device.lastClose)                                        
   43cbc:	206a 009c      	moveal %a2@(156),%a0                        
   43cc0:	4a88           	tstl %a0                                    
   43cc2:	6710           	beqs 43cd4 <rtems_termios_close+0xc8>       
       (*tty->device.lastClose)(tty->major, tty->minor, arg);         
   43cc4:	2f0b           	movel %a3,%sp@-                             
   43cc6:	2f2a 0010      	movel %a2@(16),%sp@-                        
   43cca:	2f2a 000c      	movel %a2@(12),%sp@-                        
   43cce:	4e90           	jsr %a0@                                    
   43cd0:	4fef 000c      	lea %sp@(12),%sp                            
    if (tty->forw == NULL) {                                          
   43cd4:	2052           	moveal %a2@,%a0                             
   43cd6:	4a88           	tstl %a0                                    
   43cd8:	6610           	bnes 43cea <rtems_termios_close+0xde>       
      rtems_termios_ttyTail = tty->back;                              
   43cda:	206a 0004      	moveal %a2@(4),%a0                          
   43cde:	23c8 0005 e8bc 	movel %a0,5e8bc <rtems_termios_ttyTail>     
      if ( rtems_termios_ttyTail != NULL ) {                          
   43ce4:	670a           	beqs 43cf0 <rtems_termios_close+0xe4>       
        rtems_termios_ttyTail->forw = NULL;                           
   43ce6:	4290           	clrl %a0@                                   
   43ce8:	6006           	bras 43cf0 <rtems_termios_close+0xe4>       
      }                                                               
    } else {                                                          
      tty->forw->back = tty->back;                                    
   43cea:	216a 0004 0004 	movel %a2@(4),%a0@(4)                       
    }                                                                 
                                                                      
    if (tty->back == NULL) {                                          
   43cf0:	206a 0004      	moveal %a2@(4),%a0                          
   43cf4:	4a88           	tstl %a0                                    
   43cf6:	6610           	bnes 43d08 <rtems_termios_close+0xfc>       
      rtems_termios_ttyHead = tty->forw;                              
   43cf8:	2052           	moveal %a2@,%a0                             
   43cfa:	23c8 0005 e8c0 	movel %a0,5e8c0 <rtems_termios_ttyHead>     
      if ( rtems_termios_ttyHead != NULL ) {                          
   43d00:	6708           	beqs 43d0a <rtems_termios_close+0xfe>       
        rtems_termios_ttyHead->back = NULL;                           
   43d02:	42a8 0004      	clrl %a0@(4)                                
   43d06:	6002           	bras 43d0a <rtems_termios_close+0xfe>       
      }                                                               
    } else {                                                          
      tty->back->forw = tty->forw;                                    
   43d08:	2092           	movel %a2@,%a0@                             
    }                                                                 
                                                                      
    rtems_semaphore_delete (tty->isem);                               
   43d0a:	2f2a 0014      	movel %a2@(20),%sp@-                        
   43d0e:	47f9 0004 57b8 	lea 457b8 <rtems_semaphore_delete>,%a3      
   43d14:	4e93           	jsr %a3@                                    
    rtems_semaphore_delete (tty->osem);                               
   43d16:	2f2a 0018      	movel %a2@(24),%sp@-                        
   43d1a:	4e93           	jsr %a3@                                    
    rtems_semaphore_delete (tty->rawOutBuf.Semaphore);                
   43d1c:	2f2a 008c      	movel %a2@(140),%sp@-                       
   43d20:	4e93           	jsr %a3@                                    
    if ((tty->device.pollRead == NULL) ||                             
   43d22:	4fef 000c      	lea %sp@(12),%sp                            
   43d26:	4aaa 00a0      	tstl %a2@(160)                              
   43d2a:	6708           	beqs 43d34 <rtems_termios_close+0x128>      
   43d2c:	7002           	moveq #2,%d0                                
   43d2e:	b0aa 00b4      	cmpl %a2@(180),%d0                          
   43d32:	660c           	bnes 43d40 <rtems_termios_close+0x134>      
        (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN))    
      rtems_semaphore_delete (tty->rawInBuf.Semaphore);               
   43d34:	2f2a 0068      	movel %a2@(104),%sp@-                       
   43d38:	4eb9 0004 57b8 	jsr 457b8 <rtems_semaphore_delete>          
   43d3e:	588f           	addql #4,%sp                                
    free (tty->rawInBuf.theBuf);                                      
   43d40:	2f2a 0058      	movel %a2@(88),%sp@-                        
   43d44:	47f9 0004 29ec 	lea 429ec <free>,%a3                        
   43d4a:	4e93           	jsr %a3@                                    
    free (tty->rawOutBuf.theBuf);                                     
   43d4c:	2f2a 007c      	movel %a2@(124),%sp@-                       
   43d50:	4e93           	jsr %a3@                                    
    free (tty->cbuf);                                                 
   43d52:	2f2a 001c      	movel %a2@(28),%sp@-                        
   43d56:	4e93           	jsr %a3@                                    
    free (tty);                                                       
   43d58:	2f0a           	movel %a2,%sp@-                             
   43d5a:	4e93           	jsr %a3@                                    
   43d5c:	4fef 0010      	lea %sp@(16),%sp                            
  }                                                                   
  rtems_semaphore_release (rtems_termios_ttyMutex);                   
   43d60:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  
   43d66:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
   43d6c:	4cee 1c00 fff4 	moveml %fp@(-12),%a2-%a4                    
   43d72:	4280           	clrl %d0                                    
   43d74:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00044f64 <rtems_termios_dequeue_characters>: * for each transmitted character. * It returns number of characters left to transmit */ int rtems_termios_dequeue_characters (void *ttyp, int len) {
   44f64:	4e56 0000      	linkw %fp,#0                                
  rtems_status_code sc;                                               
                                                                      
  /*                                                                  
   * sum up character count already sent                              
   */                                                                 
  tty->t_dqlen += len;                                                
   44f68:	202e 000c      	movel %fp@(12),%d0                          
 * for each transmitted character.                                    
 * It returns number of characters left to transmit                   
 */                                                                   
int                                                                   
rtems_termios_dequeue_characters (void *ttyp, int len)                
{                                                                     
   44f6c:	206e 0008      	moveal %fp@(8),%a0                          
  rtems_status_code sc;                                               
                                                                      
  /*                                                                  
   * sum up character count already sent                              
   */                                                                 
  tty->t_dqlen += len;                                                
   44f70:	d1a8 0090      	addl %d0,%a0@(144)                          
                                                                      
  if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {      
   44f74:	7002           	moveq #2,%d0                                
   44f76:	b0a8 00b4      	cmpl %a0@(180),%d0                          
   44f7a:	661c           	bnes 44f98 <rtems_termios_dequeue_characters+0x34>
    /*                                                                
     * send wake up to transmitter task                               
     */                                                               
    sc = rtems_event_send(tty->txTaskId, TERMIOS_TX_START_EVENT);     
   44f7c:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   44f80:	2f28 00c8      	movel %a0@(200),%sp@-                       
   44f84:	4eb9 0004 5404 	jsr 45404 <rtems_event_send>                
    if (sc != RTEMS_SUCCESSFUL)                                       
   44f8a:	508f           	addql #8,%sp                                
   44f8c:	4a80           	tstl %d0                                    
   44f8e:	672e           	beqs 44fbe <rtems_termios_dequeue_characters+0x5a><== ALWAYS TAKEN
      rtems_fatal_error_occurred (sc);                                
   44f90:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   44f92:	4eb9 0004 5efc 	jsr 45efc <rtems_fatal_error_occurred>      <== NOT EXECUTED
    return 0; /* nothing to output in IRQ... */                       
  }                                                                   
                                                                      
  if (tty->t_line == PPPDISC ) {                                      
   44f98:	7005           	moveq #5,%d0                                
   44f9a:	b0a8 00cc      	cmpl %a0@(204),%d0                          
   44f9e:	6612           	bnes 44fb2 <rtems_termios_dequeue_characters+0x4e>
    /*                                                                
     * call any line discipline start function                        
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_start != NULL) {          
   44fa0:	2279 0005 e130 	moveal 5e130 <rtems_termios_linesw+0xb4>,%a1
   44fa6:	4a89           	tstl %a1                                    
   44fa8:	6714           	beqs 44fbe <rtems_termios_dequeue_characters+0x5a><== NEVER TAKEN
      rtems_termios_linesw[tty->t_line].l_start(tty);                 
   44faa:	2f08           	movel %a0,%sp@-                             
   44fac:	4e91           	jsr %a1@                                    
   44fae:	588f           	addql #4,%sp                                
   44fb0:	600c           	bras 44fbe <rtems_termios_dequeue_characters+0x5a>
    }                                                                 
    return 0; /* nothing to output in IRQ... */                       
  }                                                                   
                                                                      
  return rtems_termios_refill_transmitter(tty);                       
   44fb2:	2d48 0008      	movel %a0,%fp@(8)                           
}                                                                     
   44fb6:	4e5e           	unlk %fp                                    
      rtems_termios_linesw[tty->t_line].l_start(tty);                 
    }                                                                 
    return 0; /* nothing to output in IRQ... */                       
  }                                                                   
                                                                      
  return rtems_termios_refill_transmitter(tty);                       
   44fb8:	4ef9 0004 4d48 	jmp 44d48 <rtems_termios_refill_transmitter>
}                                                                     
   44fbe:	4280           	clrl %d0                                    
   44fc0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00044a88 <rtems_termios_enqueue_raw_characters>: * device receive interrupt handler. * Returns the number of characters dropped because of overflow. */ int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) {
   44a88:	4e56 ffd0      	linkw %fp,#-48                              
   44a8c:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   44a90:	246e 0008      	moveal %fp@(8),%a2                          
  char c;                                                             
  int dropped = 0;                                                    
  bool flow_rcv = false; /* true, if flow control char received */    
  rtems_interrupt_level level;                                        
                                                                      
  if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {             
   44a94:	202a 00cc      	movel %a2@(204),%d0                         
   44a98:	eb88           	lsll #5,%d0                                 
 *       device receive interrupt handler.                            
 * Returns the number of characters dropped because of overflow.      
 */                                                                   
int                                                                   
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) 
{                                                                     
   44a9a:	266e 000c      	moveal %fp@(12),%a3                         
  char c;                                                             
  int dropped = 0;                                                    
  bool flow_rcv = false; /* true, if flow control char received */    
  rtems_interrupt_level level;                                        
                                                                      
  if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {             
   44a9e:	0680 0005 e08c 	addil #385164,%d0                           
   44aa4:	2040           	moveal %d0,%a0                              
 *       device receive interrupt handler.                            
 * Returns the number of characters dropped because of overflow.      
 */                                                                   
int                                                                   
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) 
{                                                                     
   44aa6:	242e 0010      	movel %fp@(16),%d2                          
  char c;                                                             
  int dropped = 0;                                                    
  bool flow_rcv = false; /* true, if flow control char received */    
  rtems_interrupt_level level;                                        
                                                                      
  if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {             
   44aaa:	4a90           	tstl %a0@                                   
   44aac:	6630           	bnes 44ade <rtems_termios_enqueue_raw_characters+0x56>
   44aae:	2802           	movel %d2,%d4                               
   44ab0:	4282           	clrl %d2                                    
                                                                      
        /*                                                            
         * check to see if rcv wakeup callback was set                
         */                                                           
        if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) {
          (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 
   44ab2:	4bea 0030      	lea %a2@(48),%a5                            
          if ((tty->flow_ctrl & FL_OSTOP) ||                          
              (tty->rawOutBufState == rob_idle)) {                    
            /* if tx is stopped due to XOFF or out of data */         
            /*    call write function here                 */         
            tty->flow_ctrl |= FL_ISNTXOF;                             
            (*tty->device.write)(tty->minor,                          
   44ab6:	49ea 004a      	lea %a2@(74),%a4                            
  char c;                                                             
  int dropped = 0;                                                    
  bool flow_rcv = false; /* true, if flow control char received */    
  rtems_interrupt_level level;                                        
                                                                      
  if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {             
   44aba:	4206           	clrb %d6                                    
   44abc:	6000 01f4      	braw 44cb2 <rtems_termios_enqueue_raw_characters+0x22a>
    while (len--) {                                                   
      c = *buf++;                                                     
      rtems_termios_linesw[tty->t_line].l_rint(c,tty);                
   44ac0:	202a 00cc      	movel %a2@(204),%d0                         
   44ac4:	5382           	subql #1,%d2                                
   44ac6:	2f0a           	movel %a2,%sp@-                             
   44ac8:	121b           	moveb %a3@+,%d1                             
   44aca:	eb88           	lsll #5,%d0                                 
   44acc:	49c1           	extbl %d1                                   
   44ace:	0680 0005 e08c 	addil #385164,%d0                           
   44ad4:	2240           	moveal %d0,%a1                              
   44ad6:	2f01           	movel %d1,%sp@-                             
   44ad8:	2051           	moveal %a1@,%a0                             
   44ada:	4e90           	jsr %a0@                                    
   44adc:	508f           	addql #8,%sp                                
  int dropped = 0;                                                    
  bool flow_rcv = false; /* true, if flow control char received */    
  rtems_interrupt_level level;                                        
                                                                      
  if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {             
    while (len--) {                                                   
   44ade:	4a82           	tstl %d2                                    
   44ae0:	66de           	bnes 44ac0 <rtems_termios_enqueue_raw_characters+0x38>
    }                                                                 
                                                                      
    /*                                                                
     * check to see if rcv wakeup callback was set                    
     */                                                               
    if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { 
   44ae2:	4aaa 00e4      	tstl %a2@(228)                              
   44ae6:	6600 01e2      	bnew 44cca <rtems_termios_enqueue_raw_characters+0x242>
   44aea:	206a 00dc      	moveal %a2@(220),%a0                        
   44aee:	4a88           	tstl %a0                                    
   44af0:	6700 01d8      	beqw 44cca <rtems_termios_enqueue_raw_characters+0x242>
      (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg);     
   44af4:	2f2a 00e0      	movel %a2@(224),%sp@-                       
   44af8:	486a 0030      	pea %a2@(48)                                
   44afc:	4e90           	jsr %a0@                                    
      tty->tty_rcvwakeup = 1;                                         
   44afe:	508f           	addql #8,%sp                                
   44b00:	7001           	moveq #1,%d0                                
   44b02:	2540 00e4      	movel %d0,%a2@(228)                         
   44b06:	6000 01c4      	braw 44ccc <rtems_termios_enqueue_raw_characters+0x244>
                                                                      
  while (len--) {                                                     
    c = *buf++;                                                       
    /* FIXME: implement IXANY: any character restarts output */       
    /* if incoming XON/XOFF controls outgoing stream: */              
    if (tty->flow_ctrl & FL_MDXON) {                                  
   44b0a:	202a 00b8      	movel %a2@(184),%d0                         
        }                                                             
    return 0;                                                         
  }                                                                   
                                                                      
  while (len--) {                                                     
    c = *buf++;                                                       
   44b0e:	1e1b           	moveb %a3@+,%d7                             
    /* FIXME: implement IXANY: any character restarts output */       
    /* if incoming XON/XOFF controls outgoing stream: */              
    if (tty->flow_ctrl & FL_MDXON) {                                  
   44b10:	0800 0009      	btst #9,%d0                                 
   44b14:	6740           	beqs 44b56 <rtems_termios_enqueue_raw_characters+0xce>
      /* if received char is V_STOP and V_START (both are equal value) */
      if (c == tty->termios.c_cc[VSTOP]) {                            
   44b16:	4283           	clrl %d3                                    
   44b18:	162a 004a      	moveb %a2@(74),%d3                          
   44b1c:	4281           	clrl %d1                                    
   44b1e:	122a 0049      	moveb %a2@(73),%d1                          
   44b22:	1007           	moveb %d7,%d0                               
   44b24:	49c0           	extbl %d0                                   
   44b26:	b680           	cmpl %d0,%d3                                
   44b28:	661e           	bnes 44b48 <rtems_termios_enqueue_raw_characters+0xc0>
        if (c == tty->termios.c_cc[VSTART]) {                         
   44b2a:	b280           	cmpl %d0,%d1                                
   44b2c:	660a           	bnes 44b38 <rtems_termios_enqueue_raw_characters+0xb0><== ALWAYS TAKEN
          /* received VSTOP and VSTART==VSTOP? */                     
          /* then toggle "stop output" status  */                     
          tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF;               
   44b2e:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44b32:	7210           	moveq #16,%d1                               <== NOT EXECUTED
   44b34:	b380           	eorl %d1,%d0                                <== NOT EXECUTED
   44b36:	6008           	bras 44b40 <rtems_termios_enqueue_raw_characters+0xb8><== NOT EXECUTED
        }                                                             
        else {                                                        
          /* VSTOP received (other code than VSTART) */               
          /* stop output                             */               
          tty->flow_ctrl |= FL_ORCVXOF;                               
   44b38:	202a 00b8      	movel %a2@(184),%d0                         
   44b3c:	7a10           	moveq #16,%d5                               
   44b3e:	8085           	orl %d5,%d0                                 
   44b40:	2540 00b8      	movel %d0,%a2@(184)                         
 *       device receive interrupt handler.                            
 * Returns the number of characters dropped because of overflow.      
 */                                                                   
int                                                                   
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) 
{                                                                     
   44b44:	7c01           	moveq #1,%d6                                
   44b46:	6012           	bras 44b5a <rtems_termios_enqueue_raw_characters+0xd2>
          /* stop output                             */               
          tty->flow_ctrl |= FL_ORCVXOF;                               
        }                                                             
        flow_rcv = true;                                              
      }                                                               
      else if (c == tty->termios.c_cc[VSTART]) {                      
   44b48:	b280           	cmpl %d0,%d1                                
   44b4a:	660a           	bnes 44b56 <rtems_termios_enqueue_raw_characters+0xce><== ALWAYS TAKEN
        /* VSTART received */                                         
        /* restart output  */                                         
        tty->flow_ctrl &= ~FL_ORCVXOF;                                
   44b4c:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44b50:	72ef           	moveq #-17,%d1                              <== NOT EXECUTED
   44b52:	c081           	andl %d1,%d0                                <== NOT EXECUTED
   44b54:	60ea           	bras 44b40 <rtems_termios_enqueue_raw_characters+0xb8><== NOT EXECUTED
        flow_rcv = true;                                              
      }                                                               
    }                                                                 
    if (flow_rcv) {                                                   
   44b56:	4a06           	tstb %d6                                    
   44b58:	6750           	beqs 44baa <rtems_termios_enqueue_raw_characters+0x122><== ALWAYS TAKEN
      /* restart output according to FL_ORCVXOF flag */               
      if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) {   
   44b5a:	202a 00b8      	movel %a2@(184),%d0                         
   44b5e:	7a30           	moveq #48,%d5                               
   44b60:	7220           	moveq #32,%d1                               
   44b62:	c085           	andl %d5,%d0                                
   44b64:	b280           	cmpl %d0,%d1                                
   44b66:	6600 0148      	bnew 44cb0 <rtems_termios_enqueue_raw_characters+0x228>
        /* disable interrupts    */                                   
        rtems_interrupt_disable(level);                               
   44b6a:	203c 0000 0700 	movel #1792,%d0                             <== NOT EXECUTED
   44b70:	40c3           	movew %sr,%d3                               <== NOT EXECUTED
   44b72:	8083           	orl %d3,%d0                                 <== NOT EXECUTED
   44b74:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
        tty->flow_ctrl &= ~FL_OSTOP;                                  
   44b76:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44b7a:	7adf           	moveq #-33,%d5                              <== NOT EXECUTED
   44b7c:	c085           	andl %d5,%d0                                <== NOT EXECUTED
   44b7e:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
        /* check for chars in output buffer (or rob_state?) */        
        if (tty->rawOutBufState != rob_idle) {                        
   44b82:	4aaa 0094      	tstl %a2@(148)                              <== NOT EXECUTED
   44b86:	671c           	beqs 44ba4 <rtems_termios_enqueue_raw_characters+0x11c><== NOT EXECUTED
          /* if chars available, call write function... */            
          (*tty->device.write)(                                       
            tty->minor, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1);
   44b88:	202a 0084      	movel %a2@(132),%d0                         <== NOT EXECUTED
        rtems_interrupt_disable(level);                               
        tty->flow_ctrl &= ~FL_OSTOP;                                  
        /* check for chars in output buffer (or rob_state?) */        
        if (tty->rawOutBufState != rob_idle) {                        
          /* if chars available, call write function... */            
          (*tty->device.write)(                                       
   44b8c:	4878 0001      	pea 1 <ADD>                                 <== NOT EXECUTED
   44b90:	d0aa 007c      	addl %a2@(124),%d0                          <== NOT EXECUTED
   44b94:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   44b96:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   44b9a:	206a 00a4      	moveal %a2@(164),%a0                        <== NOT EXECUTED
   44b9e:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   44ba0:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
            tty->minor, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1);
        }                                                             
        /* reenable interrupts */                                     
        rtems_interrupt_enable(level);                                
   44ba4:	46c3           	movew %d3,%sr                               <== NOT EXECUTED
   44ba6:	6000 0108      	braw 44cb0 <rtems_termios_enqueue_raw_characters+0x228><== NOT EXECUTED
      }                                                               
    } else {                                                          
      newTail = (tty->rawInBuf.Tail + 1) % tty->rawInBuf.Size;        
   44baa:	222a 0060      	movel %a2@(96),%d1                          
   44bae:	5281           	addql #1,%d1                                
   44bb0:	202a 0064      	movel %a2@(100),%d0                         
   44bb4:	4c40 1003      	remul %d0,%d3,%d1                           
      /* if chars_in_buffer > highwater                */             
      rtems_interrupt_disable(level);                                 
   44bb8:	203c 0000 0700 	movel #1792,%d0                             
   44bbe:	40c1           	movew %sr,%d1                               
   44bc0:	8081           	orl %d1,%d0                                 
   44bc2:	46c0           	movew %d0,%sr                               
   44bc4:	2d41 fffc      	movel %d1,%fp@(-4)                          
      if ((((newTail - tty->rawInBuf.Head + tty->rawInBuf.Size)       
   44bc8:	206a 005c      	moveal %a2@(92),%a0                         
   44bcc:	202a 0064      	movel %a2@(100),%d0                         
   44bd0:	9088           	subl %a0,%d0                                
   44bd2:	2240           	moveal %d0,%a1                              
   44bd4:	d3c3           	addal %d3,%a1                               
            % tty->rawInBuf.Size) > tty->highwater) &&                
   44bd6:	2009           	movel %a1,%d0                               
   44bd8:	2a2a 0064      	movel %a2@(100),%d5                         
   44bdc:	4c45 0001      	remul %d5,%d1,%d0                           
   44be0:	2d45 fff8      	movel %d5,%fp@(-8)                          
      }                                                               
    } else {                                                          
      newTail = (tty->rawInBuf.Tail + 1) % tty->rawInBuf.Size;        
      /* if chars_in_buffer > highwater                */             
      rtems_interrupt_disable(level);                                 
      if ((((newTail - tty->rawInBuf.Head + tty->rawInBuf.Size)       
   44be4:	b2aa 00c0      	cmpl %a2@(192),%d1                          
   44be8:	6300 008a      	blsw 44c74 <rtems_termios_enqueue_raw_characters+0x1ec>
            % tty->rawInBuf.Size) > tty->highwater) &&                
          !(tty->flow_ctrl & FL_IREQXOF)) {                           
   44bec:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
    } else {                                                          
      newTail = (tty->rawInBuf.Tail + 1) % tty->rawInBuf.Size;        
      /* if chars_in_buffer > highwater                */             
      rtems_interrupt_disable(level);                                 
      if ((((newTail - tty->rawInBuf.Head + tty->rawInBuf.Size)       
            % tty->rawInBuf.Size) > tty->highwater) &&                
   44bf0:	0800 0000      	btst #0,%d0                                 <== NOT EXECUTED
   44bf4:	667e           	bnes 44c74 <rtems_termios_enqueue_raw_characters+0x1ec><== NOT EXECUTED
          !(tty->flow_ctrl & FL_IREQXOF)) {                           
        /* incoming data stream should be stopped */                  
        tty->flow_ctrl |= FL_IREQXOF;                                 
   44bf6:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44bfa:	7a01           	moveq #1,%d5                                <== NOT EXECUTED
   44bfc:	8085           	orl %d5,%d0                                 <== NOT EXECUTED
   44bfe:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
        if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF))                
   44c02:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44c06:	0280 0000 0402 	andil #1026,%d0                             <== NOT EXECUTED
   44c0c:	0c80 0000 0400 	cmpil #1024,%d0                             <== NOT EXECUTED
   44c12:	6632           	bnes 44c46 <rtems_termios_enqueue_raw_characters+0x1be><== NOT EXECUTED
            ==                (FL_MDXOF             ) ) {             
          if ((tty->flow_ctrl & FL_OSTOP) ||                          
   44c14:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44c18:	0800 0005      	btst #5,%d0                                 <== NOT EXECUTED
   44c1c:	6606           	bnes 44c24 <rtems_termios_enqueue_raw_characters+0x19c><== NOT EXECUTED
   44c1e:	4aaa 0094      	tstl %a2@(148)                              <== NOT EXECUTED
   44c22:	6650           	bnes 44c74 <rtems_termios_enqueue_raw_characters+0x1ec><== NOT EXECUTED
              (tty->rawOutBufState == rob_idle)) {                    
            /* if tx is stopped due to XOFF or out of data */         
            /*    call write function here                 */         
            tty->flow_ctrl |= FL_ISNTXOF;                             
   44c24:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44c28:	7202           	moveq #2,%d1                                <== NOT EXECUTED
   44c2a:	8081           	orl %d1,%d0                                 <== NOT EXECUTED
   44c2c:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
            (*tty->device.write)(tty->minor,                          
   44c30:	4878 0001      	pea 1 <ADD>                                 <== NOT EXECUTED
   44c34:	2f0c           	movel %a4,%sp@-                             <== NOT EXECUTED
   44c36:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   44c3a:	206a 00a4      	moveal %a2@(164),%a0                        <== NOT EXECUTED
   44c3e:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   44c40:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   44c44:	602e           	bras 44c74 <rtems_termios_enqueue_raw_characters+0x1ec><== NOT EXECUTED
                (void *)&(tty->termios.c_cc[VSTOP]), 1);              
          }                                                           
        } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) == (FL_MDRTS) ) {
   44c46:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44c4a:	0280 0000 0104 	andil #260,%d0                              <== NOT EXECUTED
   44c50:	0c80 0000 0100 	cmpil #256,%d0                              <== NOT EXECUTED
   44c56:	661c           	bnes 44c74 <rtems_termios_enqueue_raw_characters+0x1ec><== NOT EXECUTED
          tty->flow_ctrl |= FL_IRTSOFF;                               
   44c58:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44c5c:	7a04           	moveq #4,%d5                                <== NOT EXECUTED
   44c5e:	8085           	orl %d5,%d0                                 <== NOT EXECUTED
          /* deactivate RTS line */                                   
          if (tty->device.stopRemoteTx != NULL) {                     
   44c60:	206a 00ac      	moveal %a2@(172),%a0                        <== NOT EXECUTED
            tty->flow_ctrl |= FL_ISNTXOF;                             
            (*tty->device.write)(tty->minor,                          
                (void *)&(tty->termios.c_cc[VSTOP]), 1);              
          }                                                           
        } else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF)) == (FL_MDRTS) ) {
          tty->flow_ctrl |= FL_IRTSOFF;                               
   44c64:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
          /* deactivate RTS line */                                   
          if (tty->device.stopRemoteTx != NULL) {                     
   44c68:	4a88           	tstl %a0                                    <== NOT EXECUTED
   44c6a:	6708           	beqs 44c74 <rtems_termios_enqueue_raw_characters+0x1ec><== NOT EXECUTED
            tty->device.stopRemoteTx(tty->minor);                     
   44c6c:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   44c70:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   44c72:	588f           	addql #4,%sp                                <== NOT EXECUTED
          }                                                           
        }                                                             
      }                                                               
                                                                      
      /* reenable interrupts */                                       
      rtems_interrupt_enable(level);                                  
   44c74:	202e fffc      	movel %fp@(-4),%d0                          
   44c78:	46c0           	movew %d0,%sr                               
                                                                      
      if (newTail == tty->rawInBuf.Head) {                            
   44c7a:	202a 005c      	movel %a2@(92),%d0                          
   44c7e:	b083           	cmpl %d3,%d0                                
   44c80:	6604           	bnes 44c86 <rtems_termios_enqueue_raw_characters+0x1fe><== ALWAYS TAKEN
        dropped++;                                                    
   44c82:	5282           	addql #1,%d2                                <== NOT EXECUTED
   44c84:	602a           	bras 44cb0 <rtems_termios_enqueue_raw_characters+0x228><== NOT EXECUTED
      } else {                                                        
        tty->rawInBuf.theBuf[newTail] = c;                            
   44c86:	206a 0058      	moveal %a2@(88),%a0                         
   44c8a:	1187 3800      	moveb %d7,%a0@(00000000,%d3:l)              
        tty->rawInBuf.Tail = newTail;                                 
   44c8e:	2543 0060      	movel %d3,%a2@(96)                          
                                                                      
        /*                                                            
         * check to see if rcv wakeup callback was set                
         */                                                           
        if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) {
   44c92:	4aaa 00e4      	tstl %a2@(228)                              
   44c96:	6618           	bnes 44cb0 <rtems_termios_enqueue_raw_characters+0x228><== NEVER TAKEN
   44c98:	206a 00dc      	moveal %a2@(220),%a0                        
   44c9c:	4a88           	tstl %a0                                    
   44c9e:	6710           	beqs 44cb0 <rtems_termios_enqueue_raw_characters+0x228><== ALWAYS TAKEN
          (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg); 
   44ca0:	2f2a 00e0      	movel %a2@(224),%sp@-                       <== NOT EXECUTED
   44ca4:	2f0d           	movel %a5,%sp@-                             <== NOT EXECUTED
   44ca6:	4e90           	jsr %a0@                                    <== NOT EXECUTED
          tty->tty_rcvwakeup = 1;                                     
   44ca8:	508f           	addql #8,%sp                                <== NOT EXECUTED
   44caa:	7201           	moveq #1,%d1                                <== NOT EXECUTED
   44cac:	2541 00e4      	movel %d1,%a2@(228)                         <== NOT EXECUTED
   44cb0:	5384           	subql #1,%d4                                
      tty->tty_rcvwakeup = 1;                                         
        }                                                             
    return 0;                                                         
  }                                                                   
                                                                      
  while (len--) {                                                     
   44cb2:	4a84           	tstl %d4                                    
   44cb4:	6600 fe54      	bnew 44b0a <rtems_termios_enqueue_raw_characters+0x82>
        }                                                             
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  tty->rawInBufDropped += dropped;                                    
   44cb8:	d5aa 0078      	addl %d2,%a2@(120)                          
  rtems_semaphore_release (tty->rawInBuf.Semaphore);                  
   44cbc:	2f2a 0068      	movel %a2@(104),%sp@-                       
   44cc0:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
  return dropped;                                                     
   44cc6:	588f           	addql #4,%sp                                
   44cc8:	6002           	bras 44ccc <rtems_termios_enqueue_raw_characters+0x244>
     */                                                               
    if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) { 
      (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg);     
      tty->tty_rcvwakeup = 1;                                         
        }                                                             
    return 0;                                                         
   44cca:	4282           	clrl %d2                                    
  }                                                                   
                                                                      
  tty->rawInBufDropped += dropped;                                    
  rtems_semaphore_release (tty->rawInBuf.Semaphore);                  
  return dropped;                                                     
}                                                                     
   44ccc:	2002           	movel %d2,%d0                               
   44cce:	4cee 3cfc ffd0 	moveml %fp@(-48),%d2-%d7/%a2-%a5            
   44cd4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043da0 <rtems_termios_ioctl>: } } rtems_status_code rtems_termios_ioctl (void *arg) {
   43da0:	4e56 ffec      	linkw %fp,#-20                              
   43da4:	48d7 1c0c      	moveml %d2-%d3/%a2-%a4,%sp@                 
   43da8:	266e 0008      	moveal %fp@(8),%a3                          
  rtems_libio_ioctl_args_t *args = arg;                               
  struct rtems_termios_tty *tty = args->iop->data1;                   
   43dac:	2053           	moveal %a3@,%a0                             
   43dae:	2468 0034      	moveal %a0@(52),%a2                         
  struct ttywakeup         *wakeup = (struct ttywakeup *)args->buffer;
   43db2:	286b 0008      	moveal %a3@(8),%a4                          
  rtems_status_code sc;                                               
                                                                      
   args->ioctl_return = 0;                                            
   43db6:	42ab 000c      	clrl %a3@(12)                               
  sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   43dba:	42a7           	clrl %sp@-                                  
   43dbc:	42a7           	clrl %sp@-                                  
   43dbe:	2f2a 0018      	movel %a2@(24),%sp@-                        
   43dc2:	4eb9 0004 5854 	jsr 45854 <rtems_semaphore_obtain>          
  if (sc != RTEMS_SUCCESSFUL) {                                       
   43dc8:	4fef 000c      	lea %sp@(12),%sp                            
  struct rtems_termios_tty *tty = args->iop->data1;                   
  struct ttywakeup         *wakeup = (struct ttywakeup *)args->buffer;
  rtems_status_code sc;                                               
                                                                      
   args->ioctl_return = 0;                                            
  sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   43dcc:	2400           	movel %d0,%d2                               
  if (sc != RTEMS_SUCCESSFUL) {                                       
   43dce:	6708           	beqs 43dd8 <rtems_termios_ioctl+0x38>       <== ALWAYS TAKEN
    args->ioctl_return = sc;                                          
   43dd0:	2740 000c      	movel %d0,%a3@(12)                          <== NOT EXECUTED
    return sc;                                                        
   43dd4:	6000 02d0      	braw 440a6 <rtems_termios_ioctl+0x306>      <== NOT EXECUTED
  }                                                                   
  switch (args->command) {                                            
   43dd8:	202b 0004      	movel %a3@(4),%d0                           
   43ddc:	7204           	moveq #4,%d1                                
   43dde:	b280           	cmpl %d0,%d1                                
   43de0:	6700 0230      	beqw 44012 <rtems_termios_ioctl+0x272>      
   43de4:	6514           	bcss 43dfa <rtems_termios_ioctl+0x5a>       
   43de6:	7602           	moveq #2,%d3                                
   43de8:	b680           	cmpl %d0,%d3                                
   43dea:	6774           	beqs 43e60 <rtems_termios_ioctl+0xc0>       
   43dec:	6500 020a      	bcsw 43ff8 <rtems_termios_ioctl+0x258>      
   43df0:	123c 0001      	moveb #1,%d1                                
   43df4:	b280           	cmpl %d0,%d1                                
   43df6:	662c           	bnes 43e24 <rtems_termios_ioctl+0x84>       <== NEVER TAKEN
   43df8:	604c           	bras 43e46 <rtems_termios_ioctl+0xa6>       
   43dfa:	0c80 4004 667f 	cmpil #1074030207,%d0                       
   43e00:	6700 026e      	beqw 44070 <rtems_termios_ioctl+0x2d0>      
   43e04:	620a           	bhis 43e10 <rtems_termios_ioctl+0x70>       
   43e06:	7605           	moveq #5,%d3                                
   43e08:	b680           	cmpl %d0,%d3                                
   43e0a:	6618           	bnes 43e24 <rtems_termios_ioctl+0x84>       
   43e0c:	6000 01f2      	braw 44000 <rtems_termios_ioctl+0x260>      
   43e10:	0c80 4004 741a 	cmpil #1074033690,%d0                       
   43e16:	6700 024e      	beqw 44066 <rtems_termios_ioctl+0x2c6>      
   43e1a:	0c80 8004 741b 	cmpil #-2147191781,%d0                      
   43e20:	6700 0200      	beqw 44022 <rtems_termios_ioctl+0x282>      
  default:                                                            
    if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) {          
   43e24:	202a 00cc      	movel %a2@(204),%d0                         
   43e28:	eb88           	lsll #5,%d0                                 
   43e2a:	0680 0005 e094 	addil #385172,%d0                           
   43e30:	2240           	moveal %d0,%a1                              
   43e32:	2051           	moveal %a1@,%a0                             
   43e34:	4a88           	tstl %a0                                    
   43e36:	6700 025c      	beqw 44094 <rtems_termios_ioctl+0x2f4>      
      sc = rtems_termios_linesw[tty->t_line].l_ioctl(tty,args);       
   43e3a:	2f0b           	movel %a3,%sp@-                             
   43e3c:	2f0a           	movel %a2,%sp@-                             
   43e3e:	4e90           	jsr %a0@                                    
   43e40:	2400           	movel %d0,%d2                               
   43e42:	6000 01ae      	braw 43ff2 <rtems_termios_ioctl+0x252>      
      sc = RTEMS_INVALID_NUMBER;                                      
    }                                                                 
    break;                                                            
                                                                      
  case RTEMS_IO_GET_ATTRIBUTES:                                       
    *(struct termios *)args->buffer = tty->termios;                   
   43e46:	4878 0024      	pea 24 <OPER2+0x10>                         
   43e4a:	486a 0030      	pea %a2@(48)                                
   43e4e:	2f2b 0008      	movel %a3@(8),%sp@-                         
   43e52:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
    break;                                                            
   43e58:	4fef 000c      	lea %sp@(12),%sp                            
   43e5c:	6000 0238      	braw 44096 <rtems_termios_ioctl+0x2f6>      
                                                                      
  case RTEMS_IO_SET_ATTRIBUTES:                                       
    tty->termios = *(struct termios *)args->buffer;                   
   43e60:	4878 0024      	pea 24 <OPER2+0x10>                         
   43e64:	2f2b 0008      	movel %a3@(8),%sp@-                         
   43e68:	486a 0030      	pea %a2@(48)                                
   43e6c:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
  /*                                                                  
   * check for flow control options to be switched off                
   */                                                                 
                                                                      
  /* check for outgoing XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXON) &&                                 
   43e72:	202a 00b8      	movel %a2@(184),%d0                         
   43e76:	4fef 000c      	lea %sp@(12),%sp                            
   43e7a:	0800 0009      	btst #9,%d0                                 
   43e7e:	6760           	beqs 43ee0 <rtems_termios_ioctl+0x140>      
      !(tty->termios.c_iflag & IXON)) {                               
   43e80:	202a 0030      	movel %a2@(48),%d0                          
   43e84:	0280 0000 0400 	andil #1024,%d0                             
  /*                                                                  
   * check for flow control options to be switched off                
   */                                                                 
                                                                      
  /* check for outgoing XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXON) &&                                 
   43e8a:	6654           	bnes 43ee0 <rtems_termios_ioctl+0x140>      
      !(tty->termios.c_iflag & IXON)) {                               
    /* clear related flags in flow_ctrl */                            
    tty->flow_ctrl &= ~(FL_MDXON | FL_ORCVXOF);                       
   43e8c:	202a 00b8      	movel %a2@(184),%d0                         
   43e90:	0280 ffff fdef 	andil #-529,%d0                             
   43e96:	2540 00b8      	movel %d0,%a2@(184)                         
                                                                      
    /* has output been stopped due to received XOFF? */               
    if (tty->flow_ctrl & FL_OSTOP) {                                  
   43e9a:	202a 00b8      	movel %a2@(184),%d0                         
   43e9e:	0800 0005      	btst #5,%d0                                 
   43ea2:	673c           	beqs 43ee0 <rtems_termios_ioctl+0x140>      <== ALWAYS TAKEN
      /* disable interrupts    */                                     
      rtems_interrupt_disable(level);                                 
   43ea4:	203c 0000 0700 	movel #1792,%d0                             <== NOT EXECUTED
   43eaa:	40c3           	movew %sr,%d3                               <== NOT EXECUTED
   43eac:	8083           	orl %d3,%d0                                 <== NOT EXECUTED
   43eae:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
      tty->flow_ctrl &= ~FL_OSTOP;                                    
   43eb0:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   43eb4:	72df           	moveq #-33,%d1                              <== NOT EXECUTED
   43eb6:	c081           	andl %d1,%d0                                <== NOT EXECUTED
   43eb8:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
      /* check for chars in output buffer (or rob_state?) */          
      if (tty->rawOutBufState != rob_idle) {                          
   43ebc:	4aaa 0094      	tstl %a2@(148)                              <== NOT EXECUTED
   43ec0:	671c           	beqs 43ede <rtems_termios_ioctl+0x13e>      <== NOT EXECUTED
        /* if chars available, call write function... */              
        (*tty->device.write)(                                         
          tty->minor, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); 
   43ec2:	202a 0084      	movel %a2@(132),%d0                         <== NOT EXECUTED
      rtems_interrupt_disable(level);                                 
      tty->flow_ctrl &= ~FL_OSTOP;                                    
      /* check for chars in output buffer (or rob_state?) */          
      if (tty->rawOutBufState != rob_idle) {                          
        /* if chars available, call write function... */              
        (*tty->device.write)(                                         
   43ec6:	4878 0001      	pea 1 <ADD>                                 <== NOT EXECUTED
   43eca:	d0aa 007c      	addl %a2@(124),%d0                          <== NOT EXECUTED
   43ece:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   43ed0:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   43ed4:	206a 00a4      	moveal %a2@(164),%a0                        <== NOT EXECUTED
   43ed8:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   43eda:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
          tty->minor, &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1); 
      }                                                               
      /* reenable interrupts */                                       
      rtems_interrupt_enable(level);                                  
   43ede:	46c3           	movew %d3,%sr                               <== NOT EXECUTED
    }                                                                 
  }                                                                   
  /* check for incoming XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXOF) && !(tty->termios.c_iflag & IXOFF)) {
   43ee0:	202a 00b8      	movel %a2@(184),%d0                         
   43ee4:	0800 000a      	btst #10,%d0                                
   43ee8:	6724           	beqs 43f0e <rtems_termios_ioctl+0x16e>      
   43eea:	202a 0030      	movel %a2@(48),%d0                          
   43eee:	0280 0000 1000 	andil #4096,%d0                             
   43ef4:	6618           	bnes 43f0e <rtems_termios_ioctl+0x16e>      <== NEVER TAKEN
    /* clear related flags in flow_ctrl */                            
    tty->flow_ctrl &= ~(FL_MDXOF);                                    
   43ef6:	202a 00b8      	movel %a2@(184),%d0                         
    /* FIXME: what happens, if we had sent XOFF but not yet XON? */   
    tty->flow_ctrl &= ~(FL_ISNTXOF);                                  
   43efa:	76fd           	moveq #-3,%d3                               
    }                                                                 
  }                                                                   
  /* check for incoming XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXOF) && !(tty->termios.c_iflag & IXOFF)) {
    /* clear related flags in flow_ctrl */                            
    tty->flow_ctrl &= ~(FL_MDXOF);                                    
   43efc:	0880 000a      	bclr #10,%d0                                
   43f00:	2540 00b8      	movel %d0,%a2@(184)                         
    /* FIXME: what happens, if we had sent XOFF but not yet XON? */   
    tty->flow_ctrl &= ~(FL_ISNTXOF);                                  
   43f04:	202a 00b8      	movel %a2@(184),%d0                         
   43f08:	c083           	andl %d3,%d0                                
   43f0a:	2540 00b8      	movel %d0,%a2@(184)                         
  }                                                                   
                                                                      
  /* check for incoming RTS/CTS flow control switched off */          
  if (( tty->flow_ctrl & FL_MDRTS) && !(tty->termios.c_cflag & CRTSCTS)) {
   43f0e:	202a 00b8      	movel %a2@(184),%d0                         
   43f12:	0800 0008      	btst #8,%d0                                 
   43f16:	6736           	beqs 43f4e <rtems_termios_ioctl+0x1ae>      <== ALWAYS TAKEN
   43f18:	4aaa 0038      	tstl %a2@(56)                               <== NOT EXECUTED
   43f1c:	6d30           	blts 43f4e <rtems_termios_ioctl+0x1ae>      <== NOT EXECUTED
    /* clear related flags in flow_ctrl */                            
    tty->flow_ctrl &= ~(FL_MDRTS);                                    
   43f1e:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   43f22:	0880 0008      	bclr #8,%d0                                 <== NOT EXECUTED
   43f26:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
                                                                      
    /* restart remote Tx, if it was stopped */                        
    if ((tty->flow_ctrl & FL_IRTSOFF) && (tty->device.startRemoteTx != NULL)) {
   43f2a:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   43f2e:	44c0           	movew %d0,%ccr                              <== NOT EXECUTED
   43f30:	6610           	bnes 43f42 <rtems_termios_ioctl+0x1a2>      <== NOT EXECUTED
   43f32:	206a 00b0      	moveal %a2@(176),%a0                        <== NOT EXECUTED
   43f36:	4a88           	tstl %a0                                    <== NOT EXECUTED
   43f38:	6708           	beqs 43f42 <rtems_termios_ioctl+0x1a2>      <== NOT EXECUTED
      tty->device.startRemoteTx(tty->minor);                          
   43f3a:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   43f3e:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   43f40:	588f           	addql #4,%sp                                <== NOT EXECUTED
    }                                                                 
    tty->flow_ctrl &= ~(FL_IRTSOFF);                                  
   43f42:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   43f46:	72fb           	moveq #-5,%d1                               <== NOT EXECUTED
   43f48:	c081           	andl %d1,%d0                                <== NOT EXECUTED
   43f4a:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
                                                                      
  /*                                                                  
   * check for flow control options to be switched on                 
   */                                                                 
  /* check for incoming RTS/CTS flow control switched on */           
  if (tty->termios.c_cflag & CRTSCTS) {                               
   43f4e:	4aaa 0038      	tstl %a2@(56)                               
   43f52:	6c0c           	bges 43f60 <rtems_termios_ioctl+0x1c0>      <== ALWAYS TAKEN
    tty->flow_ctrl |= FL_MDRTS;                                       
   43f54:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   43f58:	08c0 0008      	bset #8,%d0                                 <== NOT EXECUTED
   43f5c:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
  }                                                                   
  /* check for incoming XON/XOF flow control switched on */           
  if (tty->termios.c_iflag & IXOFF) {                                 
   43f60:	222a 0030      	movel %a2@(48),%d1                          
   43f64:	0801 000c      	btst #12,%d1                                
   43f68:	670c           	beqs 43f76 <rtems_termios_ioctl+0x1d6>      
    tty->flow_ctrl |= FL_MDXOF;                                       
   43f6a:	202a 00b8      	movel %a2@(184),%d0                         
   43f6e:	08c0 000a      	bset #10,%d0                                
   43f72:	2540 00b8      	movel %d0,%a2@(184)                         
  }                                                                   
  /* check for outgoing XON/XOF flow control switched on */           
  if (tty->termios.c_iflag & IXON) {                                  
   43f76:	0801 000a      	btst #10,%d1                                
   43f7a:	670c           	beqs 43f88 <rtems_termios_ioctl+0x1e8>      
    tty->flow_ctrl |= FL_MDXON;                                       
   43f7c:	202a 00b8      	movel %a2@(184),%d0                         
   43f80:	08c0 0009      	bset #9,%d0                                 
   43f84:	2540 00b8      	movel %d0,%a2@(184)                         
    tty->termios = *(struct termios *)args->buffer;                   
                                                                      
    /* check for and process change in flow control options */        
    termios_set_flowctrl(tty);                                        
                                                                      
    if (tty->termios.c_lflag & ICANON) {                              
   43f88:	7002           	moveq #2,%d0                                
   43f8a:	c0aa 003c      	andl %a2@(60),%d0                           
   43f8e:	663a           	bnes 43fca <rtems_termios_ioctl+0x22a>      
      tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                     
      tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;               
      tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;          
    } else {                                                          
      tty->vtimeTicks = tty->termios.c_cc[VTIME] *                    
   43f90:	4283           	clrl %d3                                    
   43f92:	162a 0046      	moveb %a2@(70),%d3                          
                    rtems_clock_get_ticks_per_second() / 10;          
   43f96:	4eb9 0004 5220 	jsr 45220 <rtems_clock_get_ticks_per_second>
    if (tty->termios.c_lflag & ICANON) {                              
      tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                     
      tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;               
      tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;          
    } else {                                                          
      tty->vtimeTicks = tty->termios.c_cc[VTIME] *                    
   43f9c:	4c03 0800      	mulsl %d3,%d0                               
                    rtems_clock_get_ticks_per_second() / 10;          
   43fa0:	760a           	moveq #10,%d3                               
   43fa2:	4c43 0000      	remul %d3,%d0,%d0                           
    if (tty->termios.c_lflag & ICANON) {                              
      tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                     
      tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;               
      tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;          
    } else {                                                          
      tty->vtimeTicks = tty->termios.c_cc[VTIME] *                    
   43fa6:	2540 0054      	movel %d0,%a2@(84)                          
                    rtems_clock_get_ticks_per_second() / 10;          
      if (tty->termios.c_cc[VTIME]) {                                 
   43faa:	4a2a 0046      	tstb %a2@(70)                               
   43fae:	6714           	beqs 43fc4 <rtems_termios_ioctl+0x224>      
        tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                   
   43fb0:	42aa 006c      	clrl %a2@(108)                              
        tty->rawInBufSemaphoreTimeout = tty->vtimeTicks;              
   43fb4:	2540 0070      	movel %d0,%a2@(112)                         
        if (tty->termios.c_cc[VMIN])                                  
   43fb8:	4a2a 0047      	tstb %a2@(71)                               
   43fbc:	6614           	bnes 43fd2 <rtems_termios_ioctl+0x232>      
          tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;      
        else                                                          
          tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks;       
   43fbe:	2540 0074      	movel %d0,%a2@(116)                         
   43fc2:	601a           	bras 43fde <rtems_termios_ioctl+0x23e>      
      } else {                                                        
        if (tty->termios.c_cc[VMIN]) {                                
   43fc4:	4a2a 0047      	tstb %a2@(71)                               
   43fc8:	670e           	beqs 43fd8 <rtems_termios_ioctl+0x238>      <== ALWAYS TAKEN
          tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                 
   43fca:	42aa 006c      	clrl %a2@(108)                              
          tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;           
   43fce:	42aa 0070      	clrl %a2@(112)                              
          tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;      
   43fd2:	42aa 0074      	clrl %a2@(116)                              
   43fd6:	6006           	bras 43fde <rtems_termios_ioctl+0x23e>      
        } else {                                                      
          tty->rawInBufSemaphoreOptions = RTEMS_NO_WAIT;              
   43fd8:	7001           	moveq #1,%d0                                
   43fda:	2540 006c      	movel %d0,%a2@(108)                         
        }                                                             
      }                                                               
    }                                                                 
    if (tty->device.setAttributes)                                    
   43fde:	206a 00a8      	moveal %a2@(168),%a0                        
   43fe2:	4a88           	tstl %a0                                    
   43fe4:	6700 00b0      	beqw 44096 <rtems_termios_ioctl+0x2f6>      
      (*tty->device.setAttributes)(tty->minor, &tty->termios);        
   43fe8:	486a 0030      	pea %a2@(48)                                
   43fec:	2f2a 0010      	movel %a2@(16),%sp@-                        
   43ff0:	4e90           	jsr %a0@                                    
   43ff2:	508f           	addql #8,%sp                                
   43ff4:	6000 00a0      	braw 44096 <rtems_termios_ioctl+0x2f6>      
    break;                                                            
                                                                      
  case RTEMS_IO_TCDRAIN:                                              
    drainOutput (tty);                                                
   43ff8:	2f0a           	movel %a2,%sp@-                             
   43ffa:	4eba f7c4      	jsr %pc@(437c0 <drainOutput>)               
   43ffe:	6062           	bras 44062 <rtems_termios_ioctl+0x2c2>      
    break;                                                            
                                                                      
  case RTEMS_IO_SNDWAKEUP:                                            
    tty->tty_snd = *wakeup;                                           
   44000:	2014           	movel %a4@,%d0                              
   44002:	222c 0004      	movel %a4@(4),%d1                           
   44006:	2540 00d4      	movel %d0,%a2@(212)                         
   4400a:	2541 00d8      	movel %d1,%a2@(216)                         
    break;                                                            
   4400e:	6000 0086      	braw 44096 <rtems_termios_ioctl+0x2f6>      
                                                                      
  case RTEMS_IO_RCVWAKEUP:                                            
    tty->tty_rcv = *wakeup;                                           
   44012:	2014           	movel %a4@,%d0                              
   44014:	222c 0004      	movel %a4@(4),%d1                           
   44018:	2540 00dc      	movel %d0,%a2@(220)                         
   4401c:	2541 00e0      	movel %d1,%a2@(224)                         
    break;                                                            
   44020:	6074           	bras 44096 <rtems_termios_ioctl+0x2f6>      
#if 1 /* FIXME */                                                     
  case TIOCSETD:                                                      
    /*                                                                
     * close old line discipline                                      
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_close != NULL) {          
   44022:	202a 00cc      	movel %a2@(204),%d0                         
   44026:	eb88           	lsll #5,%d0                                 
   44028:	0680 0005 e080 	addil #385152,%d0                           
   4402e:	2240           	moveal %d0,%a1                              
   44030:	2051           	moveal %a1@,%a0                             
   44032:	4a88           	tstl %a0                                    
   44034:	6708           	beqs 4403e <rtems_termios_ioctl+0x29e>      
      sc = rtems_termios_linesw[tty->t_line].l_close(tty);            
   44036:	2f0a           	movel %a2,%sp@-                             
   44038:	4e90           	jsr %a0@                                    
   4403a:	588f           	addql #4,%sp                                
   4403c:	2400           	movel %d0,%d2                               
    }                                                                 
    tty->t_line=*(int*)(args->buffer);                                
   4403e:	206b 0008      	moveal %a3@(8),%a0                          
   44042:	2010           	movel %a0@,%d0                              
    tty->t_sc = NULL; /* ensure that no more valid data */            
    /*                                                                
     * open new line discipline                                       
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_open != NULL) {           
   44044:	41f9 0005 e07c 	lea 5e07c <rtems_termios_linesw>,%a0        
     * close old line discipline                                      
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_close != NULL) {          
      sc = rtems_termios_linesw[tty->t_line].l_close(tty);            
    }                                                                 
    tty->t_line=*(int*)(args->buffer);                                
   4404a:	2540 00cc      	movel %d0,%a2@(204)                         
    tty->t_sc = NULL; /* ensure that no more valid data */            
    /*                                                                
     * open new line discipline                                       
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_open != NULL) {           
   4404e:	eb88           	lsll #5,%d0                                 
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_close != NULL) {          
      sc = rtems_termios_linesw[tty->t_line].l_close(tty);            
    }                                                                 
    tty->t_line=*(int*)(args->buffer);                                
    tty->t_sc = NULL; /* ensure that no more valid data */            
   44050:	42aa 00d0      	clrl %a2@(208)                              
    /*                                                                
     * open new line discipline                                       
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_open != NULL) {           
   44054:	2070 0800      	moveal %a0@(00000000,%d0:l),%a0             
   44058:	4a88           	tstl %a0                                    
   4405a:	673a           	beqs 44096 <rtems_termios_ioctl+0x2f6>      
      sc = rtems_termios_linesw[tty->t_line].l_open(tty);             
   4405c:	2f0a           	movel %a2,%sp@-                             
   4405e:	4e90           	jsr %a0@                                    
   44060:	2400           	movel %d0,%d2                               
   44062:	588f           	addql #4,%sp                                
   44064:	6030           	bras 44096 <rtems_termios_ioctl+0x2f6>      
    }                                                                 
    break;                                                            
  case TIOCGETD:                                                      
    *(int*)(args->buffer)=tty->t_line;                                
   44066:	206b 0008      	moveal %a3@(8),%a0                          
   4406a:	20aa 00cc      	movel %a2@(204),%a0@                        
    break;                                                            
   4406e:	6026           	bras 44096 <rtems_termios_ioctl+0x2f6>      
#endif                                                                
   case FIONREAD: {                                                   
      int rawnc = tty->rawInBuf.Tail - tty->rawInBuf.Head;            
   44070:	202a 0060      	movel %a2@(96),%d0                          <== NOT EXECUTED
   44074:	222a 005c      	movel %a2@(92),%d1                          <== NOT EXECUTED
   44078:	9081           	subl %d1,%d0                                <== NOT EXECUTED
      if ( rawnc < 0 )                                                
   4407a:	6a06           	bpls 44082 <rtems_termios_ioctl+0x2e2>      <== NOT EXECUTED
        rawnc += tty->rawInBuf.Size;                                  
   4407c:	222a 0064      	movel %a2@(100),%d1                         <== NOT EXECUTED
   44080:	d081           	addl %d1,%d0                                <== NOT EXECUTED
      /* Half guess that this is the right operation */               
      *(int *)args->buffer = tty->ccount - tty->cindex + rawnc;       
   44082:	222a 0020      	movel %a2@(32),%d1                          <== NOT EXECUTED
   44086:	92aa 0024      	subl %a2@(36),%d1                           <== NOT EXECUTED
   4408a:	d280           	addl %d0,%d1                                <== NOT EXECUTED
   4408c:	206b 0008      	moveal %a3@(8),%a0                          <== NOT EXECUTED
   44090:	2081           	movel %d1,%a0@                              <== NOT EXECUTED
    }                                                                 
    break;                                                            
   44092:	6002           	bras 44096 <rtems_termios_ioctl+0x2f6>      <== NOT EXECUTED
  default:                                                            
    if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) {          
      sc = rtems_termios_linesw[tty->t_line].l_ioctl(tty,args);       
    }                                                                 
    else {                                                            
      sc = RTEMS_INVALID_NUMBER;                                      
   44094:	740a           	moveq #10,%d2                               <== NOT EXECUTED
      *(int *)args->buffer = tty->ccount - tty->cindex + rawnc;       
    }                                                                 
    break;                                                            
  }                                                                   
                                                                      
  rtems_semaphore_release (tty->osem);                                
   44096:	2f2a 0018      	movel %a2@(24),%sp@-                        
   4409a:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
  args->ioctl_return = sc;                                            
  return sc;                                                          
   440a0:	588f           	addql #4,%sp                                
    }                                                                 
    break;                                                            
  }                                                                   
                                                                      
  rtems_semaphore_release (tty->osem);                                
  args->ioctl_return = sc;                                            
   440a2:	2742 000c      	movel %d2,%a3@(12)                          
  return sc;                                                          
}                                                                     
   440a6:	2002           	movel %d2,%d0                               
   440a8:	4cee 1c0c ffec 	moveml %fp@(-20),%d2-%d3/%a2-%a4            
   440ae:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004382a <rtems_termios_open>: rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) {
   4382a:	4e56 ffd8      	linkw %fp,#-40                              
   4382e:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
  struct rtems_termios_tty *tty;                                      
                                                                      
  /*                                                                  
   * See if the device has already been opened                        
   */                                                                 
  sc = rtems_semaphore_obtain(                                        
   43832:	42a7           	clrl %sp@-                                  
  rtems_device_major_number      major,                               
  rtems_device_minor_number      minor,                               
  void                          *arg,                                 
  const rtems_termios_callbacks *callbacks                            
)                                                                     
{                                                                     
   43834:	282e 0008      	movel %fp@(8),%d4                           
  struct rtems_termios_tty *tty;                                      
                                                                      
  /*                                                                  
   * See if the device has already been opened                        
   */                                                                 
  sc = rtems_semaphore_obtain(                                        
   43838:	42a7           	clrl %sp@-                                  
   4383a:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  
  rtems_device_major_number      major,                               
  rtems_device_minor_number      minor,                               
  void                          *arg,                                 
  const rtems_termios_callbacks *callbacks                            
)                                                                     
{                                                                     
   43840:	2a2e 000c      	movel %fp@(12),%d5                          
   43844:	2e2e 0010      	movel %fp@(16),%d7                          
  struct rtems_termios_tty *tty;                                      
                                                                      
  /*                                                                  
   * See if the device has already been opened                        
   */                                                                 
  sc = rtems_semaphore_obtain(                                        
   43848:	4eb9 0004 5854 	jsr 45854 <rtems_semaphore_obtain>          
    rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);            
  if (sc != RTEMS_SUCCESSFUL)                                         
   4384e:	4fef 000c      	lea %sp@(12),%sp                            
  struct rtems_termios_tty *tty;                                      
                                                                      
  /*                                                                  
   * See if the device has already been opened                        
   */                                                                 
  sc = rtems_semaphore_obtain(                                        
   43852:	2400           	movel %d0,%d2                               
    rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);            
  if (sc != RTEMS_SUCCESSFUL)                                         
   43854:	6600 038c      	bnew 43be2 <rtems_termios_open+0x3b8>       
    return sc;                                                        
                                                                      
  for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) { 
   43858:	2879 0005 e8c0 	moveal 5e8c0 <rtems_termios_ttyHead>,%a4    
   4385e:	264c           	moveal %a4,%a3                              
   43860:	6010           	bras 43872 <rtems_termios_open+0x48>        
    if ((tty->major == major) && (tty->minor == minor))               
   43862:	b8ab 000c      	cmpl %a3@(12),%d4                           
   43866:	6608           	bnes 43870 <rtems_termios_open+0x46>        
   43868:	baab 0010      	cmpl %a3@(16),%d5                           
   4386c:	6700 02fc      	beqw 43b6a <rtems_termios_open+0x340>       
  sc = rtems_semaphore_obtain(                                        
    rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);            
  if (sc != RTEMS_SUCCESSFUL)                                         
    return sc;                                                        
                                                                      
  for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) { 
   43870:	2653           	moveal %a3@,%a3                             
   43872:	4a8b           	tstl %a3                                    
   43874:	66ec           	bnes 43862 <rtems_termios_open+0x38>        
   43876:	6000 0376      	braw 43bee <rtems_termios_open+0x3c4>       
    /*                                                                
     * Create a new device                                            
     */                                                               
    tty = calloc (1, sizeof (struct rtems_termios_tty));              
    if (tty == NULL) {                                                
      rtems_semaphore_release (rtems_termios_ttyMutex);               
   4387a:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  
   43880:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
      return RTEMS_NO_MEMORY;                                         
   43886:	588f           	addql #4,%sp                                
   43888:	6038           	bras 438c2 <rtems_termios_open+0x98>        
    }                                                                 
    /*                                                                
     * allocate raw input buffer                                      
     */                                                               
    tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE;                       
   4388a:	41f9 0005 d238 	lea 5d238 <rtems_termios_raw_input_size>,%a0
    tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size);               
   43890:	4bf9 0004 2cd4 	lea 42cd4 <malloc>,%a5                      
      return RTEMS_NO_MEMORY;                                         
    }                                                                 
    /*                                                                
     * allocate raw input buffer                                      
     */                                                               
    tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE;                       
   43896:	2750 0064      	movel %a0@,%a3@(100)                        
    tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size);               
   4389a:	202b 0064      	movel %a3@(100),%d0                         
   4389e:	2f00           	movel %d0,%sp@-                             
   438a0:	4e95           	jsr %a5@                                    
    if (tty->rawInBuf.theBuf == NULL) {                               
   438a2:	588f           	addql #4,%sp                                
    }                                                                 
    /*                                                                
     * allocate raw input buffer                                      
     */                                                               
    tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE;                       
    tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size);               
   438a4:	2600           	movel %d0,%d3                               
   438a6:	2740 0058      	movel %d0,%a3@(88)                          
    if (tty->rawInBuf.theBuf == NULL) {                               
   438aa:	661c           	bnes 438c8 <rtems_termios_open+0x9e>        
            free(tty);                                                
   438ac:	2f0b           	movel %a3,%sp@-                             
   438ae:	4eb9 0004 29ec 	jsr 429ec <free>                            
      rtems_semaphore_release (rtems_termios_ttyMutex);               
   438b4:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  
   438ba:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
      return RTEMS_NO_MEMORY;                                         
   438c0:	508f           	addql #8,%sp                                
   438c2:	741a           	moveq #26,%d2                               
   438c4:	6000 031c      	braw 43be2 <rtems_termios_open+0x3b8>       
    }                                                                 
    /*                                                                
     * allocate raw output buffer                                     
     */                                                               
    tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE;                     
   438c8:	43f9 0005 d23c 	lea 5d23c <rtems_termios_raw_output_size>,%a1
   438ce:	2751 0088      	movel %a1@,%a3@(136)                        
    tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size);             
   438d2:	202b 0088      	movel %a3@(136),%d0                         
   438d6:	2f00           	movel %d0,%sp@-                             
   438d8:	4e95           	jsr %a5@                                    
    if (tty->rawOutBuf.theBuf == NULL) {                              
   438da:	588f           	addql #4,%sp                                
    }                                                                 
    /*                                                                
     * allocate raw output buffer                                     
     */                                                               
    tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE;                     
    tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size);             
   438dc:	2c00           	movel %d0,%d6                               
   438de:	2740 007c      	movel %d0,%a3@(124)                         
    if (tty->rawOutBuf.theBuf == NULL) {                              
   438e2:	6620           	bnes 43904 <rtems_termios_open+0xda>        <== ALWAYS TAKEN
            free((void *)(tty->rawInBuf.theBuf));                     
   438e4:	2f03           	movel %d3,%sp@-                             <== NOT EXECUTED
   438e6:	45f9 0004 29ec 	lea 429ec <free>,%a2                        <== NOT EXECUTED
   438ec:	4e92           	jsr %a2@                                    <== NOT EXECUTED
            free(tty);                                                
   438ee:	2f0b           	movel %a3,%sp@-                             <== NOT EXECUTED
   438f0:	4e92           	jsr %a2@                                    <== NOT EXECUTED
      rtems_semaphore_release (rtems_termios_ttyMutex);               
   438f2:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  <== NOT EXECUTED
   438f8:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         <== NOT EXECUTED
      return RTEMS_NO_MEMORY;                                         
   438fe:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   43902:	60be           	bras 438c2 <rtems_termios_open+0x98>        <== NOT EXECUTED
    }                                                                 
    /*                                                                
     * allocate cooked buffer                                         
     */                                                               
    tty->cbuf  = malloc (CBUFSIZE);                                   
   43904:	2f39 0005 d234 	movel 5d234 <rtems_termios_cbufsize>,%sp@-  
   4390a:	4e95           	jsr %a5@                                    
    if (tty->cbuf == NULL) {                                          
   4390c:	588f           	addql #4,%sp                                
      return RTEMS_NO_MEMORY;                                         
    }                                                                 
    /*                                                                
     * allocate cooked buffer                                         
     */                                                               
    tty->cbuf  = malloc (CBUFSIZE);                                   
   4390e:	2740 001c      	movel %d0,%a3@(28)                          
    if (tty->cbuf == NULL) {                                          
   43912:	6624           	bnes 43938 <rtems_termios_open+0x10e>       
            free((void *)(tty->rawOutBuf.theBuf));                    
   43914:	2f06           	movel %d6,%sp@-                             
   43916:	45f9 0004 29ec 	lea 429ec <free>,%a2                        
   4391c:	4e92           	jsr %a2@                                    
            free((void *)(tty->rawInBuf.theBuf));                     
   4391e:	2f03           	movel %d3,%sp@-                             
   43920:	4e92           	jsr %a2@                                    
            free(tty);                                                
   43922:	2f0b           	movel %a3,%sp@-                             
   43924:	4e92           	jsr %a2@                                    
      rtems_semaphore_release (rtems_termios_ttyMutex);               
   43926:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  
   4392c:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
      return RTEMS_NO_MEMORY;                                         
   43932:	4fef 0010      	lea %sp@(16),%sp                            
   43936:	608a           	bras 438c2 <rtems_termios_open+0x98>        
    }                                                                 
    /*                                                                
     * Initialize wakeup callbacks                                    
     */                                                               
    tty->tty_snd.sw_pfn = NULL;                                       
   43938:	42ab 00d4      	clrl %a3@(212)                              
    tty->tty_snd.sw_arg = NULL;                                       
   4393c:	42ab 00d8      	clrl %a3@(216)                              
    tty->tty_rcv.sw_pfn = NULL;                                       
   43940:	42ab 00dc      	clrl %a3@(220)                              
    tty->tty_rcv.sw_arg = NULL;                                       
   43944:	42ab 00e0      	clrl %a3@(224)                              
    tty->tty_rcvwakeup  = 0;                                          
   43948:	42ab 00e4      	clrl %a3@(228)                              
                                                                      
    /*                                                                
     * link tty                                                       
     */                                                               
    tty->forw = rtems_termios_ttyHead;                                
   4394c:	268c           	movel %a4,%a3@                              
    tty->back = NULL;                                                 
   4394e:	42ab 0004      	clrl %a3@(4)                                
    if (rtems_termios_ttyHead != NULL)                                
   43952:	4a8c           	tstl %a4                                    
   43954:	6704           	beqs 4395a <rtems_termios_open+0x130>       
      rtems_termios_ttyHead->back = tty;                              
   43956:	294b 0004      	movel %a3,%a4@(4)                           
    rtems_termios_ttyHead = tty;                                      
   4395a:	23ca 0005 e8c0 	movel %a2,5e8c0 <rtems_termios_ttyHead>     
    if (rtems_termios_ttyTail == NULL)                                
   43960:	4ab9 0005 e8bc 	tstl 5e8bc <rtems_termios_ttyTail>          
   43966:	6606           	bnes 4396e <rtems_termios_open+0x144>       
      rtems_termios_ttyTail = tty;                                    
   43968:	23ca 0005 e8bc 	movel %a2,5e8bc <rtems_termios_ttyTail>     
                                                                      
    tty->minor = minor;                                               
   4396e:	2545 0010      	movel %d5,%a2@(16)                          
    tty->major = major;                                               
                                                                      
    /*                                                                
     * Set up mutex semaphores                                        
     */                                                               
    sc = rtems_semaphore_create (                                     
   43972:	49f9 0004 561c 	lea 4561c <rtems_semaphore_create>,%a4      
    rtems_termios_ttyHead = tty;                                      
    if (rtems_termios_ttyTail == NULL)                                
      rtems_termios_ttyTail = tty;                                    
                                                                      
    tty->minor = minor;                                               
    tty->major = major;                                               
   43978:	2544 000c      	movel %d4,%a2@(12)                          
                                                                      
    /*                                                                
     * Set up mutex semaphores                                        
     */                                                               
    sc = rtems_semaphore_create (                                     
   4397c:	486a 0014      	pea %a2@(20)                                
      rtems_build_name ('T', 'R', 'i', c),                            
   43980:	1039 0005 d240 	moveb 5d240 <c.6362>,%d0                    
    tty->major = major;                                               
                                                                      
    /*                                                                
     * Set up mutex semaphores                                        
     */                                                               
    sc = rtems_semaphore_create (                                     
   43986:	42a7           	clrl %sp@-                                  
   43988:	4878 0054      	pea 54 <DBL_MANT_DIG+0x1f>                  
      rtems_build_name ('T', 'R', 'i', c),                            
   4398c:	49c0           	extbl %d0                                   
    tty->major = major;                                               
                                                                      
    /*                                                                
     * Set up mutex semaphores                                        
     */                                                               
    sc = rtems_semaphore_create (                                     
   4398e:	4878 0001      	pea 1 <ADD>                                 
   43992:	0080 5452 6900 	oril #1414686976,%d0                        
   43998:	2f00           	movel %d0,%sp@-                             
   4399a:	4e94           	jsr %a4@                                    
      rtems_build_name ('T', 'R', 'i', c),                            
      1,                                                              
      RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
      RTEMS_NO_PRIORITY,                                              
      &tty->isem);                                                    
    if (sc != RTEMS_SUCCESSFUL)                                       
   4399c:	4fef 0014      	lea %sp@(20),%sp                            
   439a0:	4a80           	tstl %d0                                    
   439a2:	6600 0228      	bnew 43bcc <rtems_termios_open+0x3a2>       
      rtems_fatal_error_occurred (sc);                                
    sc = rtems_semaphore_create (                                     
   439a6:	486a 0018      	pea %a2@(24)                                
      rtems_build_name ('T', 'R', 'o', c),                            
   439aa:	1039 0005 d240 	moveb 5d240 <c.6362>,%d0                    
      RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
      RTEMS_NO_PRIORITY,                                              
      &tty->isem);                                                    
    if (sc != RTEMS_SUCCESSFUL)                                       
      rtems_fatal_error_occurred (sc);                                
    sc = rtems_semaphore_create (                                     
   439b0:	42a7           	clrl %sp@-                                  
   439b2:	4878 0054      	pea 54 <DBL_MANT_DIG+0x1f>                  
      rtems_build_name ('T', 'R', 'o', c),                            
   439b6:	49c0           	extbl %d0                                   
      RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
      RTEMS_NO_PRIORITY,                                              
      &tty->isem);                                                    
    if (sc != RTEMS_SUCCESSFUL)                                       
      rtems_fatal_error_occurred (sc);                                
    sc = rtems_semaphore_create (                                     
   439b8:	4878 0001      	pea 1 <ADD>                                 
   439bc:	0080 5452 6f00 	oril #1414688512,%d0                        
   439c2:	2f00           	movel %d0,%sp@-                             
   439c4:	4e94           	jsr %a4@                                    
      rtems_build_name ('T', 'R', 'o', c),                            
      1,                                                              
      RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
      RTEMS_NO_PRIORITY,                                              
      &tty->osem);                                                    
    if (sc != RTEMS_SUCCESSFUL)                                       
   439c6:	4fef 0014      	lea %sp@(20),%sp                            
   439ca:	4a80           	tstl %d0                                    
   439cc:	6600 01fe      	bnew 43bcc <rtems_termios_open+0x3a2>       
      rtems_fatal_error_occurred (sc);                                
    sc = rtems_semaphore_create (                                     
   439d0:	486a 008c      	pea %a2@(140)                               
      rtems_build_name ('T', 'R', 'x', c),                            
   439d4:	1039 0005 d240 	moveb 5d240 <c.6362>,%d0                    
      RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
      RTEMS_NO_PRIORITY,                                              
      &tty->osem);                                                    
    if (sc != RTEMS_SUCCESSFUL)                                       
      rtems_fatal_error_occurred (sc);                                
    sc = rtems_semaphore_create (                                     
   439da:	42a7           	clrl %sp@-                                  
   439dc:	4878 0020      	pea 20 <OPER2+0xc>                          
      rtems_build_name ('T', 'R', 'x', c),                            
   439e0:	49c0           	extbl %d0                                   
      RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
      RTEMS_NO_PRIORITY,                                              
      &tty->osem);                                                    
    if (sc != RTEMS_SUCCESSFUL)                                       
      rtems_fatal_error_occurred (sc);                                
    sc = rtems_semaphore_create (                                     
   439e2:	0080 5452 7800 	oril #1414690816,%d0                        
   439e8:	42a7           	clrl %sp@-                                  
   439ea:	2f00           	movel %d0,%sp@-                             
   439ec:	4e94           	jsr %a4@                                    
      rtems_build_name ('T', 'R', 'x', c),                            
      0,                                                              
      RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_FIFO,                     
      RTEMS_NO_PRIORITY,                                              
      &tty->rawOutBuf.Semaphore);                                     
    if (sc != RTEMS_SUCCESSFUL)                                       
   439ee:	4fef 0014      	lea %sp@(20),%sp                            
   439f2:	4a80           	tstl %d0                                    
   439f4:	6600 01d6      	bnew 43bcc <rtems_termios_open+0x3a2>       
      rtems_fatal_error_occurred (sc);                                
    tty->rawOutBufState = rob_idle;                                   
   439f8:	42aa 0094      	clrl %a2@(148)                              
                                                                      
    /*                                                                
     * Set callbacks                                                  
     */                                                               
    tty->device = *callbacks;                                         
   439fc:	4878 0020      	pea 20 <OPER2+0xc>                          
   43a00:	2f2e 0014      	movel %fp@(20),%sp@-                        
   43a04:	486a 0098      	pea %a2@(152)                               
   43a08:	4eb9 0004 d37c 	jsr 4d37c <memcpy>                          
                                                                      
    /*                                                                
     * Create I/O tasks                                               
     */                                                               
    if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {    
   43a0e:	4fef 000c      	lea %sp@(12),%sp                            
   43a12:	7002           	moveq #2,%d0                                
   43a14:	b0aa 00b4      	cmpl %a2@(180),%d0                          
   43a18:	6662           	bnes 43a7c <rtems_termios_open+0x252>       
      sc = rtems_task_create (                                        
   43a1a:	486a 00c8      	pea %a2@(200)                               
   43a1e:	49f9 0004 5a0c 	lea 45a0c <rtems_task_create>,%a4           
                                   rtems_build_name ('T', 'x', 'T', c),
   43a24:	1039 0005 d240 	moveb 5d240 <c.6362>,%d0                    
                                                                      
    /*                                                                
     * Create I/O tasks                                               
     */                                                               
    if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {    
      sc = rtems_task_create (                                        
   43a2a:	42a7           	clrl %sp@-                                  
   43a2c:	4878 0500      	pea 500 <DBL_MAX_EXP+0xff>                  
                                   rtems_build_name ('T', 'x', 'T', c),
   43a30:	49c0           	extbl %d0                                   
                                                                      
    /*                                                                
     * Create I/O tasks                                               
     */                                                               
    if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {    
      sc = rtems_task_create (                                        
   43a32:	4878 0400      	pea 400 <D_BIAS+0x2>                        
   43a36:	4878 000a      	pea a <LASTO>                               
   43a3a:	0080 5478 5400 	oril #1417171968,%d0                        
   43a40:	2f00           	movel %d0,%sp@-                             
   43a42:	4e94           	jsr %a4@                                    
           TERMIOS_TXTASK_STACKSIZE,                                  
           RTEMS_NO_PREEMPT | RTEMS_NO_TIMESLICE |                    
           RTEMS_NO_ASR,                                              
           RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,                     
           &tty->txTaskId);                                           
      if (sc != RTEMS_SUCCESSFUL)                                     
   43a44:	4fef 0018      	lea %sp@(24),%sp                            
   43a48:	4a80           	tstl %d0                                    
   43a4a:	6600 0180      	bnew 43bcc <rtems_termios_open+0x3a2>       
        rtems_fatal_error_occurred (sc);                              
      sc = rtems_task_create (                                        
   43a4e:	486a 00c4      	pea %a2@(196)                               
                                   rtems_build_name ('R', 'x', 'T', c),
   43a52:	1039 0005 d240 	moveb 5d240 <c.6362>,%d0                    
           RTEMS_NO_ASR,                                              
           RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,                     
           &tty->txTaskId);                                           
      if (sc != RTEMS_SUCCESSFUL)                                     
        rtems_fatal_error_occurred (sc);                              
      sc = rtems_task_create (                                        
   43a58:	42a7           	clrl %sp@-                                  
   43a5a:	4878 0500      	pea 500 <DBL_MAX_EXP+0xff>                  
                                   rtems_build_name ('R', 'x', 'T', c),
   43a5e:	49c0           	extbl %d0                                   
           RTEMS_NO_ASR,                                              
           RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,                     
           &tty->txTaskId);                                           
      if (sc != RTEMS_SUCCESSFUL)                                     
        rtems_fatal_error_occurred (sc);                              
      sc = rtems_task_create (                                        
   43a60:	4878 0400      	pea 400 <D_BIAS+0x2>                        
   43a64:	4878 0009      	pea 9 <DIVIDE_BY_ZERO+0x1>                  
   43a68:	0080 5278 5400 	oril #1383617536,%d0                        
   43a6e:	2f00           	movel %d0,%sp@-                             
   43a70:	4e94           	jsr %a4@                                    
           TERMIOS_RXTASK_STACKSIZE,                                  
           RTEMS_NO_PREEMPT | RTEMS_NO_TIMESLICE |                    
           RTEMS_NO_ASR,                                              
           RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,                     
           &tty->rxTaskId);                                           
      if (sc != RTEMS_SUCCESSFUL)                                     
   43a72:	4fef 0018      	lea %sp@(24),%sp                            
   43a76:	4a80           	tstl %d0                                    
   43a78:	6600 0152      	bnew 43bcc <rtems_termios_open+0x3a2>       
        rtems_fatal_error_occurred (sc);                              
                                                                      
    }                                                                 
    if ((tty->device.pollRead == NULL) ||                             
   43a7c:	4aaa 00a0      	tstl %a2@(160)                              
   43a80:	6708           	beqs 43a8a <rtems_termios_open+0x260>       
   43a82:	7202           	moveq #2,%d1                                
   43a84:	b2aa 00b4      	cmpl %a2@(180),%d1                          
   43a88:	662c           	bnes 43ab6 <rtems_termios_open+0x28c>       
        (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)){   
      sc = rtems_semaphore_create (                                   
   43a8a:	486a 0068      	pea %a2@(104)                               
        rtems_build_name ('T', 'R', 'r', c),                          
   43a8e:	1039 0005 d240 	moveb 5d240 <c.6362>,%d0                    
        rtems_fatal_error_occurred (sc);                              
                                                                      
    }                                                                 
    if ((tty->device.pollRead == NULL) ||                             
        (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)){   
      sc = rtems_semaphore_create (                                   
   43a94:	42a7           	clrl %sp@-                                  
   43a96:	4878 0024      	pea 24 <OPER2+0x10>                         
        rtems_build_name ('T', 'R', 'r', c),                          
   43a9a:	49c0           	extbl %d0                                   
        rtems_fatal_error_occurred (sc);                              
                                                                      
    }                                                                 
    if ((tty->device.pollRead == NULL) ||                             
        (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)){   
      sc = rtems_semaphore_create (                                   
   43a9c:	0080 5452 7200 	oril #1414689280,%d0                        
   43aa2:	42a7           	clrl %sp@-                                  
   43aa4:	2f00           	movel %d0,%sp@-                             
   43aa6:	4eb9 0004 561c 	jsr 4561c <rtems_semaphore_create>          
        rtems_build_name ('T', 'R', 'r', c),                          
        0,                                                            
        RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_PRIORITY,               
        RTEMS_NO_PRIORITY,                                            
        &tty->rawInBuf.Semaphore);                                    
      if (sc != RTEMS_SUCCESSFUL)                                     
   43aac:	4fef 0014      	lea %sp@(20),%sp                            
   43ab0:	4a80           	tstl %d0                                    
   43ab2:	6600 0118      	bnew 43bcc <rtems_termios_open+0x3a2>       
    /*                                                                
     * Set default parameters                                         
     */                                                               
    tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;           
    tty->termios.c_oflag = OPOST | ONLCR | XTABS;                     
    tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;              
   43ab6:	203c 0000 08bd 	movel #2237,%d0                             
    }                                                                 
                                                                      
    /*                                                                
     * Set default parameters                                         
     */                                                               
    tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;           
   43abc:	307c 2502      	moveaw #9474,%a0                            
    tty->termios.c_oflag = OPOST | ONLCR | XTABS;                     
   43ac0:	327c 1805      	moveaw #6149,%a1                            
    tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;              
   43ac4:	2540 0038      	movel %d0,%a2@(56)                          
    tty->termios.c_lflag =                                            
   43ac8:	223c 0000 823b 	movel #33339,%d1                            
       ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;       
                                                                      
    tty->termios.c_cc[VINTR] = '\003';                                
   43ace:	7003           	moveq #3,%d0                                
     * Set default parameters                                         
     */                                                               
    tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;           
    tty->termios.c_oflag = OPOST | ONLCR | XTABS;                     
    tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;              
    tty->termios.c_lflag =                                            
   43ad0:	2541 003c      	movel %d1,%a2@(60)                          
       ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;       
                                                                      
    tty->termios.c_cc[VINTR] = '\003';                                
   43ad4:	1540 0041      	moveb %d0,%a2@(65)                          
    tty->termios.c_cc[VQUIT] = '\034';                                
    tty->termios.c_cc[VERASE] = '\177';                               
   43ad8:	707f           	moveq #127,%d0                              
    tty->termios.c_cc[VDISCARD] = '\017';                             
    tty->termios.c_cc[VWERASE] = '\027';                              
    tty->termios.c_cc[VLNEXT] = '\026';                               
                                                                      
    /* start with no flow control, clear flow control flags */        
    tty->flow_ctrl = 0;                                               
   43ada:	42aa 00b8      	clrl %a2@(184)                              
    tty->termios.c_lflag =                                            
       ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;       
                                                                      
    tty->termios.c_cc[VINTR] = '\003';                                
    tty->termios.c_cc[VQUIT] = '\034';                                
    tty->termios.c_cc[VERASE] = '\177';                               
   43ade:	1540 0043      	moveb %d0,%a2@(67)                          
    tty->termios.c_cc[VKILL] = '\025';                                
    tty->termios.c_cc[VEOF] = '\004';                                 
   43ae2:	7004           	moveq #4,%d0                                
    }                                                                 
                                                                      
    /*                                                                
     * Set default parameters                                         
     */                                                               
    tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;           
   43ae4:	2548 0030      	movel %a0,%a2@(48)                          
                                                                      
    tty->termios.c_cc[VINTR] = '\003';                                
    tty->termios.c_cc[VQUIT] = '\034';                                
    tty->termios.c_cc[VERASE] = '\177';                               
    tty->termios.c_cc[VKILL] = '\025';                                
    tty->termios.c_cc[VEOF] = '\004';                                 
   43ae8:	1540 0045      	moveb %d0,%a2@(69)                          
    tty->termios.c_cc[VEOL] = '\000';                                 
    tty->termios.c_cc[VEOL2] = '\000';                                
    tty->termios.c_cc[VSTART] = '\021';                               
   43aec:	7011           	moveq #17,%d0                               
                                                                      
    /*                                                                
     * Set default parameters                                         
     */                                                               
    tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;           
    tty->termios.c_oflag = OPOST | ONLCR | XTABS;                     
   43aee:	2549 0034      	movel %a1,%a2@(52)                          
    tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;              
    tty->termios.c_lflag =                                            
       ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;       
                                                                      
    tty->termios.c_cc[VINTR] = '\003';                                
    tty->termios.c_cc[VQUIT] = '\034';                                
   43af2:	721c           	moveq #28,%d1                               
    tty->termios.c_cc[VERASE] = '\177';                               
    tty->termios.c_cc[VKILL] = '\025';                                
    tty->termios.c_cc[VEOF] = '\004';                                 
    tty->termios.c_cc[VEOL] = '\000';                                 
    tty->termios.c_cc[VEOL2] = '\000';                                
    tty->termios.c_cc[VSTART] = '\021';                               
   43af4:	1540 0049      	moveb %d0,%a2@(73)                          
    tty->termios.c_cc[VSTOP] = '\023';                                
    tty->termios.c_cc[VSUSP] = '\032';                                
   43af8:	701a           	moveq #26,%d0                               
    tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;              
    tty->termios.c_lflag =                                            
       ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;       
                                                                      
    tty->termios.c_cc[VINTR] = '\003';                                
    tty->termios.c_cc[VQUIT] = '\034';                                
   43afa:	1541 0042      	moveb %d1,%a2@(66)                          
    tty->termios.c_cc[VERASE] = '\177';                               
    tty->termios.c_cc[VKILL] = '\025';                                
   43afe:	7215           	moveq #21,%d1                               
    tty->termios.c_cc[VEOF] = '\004';                                 
    tty->termios.c_cc[VEOL] = '\000';                                 
    tty->termios.c_cc[VEOL2] = '\000';                                
    tty->termios.c_cc[VSTART] = '\021';                               
    tty->termios.c_cc[VSTOP] = '\023';                                
    tty->termios.c_cc[VSUSP] = '\032';                                
   43b00:	1540 004b      	moveb %d0,%a2@(75)                          
    tty->termios.c_cc[VREPRINT] = '\022';                             
    tty->termios.c_cc[VDISCARD] = '\017';                             
   43b04:	700f           	moveq #15,%d0                               
       ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;       
                                                                      
    tty->termios.c_cc[VINTR] = '\003';                                
    tty->termios.c_cc[VQUIT] = '\034';                                
    tty->termios.c_cc[VERASE] = '\177';                               
    tty->termios.c_cc[VKILL] = '\025';                                
   43b06:	1541 0044      	moveb %d1,%a2@(68)                          
    tty->termios.c_cc[VEOF] = '\004';                                 
    tty->termios.c_cc[VEOL] = '\000';                                 
   43b0a:	4201           	clrb %d1                                    
    tty->termios.c_cc[VEOL2] = '\000';                                
    tty->termios.c_cc[VSTART] = '\021';                               
    tty->termios.c_cc[VSTOP] = '\023';                                
    tty->termios.c_cc[VSUSP] = '\032';                                
    tty->termios.c_cc[VREPRINT] = '\022';                             
    tty->termios.c_cc[VDISCARD] = '\017';                             
   43b0c:	1540 004e      	moveb %d0,%a2@(78)                          
    tty->termios.c_cc[VWERASE] = '\027';                              
    tty->termios.c_cc[VLNEXT] = '\026';                               
   43b10:	7016           	moveq #22,%d0                               
    tty->termios.c_cc[VINTR] = '\003';                                
    tty->termios.c_cc[VQUIT] = '\034';                                
    tty->termios.c_cc[VERASE] = '\177';                               
    tty->termios.c_cc[VKILL] = '\025';                                
    tty->termios.c_cc[VEOF] = '\004';                                 
    tty->termios.c_cc[VEOL] = '\000';                                 
   43b12:	1541 004c      	moveb %d1,%a2@(76)                          
    tty->termios.c_cc[VEOL2] = '\000';                                
   43b16:	1541 0051      	moveb %d1,%a2@(81)                          
    tty->termios.c_cc[VSTART] = '\021';                               
    tty->termios.c_cc[VSTOP] = '\023';                                
   43b1a:	7213           	moveq #19,%d1                               
    tty->termios.c_cc[VSUSP] = '\032';                                
    tty->termios.c_cc[VREPRINT] = '\022';                             
    tty->termios.c_cc[VDISCARD] = '\017';                             
    tty->termios.c_cc[VWERASE] = '\027';                              
    tty->termios.c_cc[VLNEXT] = '\026';                               
   43b1c:	1540 0050      	moveb %d0,%a2@(80)                          
    /* start with no flow control, clear flow control flags */        
    tty->flow_ctrl = 0;                                               
    /*                                                                
     * set low/highwater mark for XON/XOFF support                    
     */                                                               
    tty->lowwater  = tty->rawInBuf.Size * 1/2;                        
   43b20:	202a 0064      	movel %a2@(100),%d0                         
   43b24:	e288           	lsrl #1,%d0                                 
    tty->termios.c_cc[VKILL] = '\025';                                
    tty->termios.c_cc[VEOF] = '\004';                                 
    tty->termios.c_cc[VEOL] = '\000';                                 
    tty->termios.c_cc[VEOL2] = '\000';                                
    tty->termios.c_cc[VSTART] = '\021';                               
    tty->termios.c_cc[VSTOP] = '\023';                                
   43b26:	1541 004a      	moveb %d1,%a2@(74)                          
    tty->termios.c_cc[VSUSP] = '\032';                                
    tty->termios.c_cc[VREPRINT] = '\022';                             
   43b2a:	7212           	moveq #18,%d1                               
    tty->flow_ctrl = 0;                                               
    /*                                                                
     * set low/highwater mark for XON/XOFF support                    
     */                                                               
    tty->lowwater  = tty->rawInBuf.Size * 1/2;                        
    tty->highwater = tty->rawInBuf.Size * 3/4;                        
   43b2c:	206a 0064      	moveal %a2@(100),%a0                        
    tty->termios.c_cc[VEOL] = '\000';                                 
    tty->termios.c_cc[VEOL2] = '\000';                                
    tty->termios.c_cc[VSTART] = '\021';                               
    tty->termios.c_cc[VSTOP] = '\023';                                
    tty->termios.c_cc[VSUSP] = '\032';                                
    tty->termios.c_cc[VREPRINT] = '\022';                             
   43b30:	1541 004d      	moveb %d1,%a2@(77)                          
    tty->flow_ctrl = 0;                                               
    /*                                                                
     * set low/highwater mark for XON/XOFF support                    
     */                                                               
    tty->lowwater  = tty->rawInBuf.Size * 1/2;                        
    tty->highwater = tty->rawInBuf.Size * 3/4;                        
   43b34:	41f0 8a00      	lea %a0@(00000000,%a0:l:2),%a0              
    tty->termios.c_cc[VSTART] = '\021';                               
    tty->termios.c_cc[VSTOP] = '\023';                                
    tty->termios.c_cc[VSUSP] = '\032';                                
    tty->termios.c_cc[VREPRINT] = '\022';                             
    tty->termios.c_cc[VDISCARD] = '\017';                             
    tty->termios.c_cc[VWERASE] = '\027';                              
   43b38:	7217           	moveq #23,%d1                               
    /* start with no flow control, clear flow control flags */        
    tty->flow_ctrl = 0;                                               
    /*                                                                
     * set low/highwater mark for XON/XOFF support                    
     */                                                               
    tty->lowwater  = tty->rawInBuf.Size * 1/2;                        
   43b3a:	2540 00bc      	movel %d0,%a2@(188)                         
    tty->highwater = tty->rawInBuf.Size * 3/4;                        
   43b3e:	2008           	movel %a0,%d0                               
    tty->termios.c_cc[VSTART] = '\021';                               
    tty->termios.c_cc[VSTOP] = '\023';                                
    tty->termios.c_cc[VSUSP] = '\032';                                
    tty->termios.c_cc[VREPRINT] = '\022';                             
    tty->termios.c_cc[VDISCARD] = '\017';                             
    tty->termios.c_cc[VWERASE] = '\027';                              
   43b40:	1541 004f      	moveb %d1,%a2@(79)                          
    tty->flow_ctrl = 0;                                               
    /*                                                                
     * set low/highwater mark for XON/XOFF support                    
     */                                                               
    tty->lowwater  = tty->rawInBuf.Size * 1/2;                        
    tty->highwater = tty->rawInBuf.Size * 3/4;                        
   43b44:	e488           	lsrl #2,%d0                                 
   43b46:	2540 00c0      	movel %d0,%a2@(192)                         
    /*                                                                
     * Bump name characer                                             
     */                                                               
    if (c++ == 'z')                                                   
   43b4a:	1039 0005 d240 	moveb 5d240 <c.6362>,%d0                    
   43b50:	49c0           	extbl %d0                                   
   43b52:	2200           	movel %d0,%d1                               
   43b54:	5281           	addql #1,%d1                                
   43b56:	13c1 0005 d240 	moveb %d1,5d240 <c.6362>                    
   43b5c:	727a           	moveq #122,%d1                              
   43b5e:	b280           	cmpl %d0,%d1                                
   43b60:	6608           	bnes 43b6a <rtems_termios_open+0x340>       
      c = 'a';                                                        
   43b62:	7061           	moveq #97,%d0                               
   43b64:	13c0 0005 d240 	moveb %d0,5d240 <c.6362>                    
                                                                      
  }                                                                   
  args->iop->data1 = tty;                                             
   43b6a:	2247           	moveal %d7,%a1                              
   43b6c:	2051           	moveal %a1@,%a0                             
  if (!tty->refcount++) {                                             
   43b6e:	202b 0008      	movel %a3@(8),%d0                           
   43b72:	2200           	movel %d0,%d1                               
   43b74:	5281           	addql #1,%d1                                
     */                                                               
    if (c++ == 'z')                                                   
      c = 'a';                                                        
                                                                      
  }                                                                   
  args->iop->data1 = tty;                                             
   43b76:	214b 0034      	movel %a3,%a0@(52)                          
  if (!tty->refcount++) {                                             
   43b7a:	2741 0008      	movel %d1,%a3@(8)                           
   43b7e:	4a80           	tstl %d0                                    
   43b80:	6652           	bnes 43bd4 <rtems_termios_open+0x3aa>       
    if (tty->device.firstOpen)                                        
   43b82:	206b 0098      	moveal %a3@(152),%a0                        
   43b86:	4a88           	tstl %a0                                    
   43b88:	670c           	beqs 43b96 <rtems_termios_open+0x36c>       
      (*tty->device.firstOpen)(major, minor, arg);                    
   43b8a:	2f07           	movel %d7,%sp@-                             
   43b8c:	2f05           	movel %d5,%sp@-                             
   43b8e:	2f04           	movel %d4,%sp@-                             
   43b90:	4e90           	jsr %a0@                                    
   43b92:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
    /*                                                                
     * start I/O tasks, if needed                                     
     */                                                               
    if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {    
   43b96:	7002           	moveq #2,%d0                                
   43b98:	b0ab 00b4      	cmpl %a3@(180),%d0                          
   43b9c:	6636           	bnes 43bd4 <rtems_termios_open+0x3aa>       
      sc = rtems_task_start(                                          
   43b9e:	2f0b           	movel %a3,%sp@-                             
   43ba0:	487a 1136      	pea %pc@(44cd8 <rtems_termios_rxdaemon>)    
   43ba4:	45f9 0004 5c88 	lea 45c88 <rtems_task_start>,%a2            
   43baa:	2f2b 00c4      	movel %a3@(196),%sp@-                       
   43bae:	4e92           	jsr %a2@                                    
        tty->rxTaskId, rtems_termios_rxdaemon, (rtems_task_argument)tty);
      if (sc != RTEMS_SUCCESSFUL)                                     
   43bb0:	4fef 000c      	lea %sp@(12),%sp                            
   43bb4:	4a80           	tstl %d0                                    
   43bb6:	6614           	bnes 43bcc <rtems_termios_open+0x3a2>       <== NEVER TAKEN
        rtems_fatal_error_occurred (sc);                              
                                                                      
      sc = rtems_task_start(                                          
   43bb8:	2f0b           	movel %a3,%sp@-                             
   43bba:	487a 1340      	pea %pc@(44efc <rtems_termios_txdaemon>)    
   43bbe:	2f2b 00c8      	movel %a3@(200),%sp@-                       
   43bc2:	4e92           	jsr %a2@                                    
        tty->txTaskId, rtems_termios_txdaemon, (rtems_task_argument)tty);
      if (sc != RTEMS_SUCCESSFUL)                                     
   43bc4:	4fef 000c      	lea %sp@(12),%sp                            
   43bc8:	4a80           	tstl %d0                                    
   43bca:	6708           	beqs 43bd4 <rtems_termios_open+0x3aa>       <== ALWAYS TAKEN
        rtems_fatal_error_occurred (sc);                              
   43bcc:	2f00           	movel %d0,%sp@-                             
   43bce:	4eb9 0004 5efc 	jsr 45efc <rtems_fatal_error_occurred>      
    }                                                                 
  }                                                                   
  rtems_semaphore_release (rtems_termios_ttyMutex);                   
   43bd4:	2f39 0005 e8b8 	movel 5e8b8 <rtems_termios_ttyMutex>,%sp@-  
   43bda:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
  return RTEMS_SUCCESSFUL;                                            
   43be0:	588f           	addql #4,%sp                                
}                                                                     
   43be2:	2002           	movel %d2,%d0                               
   43be4:	4cee 3cfc ffd8 	moveml %fp@(-40),%d2-%d7/%a2-%a5            
   43bea:	4e5e           	unlk %fp                                    
   43bec:	4e75           	rts                                         
    static char c = 'a';                                              
                                                                      
    /*                                                                
     * Create a new device                                            
     */                                                               
    tty = calloc (1, sizeof (struct rtems_termios_tty));              
   43bee:	4878 00e8      	pea e8 <DBL_MANT_DIG+0xb3>                  
   43bf2:	4878 0001      	pea 1 <ADD>                                 
   43bf6:	4eb9 0004 2654 	jsr 42654 <calloc>                          
    if (tty == NULL) {                                                
   43bfc:	508f           	addql #8,%sp                                
    static char c = 'a';                                              
                                                                      
    /*                                                                
     * Create a new device                                            
     */                                                               
    tty = calloc (1, sizeof (struct rtems_termios_tty));              
   43bfe:	2640           	moveal %d0,%a3                              
   43c00:	2440           	moveal %d0,%a2                              
    if (tty == NULL) {                                                
   43c02:	4a80           	tstl %d0                                    
   43c04:	6600 fc84      	bnew 4388a <rtems_termios_open+0x60>        
   43c08:	6000 fc70      	braw 4387a <rtems_termios_open+0x50>        
                                                                      

000440b2 <rtems_termios_puts>: * Send characters to device-specific code */ void rtems_termios_puts ( const void *_buf, int len, struct rtems_termios_tty *tty) {
   440b2:	4e56 ffe0      	linkw %fp,#-32                              
   440b6:	202e 0008      	movel %fp@(8),%d0                           
   440ba:	48d7 1c7c      	moveml %d2-%d6/%a2-%a4,%sp@                 
   440be:	242e 000c      	movel %fp@(12),%d2                          
  const unsigned char *buf = _buf;                                    
   440c2:	2640           	moveal %d0,%a3                              
 * Send characters to device-specific code                            
 */                                                                   
void                                                                  
rtems_termios_puts (                                                  
  const void *_buf, int len, struct rtems_termios_tty *tty)           
{                                                                     
   440c4:	246e 0010      	moveal %fp@(16),%a2                         
  const unsigned char *buf = _buf;                                    
  unsigned int newHead;                                               
  rtems_interrupt_level level;                                        
  rtems_status_code sc;                                               
                                                                      
  if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) {           
   440c8:	4aaa 00b4      	tstl %a2@(180)                              
   440cc:	661c           	bnes 440ea <rtems_termios_puts+0x38>        
    (*tty->device.write)(tty->minor, (void *)buf, len);               
   440ce:	2d42 0010      	movel %d2,%fp@(16)                          
   440d2:	2d40 000c      	movel %d0,%fp@(12)                          
   440d6:	2d6a 0010 0008 	movel %a2@(16),%fp@(8)                      
   440dc:	226a 00a4      	moveal %a2@(164),%a1                        
      tty->rawOutBufState = rob_busy;                                 
    }                                                                 
    rtems_interrupt_enable (level);                                   
    len--;                                                            
  }                                                                   
}                                                                     
   440e0:	4cee 1c7c ffe0 	moveml %fp@(-32),%d2-%d6/%a2-%a4            
   440e6:	4e5e           	unlk %fp                                    
  unsigned int newHead;                                               
  rtems_interrupt_level level;                                        
  rtems_status_code sc;                                               
                                                                      
  if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) {           
    (*tty->device.write)(tty->minor, (void *)buf, len);               
   440e8:	4ed1           	jmp %a1@                                    
    return;                                                           
  }                                                                   
  newHead = tty->rawOutBuf.Head;                                      
   440ea:	2c2a 0080      	movel %a2@(128),%d6                         
     *                                                                
     * To minimize latency, the memcpy should be done                 
     * with interrupts enabled.                                       
     */                                                               
    newHead = (newHead + 1) % tty->rawOutBuf.Size;                    
    rtems_interrupt_disable (level);                                  
   440ee:	2a3c 0000 0700 	movel #1792,%d5                             
    while (newHead == tty->rawOutBuf.Tail) {                          
      tty->rawOutBufState = rob_wait;                                 
      rtems_interrupt_enable (level);                                 
      sc = rtems_semaphore_obtain(                                    
   440f4:	49f9 0004 5854 	lea 45854 <rtems_semaphore_obtain>,%a4      
  if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) {           
    (*tty->device.write)(tty->minor, (void *)buf, len);               
    return;                                                           
  }                                                                   
  newHead = tty->rawOutBuf.Head;                                      
  while (len) {                                                       
   440fa:	6000 009e      	braw 4419a <rtems_termios_puts+0xe8>        
     *  len -= ncopy                                                  
     *                                                                
     * To minimize latency, the memcpy should be done                 
     * with interrupts enabled.                                       
     */                                                               
    newHead = (newHead + 1) % tty->rawOutBuf.Size;                    
   440fe:	202a 0088      	movel %a2@(136),%d0                         
   44102:	5286           	addql #1,%d6                                
   44104:	4c40 6004      	remul %d0,%d4,%d6                           
    rtems_interrupt_disable (level);                                  
   44108:	2005           	movel %d5,%d0                               
     *  len -= ncopy                                                  
     *                                                                
     * To minimize latency, the memcpy should be done                 
     * with interrupts enabled.                                       
     */                                                               
    newHead = (newHead + 1) % tty->rawOutBuf.Size;                    
   4410a:	2c04           	movel %d4,%d6                               
    rtems_interrupt_disable (level);                                  
   4410c:	40c3           	movew %sr,%d3                               
   4410e:	8083           	orl %d3,%d0                                 
   44110:	46c0           	movew %d0,%sr                               
    while (newHead == tty->rawOutBuf.Tail) {                          
   44112:	602a           	bras 4413e <rtems_termios_puts+0x8c>        
      tty->rawOutBufState = rob_wait;                                 
   44114:	7002           	moveq #2,%d0                                
   44116:	2540 0094      	movel %d0,%a2@(148)                         
      rtems_interrupt_enable (level);                                 
   4411a:	46c3           	movew %d3,%sr                               
      sc = rtems_semaphore_obtain(                                    
   4411c:	42a7           	clrl %sp@-                                  
   4411e:	42a7           	clrl %sp@-                                  
   44120:	2f2a 008c      	movel %a2@(140),%sp@-                       
   44124:	4e94           	jsr %a4@                                    
        tty->rawOutBuf.Semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT);      
      if (sc != RTEMS_SUCCESSFUL)                                     
   44126:	4fef 000c      	lea %sp@(12),%sp                            
   4412a:	4a80           	tstl %d0                                    
   4412c:	6708           	beqs 44136 <rtems_termios_puts+0x84>        <== ALWAYS TAKEN
        rtems_fatal_error_occurred (sc);                              
   4412e:	2f00           	movel %d0,%sp@-                             <== NOT EXECUTED
   44130:	4eb9 0004 5efc 	jsr 45efc <rtems_fatal_error_occurred>      <== NOT EXECUTED
      rtems_interrupt_disable (level);                                
   44136:	2005           	movel %d5,%d0                               
   44138:	40c3           	movew %sr,%d3                               
   4413a:	8083           	orl %d3,%d0                                 
   4413c:	46c0           	movew %d0,%sr                               
     * To minimize latency, the memcpy should be done                 
     * with interrupts enabled.                                       
     */                                                               
    newHead = (newHead + 1) % tty->rawOutBuf.Size;                    
    rtems_interrupt_disable (level);                                  
    while (newHead == tty->rawOutBuf.Tail) {                          
   4413e:	202a 0084      	movel %a2@(132),%d0                         
   44142:	b084           	cmpl %d4,%d0                                
   44144:	67ce           	beqs 44114 <rtems_termios_puts+0x62>        
        tty->rawOutBuf.Semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT);      
      if (sc != RTEMS_SUCCESSFUL)                                     
        rtems_fatal_error_occurred (sc);                              
      rtems_interrupt_disable (level);                                
    }                                                                 
    tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++;              
   44146:	202a 0080      	movel %a2@(128),%d0                         
   4414a:	206a 007c      	moveal %a2@(124),%a0                        
   4414e:	119b 0800      	moveb %a3@+,%a0@(00000000,%d0:l)            
    tty->rawOutBuf.Head = newHead;                                    
   44152:	2544 0080      	movel %d4,%a2@(128)                         
    if (tty->rawOutBufState == rob_idle) {                            
   44156:	4aaa 0094      	tstl %a2@(148)                              
   4415a:	663a           	bnes 44196 <rtems_termios_puts+0xe4>        
      /* check, whether XOFF has been received */                     
      if (!(tty->flow_ctrl & FL_ORCVXOF)) {                           
   4415c:	202a 00b8      	movel %a2@(184),%d0                         
   44160:	0800 0004      	btst #4,%d0                                 
   44164:	661e           	bnes 44184 <rtems_termios_puts+0xd2>        <== NEVER TAKEN
        (*tty->device.write)(tty->minor,                              
      (char *)&tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1);         
   44166:	202a 0084      	movel %a2@(132),%d0                         
    tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++;              
    tty->rawOutBuf.Head = newHead;                                    
    if (tty->rawOutBufState == rob_idle) {                            
      /* check, whether XOFF has been received */                     
      if (!(tty->flow_ctrl & FL_ORCVXOF)) {                           
        (*tty->device.write)(tty->minor,                              
   4416a:	4878 0001      	pea 1 <ADD>                                 
   4416e:	d0aa 007c      	addl %a2@(124),%d0                          
   44172:	2f00           	movel %d0,%sp@-                             
   44174:	2f2a 0010      	movel %a2@(16),%sp@-                        
   44178:	206a 00a4      	moveal %a2@(164),%a0                        
   4417c:	4e90           	jsr %a0@                                    
   4417e:	4fef 000c      	lea %sp@(12),%sp                            
   44182:	600c           	bras 44190 <rtems_termios_puts+0xde>        
      (char *)&tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1);         
      } else {                                                        
        /* remember that output has been stopped due to flow ctrl*/   
        tty->flow_ctrl |= FL_OSTOP;                                   
   44184:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44188:	7220           	moveq #32,%d1                               <== NOT EXECUTED
   4418a:	8081           	orl %d1,%d0                                 <== NOT EXECUTED
   4418c:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
      }                                                               
      tty->rawOutBufState = rob_busy;                                 
   44190:	7001           	moveq #1,%d0                                
   44192:	2540 0094      	movel %d0,%a2@(148)                         
    }                                                                 
    rtems_interrupt_enable (level);                                   
   44196:	46c3           	movew %d3,%sr                               
    len--;                                                            
   44198:	5382           	subql #1,%d2                                
  if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) {           
    (*tty->device.write)(tty->minor, (void *)buf, len);               
    return;                                                           
  }                                                                   
  newHead = tty->rawOutBuf.Head;                                      
  while (len) {                                                       
   4419a:	4a82           	tstl %d2                                    
   4419c:	6600 ff60      	bnew 440fe <rtems_termios_puts+0x4c>        
      tty->rawOutBufState = rob_busy;                                 
    }                                                                 
    rtems_interrupt_enable (level);                                   
    len--;                                                            
  }                                                                   
}                                                                     
   441a0:	4cee 1c7c ffe0 	moveml %fp@(-32),%d2-%d6/%a2-%a4            
   441a6:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00044796 <rtems_termios_read>: return RTEMS_SUCCESSFUL; } rtems_status_code rtems_termios_read (void *arg) {
   44796:	4e56 ffd4      	linkw %fp,#-44                              
   4479a:	48d7 3cfc      	moveml %d2-%d7/%a2-%a5,%sp@                 
   4479e:	266e 0008      	moveal %fp@(8),%a3                          
  rtems_libio_rw_args_t *args = arg;                                  
  struct rtems_termios_tty *tty = args->iop->data1;                   
   447a2:	2053           	moveal %a3@,%a0                             
  uint32_t   count = args->count;                                     
   447a4:	262b 0010      	movel %a3@(16),%d3                          
                                                                      
rtems_status_code                                                     
rtems_termios_read (void *arg)                                        
{                                                                     
  rtems_libio_rw_args_t *args = arg;                                  
  struct rtems_termios_tty *tty = args->iop->data1;                   
   447a8:	2468 0034      	moveal %a0@(52),%a2                         
  uint32_t   count = args->count;                                     
  char      *buffer = args->buffer;                                   
   447ac:	2a6b 000c      	moveal %a3@(12),%a5                         
  rtems_status_code sc;                                               
                                                                      
  sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   447b0:	42a7           	clrl %sp@-                                  
   447b2:	42a7           	clrl %sp@-                                  
   447b4:	2f2a 0014      	movel %a2@(20),%sp@-                        
   447b8:	4eb9 0004 5854 	jsr 45854 <rtems_semaphore_obtain>          
  if (sc != RTEMS_SUCCESSFUL)                                         
   447be:	4fef 000c      	lea %sp@(12),%sp                            
  struct rtems_termios_tty *tty = args->iop->data1;                   
  uint32_t   count = args->count;                                     
  char      *buffer = args->buffer;                                   
  rtems_status_code sc;                                               
                                                                      
  sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   447c2:	2800           	movel %d0,%d4                               
  if (sc != RTEMS_SUCCESSFUL)                                         
   447c4:	6600 029a      	bnew 44a60 <rtems_termios_read+0x2ca>       
    return sc;                                                        
                                                                      
  if (rtems_termios_linesw[tty->t_line].l_read != NULL) {             
   447c8:	202a 00cc      	movel %a2@(204),%d0                         
   447cc:	eb88           	lsll #5,%d0                                 
   447ce:	0680 0005 e084 	addil #385156,%d0                           
   447d4:	2240           	moveal %d0,%a1                              
   447d6:	2051           	moveal %a1@,%a0                             
   447d8:	4a88           	tstl %a0                                    
   447da:	671e           	beqs 447fa <rtems_termios_read+0x64>        
    sc = rtems_termios_linesw[tty->t_line].l_read(tty,args);          
   447dc:	2f0b           	movel %a3,%sp@-                             
   447de:	2f0a           	movel %a2,%sp@-                             
   447e0:	4e90           	jsr %a0@                                    
   447e2:	2800           	movel %d0,%d4                               
    tty->tty_rcvwakeup = 0;                                           
   447e4:	42aa 00e4      	clrl %a2@(228)                              
    rtems_semaphore_release (tty->isem);                              
   447e8:	2f2a 0014      	movel %a2@(20),%sp@-                        
   447ec:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
    return sc;                                                        
   447f2:	4fef 000c      	lea %sp@(12),%sp                            
   447f6:	6000 0268      	braw 44a60 <rtems_termios_read+0x2ca>       
  }                                                                   
                                                                      
  if (tty->cindex == tty->ccount) {                                   
   447fa:	202a 0020      	movel %a2@(32),%d0                          
   447fe:	b0aa 0024      	cmpl %a2@(36),%d0                           
   44802:	6600 0234      	bnew 44a38 <rtems_termios_read+0x2a2>       
    tty->cindex = tty->ccount = 0;                                    
   44806:	42aa 0020      	clrl %a2@(32)                               
    tty->read_start_column = tty->column;                             
   4480a:	256a 0028 002c 	movel %a2@(40),%a2@(44)                     
    rtems_semaphore_release (tty->isem);                              
    return sc;                                                        
  }                                                                   
                                                                      
  if (tty->cindex == tty->ccount) {                                   
    tty->cindex = tty->ccount = 0;                                    
   44810:	42aa 0024      	clrl %a2@(36)                               
    tty->read_start_column = tty->column;                             
    if (tty->device.pollRead != NULL &&                               
   44814:	4aaa 00a0      	tstl %a2@(160)                              
   44818:	6700 00da      	beqw 448f4 <rtems_termios_read+0x15e>       
   4481c:	4aaa 00b4      	tstl %a2@(180)                              
   44820:	6600 00d2      	bnew 448f4 <rtems_termios_read+0x15e>       
static rtems_status_code                                              
fillBufferPoll (struct rtems_termios_tty *tty)                        
{                                                                     
  int n;                                                              
                                                                      
  if (tty->termios.c_lflag & ICANON) {                                
   44824:	7002           	moveq #2,%d0                                
   44826:	c0aa 003c      	andl %a2@(60),%d0                           
   4482a:	673e           	beqs 4486a <rtems_termios_read+0xd4>        
    for (;;) {                                                        
      n = (*tty->device.pollRead)(tty->minor);                        
      if (n < 0) {                                                    
        rtems_task_wake_after (1);                                    
   4482c:	49f9 0004 5d34 	lea 45d34 <rtems_task_wake_after>,%a4       
      } else {                                                        
        if  (siproc (n, tty))                                         
   44832:	243c 0004 4676 	movel #280182,%d2                           
{                                                                     
  int n;                                                              
                                                                      
  if (tty->termios.c_lflag & ICANON) {                                
    for (;;) {                                                        
      n = (*tty->device.pollRead)(tty->minor);                        
   44838:	2f2a 0010      	movel %a2@(16),%sp@-                        
   4483c:	206a 00a0      	moveal %a2@(160),%a0                        
   44840:	4e90           	jsr %a0@                                    
      if (n < 0) {                                                    
   44842:	588f           	addql #4,%sp                                
   44844:	4a80           	tstl %d0                                    
   44846:	6c0a           	bges 44852 <rtems_termios_read+0xbc>        
        rtems_task_wake_after (1);                                    
   44848:	4878 0001      	pea 1 <ADD>                                 
   4484c:	4e94           	jsr %a4@                                    
   4484e:	588f           	addql #4,%sp                                
   44850:	60e6           	bras 44838 <rtems_termios_read+0xa2>        
      } else {                                                        
        if  (siproc (n, tty))                                         
   44852:	2f0a           	movel %a2,%sp@-                             
   44854:	2042           	moveal %d2,%a0                              
   44856:	0280 0000 00ff 	andil #255,%d0                              
   4485c:	2f00           	movel %d0,%sp@-                             
   4485e:	4e90           	jsr %a0@                                    
   44860:	508f           	addql #8,%sp                                
   44862:	4a80           	tstl %d0                                    
   44864:	67d2           	beqs 44838 <rtems_termios_read+0xa2>        
   44866:	6000 01d0      	braw 44a38 <rtems_termios_read+0x2a2>       
      }                                                               
    }                                                                 
  } else {                                                            
    rtems_interval then, now;                                         
                                                                      
    then = rtems_clock_get_ticks_since_boot();                        
   4486a:	49f9 0004 5238 	lea 45238 <rtems_clock_get_ticks_since_boot>,%a4
   44870:	4e94           	jsr %a4@                                    
          now = rtems_clock_get_ticks_since_boot();                   
          if ((now - then) > tty->vtimeTicks) {                       
            break;                                                    
          }                                                           
        }                                                             
        rtems_task_wake_after (1);                                    
   44872:	2c3c 0004 5d34 	movel #286004,%d6                           
      }                                                               
    }                                                                 
  } else {                                                            
    rtems_interval then, now;                                         
                                                                      
    then = rtems_clock_get_ticks_since_boot();                        
   44878:	2400           	movel %d0,%d2                               
            break;                                                    
          }                                                           
        }                                                             
        rtems_task_wake_after (1);                                    
      } else {                                                        
        siproc (n, tty);                                              
   4487a:	2a3c 0004 4676 	movel #280182,%d5                           
  } else {                                                            
    rtems_interval then, now;                                         
                                                                      
    then = rtems_clock_get_ticks_since_boot();                        
    for (;;) {                                                        
      n = (*tty->device.pollRead)(tty->minor);                        
   44880:	2f2a 0010      	movel %a2@(16),%sp@-                        
   44884:	206a 00a0      	moveal %a2@(160),%a0                        
   44888:	4e90           	jsr %a0@                                    
      if (n < 0) {                                                    
   4488a:	588f           	addql #4,%sp                                
   4488c:	4a80           	tstl %d0                                    
   4488e:	6c34           	bges 448c4 <rtems_termios_read+0x12e>       
        if (tty->termios.c_cc[VMIN]) {                                
   44890:	4a2a 0047      	tstb %a2@(71)                               
   44894:	670e           	beqs 448a4 <rtems_termios_read+0x10e>       <== NEVER TAKEN
          if (tty->termios.c_cc[VTIME] && tty->ccount) {              
   44896:	4a2a 0046      	tstb %a2@(70)                               
   4489a:	671c           	beqs 448b8 <rtems_termios_read+0x122>       <== NEVER TAKEN
   4489c:	4aaa 0020      	tstl %a2@(32)                               
   448a0:	6716           	beqs 448b8 <rtems_termios_read+0x122>       
   448a2:	6008           	bras 448ac <rtems_termios_read+0x116>       
            if ((now - then) > tty->vtimeTicks) {                     
              break;                                                  
            }                                                         
          }                                                           
        } else {                                                      
          if (!tty->termios.c_cc[VTIME])                              
   448a4:	4a2a 0046      	tstb %a2@(70)                               <== NOT EXECUTED
   448a8:	6700 018e      	beqw 44a38 <rtems_termios_read+0x2a2>       <== NOT EXECUTED
            break;                                                    
          now = rtems_clock_get_ticks_since_boot();                   
   448ac:	4e94           	jsr %a4@                                    
          if ((now - then) > tty->vtimeTicks) {                       
   448ae:	9082           	subl %d2,%d0                                
   448b0:	b0aa 0054      	cmpl %a2@(84),%d0                           
   448b4:	6200 0182      	bhiw 44a38 <rtems_termios_read+0x2a2>       
            break;                                                    
          }                                                           
        }                                                             
        rtems_task_wake_after (1);                                    
   448b8:	4878 0001      	pea 1 <ADD>                                 
   448bc:	2246           	moveal %d6,%a1                              
   448be:	4e91           	jsr %a1@                                    
   448c0:	588f           	addql #4,%sp                                
   448c2:	60bc           	bras 44880 <rtems_termios_read+0xea>        
      } else {                                                        
        siproc (n, tty);                                              
   448c4:	2f0a           	movel %a2,%sp@-                             
   448c6:	2045           	moveal %d5,%a0                              
   448c8:	0280 0000 00ff 	andil #255,%d0                              
   448ce:	2f00           	movel %d0,%sp@-                             
   448d0:	4e90           	jsr %a0@                                    
        if (tty->ccount >= tty->termios.c_cc[VMIN])                   
   448d2:	508f           	addql #8,%sp                                
   448d4:	4281           	clrl %d1                                    
   448d6:	102a 0047      	moveb %a2@(71),%d0                          
   448da:	1200           	moveb %d0,%d1                               
   448dc:	b2aa 0020      	cmpl %a2@(32),%d1                           
   448e0:	6f00 0156      	blew 44a38 <rtems_termios_read+0x2a2>       
          break;                                                      
        if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME])      
   448e4:	4a00           	tstb %d0                                    
   448e6:	6798           	beqs 44880 <rtems_termios_read+0xea>        <== NEVER TAKEN
   448e8:	4a2a 0046      	tstb %a2@(70)                               
   448ec:	6792           	beqs 44880 <rtems_termios_read+0xea>        <== NEVER TAKEN
          then = rtems_clock_get_ticks_since_boot();                  
   448ee:	4e94           	jsr %a4@                                    
   448f0:	2400           	movel %d0,%d2                               
   448f2:	608c           	bras 44880 <rtems_termios_read+0xea>        
        if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF))               
             ==                (FL_MDXON | FL_ISNTXOF))               
            && ((tty->rawOutBufState == rob_idle)                     
          || (tty->flow_ctrl & FL_OSTOP))) {                          
          /* XON should be sent now... */                             
          (*tty->device.write)(                                       
   448f4:	2e0a           	movel %a2,%d7                               
static rtems_status_code                                              
fillBufferQueue (struct rtems_termios_tty *tty)                       
{                                                                     
  rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout;        
  rtems_status_code sc;                                               
  int               wait = (int)1;                                    
   448f6:	7401           	moveq #1,%d2                                
   448f8:	49fa fd7c      	lea %pc@(44676 <siproc>),%a4                
        if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF))               
             ==                (FL_MDXON | FL_ISNTXOF))               
            && ((tty->rawOutBufState == rob_idle)                     
          || (tty->flow_ctrl & FL_OSTOP))) {                          
          /* XON should be sent now... */                             
          (*tty->device.write)(                                       
   448fc:	0687 0000 0049 	addil #73,%d7                               
                                                                      
    /*                                                                
     * Wait for characters                                            
     */                                                               
    if ( wait ) {                                                     
      sc = rtems_semaphore_obtain(                                    
   44902:	2c3c 0004 5854 	movel #284756,%d6                           
 * Fill the input buffer from the raw input queue                     
 */                                                                   
static rtems_status_code                                              
fillBufferQueue (struct rtems_termios_tty *tty)                       
{                                                                     
  rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout;        
   44908:	2a2a 0074      	movel %a2@(116),%d5                         
   4490c:	6000 00e2      	braw 449f0 <rtems_termios_read+0x25a>       
    while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&              
                       (tty->ccount < (CBUFSIZE-1))) {                
      unsigned char c;                                                
      unsigned int newHead;                                           
                                                                      
      newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size;        
   44910:	2a2a 005c      	movel %a2@(92),%d5                          
   44914:	5285           	addql #1,%d5                                
   44916:	202a 0064      	movel %a2@(100),%d0                         
      c = tty->rawInBuf.theBuf[newHead];                              
   4491a:	206a 0058      	moveal %a2@(88),%a0                         
    while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&              
                       (tty->ccount < (CBUFSIZE-1))) {                
      unsigned char c;                                                
      unsigned int newHead;                                           
                                                                      
      newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size;        
   4491e:	4c40 5001      	remul %d0,%d1,%d5                           
      c = tty->rawInBuf.theBuf[newHead];                              
   44922:	1030 1800      	moveb %a0@(00000000,%d1:l),%d0              
      tty->rawInBuf.Head = newHead;                                   
   44926:	2541 005c      	movel %d1,%a2@(92)                          
                       (tty->ccount < (CBUFSIZE-1))) {                
      unsigned char c;                                                
      unsigned int newHead;                                           
                                                                      
      newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size;        
      c = tty->rawInBuf.theBuf[newHead];                              
   4492a:	1d40 ffff      	moveb %d0,%fp@(-1)                          
      tty->rawInBuf.Head = newHead;                                   
      if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size)             
   4492e:	202a 0060      	movel %a2@(96),%d0                          
   44932:	226a 0064      	moveal %a2@(100),%a1                        
   44936:	43f1 0800      	lea %a1@(00000000,%d0:l),%a1                
   4493a:	93c1           	subal %d1,%a1                               
          % tty->rawInBuf.Size)                                       
   4493c:	2a09           	movel %a1,%d5                               
   4493e:	206a 0064      	moveal %a2@(100),%a0                        
   44942:	2008           	movel %a0,%d0                               
   44944:	4c40 5001      	remul %d0,%d1,%d5                           
      unsigned int newHead;                                           
                                                                      
      newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size;        
      c = tty->rawInBuf.theBuf[newHead];                              
      tty->rawInBuf.Head = newHead;                                   
      if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size)             
   44948:	b2aa 00bc      	cmpl %a2@(188),%d1                          
   4494c:	646a           	bccs 449b8 <rtems_termios_read+0x222>       <== NEVER TAKEN
          % tty->rawInBuf.Size)                                       
         < tty->lowwater) {                                           
        tty->flow_ctrl &= ~FL_IREQXOF;                                
   4494e:	202a 00b8      	movel %a2@(184),%d0                         
   44952:	72fe           	moveq #-2,%d1                               
   44954:	c081           	andl %d1,%d0                                
   44956:	2540 00b8      	movel %d0,%a2@(184)                         
        /* if tx stopped and XON should be sent... */                 
        if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF))               
   4495a:	202a 00b8      	movel %a2@(184),%d0                         
   4495e:	0280 0000 0202 	andil #514,%d0                              
   44964:	0c80 0000 0202 	cmpil #514,%d0                              
   4496a:	6626           	bnes 44992 <rtems_termios_read+0x1fc>       <== ALWAYS TAKEN
             ==                (FL_MDXON | FL_ISNTXOF))               
            && ((tty->rawOutBufState == rob_idle)                     
   4496c:	4aaa 0094      	tstl %a2@(148)                              <== NOT EXECUTED
   44970:	670a           	beqs 4497c <rtems_termios_read+0x1e6>       <== NOT EXECUTED
          || (tty->flow_ctrl & FL_OSTOP))) {                          
   44972:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44976:	0800 0005      	btst #5,%d0                                 <== NOT EXECUTED
   4497a:	6716           	beqs 44992 <rtems_termios_read+0x1fc>       <== NOT EXECUTED
          /* XON should be sent now... */                             
          (*tty->device.write)(                                       
   4497c:	4878 0001      	pea 1 <ADD>                                 <== NOT EXECUTED
   44980:	2f07           	movel %d7,%sp@-                             <== NOT EXECUTED
   44982:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   44986:	206a 00a4      	moveal %a2@(164),%a0                        <== NOT EXECUTED
   4498a:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   4498c:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   44990:	6026           	bras 449b8 <rtems_termios_read+0x222>       <== NOT EXECUTED
            tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1);     
        } else if (tty->flow_ctrl & FL_MDRTS) {                       
   44992:	202a 00b8      	movel %a2@(184),%d0                         
   44996:	0800 0008      	btst #8,%d0                                 
   4499a:	671c           	beqs 449b8 <rtems_termios_read+0x222>       <== ALWAYS TAKEN
          tty->flow_ctrl &= ~FL_IRTSOFF;                              
   4499c:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   449a0:	7afb           	moveq #-5,%d5                               <== NOT EXECUTED
   449a2:	c085           	andl %d5,%d0                                <== NOT EXECUTED
          /* activate RTS line */                                     
          if (tty->device.startRemoteTx != NULL) {                    
   449a4:	206a 00b0      	moveal %a2@(176),%a0                        <== NOT EXECUTED
          || (tty->flow_ctrl & FL_OSTOP))) {                          
          /* XON should be sent now... */                             
          (*tty->device.write)(                                       
            tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1);     
        } else if (tty->flow_ctrl & FL_MDRTS) {                       
          tty->flow_ctrl &= ~FL_IRTSOFF;                              
   449a8:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
          /* activate RTS line */                                     
          if (tty->device.startRemoteTx != NULL) {                    
   449ac:	4a88           	tstl %a0                                    <== NOT EXECUTED
   449ae:	6708           	beqs 449b8 <rtems_termios_read+0x222>       <== NOT EXECUTED
            tty->device.startRemoteTx(tty->minor);                    
   449b0:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   449b4:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   449b6:	588f           	addql #4,%sp                                <== NOT EXECUTED
          }                                                           
        }                                                             
      }                                                               
                                                                      
      /* continue processing new character */                         
      if (tty->termios.c_lflag & ICANON) {                            
   449b8:	7002           	moveq #2,%d0                                
   449ba:	4285           	clrl %d5                                    
   449bc:	1a2e ffff      	moveb %fp@(-1),%d5                          
   449c0:	c0aa 003c      	andl %a2@(60),%d0                           
   449c4:	670e           	beqs 449d4 <rtems_termios_read+0x23e>       <== NEVER TAKEN
        if (siproc (c, tty))                                          
   449c6:	2f0a           	movel %a2,%sp@-                             
   449c8:	2f05           	movel %d5,%sp@-                             
   449ca:	4e94           	jsr %a4@                                    
   449cc:	508f           	addql #8,%sp                                
          wait = 0;                                                   
   449ce:	4a80           	tstl %d0                                    
   449d0:	57c0           	seq %d0                                     
   449d2:	6014           	bras 449e8 <rtems_termios_read+0x252>       
      } else {                                                        
        siproc (c, tty);                                              
   449d4:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   449d6:	2f05           	movel %d5,%sp@-                             <== NOT EXECUTED
   449d8:	4e94           	jsr %a4@                                    <== NOT EXECUTED
        if (tty->ccount >= tty->termios.c_cc[VMIN])                   
   449da:	508f           	addql #8,%sp                                <== NOT EXECUTED
   449dc:	4280           	clrl %d0                                    <== NOT EXECUTED
   449de:	102a 0047      	moveb %a2@(71),%d0                          <== NOT EXECUTED
          wait = 0;                                                   
   449e2:	b0aa 0020      	cmpl %a2@(32),%d0                           <== NOT EXECUTED
   449e6:	5ec0           	sgt %d0                                     <== NOT EXECUTED
   449e8:	49c0           	extbl %d0                                   
   449ea:	c480           	andl %d0,%d2                                
      }                                                               
      timeout = tty->rawInBufSemaphoreTimeout;                        
   449ec:	2a2a 0070      	movel %a2@(112),%d5                         
                                                                      
  while ( wait ) {                                                    
    /*                                                                
     * Process characters read from raw queue                         
     */                                                               
    while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&              
   449f0:	222a 005c      	movel %a2@(92),%d1                          
   449f4:	202a 0060      	movel %a2@(96),%d0                          
   449f8:	b081           	cmpl %d1,%d0                                
   449fa:	6710           	beqs 44a0c <rtems_termios_read+0x276>       
                       (tty->ccount < (CBUFSIZE-1))) {                
   449fc:	2039 0005 d234 	movel 5d234 <rtems_termios_cbufsize>,%d0    
   44a02:	5380           	subql #1,%d0                                
                                                                      
  while ( wait ) {                                                    
    /*                                                                
     * Process characters read from raw queue                         
     */                                                               
    while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&              
   44a04:	b0aa 0020      	cmpl %a2@(32),%d0                           
   44a08:	6e00 ff06      	bgtw 44910 <rtems_termios_read+0x17a>       
    }                                                                 
                                                                      
    /*                                                                
     * Wait for characters                                            
     */                                                               
    if ( wait ) {                                                     
   44a0c:	4a82           	tstl %d2                                    
   44a0e:	6728           	beqs 44a38 <rtems_termios_read+0x2a2>       
      sc = rtems_semaphore_obtain(                                    
   44a10:	2f05           	movel %d5,%sp@-                             
   44a12:	2f2a 006c      	movel %a2@(108),%sp@-                       
   44a16:	2046           	moveal %d6,%a0                              
   44a18:	2f2a 0068      	movel %a2@(104),%sp@-                       
   44a1c:	4e90           	jsr %a0@                                    
        tty->rawInBuf.Semaphore, tty->rawInBufSemaphoreOptions, timeout);
      if (sc != RTEMS_SUCCESSFUL)                                     
   44a1e:	4fef 000c      	lea %sp@(12),%sp                            
   44a22:	4a80           	tstl %d0                                    
   44a24:	67ca           	beqs 449f0 <rtems_termios_read+0x25a>       <== ALWAYS TAKEN
   44a26:	6010           	bras 44a38 <rtems_termios_read+0x2a2>       <== NOT EXECUTED
                                                                      
    if (sc != RTEMS_SUCCESSFUL)                                       
      tty->cindex = tty->ccount = 0;                                  
  }                                                                   
  while (count && (tty->cindex < tty->ccount)) {                      
    *buffer++ = tty->cbuf[tty->cindex++];                             
   44a28:	206a 001c      	moveal %a2@(28),%a0                         
    count--;                                                          
   44a2c:	5383           	subql #1,%d3                                
                                                                      
    if (sc != RTEMS_SUCCESSFUL)                                       
      tty->cindex = tty->ccount = 0;                                  
  }                                                                   
  while (count && (tty->cindex < tty->ccount)) {                      
    *buffer++ = tty->cbuf[tty->cindex++];                             
   44a2e:	1af0 0800      	moveb %a0@(00000000,%d0:l),%a5@+            
   44a32:	5280           	addql #1,%d0                                
   44a34:	2540 0024      	movel %d0,%a2@(36)                          
      sc = fillBufferQueue (tty);                                     
                                                                      
    if (sc != RTEMS_SUCCESSFUL)                                       
      tty->cindex = tty->ccount = 0;                                  
  }                                                                   
  while (count && (tty->cindex < tty->ccount)) {                      
   44a38:	4a83           	tstl %d3                                    
   44a3a:	670a           	beqs 44a46 <rtems_termios_read+0x2b0>       
   44a3c:	202a 0024      	movel %a2@(36),%d0                          
   44a40:	b0aa 0020      	cmpl %a2@(32),%d0                           
   44a44:	6de2           	blts 44a28 <rtems_termios_read+0x292>       
    *buffer++ = tty->cbuf[tty->cindex++];                             
    count--;                                                          
  }                                                                   
  args->bytes_moved = args->count - count;                            
   44a46:	202b 0010      	movel %a3@(16),%d0                          
   44a4a:	9083           	subl %d3,%d0                                
   44a4c:	2740 0018      	movel %d0,%a3@(24)                          
  tty->tty_rcvwakeup = 0;                                             
   44a50:	42aa 00e4      	clrl %a2@(228)                              
  rtems_semaphore_release (tty->isem);                                
   44a54:	2f2a 0014      	movel %a2@(20),%sp@-                        
   44a58:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
  return sc;                                                          
   44a5e:	588f           	addql #4,%sp                                
}                                                                     
   44a60:	2004           	movel %d4,%d0                               
   44a62:	4cee 3cfc ffd4 	moveml %fp@(-44),%d2-%d7/%a2-%a5            
   44a68:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00044d48 <rtems_termios_refill_transmitter>: * in task-driven mode, this function is called in Tx task context * in interrupt-driven mode, this function is called in TxIRQ context */ int rtems_termios_refill_transmitter (struct rtems_termios_tty *tty) {
   44d48:	4e56 fff4      	linkw %fp,#-12                              
   44d4c:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   44d50:	246e 0008      	moveal %fp@(8),%a2                          
  int nToSend;                                                        
  rtems_interrupt_level level;                                        
  int len;                                                            
                                                                      
  /* check for XOF/XON to send */                                     
  if ((tty->flow_ctrl & (FL_MDXOF | FL_IREQXOF | FL_ISNTXOF))         
   44d54:	202a 00b8      	movel %a2@(184),%d0                         
   44d58:	0280 0000 0403 	andil #1027,%d0                             
   44d5e:	0c80 0000 0401 	cmpil #1025,%d0                             
   44d64:	663c           	bnes 44da2 <rtems_termios_refill_transmitter+0x5a><== ALWAYS TAKEN
      == (FL_MDXOF | FL_IREQXOF)) {                                   
    /* XOFF should be sent now... */                                  
    (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTOP]), 1);
   44d66:	4878 0001      	pea 1 <ADD>                                 <== NOT EXECUTED
   44d6a:	486a 004a      	pea %a2@(74)                                <== NOT EXECUTED
   44d6e:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   44d72:	206a 00a4      	moveal %a2@(164),%a0                        <== NOT EXECUTED
   44d76:	4e90           	jsr %a0@                                    <== NOT EXECUTED
                                                                      
    rtems_interrupt_disable(level);                                   
   44d78:	203c 0000 0700 	movel #1792,%d0                             <== NOT EXECUTED
   44d7e:	40c1           	movew %sr,%d1                               <== NOT EXECUTED
   44d80:	8081           	orl %d1,%d0                                 <== NOT EXECUTED
   44d82:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
    tty->t_dqlen--;                                                   
    tty->flow_ctrl |= FL_ISNTXOF;                                     
   44d84:	7402           	moveq #2,%d2                                <== NOT EXECUTED
      == (FL_MDXOF | FL_IREQXOF)) {                                   
    /* XOFF should be sent now... */                                  
    (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTOP]), 1);
                                                                      
    rtems_interrupt_disable(level);                                   
    tty->t_dqlen--;                                                   
   44d86:	53aa 0090      	subql #1,%a2@(144)                          <== NOT EXECUTED
    tty->flow_ctrl |= FL_ISNTXOF;                                     
   44d8a:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44d8e:	8082           	orl %d2,%d0                                 <== NOT EXECUTED
   44d90:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
    rtems_interrupt_enable(level);                                    
   44d94:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
   44d96:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
                                                                      
    nToSend = 1;                                                      
   44d9a:	143c 0001      	moveb #1,%d2                                <== NOT EXECUTED
   44d9e:	6000 0150      	braw 44ef0 <rtems_termios_refill_transmitter+0x1a8><== NOT EXECUTED
                                                                      
  } else if ((tty->flow_ctrl & (FL_IREQXOF | FL_ISNTXOF)) == FL_ISNTXOF) {
   44da2:	202a 00b8      	movel %a2@(184),%d0                         
   44da6:	7203           	moveq #3,%d1                                
   44da8:	7402           	moveq #2,%d2                                
   44daa:	c081           	andl %d1,%d0                                
   44dac:	b480           	cmpl %d0,%d2                                
   44dae:	663a           	bnes 44dea <rtems_termios_refill_transmitter+0xa2><== ALWAYS TAKEN
     * FIXME: this .write call will generate another                  
     * dequeue callback. This will advance the "Tail" in the data     
     * buffer, although the corresponding data is not yet out!        
     * Therefore the dequeue "length" should be reduced by 1          
     */                                                               
    (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1);
   44db0:	4878 0001      	pea 1 <ADD>                                 <== NOT EXECUTED
   44db4:	486a 0049      	pea %a2@(73)                                <== NOT EXECUTED
   44db8:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   44dbc:	206a 00a4      	moveal %a2@(164),%a0                        <== NOT EXECUTED
   44dc0:	4e90           	jsr %a0@                                    <== NOT EXECUTED
                                                                      
    rtems_interrupt_disable(level);                                   
   44dc2:	203c 0000 0700 	movel #1792,%d0                             <== NOT EXECUTED
   44dc8:	40c1           	movew %sr,%d1                               <== NOT EXECUTED
   44dca:	8081           	orl %d1,%d0                                 <== NOT EXECUTED
   44dcc:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
    tty->t_dqlen--;                                                   
    tty->flow_ctrl &= ~FL_ISNTXOF;                                    
   44dce:	74fd           	moveq #-3,%d2                               <== NOT EXECUTED
     * Therefore the dequeue "length" should be reduced by 1          
     */                                                               
    (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1);
                                                                      
    rtems_interrupt_disable(level);                                   
    tty->t_dqlen--;                                                   
   44dd0:	53aa 0090      	subql #1,%a2@(144)                          <== NOT EXECUTED
    tty->flow_ctrl &= ~FL_ISNTXOF;                                    
   44dd4:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44dd8:	c082           	andl %d2,%d0                                <== NOT EXECUTED
   44dda:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
    rtems_interrupt_enable(level);                                    
   44dde:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
                                                                      
    nToSend = 1;                                                      
   44de0:	7401           	moveq #1,%d2                                <== NOT EXECUTED
    (*tty->device.write)(tty->minor, (void *)&(tty->termios.c_cc[VSTART]), 1);
                                                                      
    rtems_interrupt_disable(level);                                   
    tty->t_dqlen--;                                                   
    tty->flow_ctrl &= ~FL_ISNTXOF;                                    
    rtems_interrupt_enable(level);                                    
   44de2:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
   44de6:	6000 0108      	braw 44ef0 <rtems_termios_refill_transmitter+0x1a8><== NOT EXECUTED
                                                                      
    nToSend = 1;                                                      
  } else {                                                            
    if ( tty->rawOutBuf.Head == tty->rawOutBuf.Tail ) {               
   44dea:	222a 0080      	movel %a2@(128),%d1                         
   44dee:	202a 0084      	movel %a2@(132),%d0                         
   44df2:	b081           	cmpl %d1,%d0                                
   44df4:	661a           	bnes 44e10 <rtems_termios_refill_transmitter+0xc8>
      /*                                                              
       * buffer was empty                                             
       */                                                             
      if (tty->rawOutBufState == rob_wait) {                          
   44df6:	7002           	moveq #2,%d0                                
   44df8:	b0aa 0094      	cmpl %a2@(148),%d0                          
   44dfc:	6600 00f0      	bnew 44eee <rtems_termios_refill_transmitter+0x1a6>
        /*                                                            
         * this should never happen...                                
         */                                                           
        rtems_semaphore_release (tty->rawOutBuf.Semaphore);           
   44e00:	2f2a 008c      	movel %a2@(140),%sp@-                       <== NOT EXECUTED
   44e04:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         <== NOT EXECUTED
   44e0a:	588f           	addql #4,%sp                                <== NOT EXECUTED
   44e0c:	6000 00e0      	braw 44eee <rtems_termios_refill_transmitter+0x1a6><== NOT EXECUTED
      }                                                               
      return 0;                                                       
    }                                                                 
                                                                      
    rtems_interrupt_disable(level);                                   
   44e10:	203c 0000 0700 	movel #1792,%d0                             
   44e16:	40c1           	movew %sr,%d1                               
   44e18:	8081           	orl %d1,%d0                                 
   44e1a:	46c0           	movew %d0,%sr                               
    len = tty->t_dqlen;                                               
   44e1c:	206a 0090      	moveal %a2@(144),%a0                        
    tty->t_dqlen = 0;                                                 
   44e20:	42aa 0090      	clrl %a2@(144)                              
    rtems_interrupt_enable(level);                                    
   44e24:	46c1           	movew %d1,%sr                               
                                                                      
    newTail = (tty->rawOutBuf.Tail + len) % tty->rawOutBuf.Size;      
   44e26:	222a 0084      	movel %a2@(132),%d1                         
   44e2a:	d288           	addl %a0,%d1                                
   44e2c:	202a 0088      	movel %a2@(136),%d0                         
   44e30:	4c40 1003      	remul %d0,%d3,%d1                           
    tty->rawOutBuf.Tail = newTail;                                    
    if (tty->rawOutBufState == rob_wait) {                            
   44e34:	7202           	moveq #2,%d1                                
    len = tty->t_dqlen;                                               
    tty->t_dqlen = 0;                                                 
    rtems_interrupt_enable(level);                                    
                                                                      
    newTail = (tty->rawOutBuf.Tail + len) % tty->rawOutBuf.Size;      
    tty->rawOutBuf.Tail = newTail;                                    
   44e36:	2543 0084      	movel %d3,%a2@(132)                         
    if (tty->rawOutBufState == rob_wait) {                            
   44e3a:	b2aa 0094      	cmpl %a2@(148),%d1                          
   44e3e:	660c           	bnes 44e4c <rtems_termios_refill_transmitter+0x104>
      /*                                                              
       * wake up any pending writer task                              
       */                                                             
      rtems_semaphore_release (tty->rawOutBuf.Semaphore);             
   44e40:	2f2a 008c      	movel %a2@(140),%sp@-                       
   44e44:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
   44e4a:	588f           	addql #4,%sp                                
    }                                                                 
                                                                      
    if (newTail == tty->rawOutBuf.Head) {                             
   44e4c:	202a 0080      	movel %a2@(128),%d0                         
   44e50:	b083           	cmpl %d3,%d0                                
   44e52:	661c           	bnes 44e70 <rtems_termios_refill_transmitter+0x128>
      nToSend = 0;                                                    
                                                                      
      /*                                                              
       * check to see if snd wakeup callback was set                  
       */                                                             
      if ( tty->tty_snd.sw_pfn != NULL) {                             
   44e54:	206a 00d4      	moveal %a2@(212),%a0                        
                                                                      
    if (newTail == tty->rawOutBuf.Head) {                             
      /*                                                              
       * Buffer has become empty                                      
       */                                                             
      tty->rawOutBufState = rob_idle;                                 
   44e58:	42aa 0094      	clrl %a2@(148)                              
      nToSend = 0;                                                    
                                                                      
      /*                                                              
       * check to see if snd wakeup callback was set                  
       */                                                             
      if ( tty->tty_snd.sw_pfn != NULL) {                             
   44e5c:	4a88           	tstl %a0                                    
   44e5e:	6700 0086      	beqw 44ee6 <rtems_termios_refill_transmitter+0x19e>
        (*tty->tty_snd.sw_pfn)(&tty->termios, tty->tty_snd.sw_arg);   
   44e62:	2f2a 00d8      	movel %a2@(216),%sp@-                       <== NOT EXECUTED
   44e66:	486a 0030      	pea %a2@(48)                                <== NOT EXECUTED
   44e6a:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   44e6c:	508f           	addql #8,%sp                                <== NOT EXECUTED
   44e6e:	6076           	bras 44ee6 <rtems_termios_refill_transmitter+0x19e><== NOT EXECUTED
      }                                                               
    }                                                                 
    /* check, whether output should stop due to received XOFF */      
    else if ((tty->flow_ctrl & (FL_MDXON | FL_ORCVXOF))               
   44e70:	202a 00b8      	movel %a2@(184),%d0                         
   44e74:	0280 0000 0210 	andil #528,%d0                              
   44e7a:	0c80 0000 0210 	cmpil #528,%d0                              
   44e80:	6622           	bnes 44ea4 <rtems_termios_refill_transmitter+0x15c><== ALWAYS TAKEN
       ==                (FL_MDXON | FL_ORCVXOF)) {                   
      /* Buffer not empty, but output stops due to XOFF */            
      /* set flag, that output has been stopped */                    
      rtems_interrupt_disable(level);                                 
   44e82:	303c 0700      	movew #1792,%d0                             <== NOT EXECUTED
   44e86:	40c1           	movew %sr,%d1                               <== NOT EXECUTED
   44e88:	8081           	orl %d1,%d0                                 <== NOT EXECUTED
   44e8a:	46c0           	movew %d0,%sr                               <== NOT EXECUTED
      tty->flow_ctrl |= FL_OSTOP;                                     
   44e8c:	202a 00b8      	movel %a2@(184),%d0                         <== NOT EXECUTED
   44e90:	7420           	moveq #32,%d2                               <== NOT EXECUTED
   44e92:	8082           	orl %d2,%d0                                 <== NOT EXECUTED
   44e94:	2540 00b8      	movel %d0,%a2@(184)                         <== NOT EXECUTED
      tty->rawOutBufState = rob_busy; /*apm*/                         
   44e98:	7001           	moveq #1,%d0                                <== NOT EXECUTED
   44e9a:	2540 0094      	movel %d0,%a2@(148)                         <== NOT EXECUTED
      rtems_interrupt_enable(level);                                  
   44e9e:	46c1           	movew %d1,%sr                               <== NOT EXECUTED
      nToSend = 0;                                                    
   44ea0:	4202           	clrb %d2                                    <== NOT EXECUTED
   44ea2:	6044           	bras 44ee8 <rtems_termios_refill_transmitter+0x1a0><== NOT EXECUTED
    } else {                                                          
      /*                                                              
       * Buffer not empty, start tranmitter                           
       */                                                             
      if (newTail > tty->rawOutBuf.Head)                              
   44ea4:	202a 0080      	movel %a2@(128),%d0                         
   44ea8:	b083           	cmpl %d3,%d0                                
   44eaa:	6406           	bccs 44eb2 <rtems_termios_refill_transmitter+0x16a>
        nToSend = tty->rawOutBuf.Size - newTail;                      
   44eac:	242a 0088      	movel %a2@(136),%d2                         
   44eb0:	6004           	bras 44eb6 <rtems_termios_refill_transmitter+0x16e>
      else                                                            
        nToSend = tty->rawOutBuf.Head - newTail;                      
   44eb2:	242a 0080      	movel %a2@(128),%d2                         
      /* when flow control XON or XOF, don't send blocks of data     */
      /* to allow fast reaction on incoming flow ctrl and low latency*/
      /* for outgoing flow control                                   */
      if (tty->flow_ctrl & (FL_MDXON | FL_MDXOF)) {                   
   44eb6:	202a 00b8      	movel %a2@(184),%d0                         
       * Buffer not empty, start tranmitter                           
       */                                                             
      if (newTail > tty->rawOutBuf.Head)                              
        nToSend = tty->rawOutBuf.Size - newTail;                      
      else                                                            
        nToSend = tty->rawOutBuf.Head - newTail;                      
   44eba:	9483           	subl %d3,%d2                                
      /* when flow control XON or XOF, don't send blocks of data     */
      /* to allow fast reaction on incoming flow ctrl and low latency*/
      /* for outgoing flow control                                   */
      if (tty->flow_ctrl & (FL_MDXON | FL_MDXOF)) {                   
   44ebc:	0280 0000 0600 	andil #1536,%d0                             
   44ec2:	6702           	beqs 44ec6 <rtems_termios_refill_transmitter+0x17e>
        nToSend = 1;                                                  
   44ec4:	7401           	moveq #1,%d2                                
      }                                                               
      tty->rawOutBufState = rob_busy; /*apm*/                         
   44ec6:	7201           	moveq #1,%d1                                
   44ec8:	2541 0094      	movel %d1,%a2@(148)                         
      (*tty->device.write)(                                           
   44ecc:	2f02           	movel %d2,%sp@-                             
   44ece:	202a 007c      	movel %a2@(124),%d0                         
   44ed2:	d083           	addl %d3,%d0                                
   44ed4:	2f00           	movel %d0,%sp@-                             
   44ed6:	2f2a 0010      	movel %a2@(16),%sp@-                        
   44eda:	206a 00a4      	moveal %a2@(164),%a0                        
   44ede:	4e90           	jsr %a0@                                    
   44ee0:	4fef 000c      	lea %sp@(12),%sp                            
   44ee4:	6002           	bras 44ee8 <rtems_termios_refill_transmitter+0x1a0>
    if (newTail == tty->rawOutBuf.Head) {                             
      /*                                                              
       * Buffer has become empty                                      
       */                                                             
      tty->rawOutBufState = rob_idle;                                 
      nToSend = 0;                                                    
   44ee6:	4282           	clrl %d2                                    
      }                                                               
      tty->rawOutBufState = rob_busy; /*apm*/                         
      (*tty->device.write)(                                           
        tty->minor, &tty->rawOutBuf.theBuf[newTail], nToSend);        
    }                                                                 
    tty->rawOutBuf.Tail = newTail; /*apm*/                            
   44ee8:	2543 0084      	movel %d3,%a2@(132)                         
   44eec:	6002           	bras 44ef0 <rtems_termios_refill_transmitter+0x1a8>
        /*                                                            
         * this should never happen...                                
         */                                                           
        rtems_semaphore_release (tty->rawOutBuf.Semaphore);           
      }                                                               
      return 0;                                                       
   44eee:	4282           	clrl %d2                                    
        tty->minor, &tty->rawOutBuf.theBuf[newTail], nToSend);        
    }                                                                 
    tty->rawOutBuf.Tail = newTail; /*apm*/                            
  }                                                                   
  return nToSend;                                                     
}                                                                     
   44ef0:	2002           	movel %d2,%d0                               
   44ef2:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   44ef8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00044cd8 <rtems_termios_rxdaemon>: /* * this task actually processes any receive events */ static rtems_task rtems_termios_rxdaemon(rtems_task_argument argument) {
   44cd8:	4e56 ffe0      	linkw %fp,#-32                              
   44cdc:	48d7 3c0c      	moveml %d2-%d3/%a2-%a5,%sp@                 
                                                                      
  while (1) {                                                         
    /*                                                                
     * wait for rtems event                                           
     */                                                               
    rtems_event_receive(                                              
   44ce0:	260e           	movel %fp,%d3                               
    if (c != EOF) {                                                   
      /*                                                              
       * pollRead did call enqueue on its own                         
       */                                                             
      c_buf = c;                                                      
      rtems_termios_enqueue_raw_characters ( tty,&c_buf,1);           
   44ce2:	240e           	movel %fp,%d2                               
                                                                      
  while (1) {                                                         
    /*                                                                
     * wait for rtems event                                           
     */                                                               
    rtems_event_receive(                                              
   44ce4:	5d83           	subql #6,%d3                                
   44ce6:	4bf9 0004 52a0 	lea 452a0 <rtems_event_receive>,%a5         
      RTEMS_NO_TIMEOUT,                                               
      &the_event                                                      
    );                                                                
    if ((the_event & TERMIOS_RX_TERMINATE_EVENT) != 0) {              
      tty->rxTaskId = 0;                                              
      rtems_task_delete(RTEMS_SELF);                                  
   44cec:	49f9 0004 5b30 	lea 45b30 <rtems_task_delete>,%a4           
    if (c != EOF) {                                                   
      /*                                                              
       * pollRead did call enqueue on its own                         
       */                                                             
      c_buf = c;                                                      
      rtems_termios_enqueue_raw_characters ( tty,&c_buf,1);           
   44cf2:	5382           	subql #1,%d2                                
   44cf4:	47f9 0004 4a88 	lea 44a88 <rtems_termios_enqueue_raw_characters>,%a3
                                                                      
/*                                                                    
 * this task actually processes any receive events                    
 */                                                                   
static rtems_task rtems_termios_rxdaemon(rtems_task_argument argument)
{                                                                     
   44cfa:	246e 0008      	moveal %fp@(8),%a2                          
                                                                      
  while (1) {                                                         
    /*                                                                
     * wait for rtems event                                           
     */                                                               
    rtems_event_receive(                                              
   44cfe:	2f03           	movel %d3,%sp@-                             
   44d00:	42a7           	clrl %sp@-                                  
   44d02:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   44d06:	4878 0003      	pea 3 <DIVIDE>                              
   44d0a:	4e95           	jsr %a5@                                    
      (TERMIOS_RX_PROC_EVENT | TERMIOS_RX_TERMINATE_EVENT),           
      RTEMS_EVENT_ANY | RTEMS_WAIT,                                   
      RTEMS_NO_TIMEOUT,                                               
      &the_event                                                      
    );                                                                
    if ((the_event & TERMIOS_RX_TERMINATE_EVENT) != 0) {              
   44d0c:	4fef 0010      	lea %sp@(16),%sp                            
   44d10:	7001           	moveq #1,%d0                                
   44d12:	c0ae fffa      	andl %fp@(-6),%d0                           
   44d16:	670a           	beqs 44d22 <rtems_termios_rxdaemon+0x4a>    <== ALWAYS TAKEN
      tty->rxTaskId = 0;                                              
   44d18:	42aa 00c4      	clrl %a2@(196)                              <== NOT EXECUTED
      rtems_task_delete(RTEMS_SELF);                                  
   44d1c:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   44d1e:	4e94           	jsr %a4@                                    <== NOT EXECUTED
   44d20:	588f           	addql #4,%sp                                <== NOT EXECUTED
    }                                                                 
                                                                      
    /*                                                                
     * do something                                                   
     */                                                               
    c = tty->device.pollRead(tty->minor);                             
   44d22:	2f2a 0010      	movel %a2@(16),%sp@-                        
   44d26:	206a 00a0      	moveal %a2@(160),%a0                        
   44d2a:	4e90           	jsr %a0@                                    
    if (c != EOF) {                                                   
   44d2c:	588f           	addql #4,%sp                                
   44d2e:	72ff           	moveq #-1,%d1                               
   44d30:	b280           	cmpl %d0,%d1                                
   44d32:	67ca           	beqs 44cfe <rtems_termios_rxdaemon+0x26>    
      /*                                                              
       * pollRead did call enqueue on its own                         
       */                                                             
      c_buf = c;                                                      
      rtems_termios_enqueue_raw_characters ( tty,&c_buf,1);           
   44d34:	4878 0001      	pea 1 <ADD>                                 
    c = tty->device.pollRead(tty->minor);                             
    if (c != EOF) {                                                   
      /*                                                              
       * pollRead did call enqueue on its own                         
       */                                                             
      c_buf = c;                                                      
   44d38:	1d40 ffff      	moveb %d0,%fp@(-1)                          
      rtems_termios_enqueue_raw_characters ( tty,&c_buf,1);           
   44d3c:	2f02           	movel %d2,%sp@-                             
   44d3e:	2f0a           	movel %a2,%sp@-                             
   44d40:	4e93           	jsr %a3@                                    
   44d42:	4fef 000c      	lea %sp@(12),%sp                            
   44d46:	60b6           	bras 44cfe <rtems_termios_rxdaemon+0x26>    
                                                                      

00044efc <rtems_termios_txdaemon>: /* * this task actually processes any transmit events */ static rtems_task rtems_termios_txdaemon(rtems_task_argument argument) {
   44efc:	4e56 ffe8      	linkw %fp,#-24                              
   44f00:	48d7 3c04      	moveml %d2/%a2-%a5,%sp@                     
                                                                      
  while (1) {                                                         
    /*                                                                
     * wait for rtems event                                           
     */                                                               
    rtems_event_receive(                                              
   44f04:	240e           	movel %fp,%d2                               
   44f06:	5982           	subql #4,%d2                                
   44f08:	4bf9 0004 52a0 	lea 452a0 <rtems_event_receive>,%a5         
       RTEMS_NO_TIMEOUT,                                              
       &the_event                                                     
    );                                                                
    if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) {              
      tty->txTaskId = 0;                                              
      rtems_task_delete(RTEMS_SELF);                                  
   44f0e:	49f9 0004 5b30 	lea 45b30 <rtems_task_delete>,%a4           
    }                                                                 
                                                                      
    /*                                                                
     * try to push further characters to device                       
     */                                                               
    rtems_termios_refill_transmitter(tty);                            
   44f14:	47f9 0004 4d48 	lea 44d48 <rtems_termios_refill_transmitter>,%a3
                                                                      
/*                                                                    
 * this task actually processes any transmit events                   
 */                                                                   
static rtems_task rtems_termios_txdaemon(rtems_task_argument argument)
{                                                                     
   44f1a:	246e 0008      	moveal %fp@(8),%a2                          
                                                                      
  while (1) {                                                         
    /*                                                                
     * wait for rtems event                                           
     */                                                               
    rtems_event_receive(                                              
   44f1e:	2f02           	movel %d2,%sp@-                             
   44f20:	42a7           	clrl %sp@-                                  
   44f22:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   44f26:	4878 0003      	pea 3 <DIVIDE>                              
   44f2a:	4e95           	jsr %a5@                                    
       (TERMIOS_TX_START_EVENT | TERMIOS_TX_TERMINATE_EVENT),         
       RTEMS_EVENT_ANY | RTEMS_WAIT,                                  
       RTEMS_NO_TIMEOUT,                                              
       &the_event                                                     
    );                                                                
    if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) {              
   44f2c:	4fef 0010      	lea %sp@(16),%sp                            
   44f30:	7001           	moveq #1,%d0                                
   44f32:	c0ae fffc      	andl %fp@(-4),%d0                           
   44f36:	670a           	beqs 44f42 <rtems_termios_txdaemon+0x46>    <== ALWAYS TAKEN
      tty->txTaskId = 0;                                              
   44f38:	42aa 00c8      	clrl %a2@(200)                              <== NOT EXECUTED
      rtems_task_delete(RTEMS_SELF);                                  
   44f3c:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   44f3e:	4e94           	jsr %a4@                                    <== NOT EXECUTED
   44f40:	588f           	addql #4,%sp                                <== NOT EXECUTED
    }                                                                 
                                                                      
    /*                                                                
     * call any line discipline start function                        
     */                                                               
    if (rtems_termios_linesw[tty->t_line].l_start != NULL) {          
   44f42:	202a 00cc      	movel %a2@(204),%d0                         
   44f46:	eb88           	lsll #5,%d0                                 
   44f48:	0680 0005 e090 	addil #385168,%d0                           
   44f4e:	2240           	moveal %d0,%a1                              
   44f50:	2051           	moveal %a1@,%a0                             
   44f52:	4a88           	tstl %a0                                    
   44f54:	6706           	beqs 44f5c <rtems_termios_txdaemon+0x60>    <== ALWAYS TAKEN
      rtems_termios_linesw[tty->t_line].l_start(tty);                 
   44f56:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   44f58:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   44f5a:	588f           	addql #4,%sp                                <== NOT EXECUTED
    }                                                                 
                                                                      
    /*                                                                
     * try to push further characters to device                       
     */                                                               
    rtems_termios_refill_transmitter(tty);                            
   44f5c:	2f0a           	movel %a2,%sp@-                             
   44f5e:	4e93           	jsr %a3@                                    
  }                                                                   
   44f60:	588f           	addql #4,%sp                                
   44f62:	60ba           	bras 44f1e <rtems_termios_txdaemon+0x22>    
                                                                      

000446de <rtems_termios_write>: rtems_termios_puts (&c, 1, tty); } rtems_status_code rtems_termios_write (void *arg) {
   446de:	4e56 ffe8      	linkw %fp,#-24                              
   446e2:	48d7 3c0c      	moveml %d2-%d3/%a2-%a5,%sp@                 
   446e6:	246e 0008      	moveal %fp@(8),%a2                          
  rtems_libio_rw_args_t *args = arg;                                  
  struct rtems_termios_tty *tty = args->iop->data1;                   
   446ea:	2052           	moveal %a2@,%a0                             
   446ec:	2668 0034      	moveal %a0@(52),%a3                         
  rtems_status_code sc;                                               
                                                                      
  sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   446f0:	42a7           	clrl %sp@-                                  
   446f2:	42a7           	clrl %sp@-                                  
   446f4:	2f2b 0018      	movel %a3@(24),%sp@-                        
   446f8:	4eb9 0004 5854 	jsr 45854 <rtems_semaphore_obtain>          
  if (sc != RTEMS_SUCCESSFUL)                                         
   446fe:	4fef 000c      	lea %sp@(12),%sp                            
{                                                                     
  rtems_libio_rw_args_t *args = arg;                                  
  struct rtems_termios_tty *tty = args->iop->data1;                   
  rtems_status_code sc;                                               
                                                                      
  sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
   44702:	2400           	movel %d0,%d2                               
  if (sc != RTEMS_SUCCESSFUL)                                         
   44704:	6600 0084      	bnew 4478a <rtems_termios_write+0xac>       
    return sc;                                                        
  if (rtems_termios_linesw[tty->t_line].l_write != NULL) {            
   44708:	202b 00cc      	movel %a3@(204),%d0                         
   4470c:	eb88           	lsll #5,%d0                                 
   4470e:	0680 0005 e088 	addil #385160,%d0                           
   44714:	2240           	moveal %d0,%a1                              
   44716:	2051           	moveal %a1@,%a0                             
   44718:	4a88           	tstl %a0                                    
   4471a:	6718           	beqs 44734 <rtems_termios_write+0x56>       
    sc = rtems_termios_linesw[tty->t_line].l_write(tty,args);         
   4471c:	2f0a           	movel %a2,%sp@-                             
   4471e:	2f0b           	movel %a3,%sp@-                             
   44720:	4e90           	jsr %a0@                                    
    rtems_semaphore_release (tty->osem);                              
   44722:	2f2b 0018      	movel %a3@(24),%sp@-                        
                                                                      
  sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
  if (sc != RTEMS_SUCCESSFUL)                                         
    return sc;                                                        
  if (rtems_termios_linesw[tty->t_line].l_write != NULL) {            
    sc = rtems_termios_linesw[tty->t_line].l_write(tty,args);         
   44726:	2400           	movel %d0,%d2                               
    rtems_semaphore_release (tty->osem);                              
   44728:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
    return sc;                                                        
   4472e:	4fef 000c      	lea %sp@(12),%sp                            
   44732:	6056           	bras 4478a <rtems_termios_write+0xac>       
  }                                                                   
  if (tty->termios.c_oflag & OPOST) {                                 
   44734:	7001           	moveq #1,%d0                                
   44736:	c0ab 0034      	andl %a3@(52),%d0                           
   4473a:	6728           	beqs 44764 <rtems_termios_write+0x86>       <== NEVER TAKEN
    uint32_t   count = args->count;                                   
   4473c:	262a 0010      	movel %a2@(16),%d3                          
    char      *buffer = args->buffer;                                 
    while (count--)                                                   
      oproc (*buffer++, tty);                                         
   44740:	4bfa fa68      	lea %pc@(441aa <oproc>),%a5                 
    rtems_semaphore_release (tty->osem);                              
    return sc;                                                        
  }                                                                   
  if (tty->termios.c_oflag & OPOST) {                                 
    uint32_t   count = args->count;                                   
    char      *buffer = args->buffer;                                 
   44744:	286a 000c      	moveal %a2@(12),%a4                         
    while (count--)                                                   
   44748:	600e           	bras 44758 <rtems_termios_write+0x7a>       
      oproc (*buffer++, tty);                                         
   4474a:	4280           	clrl %d0                                    
   4474c:	101c           	moveb %a4@+,%d0                             
   4474e:	5383           	subql #1,%d3                                
   44750:	2f0b           	movel %a3,%sp@-                             
   44752:	2f00           	movel %d0,%sp@-                             
   44754:	4e95           	jsr %a5@                                    
   44756:	508f           	addql #8,%sp                                
    return sc;                                                        
  }                                                                   
  if (tty->termios.c_oflag & OPOST) {                                 
    uint32_t   count = args->count;                                   
    char      *buffer = args->buffer;                                 
    while (count--)                                                   
   44758:	4a83           	tstl %d3                                    
   4475a:	66ee           	bnes 4474a <rtems_termios_write+0x6c>       
      oproc (*buffer++, tty);                                         
    args->bytes_moved = args->count;                                  
   4475c:	256a 0010 0018 	movel %a2@(16),%a2@(24)                     
   44762:	601a           	bras 4477e <rtems_termios_write+0xa0>       
  } else {                                                            
    rtems_termios_puts (args->buffer, args->count, tty);              
   44764:	2f0b           	movel %a3,%sp@-                             <== NOT EXECUTED
   44766:	2f2a 0010      	movel %a2@(16),%sp@-                        <== NOT EXECUTED
   4476a:	2f2a 000c      	movel %a2@(12),%sp@-                        <== NOT EXECUTED
   4476e:	4eb9 0004 40b2 	jsr 440b2 <rtems_termios_puts>              <== NOT EXECUTED
    args->bytes_moved = args->count;                                  
   44774:	256a 0010 0018 	movel %a2@(16),%a2@(24)                     <== NOT EXECUTED
   4477a:	4fef 000c      	lea %sp@(12),%sp                            <== NOT EXECUTED
  }                                                                   
  rtems_semaphore_release (tty->osem);                                
   4477e:	2f2b 0018      	movel %a3@(24),%sp@-                        
   44782:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
  return sc;                                                          
   44788:	588f           	addql #4,%sp                                
}                                                                     
   4478a:	2002           	movel %d2,%d0                               
   4478c:	4cee 3c0c ffe8 	moveml %fp@(-24),%d2-%d3/%a2-%a5            
   44792:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00051c5c <rtems_timer_cancel>: */ rtems_status_code rtems_timer_cancel( rtems_id id ) {
   51c5c:	4e56 fffc      	linkw %fp,#-4                               
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
   51c60:	486e fffc      	pea %fp@(-4)                                
   51c64:	2f2e 0008      	movel %fp@(8),%sp@-                         
   51c68:	4879 0007 7d9e 	pea 77d9e <_Timer_Information>              
   51c6e:	4eb9 0005 46c4 	jsr 546c4 <_Objects_Get>                    
  Timer_Control   *the_timer;                                         
  Objects_Locations       location;                                   
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   51c74:	4fef 000c      	lea %sp@(12),%sp                            
   51c78:	4aae fffc      	tstl %fp@(-4)                               
   51c7c:	6620           	bnes 51c9e <rtems_timer_cancel+0x42>        
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Timer_Is_dormant_class( the_timer->the_class ) )         
   51c7e:	7204           	moveq #4,%d1                                
   51c80:	2040           	moveal %d0,%a0                              
   51c82:	b2a8 0038      	cmpl %a0@(56),%d1                           
   51c86:	670c           	beqs 51c94 <rtems_timer_cancel+0x38>        <== NEVER TAKEN
        (void) _Watchdog_Remove( &the_timer->Ticker );                
   51c88:	4868 0010      	pea %a0@(16)                                
   51c8c:	4eb9 0005 6260 	jsr 56260 <_Watchdog_Remove>                
   51c92:	588f           	addql #4,%sp                                
      _Thread_Enable_dispatch();                                      
   51c94:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   51c9a:	4280           	clrl %d0                                    
   51c9c:	6002           	bras 51ca0 <rtems_timer_cancel+0x44>        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   51c9e:	7004           	moveq #4,%d0                                
}                                                                     
   51ca0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00051f98 <rtems_timer_reset>: */ rtems_status_code rtems_timer_reset( rtems_id id ) {
   51f98:	4e56 fffc      	linkw %fp,#-4                               
   51f9c:	2f0b           	movel %a3,%sp@-                             
   51f9e:	2f0a           	movel %a2,%sp@-                             
   51fa0:	486e fffc      	pea %fp@(-4)                                
   51fa4:	2f2e 0008      	movel %fp@(8),%sp@-                         
   51fa8:	4879 0007 7d9e 	pea 77d9e <_Timer_Information>              
   51fae:	4eb9 0005 46c4 	jsr 546c4 <_Objects_Get>                    
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   51fb4:	4fef 000c      	lea %sp@(12),%sp                            
   51fb8:	2440           	moveal %d0,%a2                              
   51fba:	4aae fffc      	tstl %fp@(-4)                               
   51fbe:	6656           	bnes 52016 <rtems_timer_reset+0x7e>         <== NEVER TAKEN
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
   51fc0:	202a 0038      	movel %a2@(56),%d0                          
   51fc4:	661c           	bnes 51fe2 <rtems_timer_reset+0x4a>         
        _Watchdog_Remove( &the_timer->Ticker );                       
   51fc6:	45ea 0010      	lea %a2@(16),%a2                            
   51fca:	2f0a           	movel %a2,%sp@-                             
   51fcc:	4eb9 0005 6260 	jsr 56260 <_Watchdog_Remove>                
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
   51fd2:	2f0a           	movel %a2,%sp@-                             
   51fd4:	4879 0007 75dc 	pea 775dc <_Watchdog_Ticks_chain>           
   51fda:	4eb9 0005 6138 	jsr 56138 <_Watchdog_Insert>                
   51fe0:	6020           	bras 52002 <rtems_timer_reset+0x6a>         
      } else if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) {  
   51fe2:	7201           	moveq #1,%d1                                
   51fe4:	b280           	cmpl %d0,%d1                                
   51fe6:	6622           	bnes 5200a <rtems_timer_reset+0x72>         <== NEVER TAKEN
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
   51fe8:	486a 0010      	pea %a2@(16)                                
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
        _Watchdog_Remove( &the_timer->Ticker );                       
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
      } else if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) {  
        Timer_server_Control *timer_server = _Timer_server;           
   51fec:	2679 0007 7dd8 	moveal 77dd8 <_Timer_server>,%a3            
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
   51ff2:	4eb9 0005 6260 	jsr 56260 <_Watchdog_Remove>                
        (*timer_server->schedule_operation)( timer_server, the_timer );
   51ff8:	2f0a           	movel %a2,%sp@-                             
   51ffa:	2f0b           	movel %a3,%sp@-                             
   51ffc:	206b 0004      	moveal %a3@(4),%a0                          
   52000:	4e90           	jsr %a0@                                    
   52002:	4fef 000c      	lea %sp@(12),%sp                            
  rtems_id id                                                         
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
   52006:	95ca           	subal %a2,%a2                               
   52008:	6004           	bras 5200e <rtems_timer_reset+0x76>         
        /*                                                            
         *  Must be dormant or time of day timer (e.g. TIMER_DORMANT, 
         *  TIMER_TIME_OF_DAY, or TIMER_TIME_OF_DAY_ON_TASK).  We     
         *  can only reset active interval timers.                    
         */                                                           
        status = RTEMS_NOT_DEFINED;                                   
   5200a:	347c 000b      	moveaw #11,%a2                              
      }                                                               
      _Thread_Enable_dispatch();                                      
   5200e:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
      return status;                                                  
   52014:	6004           	bras 5201a <rtems_timer_reset+0x82>         
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   52016:	347c 0004      	moveaw #4,%a2                               
}                                                                     
   5201a:	200a           	movel %a2,%d0                               
   5201c:	246e fff4      	moveal %fp@(-12),%a2                        
   52020:	266e fff8      	moveal %fp@(-8),%a3                         
   52024:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000520e4 <rtems_timer_server_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
   520e4:	4e56 ffe8      	linkw %fp,#-24                              
   520e8:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   520ec:	262e 0008      	movel %fp@(8),%d3                           
   520f0:	242e 000c      	movel %fp@(12),%d2                          
   520f4:	282e 0010      	movel %fp@(16),%d4                          
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
   520f8:	2679 0007 7dd8 	moveal 77dd8 <_Timer_server>,%a3            
                                                                      
  if ( !timer_server )                                                
   520fe:	4a8b           	tstl %a3                                    
   52100:	6700 0098      	beqw 5219a <rtems_timer_server_fire_when+0xb6>
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
   52104:	4a39 0007 752c 	tstb 7752c <_TOD_Is_set>                    
   5210a:	6700 0092      	beqw 5219e <rtems_timer_server_fire_when+0xba>
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
   5210e:	4a84           	tstl %d4                                    
   52110:	6700 0090      	beqw 521a2 <rtems_timer_server_fire_when+0xbe>
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
   52114:	2f02           	movel %d2,%sp@-                             
   52116:	4eb9 0004 f5a4 	jsr 4f5a4 <_TOD_Validate>                   
   5211c:	588f           	addql #4,%sp                                
   5211e:	4a00           	tstb %d0                                    
   52120:	6700 0084      	beqw 521a6 <rtems_timer_server_fire_when+0xc2>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   52124:	2f02           	movel %d2,%sp@-                             
   52126:	4eb9 0004 f508 	jsr 4f508 <_TOD_To_seconds>                 
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   5212c:	588f           	addql #4,%sp                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
   5212e:	2400           	movel %d0,%d2                               
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
   52130:	b0b9 0007 75a6 	cmpl 775a6 <_TOD_Now>,%d0                   
   52136:	636e           	blss 521a6 <rtems_timer_server_fire_when+0xc2>
   52138:	486e fffc      	pea %fp@(-4)                                
   5213c:	2f03           	movel %d3,%sp@-                             
   5213e:	4879 0007 7d9e 	pea 77d9e <_Timer_Information>              
   52144:	4eb9 0005 46c4 	jsr 546c4 <_Objects_Get>                    
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   5214a:	4fef 000c      	lea %sp@(12),%sp                            
   5214e:	2440           	moveal %d0,%a2                              
   52150:	4aae fffc      	tstl %fp@(-4)                               
   52154:	6654           	bnes 521aa <rtems_timer_server_fire_when+0xc6>
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
   52156:	486a 0010      	pea %a2@(16)                                
   5215a:	4eb9 0005 6260 	jsr 56260 <_Watchdog_Remove>                
  the_watchdog->user_data = user_data;                                
   52160:	256e 0014 0034 	movel %fp@(20),%a2@(52)                     
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   52166:	94b9 0007 75a6 	subl 775a6 <_TOD_Now>,%d2                   
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
   5216c:	7003           	moveq #3,%d0                                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   5216e:	42aa 0018      	clrl %a2@(24)                               
   52172:	2540 0038      	movel %d0,%a2@(56)                          
  the_watchdog->routine   = routine;                                  
   52176:	2544 002c      	movel %d4,%a2@(44)                          
  the_watchdog->id        = id;                                       
   5217a:	2543 0030      	movel %d3,%a2@(48)                          
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
   5217e:	2542 001c      	movel %d2,%a2@(28)                          
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
   52182:	2f0a           	movel %a2,%sp@-                             
   52184:	2f0b           	movel %a3,%sp@-                             
   52186:	206b 0004      	moveal %a3@(4),%a0                          
   5218a:	4e90           	jsr %a0@                                    
                                                                      
      _Thread_Enable_dispatch();                                      
   5218c:	4eb9 0005 526e 	jsr 5526e <_Thread_Enable_dispatch>         
      return RTEMS_SUCCESSFUL;                                        
   52192:	4fef 000c      	lea %sp@(12),%sp                            
   52196:	4280           	clrl %d0                                    
   52198:	6012           	bras 521ac <rtems_timer_server_fire_when+0xc8>
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
   5219a:	700e           	moveq #14,%d0                               
   5219c:	600e           	bras 521ac <rtems_timer_server_fire_when+0xc8>
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
   5219e:	700b           	moveq #11,%d0                               <== NOT EXECUTED
   521a0:	600a           	bras 521ac <rtems_timer_server_fire_when+0xc8><== NOT EXECUTED
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
   521a2:	7009           	moveq #9,%d0                                
   521a4:	6006           	bras 521ac <rtems_timer_server_fire_when+0xc8>
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
   521a6:	7014           	moveq #20,%d0                               
   521a8:	6002           	bras 521ac <rtems_timer_server_fire_when+0xc8>
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
   521aa:	7004           	moveq #4,%d0                                
}                                                                     
   521ac:	4cee 0c1c ffe8 	moveml %fp@(-24),%d2-%d4/%a2-%a3            
   521b2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000426b8 <rtems_verror>: static int rtems_verror( rtems_error_code_t error_flag, const char *printf_format, va_list arglist ) {
   426b8:	4e56 fff0      	linkw %fp,#-16                              
   426bc:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   426c0:	242e 0008      	movel %fp@(8),%d2                           
  int               local_errno = 0;                                  
  int               chars_written = 0;                                
  rtems_status_code status;                                           
                                                                      
  if (error_flag & RTEMS_ERROR_PANIC) {                               
   426c4:	0802 001d      	btst #29,%d2                                
   426c8:	672e           	beqs 426f8 <rtems_verror+0x40>              
    if (rtems_panic_in_progress++)                                    
   426ca:	2039 0005 e870 	movel 5e870 <rtems_panic_in_progress>,%d0   
   426d0:	2200           	movel %d0,%d1                               
   426d2:	5281           	addql #1,%d1                                
   426d4:	23c1 0005 e870 	movel %d1,5e870 <rtems_panic_in_progress>   
   426da:	4a80           	tstl %d0                                    
   426dc:	670e           	beqs 426ec <rtems_verror+0x34>              <== ALWAYS TAKEN
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   426de:	2039 0005 e9c8 	movel 5e9c8 <_Thread_Dispatch_disable_level>,%d0<== NOT EXECUTED
   426e4:	5280           	addql #1,%d0                                <== NOT EXECUTED
   426e6:	23c0 0005 e9c8 	movel %d0,5e9c8 <_Thread_Dispatch_disable_level><== NOT EXECUTED
      _Thread_Disable_dispatch();       /* disable task switches */   
                                                                      
    /* don't aggravate things */                                      
    if (rtems_panic_in_progress > 2)                                  
   426ec:	7002           	moveq #2,%d0                                
   426ee:	b0b9 0005 e870 	cmpl 5e870 <rtems_panic_in_progress>,%d0    
   426f4:	6d00 0100      	bltw 427f6 <rtems_verror+0x13e>             
      return 0;                                                       
  }                                                                   
                                                                      
  (void) fflush(stdout);            /* in case stdout/stderr same */  
   426f8:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
                                                                      
  status = error_flag & ~RTEMS_ERROR_MASK;                            
   426fe:	2802           	movel %d2,%d4                               
    /* don't aggravate things */                                      
    if (rtems_panic_in_progress > 2)                                  
      return 0;                                                       
  }                                                                   
                                                                      
  (void) fflush(stdout);            /* in case stdout/stderr same */  
   42700:	2f28 0008      	movel %a0@(8),%sp@-                         
                                                                      
  status = error_flag & ~RTEMS_ERROR_MASK;                            
   42704:	0284 8fff ffff 	andil #-1879048193,%d4                      
    /* don't aggravate things */                                      
    if (rtems_panic_in_progress > 2)                                  
      return 0;                                                       
  }                                                                   
                                                                      
  (void) fflush(stdout);            /* in case stdout/stderr same */  
   4270a:	4eb9 0004 ce3a 	jsr 4ce3a <fflush>                          
                                                                      
  status = error_flag & ~RTEMS_ERROR_MASK;                            
  if (error_flag & RTEMS_ERROR_ERRNO)     /* include errno? */        
   42710:	588f           	addql #4,%sp                                
   42712:	0802 001e      	btst #30,%d2                                
   42716:	670c           	beqs 42724 <rtems_verror+0x6c>              
    local_errno = errno;                                              
   42718:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   4271e:	2040           	moveal %d0,%a0                              
   42720:	2610           	movel %a0@,%d3                              
   42722:	6002           	bras 42726 <rtems_verror+0x6e>              
  rtems_error_code_t  error_flag,                                     
  const char         *printf_format,                                  
  va_list             arglist                                         
)                                                                     
{                                                                     
  int               local_errno = 0;                                  
   42724:	4283           	clrl %d3                                    
  #if defined(RTEMS_MULTIPROCESSING)                                  
    if (_System_state_Is_multiprocessing)                             
      fprintf(stderr, "[%" PRIu32 "] ", _Configuration_MP_table->node);
  #endif                                                              
                                                                      
  chars_written += vfprintf(stderr, printf_format, arglist);          
   42726:	2f2e 0010      	movel %fp@(16),%sp@-                        
   4272a:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   42730:	2f2e 000c      	movel %fp@(12),%sp@-                        
   42734:	2f28 000c      	movel %a0@(12),%sp@-                        
   42738:	4eb9 0005 3eda 	jsr 53eda <vfprintf>                        
                                                                      
  if (status)                                                         
   4273e:	4fef 000c      	lea %sp@(12),%sp                            
  #if defined(RTEMS_MULTIPROCESSING)                                  
    if (_System_state_Is_multiprocessing)                             
      fprintf(stderr, "[%" PRIu32 "] ", _Configuration_MP_table->node);
  #endif                                                              
                                                                      
  chars_written += vfprintf(stderr, printf_format, arglist);          
   42742:	2400           	movel %d0,%d2                               
                                                                      
  if (status)                                                         
   42744:	4a84           	tstl %d4                                    
   42746:	6726           	beqs 4276e <rtems_verror+0xb6>              
    chars_written +=                                                  
      fprintf(stderr, " (status: %s)", rtems_status_text(status));    
   42748:	2f04           	movel %d4,%sp@-                             
   4274a:	4eb9 0004 26a0 	jsr 426a0 <rtems_status_text>               
   42750:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   42756:	2f00           	movel %d0,%sp@-                             
   42758:	4879 0005 bc05 	pea 5bc05 <IMFS_ops+0x4f>                   
   4275e:	2f28 000c      	movel %a0@(12),%sp@-                        
   42762:	4eb9 0004 d262 	jsr 4d262 <fprintf>                         
  #endif                                                              
                                                                      
  chars_written += vfprintf(stderr, printf_format, arglist);          
                                                                      
  if (status)                                                         
    chars_written +=                                                  
   42768:	4fef 0010      	lea %sp@(16),%sp                            
   4276c:	d480           	addl %d0,%d2                                
      fprintf(stderr, " (status: %s)", rtems_status_text(status));    
                                                                      
  if (local_errno) {                                                  
   4276e:	4a83           	tstl %d3                                    
   42770:	6756           	beqs 427c8 <rtems_verror+0x110>             
    if ((local_errno > 0) && *strerror(local_errno))                  
   42772:	6f36           	bles 427aa <rtems_verror+0xf2>              
   42774:	2f03           	movel %d3,%sp@-                             
   42776:	45f9 0004 daf8 	lea 4daf8 <strerror>,%a2                    
   4277c:	4e92           	jsr %a2@                                    
   4277e:	588f           	addql #4,%sp                                
   42780:	2040           	moveal %d0,%a0                              
   42782:	4a10           	tstb %a0@                                   
   42784:	6724           	beqs 427aa <rtems_verror+0xf2>              <== NEVER TAKEN
      chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno));
   42786:	2f03           	movel %d3,%sp@-                             
   42788:	4e92           	jsr %a2@                                    
   4278a:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   42790:	2f00           	movel %d0,%sp@-                             
   42792:	4879 0005 bc13 	pea 5bc13 <IMFS_ops+0x5d>                   
   42798:	2f28 000c      	movel %a0@(12),%sp@-                        
   4279c:	4eb9 0004 d262 	jsr 4d262 <fprintf>                         
   427a2:	4fef 0010      	lea %sp@(16),%sp                            
   427a6:	d480           	addl %d0,%d2                                
   427a8:	601e           	bras 427c8 <rtems_verror+0x110>             
    else                                                              
      chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno);
   427aa:	2f03           	movel %d3,%sp@-                             
   427ac:	4879 0005 bc20 	pea 5bc20 <IMFS_ops+0x6a>                   
   427b2:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   427b8:	2f28 000c      	movel %a0@(12),%sp@-                        
   427bc:	4eb9 0004 d262 	jsr 4d262 <fprintf>                         
   427c2:	4fef 000c      	lea %sp@(12),%sp                            
   427c6:	d480           	addl %d0,%d2                                
  }                                                                   
                                                                      
  chars_written += fprintf(stderr, "\n");                             
   427c8:	4879 0005 b847 	pea 5b847 <rtems_filesystem_mount_table_size+0x2f9>
   427ce:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
   427d4:	2f28 000c      	movel %a0@(12),%sp@-                        
   427d8:	4eb9 0004 d262 	jsr 4d262 <fprintf>                         
                                                                      
  (void) fflush(stderr);                                              
   427de:	2079 0005 d30c 	moveal 5d30c <_impure_ptr>,%a0              
      chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno));
    else                                                              
      chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno);
  }                                                                   
                                                                      
  chars_written += fprintf(stderr, "\n");                             
   427e4:	d480           	addl %d0,%d2                                
                                                                      
  (void) fflush(stderr);                                              
   427e6:	2f28 000c      	movel %a0@(12),%sp@-                        
   427ea:	4eb9 0004 ce3a 	jsr 4ce3a <fflush>                          
                                                                      
  return chars_written;                                               
   427f0:	4fef 000c      	lea %sp@(12),%sp                            
   427f4:	6002           	bras 427f8 <rtems_verror+0x140>             
    if (rtems_panic_in_progress++)                                    
      _Thread_Disable_dispatch();       /* disable task switches */   
                                                                      
    /* don't aggravate things */                                      
    if (rtems_panic_in_progress > 2)                                  
      return 0;                                                       
   427f6:	4282           	clrl %d2                                    <== NOT EXECUTED
  chars_written += fprintf(stderr, "\n");                             
                                                                      
  (void) fflush(stderr);                                              
                                                                      
  return chars_written;                                               
}                                                                     
   427f8:	2002           	movel %d2,%d0                               
   427fa:	4cee 041c fff0 	moveml %fp@(-16),%d2-%d4/%a2                
   42800:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043030 <scanInt>: /* * Extract an integer value from the database */ static int scanInt(FILE *fp, int *val) {
   43030:	4e56 ffe4      	linkw %fp,#-28                              
   43034:	48d7 0c7c      	moveml %d2-%d6/%a2-%a3,%sp@                 
   43038:	246e 0008      	moveal %fp@(8),%a2                          
  int c;                                                              
  unsigned int i = 0;                                                 
  unsigned int limit = INT_MAX;                                       
  int sign = 0;                                                       
   4303c:	4283           	clrl %d3                                    
static int                                                            
scanInt(FILE *fp, int *val)                                           
{                                                                     
  int c;                                                              
  unsigned int i = 0;                                                 
  unsigned int limit = INT_MAX;                                       
   4303e:	283c 7fff ffff 	movel #2147483647,%d4                       
 */                                                                   
static int                                                            
scanInt(FILE *fp, int *val)                                           
{                                                                     
  int c;                                                              
  unsigned int i = 0;                                                 
   43044:	4282           	clrl %d2                                    
  unsigned int limit = INT_MAX;                                       
  int sign = 0;                                                       
  int d;                                                              
                                                                      
  for (;;) {                                                          
    c = getc(fp);                                                     
   43046:	47f9 0004 f400 	lea 4f400 <__srget_r>,%a3                   
   4304c:	202a 0004      	movel %a2@(4),%d0                           
   43050:	5380           	subql #1,%d0                                
   43052:	2540 0004      	movel %d0,%a2@(4)                           
   43056:	6c0e           	bges 43066 <scanInt+0x36>                   <== ALWAYS TAKEN
   43058:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   4305a:	2f39 0005 ec1c 	movel 5ec1c <_impure_ptr>,%sp@-             <== NOT EXECUTED
   43060:	4e93           	jsr %a3@                                    <== NOT EXECUTED
   43062:	508f           	addql #8,%sp                                <== NOT EXECUTED
   43064:	600a           	bras 43070 <scanInt+0x40>                   <== NOT EXECUTED
   43066:	2052           	moveal %a2@,%a0                             
   43068:	4280           	clrl %d0                                    
   4306a:	1010           	moveb %a0@,%d0                              
   4306c:	5288           	addql #1,%a0                                
   4306e:	2488           	movel %a0,%a2@                              
    if (c == ':')                                                     
   43070:	723a           	moveq #58,%d1                               
   43072:	b280           	cmpl %d0,%d1                                
   43074:	6750           	beqs 430c6 <scanInt+0x96>                   
      break;                                                          
    if (sign == 0) {                                                  
   43076:	4a83           	tstl %d3                                    
   43078:	660e           	bnes 43088 <scanInt+0x58>                   
      if (c == '-') {                                                 
   4307a:	7c2d           	moveq #45,%d6                               
   4307c:	bc80           	cmpl %d0,%d6                                
   4307e:	6606           	bnes 43086 <scanInt+0x56>                   
        sign = -1;                                                    
        limit++;                                                      
   43080:	5284           	addql #1,%d4                                
    c = getc(fp);                                                     
    if (c == ':')                                                     
      break;                                                          
    if (sign == 0) {                                                  
      if (c == '-') {                                                 
        sign = -1;                                                    
   43082:	76ff           	moveq #-1,%d3                               
        limit++;                                                      
        continue;                                                     
   43084:	60c6           	bras 4304c <scanInt+0x1c>                   
      }                                                               
      sign = 1;                                                       
   43086:	7601           	moveq #1,%d3                                
    }                                                                 
    if (!isdigit(c))                                                  
   43088:	2079 0005 ec18 	moveal 5ec18 <__ctype_ptr__>,%a0            
   4308e:	1230 0801      	moveb %a0@(00000001,%d0:l),%d1              
   43092:	49c1           	extbl %d1                                   
   43094:	44c1           	movew %d1,%ccr                              
   43096:	6640           	bnes 430d8 <scanInt+0xa8>                   
      return 0;                                                       
    d = c - '0';                                                      
    if ((i > (limit / 10))                                            
   43098:	2204           	movel %d4,%d1                               
   4309a:	7c0a           	moveq #10,%d6                               
   4309c:	4c46 1005      	remul %d6,%d5,%d1                           
   430a0:	4c46 1001      	remul %d6,%d1,%d1                           
   430a4:	b282           	cmpl %d2,%d1                                
   430a6:	6530           	bcss 430d8 <scanInt+0xa8>                   
      }                                                               
      sign = 1;                                                       
    }                                                                 
    if (!isdigit(c))                                                  
      return 0;                                                       
    d = c - '0';                                                      
   430a8:	0680 ffff ffd0 	addil #-48,%d0                              
    if ((i > (limit / 10))                                            
     || ((i == (limit / 10)) && (d > (limit % 10))))                  
   430ae:	b282           	cmpl %d2,%d1                                
   430b0:	6604           	bnes 430b6 <scanInt+0x86>                   
   430b2:	ba80           	cmpl %d0,%d5                                
   430b4:	6522           	bcss 430d8 <scanInt+0xa8>                   <== ALWAYS TAKEN
      return 0;                                                       
    i = i * 10 + d;                                                   
   430b6:	2202           	movel %d2,%d1                               
   430b8:	e789           	lsll #3,%d1                                 
   430ba:	2241           	moveal %d1,%a1                              
   430bc:	41f1 2a00      	lea %a1@(00000000,%d2:l:2),%a0              
   430c0:	2400           	movel %d0,%d2                               
   430c2:	d488           	addl %a0,%d2                                
   430c4:	6086           	bras 4304c <scanInt+0x1c>                   
  }                                                                   
  if (sign == 0)                                                      
   430c6:	4a83           	tstl %d3                                    
   430c8:	670e           	beqs 430d8 <scanInt+0xa8>                   <== NEVER TAKEN
    return 0;                                                         
  *val = i * sign;                                                    
   430ca:	4c02 3800      	mulsl %d2,%d3                               
  return 1;                                                           
   430ce:	7001           	moveq #1,%d0                                
      return 0;                                                       
    i = i * 10 + d;                                                   
  }                                                                   
  if (sign == 0)                                                      
    return 0;                                                         
  *val = i * sign;                                                    
   430d0:	206e 000c      	moveal %fp@(12),%a0                         
   430d4:	2083           	movel %d3,%a0@                              
  return 1;                                                           
   430d6:	6002           	bras 430da <scanInt+0xaa>                   
     || ((i == (limit / 10)) && (d > (limit % 10))))                  
      return 0;                                                       
    i = i * 10 + d;                                                   
  }                                                                   
  if (sign == 0)                                                      
    return 0;                                                         
   430d8:	4280           	clrl %d0                                    
  *val = i * sign;                                                    
  return 1;                                                           
}                                                                     
   430da:	4cee 0c7c ffe4 	moveml %fp@(-28),%d2-%d6/%a2-%a3            
   430e0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00043172 <scangr>: FILE *fp, struct group *grp, char *buffer, size_t bufsize ) {
   43172:	4e56 ffe4      	linkw %fp,#-28                              
   43176:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
  int grgid;                                                          
  char *grmem, *cp;                                                   
  int memcount;                                                       
                                                                      
  if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0)            
   4317a:	42a7           	clrl %sp@-                                  
   4317c:	280e           	movel %fp,%d4                               
   4317e:	0684 0000 0014 	addil #20,%d4                               
   43184:	260e           	movel %fp,%d3                               
   43186:	0683 0000 0010 	addil #16,%d3                               
   4318c:	47fa ff56      	lea %pc@(430e4 <scanString>),%a3            
   43190:	2f04           	movel %d4,%sp@-                             
  FILE *fp,                                                           
  struct group *grp,                                                  
  char *buffer,                                                       
  size_t bufsize                                                      
)                                                                     
{                                                                     
   43192:	246e 000c      	moveal %fp@(12),%a2                         
  int grgid;                                                          
  char *grmem, *cp;                                                   
  int memcount;                                                       
                                                                      
  if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0)            
   43196:	2f03           	movel %d3,%sp@-                             
  FILE *fp,                                                           
  struct group *grp,                                                  
  char *buffer,                                                       
  size_t bufsize                                                      
)                                                                     
{                                                                     
   43198:	242e 0008      	movel %fp@(8),%d2                           
  int grgid;                                                          
  char *grmem, *cp;                                                   
  int memcount;                                                       
                                                                      
  if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0)            
   4319c:	2f0a           	movel %a2,%sp@-                             
   4319e:	2f02           	movel %d2,%sp@-                             
   431a0:	4e93           	jsr %a3@                                    
   431a2:	4fef 0014      	lea %sp@(20),%sp                            
   431a6:	4a80           	tstl %d0                                    
   431a8:	6700 00b6      	beqw 43260 <scangr+0xee>                    
   || !scanString(fp, &grp->gr_passwd, &buffer, &bufsize, 0)          
   431ac:	42a7           	clrl %sp@-                                  
   431ae:	2f04           	movel %d4,%sp@-                             
   431b0:	2f03           	movel %d3,%sp@-                             
   431b2:	486a 0004      	pea %a2@(4)                                 
   431b6:	2f02           	movel %d2,%sp@-                             
   431b8:	4e93           	jsr %a3@                                    
   431ba:	4fef 0014      	lea %sp@(20),%sp                            
   431be:	4a80           	tstl %d0                                    
   431c0:	6700 009e      	beqw 43260 <scangr+0xee>                    
   || !scanInt(fp, &grgid)                                            
   431c4:	486e fffc      	pea %fp@(-4)                                
   431c8:	2f02           	movel %d2,%sp@-                             
   431ca:	4eba fe64      	jsr %pc@(43030 <scanInt>)                   
   431ce:	508f           	addql #8,%sp                                
   431d0:	4a80           	tstl %d0                                    
   431d2:	6700 008c      	beqw 43260 <scangr+0xee>                    
   || !scanString(fp, &grmem, &buffer, &bufsize, 1))                  
   431d6:	4878 0001      	pea 1 <ADD>                                 
   431da:	2f04           	movel %d4,%sp@-                             
   431dc:	2f03           	movel %d3,%sp@-                             
   431de:	486e fff8      	pea %fp@(-8)                                
   431e2:	2f02           	movel %d2,%sp@-                             
   431e4:	4e93           	jsr %a3@                                    
   431e6:	4fef 0014      	lea %sp@(20),%sp                            
   431ea:	4a80           	tstl %d0                                    
   431ec:	6772           	beqs 43260 <scangr+0xee>                    <== NEVER TAKEN
  grp->gr_gid = grgid;                                                
                                                                      
  /*                                                                  
   * Determine number of members                                      
   */                                                                 
  for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {                  
   431ee:	222e fff8      	movel %fp@(-8),%d1                          
   431f2:	7001           	moveq #1,%d0                                
   431f4:	2041           	moveal %d1,%a0                              
  if (!scanString(fp, &grp->gr_name, &buffer, &bufsize, 0)            
   || !scanString(fp, &grp->gr_passwd, &buffer, &bufsize, 0)          
   || !scanInt(fp, &grgid)                                            
   || !scanString(fp, &grmem, &buffer, &bufsize, 1))                  
    return 0;                                                         
  grp->gr_gid = grgid;                                                
   431f6:	356e fffe 0008 	movew %fp@(-2),%a2@(8)                      
                                                                      
  /*                                                                  
   * Determine number of members                                      
   */                                                                 
  for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {                  
   431fc:	600a           	bras 43208 <scangr+0x96>                    
    if(*cp == ',')                                                    
   431fe:	49c2           	extbl %d2                                   
   43200:	762c           	moveq #44,%d3                               
   43202:	b682           	cmpl %d2,%d3                                
   43204:	6602           	bnes 43208 <scangr+0x96>                    
      memcount++;                                                     
   43206:	5280           	addql #1,%d0                                
  grp->gr_gid = grgid;                                                
                                                                      
  /*                                                                  
   * Determine number of members                                      
   */                                                                 
  for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {                  
   43208:	1418           	moveb %a0@+,%d2                             
   4320a:	66f2           	bnes 431fe <scangr+0x8c>                    
  }                                                                   
                                                                      
  /*                                                                  
   * Hack to produce (hopefully) a suitably-aligned array of pointers 
   */                                                                 
  if (bufsize < (((memcount+1)*sizeof(char *)) + 15))                 
   4320c:	e588           	lsll #2,%d0                                 
   4320e:	0680 0000 0013 	addil #19,%d0                               
   43214:	b0ae 0014      	cmpl %fp@(20),%d0                           
   43218:	6246           	bhis 43260 <scangr+0xee>                    <== NEVER TAKEN
    return 0;                                                         
  grp->gr_mem = (char **)(((uintptr_t)buffer + 15) & ~15);            
   4321a:	202e 0010      	movel %fp@(16),%d0                          
   4321e:	74f0           	moveq #-16,%d2                              
   43220:	0680 0000 000f 	addil #15,%d0                               
   43226:	c082           	andl %d2,%d0                                
   43228:	2540 000a      	movel %d0,%a2@(10)                          
                                                                      
  /*                                                                  
   * Fill in pointer array                                            
   */                                                                 
  grp->gr_mem[0] = grmem;                                             
   4322c:	2040           	moveal %d0,%a0                              
  for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {                  
   4322e:	7001           	moveq #1,%d0                                
  grp->gr_mem = (char **)(((uintptr_t)buffer + 15) & ~15);            
                                                                      
  /*                                                                  
   * Fill in pointer array                                            
   */                                                                 
  grp->gr_mem[0] = grmem;                                             
   43230:	2081           	movel %d1,%a0@                              
   43232:	206e fff8      	moveal %fp@(-8),%a0                         
  for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {                  
   43236:	6018           	bras 43250 <scangr+0xde>                    
    if(*cp == ',') {                                                  
   43238:	49c1           	extbl %d1                                   
   4323a:	742c           	moveq #44,%d2                               
   4323c:	b481           	cmpl %d1,%d2                                
   4323e:	6610           	bnes 43250 <scangr+0xde>                    
      *cp = '\0';                                                     
   43240:	4203           	clrb %d3                                    
   43242:	1143 ffff      	moveb %d3,%a0@(-1)                          
      grp->gr_mem[memcount++] = cp + 1;                               
   43246:	226a 000a      	moveal %a2@(10),%a1                         
   4324a:	2388 0c00      	movel %a0,%a1@(00000000,%d0:l:4)            
   4324e:	5280           	addql #1,%d0                                
                                                                      
  /*                                                                  
   * Fill in pointer array                                            
   */                                                                 
  grp->gr_mem[0] = grmem;                                             
  for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {                  
   43250:	1218           	moveb %a0@+,%d1                             
   43252:	66e4           	bnes 43238 <scangr+0xc6>                    
    if(*cp == ',') {                                                  
      *cp = '\0';                                                     
      grp->gr_mem[memcount++] = cp + 1;                               
    }                                                                 
  }                                                                   
  grp->gr_mem[memcount] = NULL;                                       
   43254:	206a 000a      	moveal %a2@(10),%a0                         
   43258:	42b0 0c00      	clrl %a0@(00000000,%d0:l:4)                 
  return 1;                                                           
   4325c:	7001           	moveq #1,%d0                                
   4325e:	6002           	bras 43262 <scangr+0xf0>                    
                                                                      
  /*                                                                  
   * Hack to produce (hopefully) a suitably-aligned array of pointers 
   */                                                                 
  if (bufsize < (((memcount+1)*sizeof(char *)) + 15))                 
    return 0;                                                         
   43260:	4280           	clrl %d0                                    
      grp->gr_mem[memcount++] = cp + 1;                               
    }                                                                 
  }                                                                   
  grp->gr_mem[memcount] = NULL;                                       
  return 1;                                                           
}                                                                     
   43262:	4cee 0c1c ffe4 	moveml %fp@(-28),%d2-%d4/%a2-%a3            
   43268:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004326c <scanpw>: FILE *fp, struct passwd *pwd, char *buffer, size_t bufsize ) {
   4326c:	4e56 ffe0      	linkw %fp,#-32                              
   43270:	48d7 1c1c      	moveml %d2-%d4/%a2-%a4,%sp@                 
  int pwuid, pwgid;                                                   
                                                                      
  if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0)            
   43274:	42a7           	clrl %sp@-                                  
   43276:	280e           	movel %fp,%d4                               
   43278:	0684 0000 0014 	addil #20,%d4                               
   4327e:	260e           	movel %fp,%d3                               
   43280:	0683 0000 0010 	addil #16,%d3                               
   43286:	47fa fe5c      	lea %pc@(430e4 <scanString>),%a3            
   4328a:	2f04           	movel %d4,%sp@-                             
  FILE *fp,                                                           
  struct passwd *pwd,                                                 
  char *buffer,                                                       
  size_t bufsize                                                      
)                                                                     
{                                                                     
   4328c:	246e 000c      	moveal %fp@(12),%a2                         
  int pwuid, pwgid;                                                   
                                                                      
  if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0)            
   43290:	2f03           	movel %d3,%sp@-                             
  FILE *fp,                                                           
  struct passwd *pwd,                                                 
  char *buffer,                                                       
  size_t bufsize                                                      
)                                                                     
{                                                                     
   43292:	242e 0008      	movel %fp@(8),%d2                           
  int pwuid, pwgid;                                                   
                                                                      
  if (!scanString(fp, &pwd->pw_name, &buffer, &bufsize, 0)            
   43296:	2f0a           	movel %a2,%sp@-                             
   43298:	2f02           	movel %d2,%sp@-                             
   4329a:	4e93           	jsr %a3@                                    
   4329c:	4fef 0014      	lea %sp@(20),%sp                            
   432a0:	4a80           	tstl %d0                                    
   432a2:	6700 00a4      	beqw 43348 <scanpw+0xdc>                    
   || !scanString(fp, &pwd->pw_passwd, &buffer, &bufsize, 0)          
   432a6:	42a7           	clrl %sp@-                                  
   432a8:	2f04           	movel %d4,%sp@-                             
   432aa:	2f03           	movel %d3,%sp@-                             
   432ac:	486a 0004      	pea %a2@(4)                                 
   432b0:	2f02           	movel %d2,%sp@-                             
   432b2:	4e93           	jsr %a3@                                    
   432b4:	4fef 0014      	lea %sp@(20),%sp                            
   432b8:	4a80           	tstl %d0                                    
   432ba:	6700 008c      	beqw 43348 <scanpw+0xdc>                    
   || !scanInt(fp, &pwuid)                                            
   432be:	486e fffc      	pea %fp@(-4)                                
   432c2:	49fa fd6c      	lea %pc@(43030 <scanInt>),%a4               
   432c6:	2f02           	movel %d2,%sp@-                             
   432c8:	4e94           	jsr %a4@                                    
   432ca:	508f           	addql #8,%sp                                
   432cc:	4a80           	tstl %d0                                    
   432ce:	6778           	beqs 43348 <scanpw+0xdc>                    
   || !scanInt(fp, &pwgid)                                            
   432d0:	486e fff8      	pea %fp@(-8)                                
   432d4:	2f02           	movel %d2,%sp@-                             
   432d6:	4e94           	jsr %a4@                                    
   432d8:	508f           	addql #8,%sp                                
   432da:	4a80           	tstl %d0                                    
   432dc:	676a           	beqs 43348 <scanpw+0xdc>                    
   || !scanString(fp, &pwd->pw_comment, &buffer, &bufsize, 0)         
   432de:	42a7           	clrl %sp@-                                  
   432e0:	2f04           	movel %d4,%sp@-                             
   432e2:	2f03           	movel %d3,%sp@-                             
   432e4:	486a 000c      	pea %a2@(12)                                
   432e8:	2f02           	movel %d2,%sp@-                             
   432ea:	4e93           	jsr %a3@                                    
   432ec:	4fef 0014      	lea %sp@(20),%sp                            
   432f0:	4a80           	tstl %d0                                    
   432f2:	6754           	beqs 43348 <scanpw+0xdc>                    <== NEVER TAKEN
   || !scanString(fp, &pwd->pw_gecos, &buffer, &bufsize, 0)           
   432f4:	42a7           	clrl %sp@-                                  
   432f6:	2f04           	movel %d4,%sp@-                             
   432f8:	2f03           	movel %d3,%sp@-                             
   432fa:	486a 0010      	pea %a2@(16)                                
   432fe:	2f02           	movel %d2,%sp@-                             
   43300:	4e93           	jsr %a3@                                    
   43302:	4fef 0014      	lea %sp@(20),%sp                            
   43306:	4a80           	tstl %d0                                    
   43308:	673e           	beqs 43348 <scanpw+0xdc>                    <== NEVER TAKEN
   || !scanString(fp, &pwd->pw_dir, &buffer, &bufsize, 0)             
   4330a:	42a7           	clrl %sp@-                                  
   4330c:	2f04           	movel %d4,%sp@-                             
   4330e:	2f03           	movel %d3,%sp@-                             
   43310:	486a 0014      	pea %a2@(20)                                
   43314:	2f02           	movel %d2,%sp@-                             
   43316:	4e93           	jsr %a3@                                    
   43318:	4fef 0014      	lea %sp@(20),%sp                            
   4331c:	4a80           	tstl %d0                                    
   4331e:	6728           	beqs 43348 <scanpw+0xdc>                    <== NEVER TAKEN
   || !scanString(fp, &pwd->pw_shell, &buffer, &bufsize, 1))          
   43320:	4878 0001      	pea 1 <ADD>                                 
   43324:	2f04           	movel %d4,%sp@-                             
   43326:	2f03           	movel %d3,%sp@-                             
   43328:	486a 0018      	pea %a2@(24)                                
   4332c:	2f02           	movel %d2,%sp@-                             
   4332e:	4e93           	jsr %a3@                                    
   43330:	4fef 0014      	lea %sp@(20),%sp                            
   43334:	4a80           	tstl %d0                                    
   43336:	6710           	beqs 43348 <scanpw+0xdc>                    
    return 0;                                                         
  pwd->pw_uid = pwuid;                                                
  pwd->pw_gid = pwgid;                                                
  return 1;                                                           
   43338:	7001           	moveq #1,%d0                                
   || !scanString(fp, &pwd->pw_comment, &buffer, &bufsize, 0)         
   || !scanString(fp, &pwd->pw_gecos, &buffer, &bufsize, 0)           
   || !scanString(fp, &pwd->pw_dir, &buffer, &bufsize, 0)             
   || !scanString(fp, &pwd->pw_shell, &buffer, &bufsize, 1))          
    return 0;                                                         
  pwd->pw_uid = pwuid;                                                
   4333a:	356e fffe 0008 	movew %fp@(-2),%a2@(8)                      
  pwd->pw_gid = pwgid;                                                
   43340:	356e fffa 000a 	movew %fp@(-6),%a2@(10)                     
  return 1;                                                           
   43346:	6002           	bras 4334a <scanpw+0xde>                    
   || !scanInt(fp, &pwgid)                                            
   || !scanString(fp, &pwd->pw_comment, &buffer, &bufsize, 0)         
   || !scanString(fp, &pwd->pw_gecos, &buffer, &bufsize, 0)           
   || !scanString(fp, &pwd->pw_dir, &buffer, &bufsize, 0)             
   || !scanString(fp, &pwd->pw_shell, &buffer, &bufsize, 1))          
    return 0;                                                         
   43348:	4280           	clrl %d0                                    
  pwd->pw_uid = pwuid;                                                
  pwd->pw_gid = pwgid;                                                
  return 1;                                                           
}                                                                     
   4334a:	4cee 1c1c ffe0 	moveml %fp@(-32),%d2-%d4/%a2-%a4            
   43350:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045ff0 <sched_get_priority_max>: int sched_get_priority_max( int policy ) { switch ( policy ) {
   45ff0:	7004           	moveq #4,%d0                                
#include <rtems/posix/priority.h>                                     
                                                                      
int sched_get_priority_max(                                           
  int  policy                                                         
)                                                                     
{                                                                     
   45ff2:	4e56 0000      	linkw %fp,#0                                
   45ff6:	222e 0008      	movel %fp@(8),%d1                           
  switch ( policy ) {                                                 
   45ffa:	b081           	cmpl %d1,%d0                                
   45ffc:	650c           	bcss 4600a <sched_get_priority_max+0x1a>    <== NEVER TAKEN
   45ffe:	103c 0001      	moveb #1,%d0                                
   46002:	e3a8           	lsll %d1,%d0                                
   46004:	7217           	moveq #23,%d1                               
   46006:	c081           	andl %d1,%d0                                
   46008:	6610           	bnes 4601a <sched_get_priority_max+0x2a>    <== ALWAYS TAKEN
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   4600a:	4eb9 0004 d690 	jsr 4d690 <__errno>                         
   46010:	2040           	moveal %d0,%a0                              
   46012:	7016           	moveq #22,%d0                               
   46014:	2080           	movel %d0,%a0@                              
   46016:	70ff           	moveq #-1,%d0                               
   46018:	600a           	bras 46024 <sched_get_priority_max+0x34>    
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MAXIMUM_PRIORITY;                            
   4601a:	4280           	clrl %d0                                    
   4601c:	1039 0005 e126 	moveb 5e126 <rtems_maximum_priority>,%d0    
   46022:	5380           	subql #1,%d0                                
}                                                                     
   46024:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046028 <sched_get_priority_min>: int sched_get_priority_min( int policy ) { switch ( policy ) {
   46028:	7004           	moveq #4,%d0                                
#include <rtems/posix/priority.h>                                     
                                                                      
int sched_get_priority_min(                                           
  int  policy                                                         
)                                                                     
{                                                                     
   4602a:	4e56 0000      	linkw %fp,#0                                
   4602e:	222e 0008      	movel %fp@(8),%d1                           
  switch ( policy ) {                                                 
   46032:	b081           	cmpl %d1,%d0                                
   46034:	650c           	bcss 46042 <sched_get_priority_min+0x1a>    
   46036:	103c 0001      	moveb #1,%d0                                
   4603a:	e3a8           	lsll %d1,%d0                                
   4603c:	7217           	moveq #23,%d1                               
   4603e:	c081           	andl %d1,%d0                                
   46040:	6610           	bnes 46052 <sched_get_priority_min+0x2a>    <== ALWAYS TAKEN
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   46042:	4eb9 0004 d690 	jsr 4d690 <__errno>                         
   46048:	2040           	moveal %d0,%a0                              
   4604a:	7016           	moveq #22,%d0                               
   4604c:	2080           	movel %d0,%a0@                              
   4604e:	70ff           	moveq #-1,%d0                               
   46050:	6002           	bras 46054 <sched_get_priority_min+0x2c>    
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MINIMUM_PRIORITY;                            
   46052:	7001           	moveq #1,%d0                                
}                                                                     
   46054:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00046058 <sched_rr_get_interval>: int sched_rr_get_interval( pid_t pid, struct timespec *interval ) {
   46058:	4e56 0000      	linkw %fp,#0                                
   4605c:	2f03           	movel %d3,%sp@-                             
   4605e:	262e 0008      	movel %fp@(8),%d3                           
   46062:	2f02           	movel %d2,%sp@-                             
   46064:	242e 000c      	movel %fp@(12),%d2                          
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
   46068:	4a83           	tstl %d3                                    
   4606a:	6718           	beqs 46084 <sched_rr_get_interval+0x2c>     <== NEVER TAKEN
   4606c:	4eb9 0004 3100 	jsr 43100 <getpid>                          
   46072:	b083           	cmpl %d3,%d0                                
   46074:	670e           	beqs 46084 <sched_rr_get_interval+0x2c>     
    rtems_set_errno_and_return_minus_one( ESRCH );                    
   46076:	4eb9 0004 d690 	jsr 4d690 <__errno>                         
   4607c:	7203           	moveq #3,%d1                                
   4607e:	2040           	moveal %d0,%a0                              
   46080:	2081           	movel %d1,%a0@                              
   46082:	6010           	bras 46094 <sched_rr_get_interval+0x3c>     
                                                                      
  if ( !interval )                                                    
   46084:	4a82           	tstl %d2                                    
   46086:	6610           	bnes 46098 <sched_rr_get_interval+0x40>     
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   46088:	4eb9 0004 d690 	jsr 4d690 <__errno>                         
   4608e:	2040           	moveal %d0,%a0                              
   46090:	7016           	moveq #22,%d0                               
   46092:	2080           	movel %d0,%a0@                              
   46094:	70ff           	moveq #-1,%d0                               
   46096:	6012           	bras 460aa <sched_rr_get_interval+0x52>     
                                                                      
  _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval );      
   46098:	2f02           	movel %d2,%sp@-                             
   4609a:	2f39 0005 f9a0 	movel 5f9a0 <_Thread_Ticks_per_timeslice>,%sp@-
   460a0:	4eb9 0004 934c 	jsr 4934c <_Timespec_From_ticks>            
  return 0;                                                           
   460a6:	508f           	addql #8,%sp                                
   460a8:	4280           	clrl %d0                                    
}                                                                     
   460aa:	242e fff8      	movel %fp@(-8),%d2                          
   460ae:	262e fffc      	movel %fp@(-4),%d3                          
   460b2:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00048694 <sem_open>: int oflag, ... /* mode_t mode, */ /* unsigned int value */ ) {
   48694:	4e56 ffe0      	linkw %fp,#-32                              
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   48698:	2039 0006 3934 	movel 63934 <_Thread_Dispatch_disable_level>,%d0
   4869e:	5280           	addql #1,%d0                                
   486a0:	48d7 043c      	moveml %d2-%d5/%a2,%sp@                     
   486a4:	242e 0008      	movel %fp@(8),%d2                           
   486a8:	282e 000c      	movel %fp@(12),%d4                          
   486ac:	23c0 0006 3934 	movel %d0,63934 <_Thread_Dispatch_disable_level>
  POSIX_Semaphore_Control   *the_semaphore;                           
  Objects_Locations          location;                                
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
   486b2:	2a04           	movel %d4,%d5                               
   486b4:	0285 0000 0200 	andil #512,%d5                              
   486ba:	6706           	beqs 486c2 <sem_open+0x2e>                  
    va_start(arg, oflag);                                             
    mode = (mode_t) va_arg( arg, unsigned int );                      
    value = va_arg( arg, unsigned int );                              
   486bc:	262e 0014      	movel %fp@(20),%d3                          
   486c0:	6002           	bras 486c4 <sem_open+0x30>                  
  /* unsigned int value */                                            
)                                                                     
{                                                                     
  va_list                    arg;                                     
  mode_t                     mode;                                    
  unsigned int               value = 0;                               
   486c2:	4283           	clrl %d3                                    
    mode = (mode_t) va_arg( arg, unsigned int );                      
    value = va_arg( arg, unsigned int );                              
    va_end(arg);                                                      
  }                                                                   
                                                                      
  status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id );    
   486c4:	486e fffc      	pea %fp@(-4)                                
   486c8:	2f02           	movel %d2,%sp@-                             
   486ca:	4eb9 0004 e204 	jsr 4e204 <_POSIX_Semaphore_Name_to_id>     
   *  and we can just return a pointer to the id.  Otherwise we may   
   *  need to check to see if this is a "semaphore does not exist"    
   *  or some other miscellaneous error on the name.                  
   */                                                                 
                                                                      
  if ( status ) {                                                     
   486d0:	508f           	addql #8,%sp                                
    mode = (mode_t) va_arg( arg, unsigned int );                      
    value = va_arg( arg, unsigned int );                              
    va_end(arg);                                                      
  }                                                                   
                                                                      
  status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id );    
   486d2:	2440           	moveal %d0,%a2                              
   *  and we can just return a pointer to the id.  Otherwise we may   
   *  need to check to see if this is a "semaphore does not exist"    
   *  or some other miscellaneous error on the name.                  
   */                                                                 
                                                                      
  if ( status ) {                                                     
   486d4:	4a80           	tstl %d0                                    
   486d6:	671c           	beqs 486f4 <sem_open+0x60>                  
    /*                                                                
     * Unless provided a valid name that did not already exist        
     * and we are willing to create then it is an error.              
     */                                                               
                                                                      
    if ( !( status == ENOENT && (oflag & O_CREAT) ) ) {               
   486d8:	7002           	moveq #2,%d0                                
   486da:	b08a           	cmpl %a2,%d0                                
   486dc:	6604           	bnes 486e2 <sem_open+0x4e>                  <== NEVER TAKEN
   486de:	4a85           	tstl %d5                                    
   486e0:	665e           	bnes 48740 <sem_open+0xac>                  
      _Thread_Enable_dispatch();                                      
   486e2:	4eb9 0004 b10a 	jsr 4b10a <_Thread_Enable_dispatch>         
      rtems_set_errno_and_return_minus_one_cast( status, sem_t * );   
   486e8:	4eb9 0005 093c 	jsr 5093c <__errno>                         
   486ee:	2040           	moveal %d0,%a0                              
   486f0:	208a           	movel %a2,%a0@                              
   486f2:	6076           	bras 4876a <sem_open+0xd6>                  
   486f4:	45f9 0004 b10a 	lea 4b10a <_Thread_Enable_dispatch>,%a2     
                                                                      
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
                                                                      
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
   486fa:	0284 0000 0a00 	andil #2560,%d4                             
   48700:	0c84 0000 0a00 	cmpil #2560,%d4                             
   48706:	6610           	bnes 48718 <sem_open+0x84>                  
      _Thread_Enable_dispatch();                                      
   48708:	4e92           	jsr %a2@                                    
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
   4870a:	4eb9 0005 093c 	jsr 5093c <__errno>                         
   48710:	2040           	moveal %d0,%a0                              
   48712:	7011           	moveq #17,%d0                               
   48714:	2080           	movel %d0,%a0@                              
   48716:	6052           	bras 4876a <sem_open+0xd6>                  
   48718:	486e fff4      	pea %fp@(-12)                               
   4871c:	2f2e fffc      	movel %fp@(-4),%sp@-                        
   48720:	4879 0006 3b4a 	pea 63b4a <_POSIX_Semaphore_Information>    
   48726:	4eb9 0004 a554 	jsr 4a554 <_Objects_Get>                    
    }                                                                 
                                                                      
    the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location );
    the_semaphore->open_count += 1;                                   
   4872c:	2040           	moveal %d0,%a0                              
   4872e:	52a8 0016      	addql #1,%a0@(22)                           
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
    }                                                                 
                                                                      
    the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location );
   48732:	2d40 fff8      	movel %d0,%fp@(-8)                          
    the_semaphore->open_count += 1;                                   
    _Thread_Enable_dispatch();                                        
   48736:	4e92           	jsr %a2@                                    
    _Thread_Enable_dispatch();                                        
   48738:	4e92           	jsr %a2@                                    
    goto return_id;                                                   
   4873a:	4fef 000c      	lea %sp@(12),%sp                            
   4873e:	6022           	bras 48762 <sem_open+0xce>                  
  /*                                                                  
   *  At this point, the semaphore does not exist and everything has been
   *  checked. We should go ahead and create a semaphore.             
   */                                                                 
                                                                      
  status =_POSIX_Semaphore_Create_support(                            
   48740:	486e fff8      	pea %fp@(-8)                                
   48744:	2f03           	movel %d3,%sp@-                             
   48746:	42a7           	clrl %sp@-                                  
   48748:	2f02           	movel %d2,%sp@-                             
   4874a:	4eb9 0004 e0c0 	jsr 4e0c0 <_POSIX_Semaphore_Create_support> 
   48750:	2400           	movel %d0,%d2                               
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
                                                                      
  _Thread_Enable_dispatch();                                          
   48752:	4eb9 0004 b10a 	jsr 4b10a <_Thread_Enable_dispatch>         
                                                                      
  if ( status == -1 )                                                 
   48758:	4fef 0010      	lea %sp@(16),%sp                            
   4875c:	70ff           	moveq #-1,%d0                               
   4875e:	b082           	cmpl %d2,%d0                                
   48760:	6708           	beqs 4876a <sem_open+0xd6>                  
return_id:                                                            
  #if defined(RTEMS_USE_16_BIT_OBJECT)                                
    the_semaphore->Semaphore_id = the_semaphore->Object.id;           
    id = &the_semaphore->Semaphore_id;                                
  #else                                                               
    id = (sem_t *)&the_semaphore->Object.id;                          
   48762:	202e fff8      	movel %fp@(-8),%d0                          
   48766:	5080           	addql #8,%d0                                
  #endif                                                              
  return id;                                                          
   48768:	6002           	bras 4876c <sem_open+0xd8>                  
   */                                                                 
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( status == -1 )                                                 
    return SEM_FAILED;                                                
   4876a:	70ff           	moveq #-1,%d0                               
    id = &the_semaphore->Semaphore_id;                                
  #else                                                               
    id = (sem_t *)&the_semaphore->Object.id;                          
  #endif                                                              
  return id;                                                          
}                                                                     
   4876c:	4cee 043c ffe0 	moveml %fp@(-32),%d2-%d5/%a2                
   48772:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00045ee4 <sigaction>: int sigaction( int sig, const struct sigaction *act, struct sigaction *oact ) {
   45ee4:	4e56 ffec      	linkw %fp,#-20                              
   45ee8:	222e 0010      	movel %fp@(16),%d1                          
   45eec:	48d7 0c1c      	moveml %d2-%d4/%a2-%a3,%sp@                 
   45ef0:	242e 0008      	movel %fp@(8),%d2                           
   45ef4:	246e 000c      	moveal %fp@(12),%a2                         
  ISR_Level     level;                                                
                                                                      
  if ( oact )                                                         
   45ef8:	4a81           	tstl %d1                                    
   45efa:	6722           	beqs 45f1e <sigaction+0x3a>                 
    *oact = _POSIX_signals_Vectors[ sig ];                            
   45efc:	2602           	movel %d2,%d3                               
   45efe:	2002           	movel %d2,%d0                               
   45f00:	4878 000c      	pea c <OPER1>                               
   45f04:	e58b           	lsll #2,%d3                                 
   45f06:	e988           	lsll #4,%d0                                 
   45f08:	9083           	subl %d3,%d0                                
   45f0a:	0680 0006 0b04 	addil #396036,%d0                           
   45f10:	2f00           	movel %d0,%sp@-                             
   45f12:	2f01           	movel %d1,%sp@-                             
   45f14:	4eb9 0004 e210 	jsr 4e210 <memcpy>                          
   45f1a:	4fef 000c      	lea %sp@(12),%sp                            
                                                                      
  if ( !sig )                                                         
   45f1e:	4a82           	tstl %d2                                    
   45f20:	6710           	beqs 45f32 <sigaction+0x4e>                 
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
   45f22:	2002           	movel %d2,%d0                               
   45f24:	5380           	subql #1,%d0                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
   45f26:	721f           	moveq #31,%d1                               
   45f28:	b280           	cmpl %d0,%d1                                
   45f2a:	6506           	bcss 45f32 <sigaction+0x4e>                 
   *                                                                  
   *  NOTE: Solaris documentation claims to "silently enforce" this which
   *        contradicts the POSIX specification.                      
   */                                                                 
                                                                      
  if ( sig == SIGKILL )                                               
   45f2c:	7009           	moveq #9,%d0                                
   45f2e:	b082           	cmpl %d2,%d0                                
   45f30:	6610           	bnes 45f42 <sigaction+0x5e>                 
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   45f32:	4eb9 0004 d94c 	jsr 4d94c <__errno>                         
   45f38:	2040           	moveal %d0,%a0                              
   45f3a:	7016           	moveq #22,%d0                               
   45f3c:	2080           	movel %d0,%a0@                              
   45f3e:	70ff           	moveq #-1,%d0                               
   45f40:	6060           	bras 45fa2 <sigaction+0xbe>                 
  /*                                                                  
   *  Evaluate the new action structure and set the global signal vector
   *  appropriately.                                                  
   */                                                                 
                                                                      
  if ( act ) {                                                        
   45f42:	4a8a           	tstl %a2                                    
   45f44:	675a           	beqs 45fa0 <sigaction+0xbc>                 <== NEVER TAKEN
    /*                                                                
     *  Unless the user is installing the default signal actions, then
     *  we can just copy the provided sigaction structure into the vectors.
     */                                                               
                                                                      
    _ISR_Disable( level );                                            
   45f46:	203c 0000 0700 	movel #1792,%d0                             
   45f4c:	40c3           	movew %sr,%d3                               
   45f4e:	8083           	orl %d3,%d0                                 
   45f50:	46c0           	movew %d0,%sr                               
   45f52:	780c           	moveq #12,%d4                               
   45f54:	4c02 4800      	mulsl %d2,%d4                               
   45f58:	47f9 0004 e210 	lea 4e210 <memcpy>,%a3                      
      if ( act->sa_handler == SIG_DFL ) {                             
   45f5e:	4aaa 0008      	tstl %a2@(8)                                
   45f62:	661e           	bnes 45f82 <sigaction+0x9e>                 
        _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ];
   45f64:	4878 000c      	pea c <OPER1>                               
   45f68:	2004           	movel %d4,%d0                               
   45f6a:	0680 0005 e066 	addil #385126,%d0                           
   45f70:	2f00           	movel %d0,%sp@-                             
   45f72:	0684 0006 0b04 	addil #396036,%d4                           
   45f78:	2f04           	movel %d4,%sp@-                             
   45f7a:	4e93           	jsr %a3@                                    
   45f7c:	4fef 000c      	lea %sp@(12),%sp                            
   45f80:	601c           	bras 45f9e <sigaction+0xba>                 
      } else {                                                        
         _POSIX_signals_Clear_process_signals( sig );                 
   45f82:	2f02           	movel %d2,%sp@-                             
         _POSIX_signals_Vectors[ sig ] = *act;                        
   45f84:	0684 0006 0b04 	addil #396036,%d4                           
                                                                      
    _ISR_Disable( level );                                            
      if ( act->sa_handler == SIG_DFL ) {                             
        _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ];
      } else {                                                        
         _POSIX_signals_Clear_process_signals( sig );                 
   45f8a:	4eb9 0004 b0c8 	jsr 4b0c8 <_POSIX_signals_Clear_process_signals>
         _POSIX_signals_Vectors[ sig ] = *act;                        
   45f90:	4878 000c      	pea c <OPER1>                               
   45f94:	2f0a           	movel %a2,%sp@-                             
   45f96:	2f04           	movel %d4,%sp@-                             
   45f98:	4e93           	jsr %a3@                                    
   45f9a:	4fef 0010      	lea %sp@(16),%sp                            
      }                                                               
    _ISR_Enable( level );                                             
   45f9e:	46c3           	movew %d3,%sr                               
   *      now (signals not posted when SIG_IGN).                      
   *    + If we are now ignoring a signal that was previously pending,
   *      we clear the pending signal indicator.                      
   */                                                                 
                                                                      
  return 0;                                                           
   45fa0:	4280           	clrl %d0                                    
}                                                                     
   45fa2:	4cee 0c1c ffec 	moveml %fp@(-20),%d2-%d4/%a2-%a3            
   45fa8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000462d0 <sigtimedwait>: int sigtimedwait( const sigset_t *set, siginfo_t *info, const struct timespec *timeout ) {
   462d0:	4e56 ffd8      	linkw %fp,#-40                              
   462d4:	48d7 3c1c      	moveml %d2-%d4/%a2-%a5,%sp@                 
   462d8:	266e 0008      	moveal %fp@(8),%a3                          
   462dc:	246e 000c      	moveal %fp@(12),%a2                         
   462e0:	242e 0010      	movel %fp@(16),%d2                          
  ISR_Level          level;                                           
                                                                      
  /*                                                                  
   *  Error check parameters before disabling interrupts.             
   */                                                                 
  if ( !set )                                                         
   462e4:	4a8b           	tstl %a3                                    
   462e6:	6730           	beqs 46318 <sigtimedwait+0x48>              
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
  if ( timeout ) {                                                    
   462e8:	4a82           	tstl %d2                                    
   462ea:	673c           	beqs 46328 <sigtimedwait+0x58>              
                                                                      
    if ( !_Timespec_Is_valid( timeout ) )                             
   462ec:	2f02           	movel %d2,%sp@-                             
   462ee:	4eb9 0004 962c 	jsr 4962c <_Timespec_Is_valid>              
   462f4:	588f           	addql #4,%sp                                
   462f6:	4a00           	tstb %d0                                    
   462f8:	6610           	bnes 4630a <sigtimedwait+0x3a>              
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   462fa:	4eb9 0004 dec8 	jsr 4dec8 <__errno>                         
   46300:	7616           	moveq #22,%d3                               
   46302:	2240           	moveal %d0,%a1                              
   46304:	2283           	movel %d3,%a1@                              
   46306:	6000 0144      	braw 4644c <sigtimedwait+0x17c>             
                                                                      
    interval = _Timespec_To_ticks( timeout );                         
   4630a:	2f02           	movel %d2,%sp@-                             
   4630c:	4eb9 0004 9698 	jsr 49698 <_Timespec_To_ticks>              
                                                                      
    if ( !interval )                                                  
   46312:	588f           	addql #4,%sp                                
   46314:	4a80           	tstl %d0                                    
   46316:	6612           	bnes 4632a <sigtimedwait+0x5a>              <== ALWAYS TAKEN
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   46318:	4eb9 0004 dec8 	jsr 4dec8 <__errno>                         
   4631e:	7416           	moveq #22,%d2                               
   46320:	2040           	moveal %d0,%a0                              
   46322:	2082           	movel %d2,%a0@                              
   46324:	6000 0126      	braw 4644c <sigtimedwait+0x17c>             
                                                                      
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
   46328:	4280           	clrl %d0                                    
                                                                      
  /*                                                                  
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
   4632a:	4a8a           	tstl %a2                                    
   4632c:	6604           	bnes 46332 <sigtimedwait+0x62>              
   4632e:	45ee fff4      	lea %fp@(-12),%a2                           
                                                                      
  the_thread = _Thread_Executing;                                     
   46332:	2079 0006 0ea2 	moveal 60ea2 <_Per_CPU_Information+0xc>,%a0 
   *  What if they are already pending?                               
   */                                                                 
                                                                      
  /* API signals pending? */                                          
                                                                      
  _ISR_Disable( level );                                              
   46338:	223c 0000 0700 	movel #1792,%d1                             
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
                                                                      
  the_thread = _Thread_Executing;                                     
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
   4633e:	2868 0102      	moveal %a0@(258),%a4                        
   *  What if they are already pending?                               
   */                                                                 
                                                                      
  /* API signals pending? */                                          
                                                                      
  _ISR_Disable( level );                                              
   46342:	40c3           	movew %sr,%d3                               
   46344:	8283           	orl %d3,%d1                                 
   46346:	46c1           	movew %d1,%sr                               
  if ( *set & api->signals_pending ) {                                
   46348:	2413           	movel %a3@,%d2                              
   4634a:	2802           	movel %d2,%d4                               
   4634c:	222c 00d4      	movel %a4@(212),%d1                         
   46350:	c881           	andl %d1,%d4                                
   46352:	672a           	beqs 4637e <sigtimedwait+0xae>              
    /* XXX real info later */                                         
    the_info->si_signo = _POSIX_signals_Get_lowest( api->signals_pending );
   46354:	2f01           	movel %d1,%sp@-                             
   46356:	4eb9 0004 6284 	jsr 46284 <_POSIX_signals_Get_lowest>       
   4635c:	2480           	movel %d0,%a2@                              
    _POSIX_signals_Clear_signals(                                     
   4635e:	4297           	clrl %sp@                                   
   46360:	42a7           	clrl %sp@-                                  
   46362:	2f0a           	movel %a2,%sp@-                             
   46364:	2f00           	movel %d0,%sp@-                             
   46366:	2f0c           	movel %a4,%sp@-                             
   46368:	4eb9 0004 b70c 	jsr 4b70c <_POSIX_signals_Clear_signals>    
      the_info->si_signo,                                             
      the_info,                                                       
      false,                                                          
      false                                                           
    );                                                                
    _ISR_Enable( level );                                             
   4636e:	46c3           	movew %d3,%sr                               
                                                                      
    the_info->si_code = SI_USER;                                      
   46370:	7001           	moveq #1,%d0                                
    the_info->si_value.sival_int = 0;                                 
   46372:	42aa 0008      	clrl %a2@(8)                                
    return the_info->si_signo;                                        
   46376:	2412           	movel %a2@,%d2                              
      false,                                                          
      false                                                           
    );                                                                
    _ISR_Enable( level );                                             
                                                                      
    the_info->si_code = SI_USER;                                      
   46378:	2540 0004      	movel %d0,%a2@(4)                           
   4637c:	6036           	bras 463b4 <sigtimedwait+0xe4>              
    return the_info->si_signo;                                        
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
   4637e:	2239 0006 10c8 	movel 610c8 <_POSIX_signals_Pending>,%d1    
   46384:	4bf9 0004 b70c 	lea 4b70c <_POSIX_signals_Clear_signals>,%a5
   4638a:	c481           	andl %d1,%d2                                
   4638c:	672e           	beqs 463bc <sigtimedwait+0xec>              
    signo = _POSIX_signals_Get_lowest( _POSIX_signals_Pending );      
   4638e:	2f01           	movel %d1,%sp@-                             
   46390:	4eb9 0004 6284 	jsr 46284 <_POSIX_signals_Get_lowest>       
   46396:	2400           	movel %d0,%d2                               
    _POSIX_signals_Clear_signals( api, signo, the_info, true, false );
   46398:	4297           	clrl %sp@                                   
   4639a:	4878 0001      	pea 1 <ADD>                                 
   4639e:	2f0a           	movel %a2,%sp@-                             
   463a0:	2f00           	movel %d0,%sp@-                             
   463a2:	2f0c           	movel %a4,%sp@-                             
   463a4:	4e95           	jsr %a5@                                    
    _ISR_Enable( level );                                             
   463a6:	46c3           	movew %d3,%sr                               
                                                                      
    the_info->si_signo = signo;                                       
    the_info->si_code = SI_USER;                                      
   463a8:	7201           	moveq #1,%d1                                
  if ( *set & _POSIX_signals_Pending ) {                              
    signo = _POSIX_signals_Get_lowest( _POSIX_signals_Pending );      
    _POSIX_signals_Clear_signals( api, signo, the_info, true, false );
    _ISR_Enable( level );                                             
                                                                      
    the_info->si_signo = signo;                                       
   463aa:	2482           	movel %d2,%a2@                              
    the_info->si_code = SI_USER;                                      
   463ac:	2541 0004      	movel %d1,%a2@(4)                           
    the_info->si_value.sival_int = 0;                                 
   463b0:	42aa 0008      	clrl %a2@(8)                                
    return signo;                                                     
   463b4:	4fef 0014      	lea %sp@(20),%sp                            
   463b8:	6000 0094      	braw 4644e <sigtimedwait+0x17e>             
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
   463bc:	72ff           	moveq #-1,%d1                               
   463be:	2481           	movel %d1,%a2@                              
   463c0:	2239 0006 0a38 	movel 60a38 <_Thread_Dispatch_disable_level>,%d1
   463c6:	5281           	addql #1,%d1                                
   463c8:	23c1 0006 0a38 	movel %d1,60a38 <_Thread_Dispatch_disable_level>
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
    the_thread->Wait.return_code     = EINTR;                         
   463ce:	7204           	moveq #4,%d1                                
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
   463d0:	43f9 0006 1060 	lea 61060 <_POSIX_signals_Wait_queue>,%a1   
    the_thread->Wait.return_code     = EINTR;                         
   463d6:	2141 0034      	movel %d1,%a0@(52)                          
    the_thread->Wait.option          = *set;                          
   463da:	2153 0030      	movel %a3@,%a0@(48)                         
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (      
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
   463de:	123c 0001      	moveb #1,%d1                                
    the_thread->Wait.return_argument = the_info;                      
   463e2:	214a 0028      	movel %a2,%a0@(40)                          
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
   463e6:	2149 0044      	movel %a1,%a0@(68)                          
   463ea:	23c1 0006 1090 	movel %d1,61090 <_POSIX_signals_Wait_queue+0x30>
    the_thread->Wait.return_code     = EINTR;                         
    the_thread->Wait.option          = *set;                          
    the_thread->Wait.return_argument = the_info;                      
    _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue );
    _ISR_Enable( level );                                             
   463f0:	46c3           	movew %d3,%sr                               
    _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval );    
   463f2:	4879 0004 938c 	pea 4938c <_Thread_queue_Timeout>           
   463f8:	2f00           	movel %d0,%sp@-                             
   463fa:	4879 0006 1060 	pea 61060 <_POSIX_signals_Wait_queue>       
   46400:	4eb9 0004 9078 	jsr 49078 <_Thread_queue_Enqueue_with_handler>
  _Thread_Enable_dispatch();                                          
   46406:	4eb9 0004 8c4a 	jsr 48c4a <_Thread_Enable_dispatch>         
  /*                                                                  
   * When the thread is set free by a signal, it is need to eliminate 
   * the signal.                                                      
   */                                                                 
                                                                      
  _POSIX_signals_Clear_signals( api, the_info->si_signo, the_info, false, false );
   4640c:	42a7           	clrl %sp@-                                  
   4640e:	42a7           	clrl %sp@-                                  
   46410:	2f0a           	movel %a2,%sp@-                             
   46412:	2f12           	movel %a2@,%sp@-                            
   46414:	2f0c           	movel %a4,%sp@-                             
   46416:	4e95           	jsr %a5@                                    
  /* Set errno only if return code is not EINTR or                    
   * if EINTR was caused by a signal being caught, which              
   * was not in our set.                                              
   */                                                                 
                                                                      
  if ( (_Thread_Executing->Wait.return_code != EINTR)                 
   46418:	2079 0006 0ea2 	moveal 60ea2 <_Per_CPU_Information+0xc>,%a0 
   4641e:	4fef 0020      	lea %sp@(32),%sp                            
   46422:	7004           	moveq #4,%d0                                
   46424:	b0a8 0034      	cmpl %a0@(52),%d0                           
   46428:	6610           	bnes 4643a <sigtimedwait+0x16a>             
       || !(*set & signo_to_mask( the_info->si_signo )) ) {           
   4642a:	2412           	movel %a2@,%d2                              
   4642c:	2202           	movel %d2,%d1                               
   4642e:	5381           	subql #1,%d1                                
   46430:	103c 0001      	moveb #1,%d0                                
   46434:	e3a8           	lsll %d1,%d0                                
   46436:	c093           	andl %a3@,%d0                               
   46438:	6614           	bnes 4644e <sigtimedwait+0x17e>             
    errno = _Thread_Executing->Wait.return_code;                      
   4643a:	4eb9 0004 dec8 	jsr 4dec8 <__errno>                         
   46440:	2079 0006 0ea2 	moveal 60ea2 <_Per_CPU_Information+0xc>,%a0 
   46446:	2240           	moveal %d0,%a1                              
   46448:	22a8 0034      	movel %a0@(52),%a1@                         
    return -1;                                                        
   4644c:	74ff           	moveq #-1,%d2                               
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
   4644e:	2002           	movel %d2,%d0                               
   46450:	4cee 3c1c ffd8 	moveml %fp@(-40),%d2-%d4/%a2-%a5            
   46456:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

00047ff4 <sigwait>: int sigwait( const sigset_t *set, int *sig ) {
   47ff4:	4e56 0000      	linkw %fp,#0                                
   47ff8:	2f0a           	movel %a2,%sp@-                             
   47ffa:	246e 000c      	moveal %fp@(12),%a2                         
  int status;                                                         
                                                                      
  status = sigtimedwait( set, NULL, NULL );                           
   47ffe:	42a7           	clrl %sp@-                                  
   48000:	42a7           	clrl %sp@-                                  
   48002:	2f2e 0008      	movel %fp@(8),%sp@-                         
   48006:	4eb9 0004 7e50 	jsr 47e50 <sigtimedwait>                    
                                                                      
  if ( status != -1 ) {                                               
   4800c:	4fef 000c      	lea %sp@(12),%sp                            
   48010:	72ff           	moveq #-1,%d1                               
   48012:	b280           	cmpl %d0,%d1                                
   48014:	6708           	beqs 4801e <sigwait+0x2a>                   
    if ( sig )                                                        
   48016:	4a8a           	tstl %a2                                    
   48018:	6710           	beqs 4802a <sigwait+0x36>                   <== NEVER TAKEN
      *sig = status;                                                  
   4801a:	2480           	movel %d0,%a2@                              
   4801c:	600c           	bras 4802a <sigwait+0x36>                   
    return 0;                                                         
  }                                                                   
                                                                      
  return errno;                                                       
   4801e:	4eb9 0004 f698 	jsr 4f698 <__errno>                         
   48024:	2040           	moveal %d0,%a0                              
   48026:	2010           	movel %a0@,%d0                              
   48028:	6002           	bras 4802c <sigwait+0x38>                   
  status = sigtimedwait( set, NULL, NULL );                           
                                                                      
  if ( status != -1 ) {                                               
    if ( sig )                                                        
      *sig = status;                                                  
    return 0;                                                         
   4802a:	4280           	clrl %d0                                    
  }                                                                   
                                                                      
  return errno;                                                       
}                                                                     
   4802c:	246e fffc      	moveal %fp@(-4),%a2                         
   48030:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00044676 <siproc>: /* * Process input character, with semaphore. */ static int siproc (unsigned char c, struct rtems_termios_tty *tty) {
   44676:	4e56 0000      	linkw %fp,#0                                
   4467a:	2f0a           	movel %a2,%sp@-                             
   4467c:	246e 000c      	moveal %fp@(12),%a2                         
  int i;                                                              
                                                                      
  /*                                                                  
   * Obtain output semaphore if character will be echoed              
   */                                                                 
  if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) {
   44680:	202a 003c      	movel %a2@(60),%d0                          
/*                                                                    
 * Process input character, with semaphore.                           
 */                                                                   
static int                                                            
siproc (unsigned char c, struct rtems_termios_tty *tty)               
{                                                                     
   44684:	2f02           	movel %d2,%sp@-                             
   44686:	4282           	clrl %d2                                    
   44688:	142e 000b      	moveb %fp@(11),%d2                          
  int i;                                                              
                                                                      
  /*                                                                  
   * Obtain output semaphore if character will be echoed              
   */                                                                 
  if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) {
   4468c:	0280 0000 0e78 	andil #3704,%d0                             
   44692:	6734           	beqs 446c8 <siproc+0x52>                    <== NEVER TAKEN
    rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 
   44694:	42a7           	clrl %sp@-                                  
   44696:	42a7           	clrl %sp@-                                  
   44698:	2f2a 0018      	movel %a2@(24),%sp@-                        
   4469c:	4eb9 0004 5854 	jsr 45854 <rtems_semaphore_obtain>          
    i = iproc (c, tty);                                               
   446a2:	2f0a           	movel %a2,%sp@-                             
   446a4:	2f02           	movel %d2,%sp@-                             
   446a6:	4eba fe66      	jsr %pc@(4450e <iproc>)                     
    rtems_semaphore_release (tty->osem);                              
   446aa:	2f2a 0018      	movel %a2@(24),%sp@-                        
  /*                                                                  
   * Obtain output semaphore if character will be echoed              
   */                                                                 
  if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) {
    rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 
    i = iproc (c, tty);                                               
   446ae:	2400           	movel %d0,%d2                               
    rtems_semaphore_release (tty->osem);                              
   446b0:	4eb9 0004 595c 	jsr 4595c <rtems_semaphore_release>         
  }                                                                   
  else {                                                              
    i = iproc (c, tty);                                               
  }                                                                   
  return i;                                                           
}                                                                     
   446b6:	246e fffc      	moveal %fp@(-4),%a2                         
   446ba:	2002           	movel %d2,%d0                               
   * Obtain output semaphore if character will be echoed              
   */                                                                 
  if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) {
    rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 
    i = iproc (c, tty);                                               
    rtems_semaphore_release (tty->osem);                              
   446bc:	4fef 0018      	lea %sp@(24),%sp                            
  }                                                                   
  else {                                                              
    i = iproc (c, tty);                                               
  }                                                                   
  return i;                                                           
}                                                                     
   446c0:	242e fff8      	movel %fp@(-8),%d2                          
   446c4:	4e5e           	unlk %fp                                    
   446c6:	4e75           	rts                                         
    rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 
    i = iproc (c, tty);                                               
    rtems_semaphore_release (tty->osem);                              
  }                                                                   
  else {                                                              
    i = iproc (c, tty);                                               
   446c8:	2d4a 000c      	movel %a2,%fp@(12)                          <== NOT EXECUTED
  }                                                                   
  return i;                                                           
}                                                                     
   446cc:	246e fffc      	moveal %fp@(-4),%a2                         <== NOT EXECUTED
    rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 
    i = iproc (c, tty);                                               
    rtems_semaphore_release (tty->osem);                              
  }                                                                   
  else {                                                              
    i = iproc (c, tty);                                               
   446d0:	2d42 0008      	movel %d2,%fp@(8)                           <== NOT EXECUTED
  }                                                                   
  return i;                                                           
}                                                                     
   446d4:	242e fff8      	movel %fp@(-8),%d2                          <== NOT EXECUTED
   446d8:	4e5e           	unlk %fp                                    <== NOT EXECUTED
    rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT); 
    i = iproc (c, tty);                                               
    rtems_semaphore_release (tty->osem);                              
  }                                                                   
  else {                                                              
    i = iproc (c, tty);                                               
   446da:	6000 fe32      	braw 4450e <iproc>                          <== NOT EXECUTED
                                                                      

0004596c <statvfs>: #include <sys/statvfs.h> int statvfs (const char *path, struct statvfs *sb) {
   4596c:	4e56 ffdc      	linkw %fp,#-36                              
   45970:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
   45974:	246e 0008      	moveal %fp@(8),%a2                          
   *    The root node of the mounted filesytem.                       
   *    The node for the directory that the fileystem is mounted on.  
   *    The mount entry that is being refered to.                     
   */                                                                 
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x0, &loc, true ) )
   45978:	240e           	movel %fp,%d2                               
   4597a:	0682 ffff ffec 	addil #-20,%d2                              
   45980:	2f0a           	movel %a2,%sp@-                             
                                                                      
#include <sys/statvfs.h>                                              
                                                                      
int                                                                   
statvfs (const char *path, struct statvfs *sb)                        
{                                                                     
   45982:	262e 000c      	movel %fp@(12),%d3                          
   *    The root node of the mounted filesytem.                       
   *    The node for the directory that the fileystem is mounted on.  
   *    The mount entry that is being refered to.                     
   */                                                                 
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x0, &loc, true ) )
   45986:	4eb9 0005 0e94 	jsr 50e94 <strlen>                          
   4598c:	7201           	moveq #1,%d1                                
   4598e:	2e81           	movel %d1,%sp@                              
   45990:	2f02           	movel %d2,%sp@-                             
   45992:	42a7           	clrl %sp@-                                  
   45994:	2f00           	movel %d0,%sp@-                             
   45996:	2f0a           	movel %a2,%sp@-                             
   45998:	4eb9 0004 46bc 	jsr 446bc <rtems_filesystem_evaluate_path>  
   4599e:	4fef 0014      	lea %sp@(20),%sp                            
   459a2:	4a80           	tstl %d0                                    
   459a4:	6638           	bnes 459de <statvfs+0x72>                   <== NEVER TAKEN
    return -1;                                                        
                                                                      
  mt_entry      = loc.mt_entry;                                       
  fs_mount_root = &mt_entry->mt_fs_root;                              
                                                                      
  memset (sb, 0, sizeof (struct statvfs));                            
   459a6:	4878 0038      	pea 38 <DBL_MANT_DIG+0x3>                   
   */                                                                 
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x0, &loc, true ) )
    return -1;                                                        
                                                                      
  mt_entry      = loc.mt_entry;                                       
   459aa:	246e fffc      	moveal %fp@(-4),%a2                         
  fs_mount_root = &mt_entry->mt_fs_root;                              
                                                                      
  memset (sb, 0, sizeof (struct statvfs));                            
   459ae:	42a7           	clrl %sp@-                                  
   459b0:	2f03           	movel %d3,%sp@-                             
   459b2:	4eb9 0004 fcc4 	jsr 4fcc4 <memset>                          
                                                                      
  result = ( fs_mount_root->ops->statvfs_h )( fs_mount_root, sb );    
   459b8:	206a 0028      	moveal %a2@(40),%a0                         
   459bc:	2f03           	movel %d3,%sp@-                             
   459be:	486a 001c      	pea %a2@(28)                                
   459c2:	2068 0044      	moveal %a0@(68),%a0                         
   459c6:	4e90           	jsr %a0@                                    
                                                                      
  rtems_filesystem_freenode( &loc );                                  
   459c8:	2f02           	movel %d2,%sp@-                             
   459ca:	2d40 ffe8      	movel %d0,%fp@(-24)                         
   459ce:	4eb9 0004 4788 	jsr 44788 <rtems_filesystem_freenode>       
                                                                      
  return result;                                                      
   459d4:	202e ffe8      	movel %fp@(-24),%d0                         
   459d8:	4fef 0018      	lea %sp@(24),%sp                            
   459dc:	6002           	bras 459e0 <statvfs+0x74>                   
   *    The node for the directory that the fileystem is mounted on.  
   *    The mount entry that is being refered to.                     
   */                                                                 
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x0, &loc, true ) )
    return -1;                                                        
   459de:	70ff           	moveq #-1,%d0                               <== NOT EXECUTED
  result = ( fs_mount_root->ops->statvfs_h )( fs_mount_root, sb );    
                                                                      
  rtems_filesystem_freenode( &loc );                                  
                                                                      
  return result;                                                      
}                                                                     
   459e0:	4cee 040c ffdc 	moveml %fp@(-36),%d2-%d3/%a2                
   459e6:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0004488c <sync_per_thread>: fdatasync(fn); } /* iterate over all FILE *'s for this thread */ static void sync_per_thread(Thread_Control *t) {
   4488c:	4e56 0000      	linkw %fp,#0                                
   44890:	206e 0008      	moveal %fp@(8),%a0                          
                                                                      
   /*                                                                 
    *  The sync_wrapper() function will operate on the current thread's
    *  reent structure so we will temporarily use that.               
    */                                                                
   this_reent = t->libc_reent;                                        
   44894:	2028 00fa      	movel %a0@(250),%d0                         
  fdatasync(fn);                                                      
}                                                                     
                                                                      
/* iterate over all FILE *'s for this thread */                       
static void sync_per_thread(Thread_Control *t)                        
{                                                                     
   44898:	2f02           	movel %d2,%sp@-                             
   /*                                                                 
    *  The sync_wrapper() function will operate on the current thread's
    *  reent structure so we will temporarily use that.               
    */                                                                
   this_reent = t->libc_reent;                                        
   if ( this_reent ) {                                                
   4489a:	4a80           	tstl %d0                                    
   4489c:	6728           	beqs 448c6 <sync_per_thread+0x3a>           <== NEVER TAKEN
     current_reent = _Thread_Executing->libc_reent;                   
   4489e:	2279 0006 0892 	moveal 60892 <_Per_CPU_Information+0xc>,%a1 
   448a4:	2429 00fa      	movel %a1@(250),%d2                         
     _Thread_Executing->libc_reent = this_reent;                      
   448a8:	2340 00fa      	movel %d0,%a1@(250)                         
     _fwalk (t->libc_reent, sync_wrapper);                            
   448ac:	487a 0020      	pea %pc@(448ce <sync_wrapper>)              
   448b0:	2f28 00fa      	movel %a0@(250),%sp@-                       
   448b4:	4eb9 0004 e954 	jsr 4e954 <_fwalk>                          
     _Thread_Executing->libc_reent = current_reent;                   
   448ba:	2079 0006 0892 	moveal 60892 <_Per_CPU_Information+0xc>,%a0 
   448c0:	508f           	addql #8,%sp                                
   448c2:	2142 00fa      	movel %d2,%a0@(250)                         
   }                                                                  
}                                                                     
   448c6:	242e fffc      	movel %fp@(-4),%d2                          
   448ca:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

0004aca8 <tcsetattr>: int tcsetattr( int fd, int opt, struct termios *tp ) {
   4aca8:	4e56 0000      	linkw %fp,#0                                
   4acac:	202e 000c      	movel %fp@(12),%d0                          
   4acb0:	2f03           	movel %d3,%sp@-                             
   4acb2:	262e 0010      	movel %fp@(16),%d3                          
   4acb6:	2f02           	movel %d2,%sp@-                             
   4acb8:	242e 0008      	movel %fp@(8),%d2                           
  switch (opt) {                                                      
   4acbc:	4a80           	tstl %d0                                    
   4acbe:	672c           	beqs 4acec <tcsetattr+0x44>                 
   4acc0:	7201           	moveq #1,%d1                                
   4acc2:	b280           	cmpl %d0,%d1                                
   4acc4:	6710           	beqs 4acd6 <tcsetattr+0x2e>                 
  default:                                                            
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
   4acc6:	4eb9 0004 e3a0 	jsr 4e3a0 <__errno>                         
   4accc:	2040           	moveal %d0,%a0                              
   4acce:	20bc 0000 0086 	movel #134,%a0@                             
   4acd4:	6034           	bras 4ad0a <tcsetattr+0x62>                 
                                                                      
  case TCSADRAIN:                                                     
    if (ioctl( fd, RTEMS_IO_TCDRAIN, NULL ) < 0)                      
   4acd6:	42a7           	clrl %sp@-                                  
   4acd8:	4878 0003      	pea 3 <DIVIDE>                              
   4acdc:	2f02           	movel %d2,%sp@-                             
   4acde:	4eb9 0004 a9ac 	jsr 4a9ac <ioctl>                           
   4ace4:	4fef 000c      	lea %sp@(12),%sp                            
   4ace8:	4a80           	tstl %d0                                    
   4acea:	6d1e           	blts 4ad0a <tcsetattr+0x62>                 <== NEVER TAKEN
    	return -1;                                                       
    /*                                                                
     * Fall through to....                                            
     */                                                               
  case TCSANOW:                                                       
    return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp );                  
   4acec:	2d43 0010      	movel %d3,%fp@(16)                          
   4acf0:	7002           	moveq #2,%d0                                
   4acf2:	2d42 0008      	movel %d2,%fp@(8)                           
  }                                                                   
}                                                                     
   4acf6:	242e fff8      	movel %fp@(-8),%d2                          
   4acfa:	262e fffc      	movel %fp@(-4),%d3                          
    	return -1;                                                       
    /*                                                                
     * Fall through to....                                            
     */                                                               
  case TCSANOW:                                                       
    return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp );                  
   4acfe:	2d40 000c      	movel %d0,%fp@(12)                          
  }                                                                   
}                                                                     
   4ad02:	4e5e           	unlk %fp                                    
    	return -1;                                                       
    /*                                                                
     * Fall through to....                                            
     */                                                               
  case TCSANOW:                                                       
    return ioctl( fd, RTEMS_IO_SET_ATTRIBUTES, tp );                  
   4ad04:	4ef9 0004 a9ac 	jmp 4a9ac <ioctl>                           
  }                                                                   
}                                                                     
   4ad0a:	242e fff8      	movel %fp@(-8),%d2                          
   4ad0e:	70ff           	moveq #-1,%d0                               
   4ad10:	262e fffc      	movel %fp@(-4),%d3                          
   4ad14:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000454f4 <timer_create>: timer_t *timerid ) { POSIX_Timer_Control *ptimer; if ( clock_id != CLOCK_REALTIME )
   454f4:	7001           	moveq #1,%d0                                
int timer_create(                                                     
  clockid_t        clock_id,                                          
  struct sigevent *evp,                                               
  timer_t         *timerid                                            
)                                                                     
{                                                                     
   454f6:	4e56 0000      	linkw %fp,#0                                
   454fa:	2f0b           	movel %a3,%sp@-                             
   454fc:	266e 0010      	moveal %fp@(16),%a3                         
   45500:	2f0a           	movel %a2,%sp@-                             
   45502:	246e 000c      	moveal %fp@(12),%a2                         
  POSIX_Timer_Control *ptimer;                                        
                                                                      
  if ( clock_id != CLOCK_REALTIME )                                   
   45506:	b0ae 0008      	cmpl %fp@(8),%d0                            
   4550a:	6620           	bnes 4552c <timer_create+0x38>              
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !timerid )                                                     
   4550c:	4a8b           	tstl %a3                                    
   4550e:	671c           	beqs 4552c <timer_create+0x38>              
 /*                                                                   
  *  The data of the structure evp are checked in order to verify if they
  *  are coherent.                                                    
  */                                                                  
                                                                      
  if (evp != NULL) {                                                  
   45510:	4a8a           	tstl %a2                                    
   45512:	6726           	beqs 4553a <timer_create+0x46>              
    /* The structure has data */                                      
    if ( ( evp->sigev_notify != SIGEV_NONE ) &&                       
   45514:	2012           	movel %a2@,%d0                              
   45516:	7201           	moveq #1,%d1                                
   45518:	5380           	subql #1,%d0                                
   4551a:	b280           	cmpl %d0,%d1                                
   4551c:	650e           	bcss 4552c <timer_create+0x38>              <== NEVER TAKEN
         ( evp->sigev_notify != SIGEV_SIGNAL ) ) {                    
       /* The value of the field sigev_notify is not valid */         
       rtems_set_errno_and_return_minus_one( EINVAL );                
     }                                                                
                                                                      
     if ( !evp->sigev_signo )                                         
   4551e:	202a 0004      	movel %a2@(4),%d0                           
   45522:	6708           	beqs 4552c <timer_create+0x38>              <== NEVER TAKEN
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
   45524:	5380           	subql #1,%d0                                
       rtems_set_errno_and_return_minus_one( EINVAL );                
                                                                      
     if ( !is_valid_signo(evp->sigev_signo) )                         
   45526:	721f           	moveq #31,%d1                               
   45528:	b280           	cmpl %d0,%d1                                
   4552a:	640e           	bccs 4553a <timer_create+0x46>              <== ALWAYS TAKEN
       rtems_set_errno_and_return_minus_one( EINVAL );                
   4552c:	4eb9 0004 d3b4 	jsr 4d3b4 <__errno>                         
   45532:	7216           	moveq #22,%d1                               
   45534:	2040           	moveal %d0,%a0                              
   45536:	2081           	movel %d1,%a0@                              
   45538:	6034           	bras 4556e <timer_create+0x7a>              
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
   4553a:	2039 0005 f548 	movel 5f548 <_Thread_Dispatch_disable_level>,%d0
   45540:	5280           	addql #1,%d0                                
   45542:	23c0 0005 f548 	movel %d0,5f548 <_Thread_Dispatch_disable_level>
 *  the inactive chain of free timer control blocks.                  
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Timer_Control *_POSIX_Timer_Allocate( void )
{                                                                     
  return (POSIX_Timer_Control *) _Objects_Allocate( &_POSIX_Timer_Information );
   45548:	4879 0005 f798 	pea 5f798 <_POSIX_Timer_Information>        
   4554e:	4eb9 0004 71b0 	jsr 471b0 <_Objects_Allocate>               
                                                                      
  /*                                                                  
   *  Allocate a timer                                                
   */                                                                 
  ptimer = _POSIX_Timer_Allocate();                                   
  if ( !ptimer ) {                                                    
   45554:	588f           	addql #4,%sp                                
   45556:	2040           	moveal %d0,%a0                              
   45558:	4a80           	tstl %d0                                    
   4555a:	6616           	bnes 45572 <timer_create+0x7e>              
    _Thread_Enable_dispatch();                                        
   4555c:	4eb9 0004 813a 	jsr 4813a <_Thread_Enable_dispatch>         
    rtems_set_errno_and_return_minus_one( EAGAIN );                   
   45562:	4eb9 0004 d3b4 	jsr 4d3b4 <__errno>                         
   45568:	2040           	moveal %d0,%a0                              
   4556a:	700b           	moveq #11,%d0                               
   4556c:	2080           	movel %d0,%a0@                              
   4556e:	70ff           	moveq #-1,%d0                               
   45570:	606a           	bras 455dc <timer_create+0xe8>              
  }                                                                   
                                                                      
  /* The data of the created timer are stored to use them later */    
                                                                      
  ptimer->state     = POSIX_TIMER_STATE_CREATE_NEW;                   
   45572:	7002           	moveq #2,%d0                                
   45574:	1140 003c      	moveb %d0,%a0@(60)                          
  ptimer->thread_id = _Thread_Executing->Object.id;                   
   45578:	2279 0005 f9b2 	moveal 5f9b2 <_Per_CPU_Information+0xc>,%a1 
   4557e:	2169 0008 0038 	movel %a1@(8),%a0@(56)                      
                                                                      
  if ( evp != NULL ) {                                                
   45584:	4a8a           	tstl %a2                                    
   45586:	6710           	beqs 45598 <timer_create+0xa4>              
    ptimer->inf.sigev_notify = evp->sigev_notify;                     
   45588:	2152 003e      	movel %a2@,%a0@(62)                         
    ptimer->inf.sigev_signo  = evp->sigev_signo;                      
   4558c:	216a 0004 0042 	movel %a2@(4),%a0@(66)                      
    ptimer->inf.sigev_value  = evp->sigev_value;                      
   45592:	216a 0008 0046 	movel %a2@(8),%a0@(70)                      
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
   45598:	2028 0008      	movel %a0@(8),%d0                           
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   4559c:	4281           	clrl %d1                                    
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   4559e:	2279 0005 f7b0 	moveal 5f7b0 <_POSIX_Timer_Information+0x18>,%a1
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
   455a4:	3200           	movew %d0,%d1                               
  }                                                                   
                                                                      
  ptimer->overrun  = 0;                                               
   455a6:	42a8 0066      	clrl %a0@(102)                              
  ptimer->timer_data.it_value.tv_sec     = 0;                         
   455aa:	42a8 005a      	clrl %a0@(90)                               
  ptimer->timer_data.it_value.tv_nsec    = 0;                         
   455ae:	42a8 005e      	clrl %a0@(94)                               
  ptimer->timer_data.it_interval.tv_sec  = 0;                         
   455b2:	42a8 0052      	clrl %a0@(82)                               
  ptimer->timer_data.it_interval.tv_nsec = 0;                         
   455b6:	42a8 0056      	clrl %a0@(86)                               
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   455ba:	42a8 0018      	clrl %a0@(24)                               
  the_watchdog->routine   = routine;                                  
   455be:	42a8 002c      	clrl %a0@(44)                               
  the_watchdog->id        = id;                                       
   455c2:	42a8 0030      	clrl %a0@(48)                               
  the_watchdog->user_data = user_data;                                
   455c6:	42a8 0034      	clrl %a0@(52)                               
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
   455ca:	2388 1c00      	movel %a0,%a1@(00000000,%d1:l:4)            
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
   455ce:	42a8 000c      	clrl %a0@(12)                               
                                                                      
  _Watchdog_Initialize( &ptimer->Timer, NULL, 0, NULL );              
  _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0);   
                                                                      
  *timerid  = ptimer->Object.id;                                      
   455d2:	2680           	movel %d0,%a3@                              
  _Thread_Enable_dispatch();                                          
   455d4:	4eb9 0004 813a 	jsr 4813a <_Thread_Enable_dispatch>         
  return 0;                                                           
   455da:	4280           	clrl %d0                                    
}                                                                     
   455dc:	246e fff8      	moveal %fp@(-8),%a2                         
   455e0:	266e fffc      	moveal %fp@(-4),%a3                         
   455e4:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000456ba <ualarm>: useconds_t ualarm( useconds_t useconds, useconds_t interval ) {
   456ba:	4e56 ffe8      	linkw %fp,#-24                              
   456be:	48d7 041c      	moveml %d2-%d4/%a2,%sp@                     
   456c2:	262e 0008      	movel %fp@(8),%d3                           
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
   456c6:	4ab9 0006 09d8 	tstl 609d8 <_POSIX_signals_Ualarm_timer+0x1c>
   456cc:	6620           	bnes 456ee <ualarm+0x34>                    
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   456ce:	42b9 0006 09c4 	clrl 609c4 <_POSIX_signals_Ualarm_timer+0x8>
  the_watchdog->routine   = routine;                                  
   456d4:	203c 0004 5678 	movel #284280,%d0                           
  the_watchdog->id        = id;                                       
   456da:	42b9 0006 09dc 	clrl 609dc <_POSIX_signals_Ualarm_timer+0x20>
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
   456e0:	23c0 0006 09d8 	movel %d0,609d8 <_POSIX_signals_Ualarm_timer+0x1c>
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
   456e6:	42b9 0006 09e0 	clrl 609e0 <_POSIX_signals_Ualarm_timer+0x24>
   456ec:	6056           	bras 45744 <ualarm+0x8a>                    
    _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
   456ee:	4879 0006 09bc 	pea 609bc <_POSIX_signals_Ualarm_timer>     
   456f4:	4eb9 0004 8e34 	jsr 48e34 <_Watchdog_Remove>                
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
   456fa:	588f           	addql #4,%sp                                
   456fc:	7201           	moveq #1,%d1                                
   456fe:	5580           	subql #2,%d0                                
   45700:	b280           	cmpl %d0,%d1                                
   45702:	6540           	bcss 45744 <ualarm+0x8a>                    <== NEVER TAKEN
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
   45704:	2039 0006 09d0 	movel 609d0 <_POSIX_signals_Ualarm_timer+0x14>,%d0
   4570a:	d0b9 0006 09c8 	addl 609c8 <_POSIX_signals_Ualarm_timer+0xc>,%d0
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
   45710:	486e fff8      	pea %fp@(-8)                                
   45714:	90b9 0006 09d4 	subl 609d4 <_POSIX_signals_Ualarm_timer+0x18>,%d0
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
   4571a:	283c 000f 4240 	movel #1000000,%d4                          
                                                                      
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
   45720:	2f00           	movel %d0,%sp@-                             
   45722:	4eb9 0004 894c 	jsr 4894c <_Timespec_From_ticks>            
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
   45728:	202e fff8      	movel %fp@(-8),%d0                          
   4572c:	4c04 0800      	mulsl %d4,%d0                               
      remaining += tp.tv_nsec / 1000;                                 
   45730:	283c 0000 03e8 	movel #1000,%d4                             
   45736:	508f           	addql #8,%sp                                
   45738:	242e fffc      	movel %fp@(-4),%d2                          
   4573c:	4c44 2802      	remsl %d4,%d2,%d2                           
   45740:	d480           	addl %d0,%d2                                
   45742:	6002           	bras 45746 <ualarm+0x8c>                    
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
  useconds_t        remaining = 0;                                    
   45744:	4282           	clrl %d2                                    
  /*                                                                  
   *  If useconds is non-zero, then the caller wants to schedule      
   *  the alarm repeatedly at that interval.  If the interval is      
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
   45746:	4a83           	tstl %d3                                    
   45748:	674e           	beqs 45798 <ualarm+0xde>                    
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
   4574a:	283c 0000 03e8 	movel #1000,%d4                             
    ticks = _Timespec_To_ticks( &tp );                                
   45750:	45f9 0004 89cc 	lea 489cc <_Timespec_To_ticks>,%a2          
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
   45756:	223c 000f 4240 	movel #1000000,%d1                          
   4575c:	4c41 3000      	remul %d1,%d0,%d3                           
   45760:	4c41 3003      	remul %d1,%d3,%d3                           
   45764:	2d43 fff8      	movel %d3,%fp@(-8)                          
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
   45768:	4c00 4800      	mulsl %d0,%d4                               
    ticks = _Timespec_To_ticks( &tp );                                
   4576c:	260e           	movel %fp,%d3                               
   4576e:	5183           	subql #8,%d3                                
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
   45770:	2d44 fffc      	movel %d4,%fp@(-4)                          
    ticks = _Timespec_To_ticks( &tp );                                
   45774:	2f03           	movel %d3,%sp@-                             
   45776:	4e92           	jsr %a2@                                    
    if ( ticks == 0 )                                                 
      ticks = 1;                                                      
                                                                      
    _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) );   
   45778:	2f03           	movel %d3,%sp@-                             
   4577a:	4e92           	jsr %a2@                                    
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   4577c:	4879 0006 09bc 	pea 609bc <_POSIX_signals_Ualarm_timer>     
   45782:	4879 0006 0268 	pea 60268 <_Watchdog_Ticks_chain>           
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   45788:	23c0 0006 09c8 	movel %d0,609c8 <_POSIX_signals_Ualarm_timer+0xc>
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   4578e:	4eb9 0004 8d0c 	jsr 48d0c <_Watchdog_Insert>                
   45794:	4fef 0010      	lea %sp@(16),%sp                            
  }                                                                   
                                                                      
  return remaining;                                                   
}                                                                     
   45798:	2002           	movel %d2,%d0                               
   4579a:	4cee 041c ffe8 	moveml %fp@(-24),%d2-%d4/%a2                
   457a0:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

00045d54 <unlink>: #include <rtems/seterr.h> int unlink( const char *path ) {
   45d54:	4e56 ffbc      	linkw %fp,#-68                              
   45d58:	48d7 0c3c      	moveml %d2-%d5/%a2-%a3,%sp@                 
   45d5c:	246e 0008      	moveal %fp@(8),%a2                          
                                                                      
  /*                                                                  
   * Get the node to be unlinked. Find the parent path first.         
   */                                                                 
                                                                      
  parentpathlen = rtems_filesystem_dirname ( path );                  
   45d60:	2f0a           	movel %a2,%sp@-                             
   45d62:	4eb9 0004 3608 	jsr 43608 <rtems_filesystem_dirname>        
                                                                      
  if ( parentpathlen == 0 )                                           
   45d68:	588f           	addql #4,%sp                                
                                                                      
  /*                                                                  
   * Get the node to be unlinked. Find the parent path first.         
   */                                                                 
                                                                      
  parentpathlen = rtems_filesystem_dirname ( path );                  
   45d6a:	2a00           	movel %d0,%d5                               
   45d6c:	200e           	movel %fp,%d0                               
   45d6e:	0680 ffff ffe8 	addil #-24,%d0                              
                                                                      
  if ( parentpathlen == 0 )                                           
   45d74:	4a85           	tstl %d5                                    
   45d76:	6616           	bnes 45d8e <unlink+0x3a>                    
    rtems_filesystem_get_start_loc( path, &i, &parentloc );           
   45d78:	2f00           	movel %d0,%sp@-                             
   45d7a:	486e fffc      	pea %fp@(-4)                                
  const char                       *name;                             
  rtems_filesystem_location_info_t  parentloc;                        
  rtems_filesystem_location_info_t  loc;                              
  int                               i;                                
  int                               result;                           
  bool                              free_parentloc = false;           
   45d7e:	4204           	clrb %d4                                    
   */                                                                 
                                                                      
  parentpathlen = rtems_filesystem_dirname ( path );                  
                                                                      
  if ( parentpathlen == 0 )                                           
    rtems_filesystem_get_start_loc( path, &i, &parentloc );           
   45d80:	2f0a           	movel %a2,%sp@-                             
   45d82:	4eb9 0004 4454 	jsr 44454 <rtems_filesystem_get_start_loc>  
   45d88:	4fef 000c      	lea %sp@(12),%sp                            
   45d8c:	601e           	bras 45dac <unlink+0x58>                    
  else {                                                              
    result = rtems_filesystem_evaluate_path( path, parentpathlen,     
   45d8e:	42a7           	clrl %sp@-                                  
   45d90:	2f00           	movel %d0,%sp@-                             
   45d92:	4878 0002      	pea 2 <DOUBLE_FLOAT>                        
   45d96:	2f05           	movel %d5,%sp@-                             
   45d98:	2f0a           	movel %a2,%sp@-                             
   45d9a:	4eb9 0004 35bc 	jsr 435bc <rtems_filesystem_evaluate_path>  
                                             RTEMS_LIBIO_PERMS_WRITE, 
                                             &parentloc,              
                                             false );                 
    if ( result != 0 )                                                
   45da0:	4fef 0014      	lea %sp@(20),%sp                            
   45da4:	4a80           	tstl %d0                                    
   45da6:	6600 00c2      	bnew 45e6a <unlink+0x116>                   
      return -1;                                                      
                                                                      
    free_parentloc = true;                                            
   45daa:	7801           	moveq #1,%d4                                
                                                                      
  /*                                                                  
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  loc = parentloc;                                                    
   45dac:	4878 0014      	pea 14 <OPER2>                              
   45db0:	260e           	movel %fp,%d3                               
   45db2:	0683 ffff ffe8 	addil #-24,%d3                              
   45db8:	240e           	movel %fp,%d2                               
   45dba:	0682 ffff ffd4 	addil #-44,%d2                              
  name = path + parentpathlen;                                        
   45dc0:	d5c5           	addal %d5,%a2                               
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   45dc2:	47f9 0005 1634 	lea 51634 <strlen>,%a3                      
                                                                      
  /*                                                                  
   * Start from the parent to find the node that should be under it.  
   */                                                                 
                                                                      
  loc = parentloc;                                                    
   45dc8:	2f03           	movel %d3,%sp@-                             
   45dca:	2f02           	movel %d2,%sp@-                             
   45dcc:	4eb9 0005 0b3c 	jsr 50b3c <memcpy>                          
  name = path + parentpathlen;                                        
  name += rtems_filesystem_prefix_separators( name, strlen( name ) ); 
   45dd2:	2f0a           	movel %a2,%sp@-                             
   45dd4:	4e93           	jsr %a3@                                    
   45dd6:	2e80           	movel %d0,%sp@                              
   45dd8:	2f0a           	movel %a2,%sp@-                             
   45dda:	4eb9 0004 364a 	jsr 4364a <rtems_filesystem_prefix_separators>
   45de0:	d5c0           	addal %d0,%a2                               
                                                                      
  result = rtems_filesystem_evaluate_relative_path( name , strlen( name ),
   45de2:	2f0a           	movel %a2,%sp@-                             
   45de4:	4e93           	jsr %a3@                                    
   45de6:	4297           	clrl %sp@                                   
   45de8:	2f02           	movel %d2,%sp@-                             
   45dea:	42a7           	clrl %sp@-                                  
   45dec:	2f00           	movel %d0,%sp@-                             
   45dee:	2f0a           	movel %a2,%sp@-                             
   45df0:	4eb9 0004 354c 	jsr 4354c <rtems_filesystem_evaluate_relative_path>
                                                    0, &loc, false ); 
  if ( result != 0 ) {                                                
   45df6:	4fef 0028      	lea %sp@(40),%sp                            
   45dfa:	4a80           	tstl %d0                                    
   45dfc:	6710           	beqs 45e0e <unlink+0xba>                    
    if ( free_parentloc )                                             
   45dfe:	4a04           	tstb %d4                                    
   45e00:	6768           	beqs 45e6a <unlink+0x116>                   <== NEVER TAKEN
      rtems_filesystem_freenode( &parentloc );                        
   45e02:	2f03           	movel %d3,%sp@-                             
   45e04:	4eb9 0004 3688 	jsr 43688 <rtems_filesystem_freenode>       
   45e0a:	588f           	addql #4,%sp                                
   45e0c:	605c           	bras 45e6a <unlink+0x116>                   
    return -1;                                                        
  }                                                                   
                                                                      
  if (  (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY ) {
   45e0e:	206e ffe0      	moveal %fp@(-32),%a0                        
   45e12:	45f9 0004 3688 	lea 43688 <rtems_filesystem_freenode>,%a2   
   45e18:	2f02           	movel %d2,%sp@-                             
   45e1a:	2068 0010      	moveal %a0@(16),%a0                         
   45e1e:	4e90           	jsr %a0@                                    
   45e20:	588f           	addql #4,%sp                                
   45e22:	7201           	moveq #1,%d1                                
   45e24:	b280           	cmpl %d0,%d1                                
   45e26:	661e           	bnes 45e46 <unlink+0xf2>                    
    rtems_filesystem_freenode( &loc );                                
   45e28:	2f02           	movel %d2,%sp@-                             
   45e2a:	4e92           	jsr %a2@                                    
    if ( free_parentloc )                                             
   45e2c:	588f           	addql #4,%sp                                
   45e2e:	4a04           	tstb %d4                                    
   45e30:	6706           	beqs 45e38 <unlink+0xe4>                    
      rtems_filesystem_freenode( &parentloc );                        
   45e32:	2f03           	movel %d3,%sp@-                             
   45e34:	4e92           	jsr %a2@                                    
   45e36:	588f           	addql #4,%sp                                
    rtems_set_errno_and_return_minus_one( EISDIR );                   
   45e38:	4eb9 0005 0290 	jsr 50290 <__errno>                         
   45e3e:	2040           	moveal %d0,%a0                              
   45e40:	7015           	moveq #21,%d0                               
   45e42:	2080           	movel %d0,%a0@                              
   45e44:	6024           	bras 45e6a <unlink+0x116>                   
  }                                                                   
                                                                      
  result = (*loc.ops->unlink_h)( &parentloc, &loc );                  
   45e46:	2f02           	movel %d2,%sp@-                             
   45e48:	206e ffe0      	moveal %fp@(-32),%a0                        
   45e4c:	2f03           	movel %d3,%sp@-                             
   45e4e:	2068 000c      	moveal %a0@(12),%a0                         
   45e52:	4e90           	jsr %a0@                                    
   45e54:	2a00           	movel %d0,%d5                               
                                                                      
  rtems_filesystem_freenode( &loc );                                  
   45e56:	2f02           	movel %d2,%sp@-                             
   45e58:	4e92           	jsr %a2@                                    
  if ( free_parentloc )                                               
   45e5a:	4fef 000c      	lea %sp@(12),%sp                            
   45e5e:	4a04           	tstb %d4                                    
   45e60:	670a           	beqs 45e6c <unlink+0x118>                   
    rtems_filesystem_freenode( &parentloc );                          
   45e62:	2f03           	movel %d3,%sp@-                             
   45e64:	4e92           	jsr %a2@                                    
   45e66:	588f           	addql #4,%sp                                
   45e68:	6002           	bras 45e6c <unlink+0x118>                   
  result = rtems_filesystem_evaluate_relative_path( name , strlen( name ),
                                                    0, &loc, false ); 
  if ( result != 0 ) {                                                
    if ( free_parentloc )                                             
      rtems_filesystem_freenode( &parentloc );                        
    return -1;                                                        
   45e6a:	7aff           	moveq #-1,%d5                               
  rtems_filesystem_freenode( &loc );                                  
  if ( free_parentloc )                                               
    rtems_filesystem_freenode( &parentloc );                          
                                                                      
  return result;                                                      
}                                                                     
   45e6c:	2005           	movel %d5,%d0                               
   45e6e:	4cee 0c3c ffbc 	moveml %fp@(-68),%d2-%d5/%a2-%a3            
   45e74:	4e5e           	unlk %fp                                    <== NOT EXECUTED
                                                                      

000460c8 <unmount>: */ int unmount( const char *path ) {
   460c8:	4e56 ffe0      	linkw %fp,#-32                              
   460cc:	48d7 0c04      	moveml %d2/%a2-%a3,%sp@                     
   460d0:	246e 0008      	moveal %fp@(8),%a2                          
   *    The root node of the mounted filesytem.                       
   *    The node for the directory that the fileystem is mounted on.  
   *    The mount entry that is being refered to.                     
   */                                                                 
                                                                      
  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x0, &loc, true ) )
   460d4:	7401           	moveq #1,%d2                                
   460d6:	2f0a           	movel %a2,%sp@-                             
   460d8:	4eb9 0004 eecc 	jsr 4eecc <strlen>                          
   460de:	2e82           	movel %d2,%sp@                              
   460e0:	240e           	movel %fp,%d2                               
   460e2:	0682 ffff ffec 	addil #-20,%d2                              
   460e8:	2f02           	movel %d2,%sp@-                             
   460ea:	42a7           	clrl %sp@-                                  
   460ec:	2f00           	movel %d0,%sp@-                             
   460ee:	2f0a           	movel %a2,%sp@-                             
   460f0:	4eb9 0004 35a8 	jsr 435a8 <rtems_filesystem_evaluate_path>  
   460f6:	4fef 0014      	lea %sp@(20),%sp                            
   460fa:	4a80           	tstl %d0                                    
   460fc:	6600 00e8      	bnew 461e6 <unmount+0x11e>                  
    return -1;                                                        
                                                                      
  mt_entry     = loc.mt_entry;                                        
   46100:	246e fffc      	moveal %fp@(-4),%a2                         
   46104:	47f9 0004 3674 	lea 43674 <rtems_filesystem_freenode>,%a3   
                                                                      
  /*                                                                  
   * Verify this is the root node for the file system to be unmounted.
   */                                                                 
                                                                      
  if ( fs_root_loc->node_access != loc.node_access ){                 
   4610a:	202e ffec      	movel %fp@(-20),%d0                         
   4610e:	b0aa 001c      	cmpl %a2@(28),%d0                           
   46112:	6716           	beqs 4612a <unmount+0x62>                   
    rtems_filesystem_freenode( &loc );                                
   46114:	2f02           	movel %d2,%sp@-                             
   46116:	4e93           	jsr %a3@                                    
    rtems_set_errno_and_return_minus_one( EACCES );                   
   46118:	4eb9 0004 d9d8 	jsr 4d9d8 <__errno>                         
   4611e:	588f           	addql #4,%sp                                
   46120:	720d           	moveq #13,%d1                               
   46122:	2040           	moveal %d0,%a0                              
   46124:	2081           	movel %d1,%a0@                              
   46126:	6000 00be      	braw 461e6 <unmount+0x11e>                  
                                                                      
  /*                                                                  
   * Free the loc node and just use the nodes from the mt_entry .     
   */                                                                 
                                                                      
  rtems_filesystem_freenode( &loc );                                  
   4612a:	2f02           	movel %d2,%sp@-                             
   4612c:	4e93           	jsr %a3@                                    
   *        that made the current node thread based instead           
   *        of system based?  I thought it was but it doesn't         
   *        look like it in this version.                             
   */                                                                 
                                                                      
  if ( rtems_filesystem_current.mt_entry == mt_entry )                
   4612e:	2079 0005 f258 	moveal 5f258 <rtems_current_user_env>,%a0   
   46134:	588f           	addql #4,%sp                                
   46136:	b5e8 0014      	cmpal %a0@(20),%a2                          
   4613a:	6724           	beqs 46160 <unmount+0x98>                   
                                                                      
  /*                                                                  
   *  Verify there are no file systems below the path specified       
   */                                                                 
                                                                      
  if ( rtems_filesystem_mount_iterate( is_fs_below_mount_point,       
   4613c:	2f2a 002c      	movel %a2@(44),%sp@-                        
   46140:	487a ff6e      	pea %pc@(460b0 <is_fs_below_mount_point>)   
   46144:	4eb9 0004 3e7e 	jsr 43e7e <rtems_filesystem_mount_iterate>  
   4614a:	508f           	addql #8,%sp                                
   4614c:	4a00           	tstb %d0                                    
   4614e:	6610           	bnes 46160 <unmount+0x98>                   
   *  Run the file descriptor table to determine if there are any file
   *  descriptors that are currently active and reference nodes in the
   *  file system that we are trying to unmount                       
   */                                                                 
                                                                      
  if ( rtems_libio_is_open_files_in_fs( mt_entry ) == 1 )             
   46150:	2f0a           	movel %a2,%sp@-                             
   46152:	4eb9 0004 39c0 	jsr 439c0 <rtems_libio_is_open_files_in_fs> 
   46158:	588f           	addql #4,%sp                                
   4615a:	7201           	moveq #1,%d1                                
   4615c:	b280           	cmpl %d0,%d1                                
   4615e:	660e           	bnes 4616e <unmount+0xa6>                   
    rtems_set_errno_and_return_minus_one( EBUSY );                    
   46160:	4eb9 0004 d9d8 	jsr 4d9d8 <__errno>                         
   46166:	2040           	moveal %d0,%a0                              
   46168:	7010           	moveq #16,%d0                               
   4616a:	2080           	movel %d0,%a0@                              
   4616c:	6078           	bras 461e6 <unmount+0x11e>                  
   * Allow the file system being unmounted on to do its cleanup.      
   * If it fails it will set the errno to the approprate value        
   * and the fileystem will not be modified.                          
   */                                                                 
                                                                      
  if (( fs_mount_loc->ops->unmount_h )( mt_entry ) != 0 )             
   4616e:	206a 0014      	moveal %a2@(20),%a0                         
   46172:	2f0a           	movel %a2,%sp@-                             
   46174:	2068 0028      	moveal %a0@(40),%a0                         
   46178:	4e90           	jsr %a0@                                    
   4617a:	588f           	addql #4,%sp                                
   4617c:	4a80           	tstl %d0                                    
   4617e:	6666           	bnes 461e6 <unmount+0x11e>                  <== NEVER TAKEN
   *  NOTE:  Fatal error is called in a case which should never happen
   *         This was response was questionable but the best we could 
   *         come up with.                                            
   */                                                                 
                                                                      
  if ((fs_root_loc->ops->fsunmount_me_h )( mt_entry ) != 0){          
   46180:	206a 0028      	moveal %a2@(40),%a0                         
   46184:	2f0a           	movel %a2,%sp@-                             
   46186:	2068 002c      	moveal %a0@(44),%a0                         
   4618a:	4e90           	jsr %a0@                                    
   4618c:	588f           	addql #4,%sp                                
   4618e:	4a80           	tstl %d0                                    
   46190:	671a           	beqs 461ac <unmount+0xe4>                   <== ALWAYS TAKEN
    if (( fs_mount_loc->ops->mount_h )( mt_entry ) != 0 )             
   46192:	206a 0014      	moveal %a2@(20),%a0                         <== NOT EXECUTED
   46196:	2f0a           	movel %a2,%sp@-                             <== NOT EXECUTED
   46198:	2068 0020      	moveal %a0@(32),%a0                         <== NOT EXECUTED
   4619c:	4e90           	jsr %a0@                                    <== NOT EXECUTED
   4619e:	588f           	addql #4,%sp                                <== NOT EXECUTED
   461a0:	4a80           	tstl %d0                                    <== NOT EXECUTED
   461a2:	6742           	beqs 461e6 <unmount+0x11e>                  <== NOT EXECUTED
      rtems_fatal_error_occurred( 0 );                                
   461a4:	42a7           	clrl %sp@-                                  <== NOT EXECUTED
   461a6:	4eb9 0004 70e0 	jsr 470e0 <rtems_fatal_error_occurred>      <== NOT EXECUTED
rtems_status_code rtems_libio_set_private_env(void);                  
rtems_status_code rtems_libio_share_private_env(rtems_id task_id) ;   
                                                                      
static inline void rtems_libio_lock( void )                           
{                                                                     
  rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
   461ac:	42a7           	clrl %sp@-                                  
   461ae:	42a7           	clrl %sp@-                                  
   461b0:	2f39 0006 091c 	movel 6091c <rtems_libio_semaphore>,%sp@-   
   461b6:	4eb9 0004 6a84 	jsr 46a84 <rtems_semaphore_obtain>          
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
   461bc:	2f0a           	movel %a2,%sp@-                             
   461be:	4eb9 0004 7424 	jsr 47424 <_Chain_Extract>                  
}                                                                     
                                                                      
static inline void rtems_libio_unlock( void )                         
{                                                                     
  rtems_semaphore_release( rtems_libio_semaphore );                   
   461c4:	2f39 0006 091c 	movel 6091c <rtems_libio_semaphore>,%sp@-   
   461ca:	4eb9 0004 6b8c 	jsr 46b8c <rtems_semaphore_release>         
  /*                                                                  
   *  Free the memory node that was allocated in mount                
   *  Free the memory associated with the extracted mount table entry.
   */                                                                 
                                                                      
  rtems_filesystem_freenode( fs_mount_loc );                          
   461d0:	486a 0008      	pea %a2@(8)                                 
   461d4:	4e93           	jsr %a3@                                    
  free( mt_entry );                                                   
   461d6:	2f0a           	movel %a2,%sp@-                             
   461d8:	4eb9 0004 3688 	jsr 43688 <free>                            
                                                                      
  return 0;                                                           
   461de:	4fef 001c      	lea %sp@(28),%sp                            
   461e2:	4280           	clrl %d0                                    
   461e4:	6002           	bras 461e8 <unmount+0x120>                  
   */                                                                 
                                                                      
  if ((fs_root_loc->ops->fsunmount_me_h )( mt_entry ) != 0){          
    if (( fs_mount_loc->ops->mount_h )( mt_entry ) != 0 )             
      rtems_fatal_error_occurred( 0 );                                
    return -1;                                                        
   461e6:	70ff           	moveq #-1,%d0                               
                                                                      
  rtems_filesystem_freenode( fs_mount_loc );                          
  free( mt_entry );                                                   
                                                                      
  return 0;                                                           
}                                                                     
   461e8:	4cee 0c04 ffe0 	moveml %fp@(-32),%d2/%a2-%a3                
   461ee:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

0005ab9c <write>: ssize_t write( int fd, const void *buffer, size_t count ) {
   5ab9c:	4e56 fff4      	linkw %fp,#-12                              
   5aba0:	202e 0008      	movel %fp@(8),%d0                           
   5aba4:	222e 000c      	movel %fp@(12),%d1                          
   5aba8:	206e 0010      	moveal %fp@(16),%a0                         
   5abac:	48d7 040c      	moveml %d2-%d3/%a2,%sp@                     
  ssize_t  rc;                                                        
  rtems_libio_t     *iop;                                             
                                                                      
  rtems_libio_check_fd( fd );                                         
   5abb0:	b0b9 0005 cff4 	cmpl 5cff4 <rtems_libio_number_iops>,%d0    
   5abb6:	641a           	bccs 5abd2 <write+0x36>                     
  iop = rtems_libio_iop( fd );                                        
   5abb8:	2400           	movel %d0,%d2                               
   5abba:	ed88           	lsll #6,%d0                                 
   5abbc:	e78a           	lsll #3,%d2                                 
   5abbe:	2479 0005 e874 	moveal 5e874 <rtems_libio_iops>,%a2         
   5abc4:	9082           	subl %d2,%d0                                
   5abc6:	d5c0           	addal %d0,%a2                               
  rtems_libio_check_is_open( iop );                                   
   5abc8:	202a 0014      	movel %a2@(20),%d0                          
   5abcc:	0800 0008      	btst #8,%d0                                 
   5abd0:	660e           	bnes 5abe0 <write+0x44>                     
   5abd2:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5abd8:	7209           	moveq #9,%d1                                
   5abda:	2040           	moveal %d0,%a0                              
   5abdc:	2081           	movel %d1,%a0@                              
   5abde:	6018           	bras 5abf8 <write+0x5c>                     
  rtems_libio_check_buffer( buffer );                                 
   5abe0:	4a81           	tstl %d1                                    
   5abe2:	6708           	beqs 5abec <write+0x50>                     <== NEVER TAKEN
  rtems_libio_check_count( count );                                   
   5abe4:	4a88           	tstl %a0                                    
   5abe6:	6742           	beqs 5ac2a <write+0x8e>                     
  rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );            
   5abe8:	44c0           	movew %d0,%ccr                              
   5abea:	6710           	beqs 5abfc <write+0x60>                     
   5abec:	4eb9 0004 cad0 	jsr 4cad0 <__errno>                         
   5abf2:	2040           	moveal %d0,%a0                              
   5abf4:	7016           	moveq #22,%d0                               
   5abf6:	2080           	movel %d0,%a0@                              
   5abf8:	70ff           	moveq #-1,%d0                               
   5abfa:	6030           	bras 5ac2c <write+0x90>                     
                                                                      
  /*                                                                  
   *  Now process the write() request.                                
   */                                                                 
  rc = (*iop->pathinfo.handlers->write_h)( iop, buffer, count );      
   5abfc:	226a 0020      	moveal %a2@(32),%a1                         
   5ac00:	2f08           	movel %a0,%sp@-                             
   5ac02:	2f01           	movel %d1,%sp@-                             
   5ac04:	2f0a           	movel %a2,%sp@-                             
   5ac06:	2069 000c      	moveal %a1@(12),%a0                         
   5ac0a:	4e90           	jsr %a0@                                    
                                                                      
  if ( rc > 0 )                                                       
   5ac0c:	4fef 000c      	lea %sp@(12),%sp                            
   5ac10:	4a80           	tstl %d0                                    
   5ac12:	6f18           	bles 5ac2c <write+0x90>                     
    iop->offset += rc;                                                
   5ac14:	2400           	movel %d0,%d2                               
   5ac16:	5bc1           	smi %d1                                     
   5ac18:	49c1           	extbl %d1                                   
   5ac1a:	d5aa 0010      	addl %d2,%a2@(16)                           
   5ac1e:	262a 000c      	movel %a2@(12),%d3                          
   5ac22:	d781           	addxl %d1,%d3                               
   5ac24:	2543 000c      	movel %d3,%a2@(12)                          
   5ac28:	6002           	bras 5ac2c <write+0x90>                     
                                                                      
  rtems_libio_check_fd( fd );                                         
  iop = rtems_libio_iop( fd );                                        
  rtems_libio_check_is_open( iop );                                   
  rtems_libio_check_buffer( buffer );                                 
  rtems_libio_check_count( count );                                   
   5ac2a:	4280           	clrl %d0                                    
                                                                      
  if ( rc > 0 )                                                       
    iop->offset += rc;                                                
                                                                      
  return rc;                                                          
}                                                                     
   5ac2c:	4cee 040c fff4 	moveml %fp@(-12),%d2-%d3/%a2                
   5ac32:	4e5e           	unlk %fp                                    
	...                                                                  
                                                                      

000461e0 <writev>: ssize_t writev( int fd, const struct iovec *iov, int iovcnt ) {
   461e0:	4e56 ffe4      	linkw %fp,#-28                              
   461e4:	202e 0008      	movel %fp@(8),%d0                           
   461e8:	48d7 0c7c      	moveml %d2-%d6/%a2-%a3,%sp@                 
   461ec:	246e 000c      	moveal %fp@(12),%a2                         
   461f0:	262e 0010      	movel %fp@(16),%d3                          
  int            bytes;                                               
  rtems_libio_t *iop;                                                 
  ssize_t        old;                                                 
  bool           all_zeros;                                           
                                                                      
  rtems_libio_check_fd( fd );                                         
   461f4:	b0b9 0005 da64 	cmpl 5da64 <rtems_libio_number_iops>,%d0    
   461fa:	641a           	bccs 46216 <writev+0x36>                    
  iop = rtems_libio_iop( fd );                                        
   461fc:	2200           	movel %d0,%d1                               
   461fe:	ed88           	lsll #6,%d0                                 
   46200:	e789           	lsll #3,%d1                                 
   46202:	2679 0005 f2e4 	moveal 5f2e4 <rtems_libio_iops>,%a3         
   46208:	9081           	subl %d1,%d0                                
   4620a:	d7c0           	addal %d0,%a3                               
  rtems_libio_check_is_open( iop );                                   
   4620c:	202b 0014      	movel %a3@(20),%d0                          
   46210:	0800 0008      	btst #8,%d0                                 
   46214:	6610           	bnes 46226 <writev+0x46>                    
   46216:	4eb9 0004 d74c 	jsr 4d74c <__errno>                         
   4621c:	7209           	moveq #9,%d1                                
   4621e:	2040           	moveal %d0,%a0                              
   46220:	2081           	movel %d1,%a0@                              
   46222:	6000 00a4      	braw 462c8 <writev+0xe8>                    
  rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );            
   46226:	44c0           	movew %d0,%ccr                              
   46228:	6636           	bnes 46260 <writev+0x80>                    <== NEVER TAKEN
                                                                      
  /*                                                                  
   *  Argument validation on IO vector                                
   */                                                                 
  if ( !iov )                                                         
   4622a:	4a8a           	tstl %a2                                    
   4622c:	6732           	beqs 46260 <writev+0x80>                    <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt <= 0 )                                                  
   4622e:	4a83           	tstl %d3                                    
   46230:	6f2e           	bles 46260 <writev+0x80>                    <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt > IOV_MAX )                                             
   46232:	0c83 0000 0400 	cmpil #1024,%d3                             
   46238:	6e26           	bgts 46260 <writev+0x80>                    <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( EINVAL );                   
   4623a:	204a           	moveal %a2,%a0                              
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt <= 0 )                                                  
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( iovcnt > IOV_MAX )                                             
   4623c:	93c9           	subal %a1,%a1                               
   4623e:	4281           	clrl %d1                                    
   46240:	7001           	moveq #1,%d0                                
   46242:	6002           	bras 46246 <writev+0x66>                    
   *  this loop does that check as well and sets "all-zero" appropriately.
   *  The variable "all_zero" is used as an early exit point before   
   *  entering the write loop.                                        
   */                                                                 
  all_zeros = true;                                                   
  for ( old=0, total=0, v=0 ; v < iovcnt ; v++ ) {                    
   46244:	2202           	movel %d2,%d1                               
                                                                      
    /*                                                                
     *  iov[v].iov_len cannot be less than 0 because size_t is unsigned.
     *  So we only check for zero.                                    
     */                                                               
    if ( iov[v].iov_base == 0 )                                       
   46246:	4a90           	tstl %a0@                                   
   46248:	6716           	beqs 46260 <writev+0x80>                    <== NEVER TAKEN
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    if ( iov[v].iov_len )                                             
   4624a:	2428 0004      	movel %a0@(4),%d2                           
      all_zeros = false;                                              
   4624e:	57c4           	seq %d4                                     
                                                                      
    /* check for wrap */                                              
    old    = total;                                                   
    total += iov[v].iov_len;                                          
   46250:	d481           	addl %d1,%d2                                
     */                                                               
    if ( iov[v].iov_base == 0 )                                       
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    if ( iov[v].iov_len )                                             
      all_zeros = false;                                              
   46252:	c084           	andl %d4,%d0                                
                                                                      
    /* check for wrap */                                              
    old    = total;                                                   
    total += iov[v].iov_len;                                          
    if ( total < old || total > SSIZE_MAX )                           
   46254:	b282           	cmpl %d2,%d1                                
   46256:	6e08           	bgts 46260 <writev+0x80>                    
   46258:	0c82 0000 7fff 	cmpil #32767,%d2                            
   4625e:	6f0e           	bles 4626e <writev+0x8e>                    <== ALWAYS TAKEN
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   46260:	4eb9 0004 d74c 	jsr 4d74c <__errno>                         
   46266:	2040           	moveal %d0,%a0                              
   46268:	7016           	moveq #22,%d0                               
   4626a:	2080           	movel %d0,%a0@                              
   4626c:	605a           	bras 462c8 <writev+0xe8>                    
   *  this loop does that check as well and sets "all-zero" appropriately.
   *  The variable "all_zero" is used as an early exit point before   
   *  entering the write loop.                                        
   */                                                                 
  all_zeros = true;                                                   
  for ( old=0, total=0, v=0 ; v < iovcnt ; v++ ) {                    
   4626e:	5289           	addql #1,%a1                                
   46270:	5088           	addql #8,%a0                                
   46272:	b689           	cmpl %a1,%d3                                
   46274:	6ece           	bgts 46244 <writev+0x64>                    <== NEVER TAKEN
  }                                                                   
                                                                      
  /*                                                                  
   * A writev with all zeros is supposed to have no effect per OpenGroup.
   */                                                                 
  if ( all_zeros == true ) {                                          
   46276:	4a00           	tstb %d0                                    
   46278:	664a           	bnes 462c4 <writev+0xe4>                    
#include <sys/uio.h>                                                  
                                                                      
#include <rtems/libio_.h>                                             
#include <rtems/seterr.h>                                             
                                                                      
ssize_t writev(                                                       
   4627a:	588a           	addql #4,%a2                                
   4627c:	4284           	clrl %d4                                    
   4627e:	4282           	clrl %d2                                    
  /*                                                                  
   *  Now process the writev().                                       
   */                                                                 
  for ( total=0, v=0 ; v < iovcnt ; v++ ) {                           
    /* all zero lengths has no effect */                              
    if ( iov[v].iov_len == 0 )                                        
   46280:	2012           	movel %a2@,%d0                              
   46282:	6736           	beqs 462ba <writev+0xda>                    <== NEVER TAKEN
      continue;                                                       
                                                                      
    bytes = (*iop->pathinfo.handlers->write_h)(                       
   46284:	206b 0020      	moveal %a3@(32),%a0                         
   46288:	2f00           	movel %d0,%sp@-                             
   4628a:	2f2a fffc      	movel %a2@(-4),%sp@-                        
   4628e:	2f0b           	movel %a3,%sp@-                             
   46290:	2068 000c      	moveal %a0@(12),%a0                         
   46294:	4e90           	jsr %a0@                                    
      iop,                                                            
      iov[v].iov_base,                                                
      iov[v].iov_len                                                  
    );                                                                
                                                                      
    if ( bytes < 0 )                                                  
   46296:	4fef 000c      	lea %sp@(12),%sp                            
   4629a:	4a80           	tstl %d0                                    
   4629c:	6d2a           	blts 462c8 <writev+0xe8>                    <== NEVER TAKEN
      return -1;                                                      
                                                                      
    if ( bytes > 0 ) {                                                
   4629e:	6716           	beqs 462b6 <writev+0xd6>                    <== NEVER TAKEN
      iop->offset += bytes;                                           
      total       += bytes;                                           
   462a0:	d480           	addl %d0,%d2                                
                                                                      
    if ( bytes < 0 )                                                  
      return -1;                                                      
                                                                      
    if ( bytes > 0 ) {                                                
      iop->offset += bytes;                                           
   462a2:	2c00           	movel %d0,%d6                               
   462a4:	5bc5           	smi %d5                                     
   462a6:	49c5           	extbl %d5                                   
   462a8:	ddab 0010      	addl %d6,%a3@(16)                           
   462ac:	222b 000c      	movel %a3@(12),%d1                          
   462b0:	d385           	addxl %d5,%d1                               
   462b2:	2741 000c      	movel %d1,%a3@(12)                          
      total       += bytes;                                           
    }                                                                 
                                                                      
    if (bytes != iov[ v ].iov_len)                                    
   462b6:	b092           	cmpl %a2@,%d0                               
   462b8:	6610           	bnes 462ca <writev+0xea>                    <== NEVER TAKEN
  }                                                                   
                                                                      
  /*                                                                  
   *  Now process the writev().                                       
   */                                                                 
  for ( total=0, v=0 ; v < iovcnt ; v++ ) {                           
   462ba:	5284           	addql #1,%d4                                
   462bc:	508a           	addql #8,%a2                                
   462be:	b684           	cmpl %d4,%d3                                
   462c0:	6ebe           	bgts 46280 <writev+0xa0>                    
   462c2:	6006           	bras 462ca <writev+0xea>                    
                                                                      
  /*                                                                  
   * A writev with all zeros is supposed to have no effect per OpenGroup.
   */                                                                 
  if ( all_zeros == true ) {                                          
    return 0;                                                         
   462c4:	4282           	clrl %d2                                    
   462c6:	6002           	bras 462ca <writev+0xea>                    
      iov[v].iov_base,                                                
      iov[v].iov_len                                                  
    );                                                                
                                                                      
    if ( bytes < 0 )                                                  
      return -1;                                                      
   462c8:	74ff           	moveq #-1,%d2                               
    if (bytes != iov[ v ].iov_len)                                    
      break;                                                          
  }                                                                   
                                                                      
  return total;                                                       
}                                                                     
   462ca:	2002           	movel %d2,%d0                               
   462cc:	4cee 0c7c ffe4 	moveml %fp@(-28),%d2-%d6/%a2-%a3            
   462d2:	4e5e           	unlk %fp                                    
	...