Fix multiple definitions of struct channel_path_desc by moving it to asm/chpid.h . Also change ccw_device_get_chp_desc to use proper types. Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com> Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			935 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			935 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *    Copyright IBM Corp. 2007, 2012
 | 
						|
 *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
 | 
						|
 */
 | 
						|
#ifndef _ASM_S390_CHPID_H
 | 
						|
#define _ASM_S390_CHPID_H
 | 
						|
 | 
						|
#include <uapi/asm/chpid.h>
 | 
						|
#include <asm/cio.h>
 | 
						|
 | 
						|
struct channel_path_desc {
 | 
						|
	u8 flags;
 | 
						|
	u8 lsn;
 | 
						|
	u8 desc;
 | 
						|
	u8 chpid;
 | 
						|
	u8 swla;
 | 
						|
	u8 zeroes;
 | 
						|
	u8 chla;
 | 
						|
	u8 chpp;
 | 
						|
} __packed;
 | 
						|
 | 
						|
static inline void chp_id_init(struct chp_id *chpid)
 | 
						|
{
 | 
						|
	memset(chpid, 0, sizeof(struct chp_id));
 | 
						|
}
 | 
						|
 | 
						|
static inline int chp_id_is_equal(struct chp_id *a, struct chp_id *b)
 | 
						|
{
 | 
						|
	return (a->id == b->id) && (a->cssid == b->cssid);
 | 
						|
}
 | 
						|
 | 
						|
static inline void chp_id_next(struct chp_id *chpid)
 | 
						|
{
 | 
						|
	if (chpid->id < __MAX_CHPID)
 | 
						|
		chpid->id++;
 | 
						|
	else {
 | 
						|
		chpid->id = 0;
 | 
						|
		chpid->cssid++;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
static inline int chp_id_is_valid(struct chp_id *chpid)
 | 
						|
{
 | 
						|
	return (chpid->cssid <= __MAX_CSSID);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
#define chp_id_for_each(c) \
 | 
						|
	for (chp_id_init(c); chp_id_is_valid(c); chp_id_next(c))
 | 
						|
#endif /* _ASM_S390_CHPID_H */
 |