s390/sclp: Move declarations for sclp_sdias into separate header file
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
		
					parent
					
						
							
								7d594322b2
							
						
					
				
			
			
				commit
				
					
						f8049e3e86
					
				
			
		
					 2 changed files with 68 additions and 56 deletions
				
			
		| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Sclp "store data in absolut storage"
 | 
					 * SCLP "store data in absolute storage"
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright IBM Corp. 2003, 2007
 | 
					 * Copyright IBM Corp. 2003, 2013
 | 
				
			||||||
 * Author(s): Michael Holzheu
 | 
					 * Author(s): Michael Holzheu
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,7 @@
 | 
				
			||||||
#include <asm/debug.h>
 | 
					#include <asm/debug.h>
 | 
				
			||||||
#include <asm/ipl.h>
 | 
					#include <asm/ipl.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "sclp_sdias.h"
 | 
				
			||||||
#include "sclp.h"
 | 
					#include "sclp.h"
 | 
				
			||||||
#include "sclp_rw.h"
 | 
					#include "sclp_rw.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,46 +23,12 @@
 | 
				
			||||||
#define SDIAS_RETRIES 300
 | 
					#define SDIAS_RETRIES 300
 | 
				
			||||||
#define SDIAS_SLEEP_TICKS 50
 | 
					#define SDIAS_SLEEP_TICKS 50
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define EQ_STORE_DATA	0x0
 | 
					 | 
				
			||||||
#define EQ_SIZE		0x1
 | 
					 | 
				
			||||||
#define DI_FCP_DUMP	0x0
 | 
					 | 
				
			||||||
#define ASA_SIZE_32	0x0
 | 
					 | 
				
			||||||
#define ASA_SIZE_64	0x1
 | 
					 | 
				
			||||||
#define EVSTATE_ALL_STORED	0x0
 | 
					 | 
				
			||||||
#define EVSTATE_NO_DATA		0x3
 | 
					 | 
				
			||||||
#define EVSTATE_PART_STORED	0x10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct debug_info *sdias_dbf;
 | 
					static struct debug_info *sdias_dbf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct sclp_register sclp_sdias_register = {
 | 
					static struct sclp_register sclp_sdias_register = {
 | 
				
			||||||
	.send_mask = EVTYP_SDIAS_MASK,
 | 
						.send_mask = EVTYP_SDIAS_MASK,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct sdias_evbuf {
 | 
					 | 
				
			||||||
	struct	evbuf_header hdr;
 | 
					 | 
				
			||||||
	u8	event_qual;
 | 
					 | 
				
			||||||
	u8	data_id;
 | 
					 | 
				
			||||||
	u64	reserved2;
 | 
					 | 
				
			||||||
	u32	event_id;
 | 
					 | 
				
			||||||
	u16	reserved3;
 | 
					 | 
				
			||||||
	u8	asa_size;
 | 
					 | 
				
			||||||
	u8	event_status;
 | 
					 | 
				
			||||||
	u32	reserved4;
 | 
					 | 
				
			||||||
	u32	blk_cnt;
 | 
					 | 
				
			||||||
	u64	asa;
 | 
					 | 
				
			||||||
	u32	reserved5;
 | 
					 | 
				
			||||||
	u32	fbn;
 | 
					 | 
				
			||||||
	u32	reserved6;
 | 
					 | 
				
			||||||
	u32	lbn;
 | 
					 | 
				
			||||||
	u16	reserved7;
 | 
					 | 
				
			||||||
	u16	dbs;
 | 
					 | 
				
			||||||
} __attribute__((packed));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct sdias_sccb {
 | 
					 | 
				
			||||||
	struct sccb_header  hdr;
 | 
					 | 
				
			||||||
	struct sdias_evbuf  evbuf;
 | 
					 | 
				
			||||||
} __attribute__((packed));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct sdias_sccb sccb __attribute__((aligned(4096)));
 | 
					static struct sdias_sccb sccb __attribute__((aligned(4096)));
 | 
				
			||||||
static struct sdias_evbuf sdias_evbuf;
 | 
					static struct sdias_evbuf sdias_evbuf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -148,8 +115,8 @@ int sclp_sdias_blk_count(void)
 | 
				
			||||||
	sccb.hdr.length = sizeof(sccb);
 | 
						sccb.hdr.length = sizeof(sccb);
 | 
				
			||||||
	sccb.evbuf.hdr.length = sizeof(struct sdias_evbuf);
 | 
						sccb.evbuf.hdr.length = sizeof(struct sdias_evbuf);
 | 
				
			||||||
	sccb.evbuf.hdr.type = EVTYP_SDIAS;
 | 
						sccb.evbuf.hdr.type = EVTYP_SDIAS;
 | 
				
			||||||
	sccb.evbuf.event_qual = EQ_SIZE;
 | 
						sccb.evbuf.event_qual = SDIAS_EQ_SIZE;
 | 
				
			||||||
	sccb.evbuf.data_id = DI_FCP_DUMP;
 | 
						sccb.evbuf.data_id = SDIAS_DI_FCP_DUMP;
 | 
				
			||||||
	sccb.evbuf.event_id = 4712;
 | 
						sccb.evbuf.event_id = 4712;
 | 
				
			||||||
	sccb.evbuf.dbs = 1;
 | 
						sccb.evbuf.dbs = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -208,13 +175,13 @@ int sclp_sdias_copy(void *dest, int start_blk, int nr_blks)
 | 
				
			||||||
	sccb.evbuf.hdr.length = sizeof(struct sdias_evbuf);
 | 
						sccb.evbuf.hdr.length = sizeof(struct sdias_evbuf);
 | 
				
			||||||
	sccb.evbuf.hdr.type = EVTYP_SDIAS;
 | 
						sccb.evbuf.hdr.type = EVTYP_SDIAS;
 | 
				
			||||||
	sccb.evbuf.hdr.flags = 0;
 | 
						sccb.evbuf.hdr.flags = 0;
 | 
				
			||||||
	sccb.evbuf.event_qual = EQ_STORE_DATA;
 | 
						sccb.evbuf.event_qual = SDIAS_EQ_STORE_DATA;
 | 
				
			||||||
	sccb.evbuf.data_id = DI_FCP_DUMP;
 | 
						sccb.evbuf.data_id = SDIAS_DI_FCP_DUMP;
 | 
				
			||||||
	sccb.evbuf.event_id = 4712;
 | 
						sccb.evbuf.event_id = 4712;
 | 
				
			||||||
#ifdef CONFIG_64BIT
 | 
					#ifdef CONFIG_64BIT
 | 
				
			||||||
	sccb.evbuf.asa_size = ASA_SIZE_64;
 | 
						sccb.evbuf.asa_size = SDIAS_ASA_SIZE_64;
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
	sccb.evbuf.asa_size = ASA_SIZE_32;
 | 
						sccb.evbuf.asa_size = SDIAS_ASA_SIZE_32;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	sccb.evbuf.event_status = 0;
 | 
						sccb.evbuf.event_status = 0;
 | 
				
			||||||
	sccb.evbuf.blk_cnt = nr_blks;
 | 
						sccb.evbuf.blk_cnt = nr_blks;
 | 
				
			||||||
| 
						 | 
					@ -240,18 +207,17 @@ int sclp_sdias_copy(void *dest, int start_blk, int nr_blks)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch (sdias_evbuf.event_status) {
 | 
						switch (sdias_evbuf.event_status) {
 | 
				
			||||||
		case EVSTATE_ALL_STORED:
 | 
						case SDIAS_EVSTATE_ALL_STORED:
 | 
				
			||||||
		TRACE("all stored\n");
 | 
							TRACE("all stored\n");
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
		case EVSTATE_PART_STORED:
 | 
						case SDIAS_EVSTATE_PART_STORED:
 | 
				
			||||||
		TRACE("part stored: %i\n", sdias_evbuf.blk_cnt);
 | 
							TRACE("part stored: %i\n", sdias_evbuf.blk_cnt);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
		case EVSTATE_NO_DATA:
 | 
						case SDIAS_EVSTATE_NO_DATA:
 | 
				
			||||||
		TRACE("no data\n");
 | 
							TRACE("no data\n");
 | 
				
			||||||
		/* fall through */
 | 
							/* fall through */
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
			pr_err("Error from SCLP while copying hsa. "
 | 
							pr_err("Error from SCLP while copying hsa. Event status = %x\n",
 | 
				
			||||||
			       "Event status = %x\n",
 | 
					 | 
				
			||||||
		       sdias_evbuf.event_status);
 | 
							       sdias_evbuf.event_status);
 | 
				
			||||||
		rc = -EIO;
 | 
							rc = -EIO;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										46
									
								
								drivers/s390/char/sclp_sdias.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								drivers/s390/char/sclp_sdias.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * SCLP "store data in absolute storage"
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright IBM Corp. 2003, 2013
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef SCLP_SDIAS_H
 | 
				
			||||||
 | 
					#define SCLP_SDIAS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "sclp.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SDIAS_EQ_STORE_DATA		0x0
 | 
				
			||||||
 | 
					#define SDIAS_EQ_SIZE			0x1
 | 
				
			||||||
 | 
					#define SDIAS_DI_FCP_DUMP		0x0
 | 
				
			||||||
 | 
					#define SDIAS_ASA_SIZE_32		0x0
 | 
				
			||||||
 | 
					#define SDIAS_ASA_SIZE_64		0x1
 | 
				
			||||||
 | 
					#define SDIAS_EVSTATE_ALL_STORED	0x0
 | 
				
			||||||
 | 
					#define SDIAS_EVSTATE_NO_DATA		0x3
 | 
				
			||||||
 | 
					#define SDIAS_EVSTATE_PART_STORED	0x10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sdias_evbuf {
 | 
				
			||||||
 | 
						struct	evbuf_header hdr;
 | 
				
			||||||
 | 
						u8	event_qual;
 | 
				
			||||||
 | 
						u8	data_id;
 | 
				
			||||||
 | 
						u64	reserved2;
 | 
				
			||||||
 | 
						u32	event_id;
 | 
				
			||||||
 | 
						u16	reserved3;
 | 
				
			||||||
 | 
						u8	asa_size;
 | 
				
			||||||
 | 
						u8	event_status;
 | 
				
			||||||
 | 
						u32	reserved4;
 | 
				
			||||||
 | 
						u32	blk_cnt;
 | 
				
			||||||
 | 
						u64	asa;
 | 
				
			||||||
 | 
						u32	reserved5;
 | 
				
			||||||
 | 
						u32	fbn;
 | 
				
			||||||
 | 
						u32	reserved6;
 | 
				
			||||||
 | 
						u32	lbn;
 | 
				
			||||||
 | 
						u16	reserved7;
 | 
				
			||||||
 | 
						u16	dbs;
 | 
				
			||||||
 | 
					} __packed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sdias_sccb {
 | 
				
			||||||
 | 
						struct sccb_header	hdr;
 | 
				
			||||||
 | 
						struct sdias_evbuf	evbuf;
 | 
				
			||||||
 | 
					} __packed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* SCLP_SDIAS_H */
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue