/fs/qnx4/

RT and MC^2 V0 support for the NVIDIA Tegra 3 SoC Jonathan Herman
aboutsummaryrefslogblamecommitdiffstats
path: root/fs/reiserfs/prints.c
blob: 536eacaeb71005a935a95c88dd7afba67535a4ac (plain) (tree)
1
2
3
4



                                                                       











                              
                                                     
 









                                                                      

 
                                                
 
                    
 










                                                                              

 
                                          
 








                                                  

 
                                              
 
                    
 
                                      
 









                                                          

        
                                                               
 





                                                                         

 
        
                                                           
 





                                                                              

 
                                                                    
 






                                                                                   


 
                                                              
 








                                                                                

 
                                                                      
 
                      
 


                                                                               

 
                                                                 
 

                                                                   

 
                                                                  
 
                              
 
                    
                                                                                               





                                                                               

 
                                                                
 

                                                                       

 
                                                           
 
                      
 





                                                                               



                    






                                                                      




                                                                     
  
                                   




                                                            
                 
 

                               

                          
                                                                     



                                             





































                                                                                
                                 


 
                                                                   


                                  
                         
                              











                                                           

                                                                    
 

                                 


                                                                            
            

                                                                         


                                                                  
                                                                
 

                                 

                                                              
            
                                                              


                                                                    
                                                 
 

                                 

 
                                                                           

                            

                                 

                                                                     
            
                                                                     












                                                                      

            


                                                              
                                                                                                         



                                                                      
                                              























                                                                                                                  
                            
                                   

      

                                                                 
 
                                 
 
                            
                     







                                                                              

 
























                                                                           
                                                                            
 
                                 
 
                                       

                                                                             
         
 
                                                        
                       
 

                                                                      
 
                                 
                                          




                                                                   
                                                                      
 



                                 
 

                                 
 
                           
 






                                                                   
 
                                                                                
 

                                                 
 








                                                                             
 






                                                                        
 

                                  
 
                       
 


                                   
 


                                                                                        
 




                                                                          
 





















                                                                                                          
 

                                                                                      
 
                 

 
                                 
 





                                 
 
                         


                                         


























                                                                               
                                                                


















                                                                                         

 
                                                   
 
                                           
 

                                                                      
 



                                                                          
 
                 

 
                                                                                      
 

                              
 
                           
 



                                                        
 









                                                                                      

                     

 


                                                                   

















                                                                                                
                                                           



























                                                                                                                  
         
 

















                                                                                                              
 


                                                                                         
 

                                                                                                                
                                                 




                                                                             
                                                                      
 

                                                                                           

 



                                            
 
                                                         
 





                                                    
                                                                         

                                                                          
                                                                        
                                   
 

 





                                                                               
                                                                        

                                                                
                                                                              



                                                                
                                                                             

 
 
                                       
 







                                                                              

 





                                           
 
                                            

 






                                                                                        

 
/*
 * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
 */

#include <linux/time.h>
#include <linux/fs.h>
#include <linux/reiserfs_fs.h>
#include <linux/string.h>
#include <linux/buffer_head.h>

#include <stdarg.h>

static char error_buf[1024];
static char fmt_buf[1024];
static char off_buf[80];

static char *reiserfs_cpu_offset(struct cpu_key *key)
{
	if (cpu_key_k_type(key) == TYPE_DIRENTRY)
		sprintf(off_buf, "%Lu(%Lu)",
			(unsigned long long)
			GET_HASH_VALUE(cpu_key_k_offset(key)),
			(unsigned long long)
			GET_GENERATION_NUMBER(cpu_key_k_offset(key)));
	else
		sprintf(off_buf, "0x%Lx",
			(unsigned long long)cpu_key_k_offset(key));
	return off_buf;
}

static char *le_offset(struct reiserfs_key *key)
{
	int version;

	version = le_key_version(key);
	if (le_key_k_type(version, key) == TYPE_DIRENTRY)
		sprintf(off_buf, "%Lu(%Lu)",
			(unsigned long long)
			GET_HASH_VALUE(le_key_k_offset(version, key)),
			(unsigned long long)
			GET_GENERATION_NUMBER(le_key_k_offset(version, key)));
	else
		sprintf(off_buf, "0x%Lx",
			(unsigned long long)le_key_k_offset(version, key));
	return off_buf;
}

static char *cpu_type(struct cpu_key *key)
{
	if (cpu_key_k_type(key) == TYPE_STAT_DATA)
		return "SD";
	if (cpu_key_k_type(key) == TYPE_DIRENTRY)
		return "DIR";
	if (cpu_key_k_type(key) == TYPE_DIRECT)
		return "DIRECT";
	if (cpu_key_k_type(key) == TYPE_INDIRECT)
		return "IND";
	return "UNKNOWN";
}

static char *le_type(struct reiserfs_key *key)
{
	int version;

	version = le_key_version(key);

	if (le_key_k_type(version, key) == TYPE_STAT_DATA)
		return "SD";
	if (le_key_k_type(version, key) == TYPE_DIRENTRY)
		return "DIR";
	if (le_key_k_type(version, key) == TYPE_DIRECT)
		return "DIRECT";
	if (le_key_k_type(version, key) == TYPE_INDIRECT)
		return "IND";
	return "UNKNOWN";
}

/* %k */
static void sprintf_le_key(char *buf, struct reiserfs_key *key)
{
	if (key)
		sprintf(buf, "[%d %d %s %s]", le32_to_cpu(key->k_dir_id),
			le32_to_cpu(key->k_objectid), le_offset(key),
			le_type(key));
	else
		sprintf(buf, "[NULL]");
}

/* %K */
static void sprintf_cpu_key(char *buf, struct cpu_key *key)
{
	if (key)
		sprintf(buf, "[%d %d %s %s]", key->on_disk_key.k_dir_id,
			key->on_disk_key.k_objectid, reiserfs_cpu_offset(key),
			cpu_type(key));
	else
		sprintf(buf, "[NULL]");
}

static void sprintf_de_head(char *buf, struct reiserfs_de_head *deh)
{
	if (deh)
		sprintf(buf,
			"[offset=%d dir_id=%d objectid=%d location=%d state=%04x]",
			deh_offset(deh), deh_dir_id(deh), deh_objectid(deh),
			deh_location(deh), deh_state(deh));
	else
		sprintf(buf, "[NULL]");

}

static void sprintf_item_head(char *buf, struct item_head *ih)
{
	if (ih) {
		strcpy(buf,
		       (ih_version(ih) == KEY_FORMAT_3_6) ? "*3.6* " : "*3.5*");
		sprintf_le_key(buf + strlen(buf), &(ih->ih_key));
		sprintf(buf + strlen(buf), ", item_len %d, item_location %d, "
			"free_space(entry_count) %d",
			ih_item_len(ih), ih_location(ih), ih_free_space(ih));
	} else
		sprintf(buf, "[NULL]");
}

static void sprintf_direntry(char *buf, struct reiserfs_dir_entry *de)
{
	char name[20];

	memcpy(name, de->de_name, de->de_namelen > 19 ? 19 : de->de_namelen);
	name[de->de_namelen > 19 ? 19 : de->de_namelen] = 0;
	sprintf(buf, "\"%s\"==>[%d %d]", name, de->de_dir_id, de->de_objectid);
}

static void sprintf_block_head(char *buf, struct buffer_head *bh)
{
	sprintf(buf, "level=%d, nr_items=%d, free_space=%d rdkey ",
		B_LEVEL(bh), B_NR_ITEMS(bh), B_FREE_SPACE(bh));
}

static void sprintf_buffer_head(char *buf, struct buffer_head *bh)
{
	char b[BDEVNAME_SIZE];

	sprintf(buf,
		"dev %s, size %zd, blocknr %llu, count %d, state 0x%lx, page %p, (%s, %s, %s)",
		bdevname(bh->b_bdev, b), bh->b_size,
		(unsigned long long)bh->b_blocknr, atomic_read(&(bh->b_count)),
		bh->b_state, bh->b_page,
		buffer_uptodate(bh) ? "UPTODATE" : "!UPTODATE",
		buffer_dirty(bh) ? "DIRTY" : "CLEAN",
		buffer_locked(bh) ? "LOCKED" : "UNLOCKED");
}

static void sprintf_disk_child(char *buf, struct disk_child *dc)
{
	sprintf(buf, "[dc_number=%d, dc_size=%u]", dc_block_number(dc),
		dc_size(dc));
}

static char *is_there_reiserfs_struct(char *fmt, int *what)
{
	char *k = fmt;

	while ((k = strchr(k, '%')) != NULL) {
		if (k[1] == 'k' || k[1] == 'K' || k[1] == 'h' || k[1] == 't' ||