1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 28f933b10SRalf Hoppe /* 38f933b10SRalf Hoppe * Copyright IBM Corp. 2013 48f933b10SRalf Hoppe * Author(s): Ralf Hoppe (rhoppe@de.ibm.com) 58f933b10SRalf Hoppe */ 68f933b10SRalf Hoppe 78f933b10SRalf Hoppe #ifndef _SCLP_DIAG_H 88f933b10SRalf Hoppe #define _SCLP_DIAG_H 98f933b10SRalf Hoppe 108f933b10SRalf Hoppe #include <linux/types.h> 118f933b10SRalf Hoppe 128f933b10SRalf Hoppe /* return codes for Diagnostic Test FTP Service, as indicated in member 138f933b10SRalf Hoppe * sclp_diag_ftp::ldflg 148f933b10SRalf Hoppe */ 158f933b10SRalf Hoppe #define SCLP_DIAG_FTP_OK 0x80U /* success */ 168f933b10SRalf Hoppe #define SCLP_DIAG_FTP_LDFAIL 0x01U /* load failed */ 178f933b10SRalf Hoppe #define SCLP_DIAG_FTP_LDNPERM 0x02U /* not allowed */ 188f933b10SRalf Hoppe #define SCLP_DIAG_FTP_LDRUNS 0x03U /* LD runs */ 198f933b10SRalf Hoppe #define SCLP_DIAG_FTP_LDNRUNS 0x04U /* LD does not run */ 208f933b10SRalf Hoppe 218f933b10SRalf Hoppe #define SCLP_DIAG_FTP_XPCX 0x80 /* PCX communication code */ 228f933b10SRalf Hoppe #define SCLP_DIAG_FTP_ROUTE 4 /* routing code for new FTP service */ 238f933b10SRalf Hoppe 248f933b10SRalf Hoppe /* 258f933b10SRalf Hoppe * length of Diagnostic Test FTP Service event buffer 268f933b10SRalf Hoppe */ 278f933b10SRalf Hoppe #define SCLP_DIAG_FTP_EVBUF_LEN \ 288f933b10SRalf Hoppe (offsetof(struct sclp_diag_evbuf, mdd) + \ 298f933b10SRalf Hoppe sizeof(struct sclp_diag_ftp)) 308f933b10SRalf Hoppe 318f933b10SRalf Hoppe /** 328f933b10SRalf Hoppe * struct sclp_diag_ftp - Diagnostic Test FTP Service model-dependent data 338f933b10SRalf Hoppe * @pcx: code for PCX communication (should be 0x80) 348f933b10SRalf Hoppe * @ldflg: load flag (see defines above) 358f933b10SRalf Hoppe * @cmd: FTP command 368f933b10SRalf Hoppe * @pgsize: page size (0 = 4kB, 1 = large page size) 378f933b10SRalf Hoppe * @srcflg: source flag 388f933b10SRalf Hoppe * @spare: reserved (zeroes) 398f933b10SRalf Hoppe * @offset: file offset 408f933b10SRalf Hoppe * @fsize: file size 418f933b10SRalf Hoppe * @length: buffer size resp. bytes transferred 428f933b10SRalf Hoppe * @failaddr: failing address 438f933b10SRalf Hoppe * @bufaddr: buffer address, virtual 448f933b10SRalf Hoppe * @asce: region or segment table designation 458f933b10SRalf Hoppe * @fident: file name (ASCII, zero-terminated) 468f933b10SRalf Hoppe */ 478f933b10SRalf Hoppe struct sclp_diag_ftp { 488f933b10SRalf Hoppe u8 pcx; 498f933b10SRalf Hoppe u8 ldflg; 508f933b10SRalf Hoppe u8 cmd; 518f933b10SRalf Hoppe u8 pgsize; 528f933b10SRalf Hoppe u8 srcflg; 538f933b10SRalf Hoppe u8 spare; 548f933b10SRalf Hoppe u64 offset; 558f933b10SRalf Hoppe u64 fsize; 568f933b10SRalf Hoppe u64 length; 578f933b10SRalf Hoppe u64 failaddr; 588f933b10SRalf Hoppe u64 bufaddr; 598f933b10SRalf Hoppe u64 asce; 608f933b10SRalf Hoppe 618f933b10SRalf Hoppe u8 fident[256]; 628f933b10SRalf Hoppe } __packed; 638f933b10SRalf Hoppe 648f933b10SRalf Hoppe /** 658f933b10SRalf Hoppe * struct sclp_diag_evbuf - Diagnostic Test (ET7) Event Buffer 668f933b10SRalf Hoppe * @hdr: event buffer header 678f933b10SRalf Hoppe * @route: diagnostic route 688f933b10SRalf Hoppe * @mdd: model-dependent data (@route dependent) 698f933b10SRalf Hoppe */ 708f933b10SRalf Hoppe struct sclp_diag_evbuf { 718f933b10SRalf Hoppe struct evbuf_header hdr; 728f933b10SRalf Hoppe u16 route; 738f933b10SRalf Hoppe 748f933b10SRalf Hoppe union { 758f933b10SRalf Hoppe struct sclp_diag_ftp ftp; 768f933b10SRalf Hoppe } mdd; 778f933b10SRalf Hoppe } __packed; 788f933b10SRalf Hoppe 798f933b10SRalf Hoppe /** 808f933b10SRalf Hoppe * struct sclp_diag_sccb - Diagnostic Test (ET7) SCCB 818f933b10SRalf Hoppe * @hdr: SCCB header 828f933b10SRalf Hoppe * @evbuf: event buffer 838f933b10SRalf Hoppe */ 848f933b10SRalf Hoppe struct sclp_diag_sccb { 858f933b10SRalf Hoppe 868f933b10SRalf Hoppe struct sccb_header hdr; 878f933b10SRalf Hoppe struct sclp_diag_evbuf evbuf; 888f933b10SRalf Hoppe } __packed; 898f933b10SRalf Hoppe 908f933b10SRalf Hoppe #endif /* _SCLP_DIAG_H */ 91