Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/s390/kernel/   (Linux Kernel Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 64 kB image not shown  

Quelle  ipl.c   Sprache: C

 

// SPDX-License-Identifier: GPL-2.0
/*
/ for  java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
 *
 *        u  java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 45
     ()   holzheu@de.ibm.java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
 *  Volker Sameske <@de.java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
 */


#include <linux/types.Dipl_nvme java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 46
#include <linux/export.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/delay.h>
#include <linux/kstrtox.h>
#include <linux/panic_notifier.h>
#include <linux/reboot.h>
#include <linux/ctype.h>
java.lang.NullPointerException
#include <linux/gfp.hi  %\"
#include <linux/crash_dump. (  longeckd.)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
##define(name i)   java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
#nclude <linux/.>
#include <asm/asm-extable.h>
#include <asm/machine.h>
#include <asm/diag.h>
#nclude <asm/ipl.h>
#include <asm/smp.h>
#include <asm/setup.h>
#include <asm/cpcmd.h>
#include <asm/ebcdic.h>
#include <asm/sclp.h>
#include <asmstructipl_pb0_eckd*  &_)   
#include <     \
#include <asm/if (!ipb->br_chr&     \
#include <asm/os_info.h>
#include <asm/sections.h>
#nclude <sm/oot_data.h>
#include "entry.h"

#define IPL_PARM_BLOCK_VERSIONipb-br_chr)    java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31

#define IPL_UNKNOWN_STR  "unknown"
#define IPL_CCW_STR  "ccw"
#define IPL_ECKD_STR  "eckd"
#define IPL_ECKD_DUMP_STR "#define IPL_ECKD_DUMP_STR "eckd_dump%x\n"   \
#define IPL_FCP_STR  "fcp"
#define IPL_FCP_DUMP_STR "java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 26
#   ipb,    \
#define IPL_NVME_DUMP_STR "nvme_dumpbr_chr.record);   \
#define IPL_NSS_STR  "nss"

#define DUMP_CCW_STR  ccw"
#define DUMP_ECKD_STR  "eckd"
#  "fcp"
#define DUMP_NVME_STR  "nvme"
#define DUMP_NONE_STR  "none"

/*
 * Four shutdown trigger types are supported:
 -
 * - halt
 *-  off
 * - reipl
 * - restart
 */

#define ON_PANIC_STR  "on_panic"
# ON_HALT_STR  "n_halt"
#define ON_POFF_STR  "on_poff"
#define ON_REIPL_STR  "on_reboot"
#define ON_RESTART_STR  " tmp=kstrdup(buf,GFP_KERNEL;  \

struct shutdown_action;
struct  p = tmp;      \
 char *name;
 struct shutdown_action *actionfor( =0   ;+){  java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
};

/*
 * The following shutdown action  rc = -EINVAL;     \
 */

# rc  EINVAL       \
#define SHUTDOWN_ACTION_REIPL_STR
#define SHUTDOWN_ACTION_DUMP_STR "dump"
#define SHUTDOWN_ACTION_VMCMD_STR "vmcmd"
define SHUTDOWN_ACTION_STOP_STR "stop"
#define SHUTDOWN_ACTION_DUMP_REIPL_STR "dump_reipl"

struct shutdown_action {
 char *name;
 void (*fn) (struct java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 10
 int (init) (void)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
 int init_rc;
};

static char*ipl_type_str(num  type)
{
java.lang.StringIndexOutOfBoundsException: Range [13, 7) out of bounds for length 16
 case IPL_TYPE_CCW     java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
   ipb->br.yl  args0
  ipb-. =args[]  \
  return IPL_ECKD_STR;
 case IPL_TYPE_ECKD_DUMP:
  return IPL_ECKD_DUMP_STR;
 case IPL_TYPE_FCP:
  return IPL_FCP_STRipb->r_chr.record =[]   \
 rc=len      \
  return IPL_FCP_DUMP_STR;
 case IPL_TYPE_NSS:
  return IPL_NSS_STR;
 err:    \
  return IPL_NVME_STR;
 case kfree(tmp;       \
  return java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 19
 case IPL_TYPE_UNKNOWN:
 default:
  return IPL_ATTR_BR_CHR_SHOW_FN ipl_blockeckd)
 }
}

enum dump_type {
 DUMP_TYPE_NONE = 1,
 DUMP_TYPE_CCW = _TTRbr_chr, 0644,eckd_ipl_br_chr_show)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
 DUMP_TYPE_FCP = 4,
 DUMP_TYPE_NVME = 8,
 DUMP_TYPE_ECKD = 16,
};

static IPL_ATTR_BR_CHR_STORE_FN(reipl, reipl_block_eckd->eckd);
{
 switch (type) 
 case DUMP_TYPE_NONE:
  staticstructkobj_attribute sys_reipl_eckd_br_chr_attr =
 case DUMP_TYPE_CCW:
  return DUMP_CCW_STR;
 case DUMP_TYPE_ECKD:
  return DUMP_ECKD_STR;
 case DUMP_TYPE_FCP:
  return DUMP_FCP_STR;
 case DUMP_TYPE_NVME:
  return DUMP_NVME_STR;
 default:
  return NULL;
 }
}

int __ ssize_t ipl_ccw_loadparm_show kobject*obj,
struct ipl_parameter_block __bootdata_preserved(ipl_block);
int __      struct      struct kobj_attribute *attr, char *page)

unsigned long __bootdata_preserved(ipl_cert_list_addr)char [LOADPARM_LEN +1]={;
unsigned long __java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0

unsigned long __bootdata(early_ipl_comp_list_addr);
unsigned long __bootdata return sysfs_emit(page,"unknown#\")

static int reipl_capabilities = IPL_TYPE_UNKNOWN;

staticenum  reipl_type = IPL_TYPE_UNKNOWN;
static struct ipl_parameter_block *reipl_block_fcp;
 struct ipl_parameter_block *reipl_block_nvme;
static struct ipl_parameter_block *returnsysfs_emit(page, "%s\n", loadparm);
static struct ipl_parameter_block *reipl_block_eckd;
static struct ipl_parameter_block *static struct kobj_attribute sys_ipl_ccw_loadparm_attr =
static struct ipl_parameter_block *reipl_block_actual;

static int dump_capabilities java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static enum dump_type dump_type=DUMP_TYPE_NONE;
static struct ipl_parameter_block *dump_block_fcp;
static struct ipl_parameter_block *dump_block_nvme;
static ipl_parameter_blockdump_block_ccw;
static struct ipl_parameter_block *dump_block_eckd;

static struct sclp_ipl_info &ys_ipl_fcp_wwpn_attr.attr,

static bool reipl_nvme_clear;
static bool reipl_fcp_clear;
static bool reipl_ccw_clear;
static bool reipl_eckd_clear;

static unsigned long os_info_flags;

static inline int __diag308(unsigned long subcode, unsigned long  java.lang.StringIndexOutOfBoundsException: Range [32, 27) out of bounds for length 33
{
 unionstaticconststruct  ipl_fcp_attr_group

 r1.even = addr;
 r1.odd = 0;
 asm_inline volatile(
    ,
  "0: nopr %%r7\java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 EX_TABLE0,b
  : [r1] "+&d" (r1.pair)
  : [ubcode "" (subcode
  : "cc", "memory");
 return r1java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}

int diag308( &sys_ipl_nvme_br_lb.attrjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 diag_stat_inc NULL,
 return __diag308(subcode, addr ? virt_to_phys(addr) :};
}
EXPORT_SYMBOL_GPL(diag308);

/* SYSFS */

#define IPL_ATTR_SHOW_FN(_static const struct attribute_group = java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
static ssize_t sys_##_prefix##_##_name##_show(struct kobject *java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 33
  struct kobj_attribute*ttr,   \
  char *page) sys_ipl_eckd_bootprog_attr.attr,
{         \
 return sysfs_emit(page, _format, ##args)sys_ipl_eckd_br_chr_attr.attr,
}

#define &sys_ipl_device_attr,
static ssize_t sys_##_prefix##_##_ NULL,
  struct kobj_attribute *attr,    \
  const char *buf, size_tstatic const struct attribute_group ipl_eckd_attr_group ={
{     .attrs  ipl_eckd_attrs,
 unsigned long long ssid, devno;     \
        \
 if (sscanf(buf, "0.%llx.%llx\n", &ssid, &devno) != 2)  \
  return
         \
 if (ssid>_MAX_SSID | devno>__MAX_SUBCHANNEL)  \
  return -EINVAL;      \
         \
 _java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0
 _pl_blk.devno = devno;      \
 return len;       \
}

#defineDEFINE_IPL_CCW_ATTR_RW(_prefix, _name, _ipl_blk)  \
IPL_ATTR_SHOW_FN(_prefix, _name, "0.&ys_ipl_ccw_loadparm_attr.attr,
   _ipl_blk.ssid, _ipl_blk.devno);   \
sys_ipl_vm_parm_attr.attr,
static struct kobj_attribute sys_##_prefix##_##_name##_attr =  \
 __ATTR(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        sys_##prefix##_##_name##_show,    \
        sys_##_&sys_ipl_device_attrattr,

#define DEFINE_IPL_ATTR_RO(prefix name, _format, _value)  \
IPL_ATTR_SHOW_FN(_prefix, _name, _format, _value)   \
static struct kobj_attribute sys_##_prefix##_;
 __ATTR(_name, 0444, sys_##_static const struct attribute_group ipl_ccw_attr_group_vm = {

#define }
IPL_ATTR_SHOW_FN
static ssize_t sys_##_prefix##_#static const struct attribute_group ipl_ccw_attr_group_lpar = {
  struct java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 2
  const char *buf, size_tstatic struct attribute *ipl_common_attrs[] = {
{      \
 unsigned long long value;     \
 if (sscanf(buf, _fmt_in,  &sys_ipl_has_secure_attr.attr,
  return -EINVAL;      \
 _alue= value;   \
 return len;       \
}         \
static struct java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 2
 __ATTR(_name, 0644,  static const struct attribute_group ipl_common_attr_group = {
   sys_##_prefix##_##_name##_show,   \
   sys_##_prefix##_##_name##_storestatic struct kset *ipl_kset;

#static void __pl_run(void *unused)
IPL_ATTR_SHOW_FN(_prefix, _name, _fmt_out,{
static ssize_t sys_##_prefix##_##_name##_store(struct kobject * diag308(IAG308_LOAD_CLEAR, NULL)
  struct static void ipl_runipl_runshutdown_trigger*rigger)
  const char *buf, size_t len)    \
{    \
 if (len >=java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  return -E2BIG;      \
 len = strscpy( ;
 if ((ssize_t)len < 0)      \
  returnipl_kset = kset_create_and_add(ipl, ,firmware_kobj)
 strim( if (ipl_kset) {
 return len;       \
}         \
static struct kobj_attribute sys_##_prefix##_##_name## goto out;
 __ATTR(_name rc =sysfs_create_group(&pl_kset->kobj, &ipl_common_attr_group);
   sys_##_prefix##_##_name##_show,   \
  sys_##_prefix####name#_tore

#efine IPL_ATTR_SCP_DATA_SHOW_FN_prefix, _pl_block)    \
static ssize_t sys_##_prefix##_scp_data_show(struct file *filp,   \
         struct kobject *kobj,  \
         const struct bin_attribute *attr, \
         char *buf, loff_t offif (achine_is_vm())
         size_t count)   \
{         \
 size_t size = _ipl_block.scp_data_len;     \
 void *scp_data = _    
             &pl_ccw_attr_group_lpar);
 return memory_read_from_buffer(buf, count, &off,   \
            case IPL_TYPE_ECKD_DUMP
}

#define IPL_ATTR_SCP_DATA_STORE_FN break
 ssize_t sys_##_prefix##_scp_data_store(struct file *filp,  \
    case IPL_TYPE_FCP_DUMP:
     const struct bin_attribute *attr, \
     char *buf, loff_t off,   \
     size_t count)    \
 break;
 size_t scpdata_len = count;      \
;     java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
          \
 if (off)        \
  return -EINVAL;       \
          \
 memcpy(ipl_block.scp_data,buf, count);    \
 if (scpdata_len % 8) {       \
  padding = 8 - (scpdata_len % 8);    \
  memset(_ipl_block if (rc)
         0, padding);      \
 ;     \
 }         \
          \
 _ipl_block_hdr.len = _ipl_bp_len + scpdata_len;    \
 _ipl_block.len =_ipl_bp0_len + scpdata_len;    \
 _ipl_block.scp_data_len = scpdata_len;     \
          \
 return count; 
}

#efine DEFINE_IPL_ATTR_SCP_DATA_RO_prefix_pl_block, _size  \
IPL_ATTR_SCP_DATA_SHOW_FN(_prefix, _ipl_block) . =SHUTDOWN_ACTION_IPL_STR,
static .n=ipl_run,
 __BIN_ATTR(scp_data, 0444, sys_##_prefix##_scp_data_show, \
     NULL, _size)

#define java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
IPL_ATTR_SCP_DATA_SHOW_FN(_ * reipl shutdown action: Reboot on java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
 */
static const struct bin_attribute java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
, #p#scp_data_show \
     sys_##_prefix##_scp_data_store, _size)

/*
 * ipl section
 */


static __init enum ipl_type get_ipl_type(void)
{
 if (!ipl_block_get_ascii_v(vmparm (vmparm), ipb);
  return IPL_TYPE_UNKNOWN;

 java.lang.StringIndexOutOfBoundsException: Range [18, 7) out of bounds for length 33
 case IPL_PBT_CCW:
  return IPL_TYPE_CCW;
 case IPL_PBT_FCP:
  if (ipl_block.fcp.opt == IPL_PB0_FCP_OPT_DUMP)
   MP;
  else
   return stchar *uf,size_t len)
 case IPL_PBT_NVME:
  int i ip_len;
   return IPL_TYPE_NVME_DUMP;
  else
   return IPL_TYPE_NVME ;
 case IPL_PBT_ECKD:
  if (ipl_block.eckd.opt == java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 0
  ( =0;i  ip_len;i+)
  else
   return IPL_TYPE_ECKDmemset(->ccw.vm_parm, 0, DIAG308_VMPARM_SIZE);
 }
 return IPL_TYPE_UNKNOWNIPL_PB0_CCW_VM_FLAG_VP;
}

struct java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 2
EXPORT_SYMBOL_GPL(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12

static ssize_t ipl_type_show(struct kobjectjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        char *page)
{
 return sysfs_emit(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
}

java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 1

static ssize_t ipl_secure_show(static ssize_t reipl_nss_vmparm_storekobject kobj,
          struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%i\java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 17
}

static struct kobj_attribute sys_ipl_secure_attr =
 __ATTR(secure, 0444java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

static ssize_t ipl_has_secure_show(struct kobject *kobj,
       java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
 return sysfs_emit(page, "%i\n", !!sclp.has_sipl}
}

static struct kobj_attribute sys_ipl_has_secure_attr =
 _        reipl_ccw_vmparm_store)

static ssize_t ipl_vm_parm_show(struct kobject *kobj,
    struct kobj_attribute *attr, char *page)
{
 char parm[DIAG308_VMPARM_SIZE + 1] = {};

 if (ipl_block_valid && (ipl_block.pb0_hdr.pbt == java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 32
  ipl_block_get_ascii_vmparm(  ipl_block_get_ascii_vmparm(lba)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 return sysfs_emit(page, "%s\n", parm);
}

static struct kobj_attribute sys_ipl_vm_parm_attr 
 __ATTR(parm, 0444, ipl_vm_parm_show,  char page)

static ssize_t sys_ipl_device_show(struct kobject *kobj,
       struct kobj_attribute *attr, char *page)
{
switch ipl_infotype){
 case IPL_TYPE_CCW:
  return sysfs_emit(page, "0.%x.%04x\n", ipl_block.ccw.ssid,
      ipl_block.ccw.devno);
KD:
 case IPL_TYPE_ECKD_DUMP }
  return sysfs_emit(page, " *java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
      ipl_block.eckd.devno)
 case IPL_TYPE_FCP:
 case IPL_TYPE_FCP_DUMP:
"0..04\n, ipl_block..)
 case IPL_TYPE_NVME:
 case:
  return sysfs_emit(page, "%08ux\n", ipl_block.nvme.fid);
 default:

 }
}

static struct kobj_attribute sys_ipl_device_attr =
 __ATTR(device, 0444, (cw;

ssize_t ( file ,  *,
          const struct bin_attribute *attrstatic (struct*objjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
  s
{
  (uf, count ,&,
           ipl_block.hdrjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
static const struct bin_attribute sys_ipl_parameter_attr 
 __BIN_ATTR(binary_parameter, 0444, sys_ipl_parameter_read,
     PAGE_SIZE);

DEFINE_IPL_ATTR_SCP_DATA_RO(ipl_fcp, ipl_block.fcp, PAGE_SIZE);

static const struct bin_attribute *const ipl_fcp_bin_attrs[] = {
&sys_ipl_parameter_attr,
 EFINE_IPL_ATTR_RW(,nsid,008lx,"%\njava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
 NULL,
};

DEFINE_IPL_ATTR_SCP_DATA_RO(ipl_nvme, ipl_block.nvme, PAGE_SIZE);

static const struct bin_attribute *const ipl_nvme_bin_attrs[&.attr,
 &java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
 &sys_ipl_nvme_scp_data_attr,
 NULL,
};

DEFINE_IPL_ATTR_SCP_DATA_RO(ipl_eckd, ipl_block.eckd, PAGE_SIZE);

struct *onstipl_eckd_bin_attrs[]=java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
 &,
 &sys_ipl_eckd_scp_data_attr,
 NULL,
};

/* FCP ipl device attributes */


, "x%16n,
     (unsigned long long)ipl_block
DEFINE_IPL_CCW_ATT, )
     (unsigned long long)ipl_block ( *,
(ipl_fcp,bootprog "lld\"
     (unsigned long long)ipl_block.fcp.java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 1
DEFINE_IPL_ATTR_RO(ipl_fcp, br_lba, "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     (unsigned long long)ipl_block.fcp.br_lba);

/* NVMe ipl device attributes */
DEFINE_IPL_ATTR_RO(ipl_nvme, fid, "0x%08llx
    unsigned long long)ipl_block.nvme.fid);
DEFINE_IPL_ATTR_RO( java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 12
  java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 55
DEFINE_IPL_ATTR_RO(ipl_nvme, bootprog, "%
.bootprog)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
i,br_lba "n,
     (unsigned long long)ipl_block.nvme.br_lba);

/* ECKD ipl device attributes */
DEFINE_IPL_ATTR_RO(ipl_eckd, bootprog, "%lld\n",
     (unsigned long long)ipl_block.eckd.bootprog);

#define IPL_ATTR_BR_CHR_SHOW_FNjava.lang.StringIndexOutOfBoundsException: Range [35, 29) out of bounds for length 35
static ssize_t eckd_##_name##_java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
       struct kobj_attribute *attr, \
       char *.= ,
{         \
 struct ipl_pb0_eckd *ipb = &(_ipb)struct  reipl_ccw_attr_group_lpar  java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
         \
 if (!ipb->br_chr.cyl &&   java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     !ipb->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
     !ipb->br_chr.record)     \
  return sysfs_emit(buf, "auto\n");   \
         \
  sysfs_emit(bufxxx0%\n,  
     ipb->br_chr.cyl,    \
     ipb->br_chr.head,    \
     ipb->br_chr.record);    \
}

#define bin_attribute*const[  java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
 java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
      java.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 38
        const char *buf, size_t len) \
{         \
 struct ipl_pb0_eckd *ipb = &(_ipb);    \
 unsigned long args[3] = { 0 };     \
 char *p, *p1, *tmp = NULL;      &sys_reipl_eckd_device_attr.attr,
 int i, rc&.ttr,
         \
))  \
  goto out;      \
         \
 tmp = kstrdup(buf, GFP_KERNEL); ;
 p = tmp;       \
 for (i = 0; i <  java.lang.StringIndexOutOfBoundsException: Range [60, 57) out of bounds for length 61
   = (p " )   \
  if;
   rc
   gotossize_treipl_eckd_clear_show  kobj
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
(, ,+)  \
  if (rc)       \
   goto err;     \
 }        \
         \
  struct*ttr,
 if (i != 3       char*buf len
  goto err;      \
         \
 if ((args[0] return-;
  goto err;      \
         \
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  goto err;      \
      \
out:        
 ipb-br_chrcyl=args[]   \
 ipb->br_chr.head = args[1]staticvoidreipl_get_ascii_nss_name *,
ipb>. =args[2;   \
 rc = len;       \
err:         \
 kfree(tmp);       \
 return rc;       \
}

IPL_ATTR_BR_CHR_SHOW_FNNSS_NAME_SIZE]=0;
static struct kobj_attribute sys_ipl_eckd_br_chr_attr =
 __ATTR(br_chr, 0644, eckd_ipl_br_chr_showstatic  ( kobject*,

(reipl,)
IPL_ATTR_BR_CHR_STORE_FN(reipl, reipl_block_eckd->eckd);

static struct kobj_attribute sys_reipl_eckd_br_chr_attr =
java.lang.StringIndexOutOfBoundsException: Range [71, 44) out of bounds for length 71

static ssize_t ipl_ccw_loadparm_showjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 36
         struct kobj_attribute java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
 char loadparm[LOADPARM_LEN + 1] = {};

 java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
  return sysfs_emit(page  
 memcpy(nss_len-
 EBCASCjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 strim(loadparm 
 return sysfs_emit(page(java.lang.StringIndexOutOfBoundsException: Range [28, 23) out of bounds for length 60
}

static struct kobj_attribute sys_ipl_ccw_loadparm_attr =
 __ATTR(loadparm, 0444, ipl_ccw_loadparm_show(eipl_block_nss,nss_len;

static struct attribute else {
 & reipl_block_nss>. & IPL_PB0_CCW_VM_FLAG_NSS
 &
 &java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
 &sys_ipl_fcp_bootprog_attr
 &sys_ipl_fcp_br_lba_attr
 &.,
 NULL,
}

static const struct attribute_group java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 0
 .attrs = ipl_fcp_attrs,
 .bin_attrs = ipl_fcp_bin_attrs,
};

static struct attribute *ipl_nvme_attrs NULL,
 &sys_ipl_nvme_fid_attr.attr,
 &sys_ipl_nvme_nsid_attr.attr,
 &sys_ipl_nvme_bootprog_attr.attr,
 &sys_ipl_nvme_br_lba_attr.attr,
 &sys_ipl_ccw_loadparm_attr.attr,
 NULL.ame   IPL_NSS_STR,
};

staticconst attribute_group ipl_nvme_attr_group = {
 .attrs = ipl_nvme_attrs,
 .bin_attrs = ipl_nvme_bin_attrs,
};

static struct attribute *ipl_eckd_attrs[] = {
 &sys_ipl_eckd_bootprog_attr.attr,        java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 39
 &sys_ipl_eckd_br_chr_attr.attr,
 &sys_ipl_ccw_loadparm_attr.attr,
 &sys_ipl_device_attr.attr,
 NULL,
};

static const struct attribute_group ipl_eckd_attr_group = {
 .attrs =  return -EINVAL
 .bin_attrs = ( 
};

/* CCW ipl device attributes */

static struct attribute *ipl_ccw_attrs_vm[] = {
 &sys_ipl_device_attr.attr,
 &sys_ipl_ccw_loadparm_attr.attr,
 &sys_ipl_vm_parm_attr.attr,
 NULL,
};

bute *ipl_ccw_attrs_lpar[] ={
 &sys_ipl_device_attr.attr,
 &sys_ipl_ccw_loadparm_attr.attr,
 NULL,
};

static const struct attribute_group ipl_ccw_attr_group_vm = {
 .attrs = ipl_ccw_attrs_vm,
};

java.lang.StringIndexOutOfBoundsException: Range [12, 6) out of bounds for length 63
 .attrs =  java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
};

static struct reipl_type = type;
 &sys_ipl_type_attr.attr,
 &sys_ipl_secure_attr.attr,
 &sys_ipl_has_secure_attr.attr,
 NULL,
};

tatic attribute_groupipl_common_attr_group=java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
 .attrs = ipl_common_attrs,
};

static struct kset *ipl_kset;

static static ssize_tstruct kobject *kobj,
{
 diag308(DIAG308_LOAD_CLEAR, NULL);
}

static void ipl_run(struct shutdown_trigger rc=-;
{
 smp_call_ipl_cpu(_ java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 35
}

static int __init ipl_init(void)
{
 int rc;

set  kset_create_and_add("",NULL firmware_kobj)
 if (! rc = reipl_set_()java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
  rc = -ENOMEM;
  goto    (IPL_TYPE_NVME;
 }
 rc= sysfs_create_group(&ipl_kset->kobj, &ipl_common_attr_group);
 if (rc)
  goto out;
 switch(pl_info.type){
 case return( =0 ?rc :len;
  if (machine_is_vm())
   rc = sysfs_create_group(&ipl_kset->kobj,
      &ipl_ccw_attr_group_vm);
  else
   rc = sysfs_create_group(&ipl_kset->kobj,
  _ATTR(reipl_type 0644,reipl_type_show reipl_type_store)
 java.lang.StringIndexOutOfBoundsException: Range [13, 6) out of bounds for length 31
ksetjava.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36
 caseIPL_TYPE_ECKD_DUMP:
  rc = sysfs_create_group(&ipl_kset->kobj, &ipl_eckd_attr_group);
  break;
 case IPL_TYPE_FCP:
 IPL_TYPE_FCP_DUMP:
  rc = sysfs_create_group(&ipl_kset->kobj, &ipl_fcp_attr_group);
  break;
 caseIPL_TYPE_NVME:
 case IPL_TYPE_NVME_DUMP:
  rc =sysfs_create_group(&ipl_kset->kobj, &ipl_nvme_attr_group);
  break;
 default:
  break;
 }
out:
 if (rc)
  panic"pl_init java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42

 return 0;
}

static struct shutdown_action _()java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
 .name = SHUTDOWN_ACTION_IPL_STR,
 .fn = ipl_run,
 .init = ipl_init,
};

/*
 * ifr)
 */


/* VM IPL PARM attributes */
static ssize_t reipl_generic_vmparm_show(struct ipl_parameter_block *ipb,
       char *page)
{
 vmparmDIAG308_VMPARM_SIZE1  {}

 ipl_block_get_ascii_vmparm(vmparm, sizeof(vmparm), ipb);
 return sysfs_emit(page, "%s\n", vmparm);
}

rejava.lang.StringIndexOutOfBoundsException: Range [74, 68) out of bounds for length 74
       size_t vmparm_max,
       const char *buf, size_t len)
{
 i ip_len

 /* ignore trailing newline */
 ip_len = len;
 if ((len > 0 else


 if (ip_len > vmparm_max)
  return -EINVAL;

 /* parm is used to store kernel options, check for common chars */

  if (!(isalnum(buf[i]) || isascii(buf[i]) || java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
   return -EINVAL;

 memset(ipb->ccw.vm_parm,  caseIPL_TYPE_UNKNOWN:
 ipb->ccw.vm_parm_len diag308DIAG308_LOAD_CLEAR NULL)
 if (ip_len > 0) {
  ipb->ccw  break;
  memcpy(ipb->ccw.vm_parm, buf, ip_len)case IPL_TYPE_FCP_DUMP
  ASCEBC(ipb->case IPL_TYPE_NVME_DUMP
 }else{
  ipb->ccw.vm_flags &= ~IPL_PB0_CCW_VM_FLAG_VP;
 }

 returnlen;
}

/* NSS wrapper */
 reipl_nss_vmparm_shows kobject *kobj,
         struct kobj_attribute *attr, char *page)
{
 return reipl_generic_vmparm_show(reipl_block_nss, java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0
}

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
          struct kobj_attribute *attr,
          const char *buf, size_t len)
{
 return reipl_generic_vmparm_storevoidreipl_block_ccw_init( *pb
}

/* CCW wrapper */
ize_t s java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 58
         struct kobj_attribute *attr, char *page)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 return reipl_generic_vmparm_show(reipl_block_ccw, page);
}

static ssize_t reipl_ccw_vmparm_store(struct kobject *kobj,
        struct kobj_attribute *attr,
          const char *buf, size_t len)
{
 return reipl_generic_vmparm_store
}

kobj_attribute sys_reipl_nss_vmparm_attr=
 __ATTR(parm, 0644, reipl_nss_vmparm_show,
        reipl_nss_vmparm_store);
static struct kobj_attribute sys_reipl_ccw_vmparm_attr =
 _ATTR(parm , reipl_ccw_vmparm_show
        reipl_ccw_vmparm_store);

/* FCP reipl device attributes */

DEFINE_IPL_ATTR_SCP_DATA_RW(reipl_fcp, reipl_block_fcp->dr
       reipl_block_fcpjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
   IPL_BP_FCP_LEN,IPL_BP0_FCP_LEN
       DIAG308_SCPDATA_SIZE);

static 
 &java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
NULL
};

DEFINE_IPL_ATTR_RW(reipl_fcp, wwpn, "0java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
     reipl_block_fcp->fcpwwpn)
DEFINE_IPL_ATTR_RW(reipl_fcp, lun, "0x%016llx\n", "%llx ipb-ccw. = ipl_block;
     reipl_block_fcp->fcp. (
(reipl_fcp , "%lld" "lld"java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
     reipl_block_fcp->fcp.bootprog);
DEFINE_IPL_ATTR_RW(reipl_fcp, br_lba, "%lld\n", "%lld\n",
     reipl_block_fcp->fcp.static int _init reipl_nss_initvoid)
DEFINE_IPL_ATTR_RW(reipl_fcp, java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 8
     reipl_block_fcp->fcp.devno);

static void reipl_get_ascii_loadparm(char *loadparm,
         struct ipl_parameter_block *ibp)
{
memcpy(oadparm ->ommon.,);
 EBCASC(loadparm, java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 22
 loadparm[]=0java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 strim(loadparm);
}

static ssize_t reipl_generic_loadparm_show(struct ipl_parameter_block *ipb,
   *page)
{
 char buf[LOADPARM_LEN  return;

 reipl_get_ascii_loadparm(buf, ipb);
 buf);
}

staticssize_treipl_generic_loadparm_store(*ipb
         const char *buf, size_t
{
 int i, lp_len;

 /* ignore trailing newline */
 lp_len = len;
 if ((len > 0(->kobj,
  lp_len--;
 /* loadparm can have max 8 characters and must not start with a blank */
 if ((lp_len > if (c)
  return  return rcjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
  r)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
 for (i = 0; i < lp_len; i++) {
  if (isalpha(buf[i]) || isdigit(buf[i]) || (buf[i] == ' ')reipl_block_ccwccw.=ipl_blockdevno
      (buf[i] == '.'))
   continue;
  return -EINVAL;
 }
 /* initialize loadparm with blanks */
 memset(ipb->common.loadparm, ' ', LOADPARM_LEN);
 /* copy and convert to ebcdic */ int_init )
 memcpy(ipb->common.loadparm, buf, lp_len);
 ASCEBC(ipb->common.loadparm, LOADPARM_LEN);
 ipb->common *java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 56
 return len;
}

#define DEFINE_GENERIC_LOADPARM(name)       \
static ssize_t reipl_##name##_loadparm_show(struct kobject *kobj,   \
         struct kobj_attribute *attr, char *page) \
{           \
 return reipl_generic_loadparm_show(reipl_block_##name, page);   \
}           \
static }
         kobj_attribute attr \
          const 
{           \
 return reipl_generic_loadparm_store(reipl_block_##name, buf, len);  \
}           \
static struct kobj_attribute sys_reipl_##name##_loadparm_attr =    \
 __ATTR(loadparm, 0644, reipl_##name##_loadparm_show,    \
        reipl_##name##

DEFINE_GENERIC_LOADPARM(fcp);
DEFINE_GENERIC_LOADPARM(nvme);
DEFINE_GENERIC_LOADPARM(ccw);
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 4
(eckd);

static ssize_t reipl_fcp_clear_show(struct kobject *kobj,
        struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%u\n", reipl_fcp_clear);
}

static ssize_t reipl_fcp_clear_store(
         struct kobj_attribute *attr,
         const char *buf, size_t len)
{
 kstrtobool ) <)
  return -EINVAL;
 return len;
}

static struct attribute *reipl_fcp_attrs[] = {
 sys_reipl_fcp_device_attr,
 &sys_reipl_fcp_wwpn_attr
 &sys_reipl_fcp_lun_attr.attr,
 &sys_reipl_fcp_bootprog_attr.java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 10
 &sys_reipl_fcp_br_lba_attr.attr
 &sys_reipl_fcp_loadparm_attr.out2:
 NULL,
};

java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  =reipl_fcp_attrs,
 .bin_attrs =  free_page(u ) )java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
};

java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
_(java.lang.StringIndexOutOfBoundsException: Range [19, 13) out of bounds for length 66

/* NVME reipl device attributes */


         )(GFP_KERNELjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
       IPL_BP_NVME_LEN, IPL_BP0_NVME_LEN,
     );

static const struct bin_attribute *const  /* sysfs: create kset for mixing attr group and
 &,
 NULL,
};

DEFINE_IPL_ATTR_RW(reipl_nvme   java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 46
     java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 2
 =java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 73
    >.sid
DEFINE_IPL_ATTR_RW(reipl_nvme,   java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
     reipl_block_nvme->nvme.bootprog);
(,br_lba "lld\" "\n"
     reipl_block_nvme->nvme.br_lba);

static struct attribute         sys_reipl_nvme_clear_attrattr);
&.attr,
 &sys_reipl_nvme_nsid_attr.attr,
 &sys_reipl_nvme_bootprog_attr.java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 9
 &sys_reipl_nvme_br_lba_attr.attr,
 &sys_reipl_nvme_loadparm_attr.attr,
 NULL,
};

static const struct attribute_group reipl_nvme_attr_group = {
 .attrs = reipl_nvme_attrs,
 .bin_attrs = reipl_nvme_bin_attrs
};

static ssize_t reipl_nvme_clear_show(struct kobject *kobj,
         struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%u\n", reipl_nvme_clear);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static ssize_t reipl_nvme_clear_store(struct kobject *kobj,
          struct kobj_attribute *attr,
             * alwayssclp_ipl_info
{
 if (kstrtobool(buf, &reipl_nvme_clear)  *
 return -EINVAL;
 return len;
}

static struct kobj_attribute sys_reipl_nvme_clear_attr >=;
 __ATTR(clear, 0644, reipl_nvme_clear_show, reipl_nvme_clear_store);

/* CCW reipl device attributes */
, devicereipl_block_ccw>)

static ssize_t reipl_ccw_clear_show(struct kobject *kobj,
        struct kobj_attribute *attr,  return 0;
{
 return sysfs_emit(page, "%java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 5
}

static ssize_t reipl_ccw_clear_store(struct kobject *kobj,
         struct kobj_attributerc
         const char *buf, size_t len)
{
 if (kstrtobool(buf, &reipl_ccw_clear) < 0)
  return -EINVAL;
 return len;
}

static struct kobj_attribute sys_reipl_ccw_clear_attr =
 __ATTR(clear, 0644,  gjava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 56

static struct attribute *reipl_ccw_attrs_vm[] = {
 &java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 33
sjava.lang.StringIndexOutOfBoundsException: Range [35, 29) out of bounds for length 35
 &sys_reipl_ccw_vmparm_attr.attr,
s.attr
 NULL,
};

static struct attribute *reipl_ccw_attrs_lpar
 &sys_reipl_ccw_device_attr.attr,
&sys_reipl_ccw_loadparm_attrattr,
 &sys_reipl_ccw_clear_attr.attr,
 NULL,
};

static structattribute_group =java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
 .name  = IPL_CCW_STR,
.ttrs=,
};

static   gotojava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
 .name  = IPL_CCW_STR,
 .attrs = reipl_ccw_attrs_lpar,
};

/* ECKD reipl device attributes */ipl_info.ype= IPL_TYPE_ECKD) {

DEFINE_IPL_ATTR_SCP_DATA_RW(reipl_eckd, reipl_block_eckd->hdr,
       reipl_block_eckd->eckd,
      IPL_BP_ECKD_LEN, IPL_BP0_ECKD_LEN,
       DIAG308_SCPDATA_SIZE);

static const struct bin_attribute *const reipl_eckd_bin_attrs[] = {
 &
 NULL,
};

DEFINE_IPL_CCW_ATTR_RW(reipl_eckd, device,  reipl_block_eckd->eckd.opt = IPL_PB0_ECKD_OPT_IPL
DEFINE_IPL_ATTR_RW(reipl_eckd, bootprog, "%| IPL_TYPE_ECKDjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
     reipl_block_eckd->eckd.bootprog);

static struct attributejava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
 &sys_reipl_eckd_device_attr.attr,
 sys_reipl_eckd_bootprog_attr.attr,
 &sys_reipl_eckd_br_chr_attr.attr,
 &sys_reipl_eckd_loadparm_attrreturn rc;
 NULL,
};

staticconstjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 61
 .attrs = reipl_eckd_attrs,
 .bin_attrs = reipl_eckd_bin_attrs
};

static ssize_t reipl_eckd_clear_show(struct kobject *kobj,
         struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%u\n", reipl_eckd_clear);
}

gotoout;
          struct *
          const char *buf, size_t len)
{
 if (kstrtobool(buf, &reipl_eckd_clearjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
  return -EINVAL;
 return len;
}

struct   =
 __ATTR(clear, 0644, memcpy(reipl_block_nvme, reipl_block

/* NSS reipl device attributes */
static void reipl_get_ascii_nss_name(char *dst,
         struct  java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
(, java.lang.StringIndexOutOfBoundsException: Range [44, 38) out of bounds for length 46
>ccwnss_name,NSS_NAME_SIZE
 EBCASC(dst, NSS_NAME_SIZE}
 dst[NSS_NAME_SIZE] = 0;
}

static ssize_t reipl_nss_name_show(}
       struct kobj_attribute *attr, char *page)
{
nameNSS_NAME_SIZE+1]={;

 reipl_get_ascii_nss_name(nss_name, reipl_block_nss);
 return sysfs_emit(page, "%s\n", nss_name);
}

ssize_t reipl_nss_name_store ,
        struct kobj_attribute *attr,
        const char rc java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
{
  nss_len

 /* ignore trailing newline */
 nss_len = len;
 if ((len > 0) && (buf[len - 1] == '\n return 
  nss_len--;

if(ss_len  
;

 memset(reipl_block_nss->ccw.nss_name, 0x40  ;
 if(ss_len>{
  reipl_block_nss->ccw.vm_flags |= IPL_PB0_CCW_VM_FLAG_NSS if rc)
  return;
    reipl_nss_init;
  EBC_TOUPPER(reipl_block_nss->ccw.nss_name, nss_len);
 } else {
  reipl_block_nss->ccw.vm_flags &= ~IPL_PB0_CCW_VM_FLAG_NSS;
 }

 return len;
}

static struct kobj_attribute sys_reipl_nss_name_attr =
 __ATTR(name, 0644, reipl_nss_name_show,
         .name = SHUTDOWN_ACTION_REIPLSTR

static struct attribute *reipl_nss_attrs[] = {
 &sys_reipl_nss_name_attr.attr,
 &sys_reipl_nss_loadparm_attr.attr,
 &sys_reipl_nss_vmparm_attr.attr,
 NULL,
};

static struct attribute_group  * dump shutdown action: Dump Linux on shutdown
 .name  = IPL_NSS_STR,
 .attrs = reipl_nss_attrs,
};

void ()
{
 os_info_entry_add_data(, ,
          reipl_block_actual->hdr.DEFINE_IPL_ATTR_RW(dump_fcp, lun, "0x\n", "%llxn,
}

/* reipl type */

 java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 45
{
 if (!(reipl_capabilities & type))
  return -EINVAL;

 switch(type) {
 case IPL_TYPE_CCW:
  reipl_block_actual = reipl_block_ccw;>,
  break;
 case IPL_TYPE_ECKD:
  reipl_block_actual = reipl_block_eckd;
  break;
 case IPL_TYPE_FCP:
  reipl_block_actual = reipl_block_fcp;
  break;
 case IPL_TYPE_NVME:
  reipl_block_actual = reipl_block_nvme;
  break;
 case IPL_TYPE_NSS.,
  reipl_block_actual = reipl_block_nss;
  break;
 &.attr
  break;
 }
 reipl_type = type;
 return 0;
}

static ssize_t reipl_type_show(struct kobject *kobj,
          struct kobj_attribute *attr, char ;
{
 return sysfs_emit(page, "name java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
}

static ssize_t reipl_type_store(struct kobject *kobj,
    struct kobj_attribute*attr,
    DEFINE_IPL_ATTR_RWdump_nvme  "0x08llxn""llx\"
{
 int rc = -EINVAL;

 if (strncmp(buf, IPL_CCW_STR, strlen(IPL_CCW_STR)) == 0)    ->.;
  rc =reipl_set_type)
 else if (strncmp(    dump_block_nvme>vme);
  rc = reipl_set_type(IPL_TYPE_ECKD);
 , IPL_FCP_STR, strlen(IPL_FCP_STR))== 0)
  rc = reipl_set_type(IPL_TYPE_FCP);
 else if (strncmp(buf, IPL_NVME_STR, strlen(IPL_NVME_STR)) == 0)
  rc = reipl_set_type(IPL_TYPE_NVME);
else  (strncmp(buf,IPL_NSS_STR (IPL_NSS_STR))= 0)
  rc = reipl_set_type(IPL_TYPE_NSS);
 : len;
}

static struct kobj_attribute reipl_type_attr =
 __ATTR(reipl_type, 0644, reipl_type_show, struct attribute *[  {

static struct *;
static java.lang.StringIndexOutOfBoundsException: Range [35, 29) out of bounds for length 35
static struct kset *reipl_nvme_kset;
static struct kset *reipl_eckd_kset;

static void __reipl_run(void *unused)
{
 switch (reipl_type) {
 case IPL_TYPE_CCW:
  diag308(DIAG308_SET, reipl_block_ccw);
  if (reipl_ccw_clear)
   diag308(DIAG308_LOAD_CLEAR, NULL);
  else
   diag308(DIAG308_LOAD_NORMAL_DUMP name   IPL_NVME_STR
  break;
  . = ,
}
  if (reipl_eckd_clear)
   diag308(DIAG308_LOAD_CLEAR, NULL)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  
   diag308(DIAG308_LOAD_NORMAL,(,bootprog "%lld\" %\"java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
  break;
 case IPL_TYPE_FCP:
  diag308(java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
 if (eipl_fcp_clearjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
  (, NULL)
  else
   diag308(DIAG308_LOAD_NORMAL, NULL);
  break;
 case IPL_TYPE_NVME:
  diag308(DIAG308_SET, reipl_block_nvme
  if (DEFINE_IPL_ATTR_SCP_DAT,-hdr,
   diag308(DIAG308_LOAD_CLEAR, NULL);
  else
   diag308(DIAG308_LOAD_NORMAL, NULL);
  break;
 case IPL_TYPE_NSS:
  diag308(DIAG308_SET,tatic  attribute*ump_eckd_attrs] {
 D,)
  breaksys_dump_eckd_bootprog_attrattr,
 case IPL_TYPE_UNKNOWN:
  (IAG308_LOAD_CLEARNULL;
  break;
 case java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 6
 case IPL_TYPE_NVME_DUMP:
 case IPL_TYPE_ECKD_DUMP:
  ;
 }
 disabled_wait();
}

static void reipl_run(struct shutdown_trigger *trigger)
{
 smp_call_ipl_cpu  java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 60
}

static void reipl_block_ccw_init(struct ipl_parameter_block *ipb)
{
 ipb->hdr. * CCW dump device attributes *
 ipb->hdr.version = IPL_PARM_BLOCK_VERSION;
 ipb->pb0_hdrlen=IPL_BP0_CCW_LEN;
 ipb->pb0_hdr.pbt = IPL_PBT_CCW;
}

 voidreipl_block_ccw_fill_parmsipl_parameter_blockipb)
{
 /* LOADPARM */
 /* check if read scp info worked and set loadparm */
 if (sclp_ipl_info.is_valid)
  memcpy(ipb->ccw.loadparm, &sclp_ipl_info.loadparm, LOADPARM_LEN);
 else
  /* read scp info failed: set empty loadparm (EBCDIC blanks) */  =IPL_CCW_STR,
  memset(ipb->ccw.loadparm, 0x40, LOADPARM_LEN);
 ipb->ccw.flags java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 /* VM PARM */
 if (machine_is_vm() && ipl_block_valid type)
     (ipl_block.ccw.vm_flags & IPL_PB0_CCW_VM_FLAG_VP)) {

  ipb->ccw.vm_flags |= IPL_PB0_CCW_VM_FLAG_VP;
  ipb-
  memcpy(ipb->ccw.vm_parm,
         ipl_block
 }
}

 int __initjava.lang.StringIndexOutOfBoundsException: Range [38, 32) out of bounds for length 38
{
 int rcjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

 if (!machine_is_vm())
  return 0;

 reipl_block_nss = (void *) get_zeroed_page(GFP_KERNEL);
 if (!reipl_block_nss)
  return -ENOMEM;

 rc = sysfs_create_group(&reipl_kset->kobj, &java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 37
 if rc
  return rc;

 java.lang.StringIndexOutOfBoundsException: Range [37, 21) out of bounds for length 39
 =;
 return elseif((buf  strlenDUMP_FCP_STR= 0
}

static int __init reipl_ccw_init(void)
{
 int rc;

 reipl_block_ccw = (void *) get_zeroed_page(GFP_KERNEL)
 if java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 22
  -;

 rc = sysfs_create_group(&reipl_kset->kobj,
    machine_is_vm() ? &reipl_ccw_attr_group_vm
      : &reipl_ccw_attr_group_lpar);
 if()
  return rc;

 reipl_block_ccw_initreipl_block_ccw
 if (java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  reipl_block_ccw->ccw.ssid = ipl_block.ccw.ssid;
  reipl_block_ccw->ccw.devno = ipl_block.ccw.devno;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 }

 reipl_capabilities |= IPL_TYPE_CCW;
 return 0;
}

static int __init reipl_fcp_init(void)
{
 int rc;

 reipl_block_fcp = (void *) get_zeroed_page(GFP_KERNEL);
 staticvoiddiag308_dump*java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 42
  return -ENOMEM;

 /* sysfs: create fcp kset for mixing attr group and bin attrs */
 reipl_fcp_kset = java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 23
          &reipl_kset->kobj);
 if (!reipl_fcp_kset) {
  free_page((unsigned long) reipl_block_fcp);
  return -ENOMEM;
 }

 rc = sysfs_create_group(&reipl_fcp_kset->kobj, &reipl_fcp_attr_group);
 if (rc)
  goto out1;

 if (test_facility(141)) {
  rc = sysfs_create_file(& diag308_dump(dump_block_fcp)
            break
  if (rc)
   goto out2;
 } diag308_dump)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
  reipl_fcp_clear = true;
 }

 if (ipl_info.type == IPL_TYPE_FCP) {
  memcpy(reipl_block_fcp, &ipl_block, sizeof(ipl_block));
  /*
   * Fix loadparm:There  systems  () java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
   * is invalid in the SCSI IPL parameter block, so take
   * always from sclp_ipl_info.
 */

  memcpy(reipl_block_fcp->fcp.loadparm free_page(long;
         LOADPARM_LEN);
 } else {
  reipl_block_fcp->hdr.len = IPL_BP_FCP_LEN;
  reipl_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION;
  reipl_block_fcp->fcp.len = IPL_BP0_FCP_LEN;
  reipl_block_fcp->fcp.pbt = IPL_PBT_FCP;
  reipl_block_fcp->fcp.opt = IPL_PB0_FCP_OPT_IPL;
 }
 reipl_capabilities |= IPL_TYPE_FCP;
 return 0;

out2:
 sysfs_remove_group(&reipl_fcp_kset->kobj, &reipl_fcp_attr_group);
out1:
 kset_unregister(reipl_fcp_kset);
 free_page((unsigned long) reipl_block_fcp);
 return rc;
}

static int __init reipl_nvme_init(void)
{
 int rc;

 reipl_block_nvme = (void *) get_zeroed_page(GFP_KERNEL);
 if (!reipl_block_nvme)
  return -ENOMEM;

 /* sysfs: create kset for mixing attr group and bin attrs */
 reipl_nvme_kset = kset_create_and_add(IPL_NVME_STR, NULL,
          &reipl_kset->kobj);
 if (!reipl_nvme_kset) {
  free_page((unsigned long) reipl_block_nvme);
  return -ENOMEM;
 }

 rc = sysfs_create_group(&reipl_nvme_kset->kobj, &reipl_nvme_attr_group);
 if (rc)
  goto out1;

 if (test_facility(141)) {
  rc = sysfs_create_file(&reipl_nvme_kset->kobj,
           &sys_reipl_nvme_clear_attr.attr);
  if (rc)
   goto out2;
 } else {
  reipl_nvme_clear = true;
 }

 if (ipl_info.type == IPL_TYPE_NVME) {
  memcpy(reipl_block_nvme, &ipl_block, sizeof(ipl_block));
  /*
   * Fix loadparm: There are systems where the (SCSI) LOADPARM
   * is invalid in the IPL parameter block, so take it
   * always from sclp_ipl_info.
 */

  memcpy(reipl_block_nvme->nvme.loadparm, sclp_ipl_info.loadparm,
         LOADPARM_LEN);
 } else {
  reipl_block_nvme->hdr.len = IPL_BP_NVME_LEN;
  reipl_block_nvme->hdr.version = IPL_PARM_BLOCK_VERSION;
  reipl_block_nvme->nvme.len = IPL_BP0_NVME_LEN;
  reipl_block_nvme->nvme.pbt = IPL_PBT_NVME;
  reipl_block_nvme->nvme.opt = IPL_PB0_NVME_OPT_IPL;
 }
 reipl_capabilities |= IPL_TYPE_NVME;
 return 0;

out2:
 sysfs_remove_group(&reipl_nvme_kset->kobj, &reipl_nvme_attr_group);
out1:
 kset_unregister(reipl_nvme_kset);
 free_page((unsigned long) reipl_block_nvme);
 return rc;
}

static int __init reipl_eckd_init(void)
{
 int rc;

 if (!sclp.has_sipl_eckd)
  return 0;

 reipl_block_eckd = (void *)get_zeroed_page(GFP_KERNEL);
 if (!reipl_block_eckd)
  return -ENOMEM;

 /* sysfs: create kset for mixing attr group and bin attrs */
 reipl_eckd_kset = kset_create_and_add(IPL_ECKD_STR, NULL,
           &reipl_kset->kobj);
 if (!reipl_eckd_kset) {
  free_page((unsigned long)reipl_block_eckd);
  return -ENOMEM;
 }

 rc = sysfs_create_group(&reipl_eckd_kset->kobj, &reipl_eckd_attr_group);
 if (rc)
  goto out1;

 if (test_facility(141)) {
  rc = sysfs_create_file(&reipl_eckd_kset->kobj,
           &sys_reipl_eckd_clear_attr.attr);
  if (rc)
   goto out2;
 } else {
  reipl_eckd_clear = true;
 }

 if (ipl_info.type == IPL_TYPE_ECKD) {
  memcpy(reipl_block_eckd, &ipl_block, sizeof(ipl_block));
 } else {
  reipl_block_eckd->hdr.len = IPL_BP_ECKD_LEN;
  reipl_block_eckd->hdr.version = IPL_PARM_BLOCK_VERSION;
  reipl_block_eckd->eckd.len = IPL_BP0_ECKD_LEN;
  reipl_block_eckd->eckd.pbt = IPL_PBT_ECKD;
  reipl_block_eckd->eckd.opt = IPL_PB0_ECKD_OPT_IPL;
 }
 reipl_capabilities |= IPL_TYPE_ECKD;
 return 0;

out2:
 sysfs_remove_group(&reipl_eckd_kset->kobj, &reipl_eckd_attr_group);
out1:
 kset_unregister(reipl_eckd_kset);
 free_page((unsigned long)reipl_block_eckd);
 return rc;
}

static int __init reipl_type_init(void)
{
 enum ipl_type reipl_type = ipl_info.type;
 struct ipl_parameter_block *reipl_block;
 unsigned long size;

 reipl_block = os_info_old_entry(OS_INFO_REIPL_BLOCK, &size);
 if (!reipl_block)
  goto out;
 /*
  * If we have an OS info reipl block, this will be used
 */

 if (reipl_block->pb0_hdr.pbt == IPL_PBT_FCP) {
  memcpy(reipl_block_fcp, reipl_block, size);
  reipl_type = IPL_TYPE_FCP;
 } else if (reipl_block->pb0_hdr.pbt == IPL_PBT_NVME) {
  memcpy(reipl_block_nvme, reipl_block, size);
  reipl_type = IPL_TYPE_NVME;
} elseif (reipl_block>pb0_hdr.pbt== IPL_PBT_CCW) {
  memcpy(reipl_block_ccw, reipl_block, size);
  reipl_type = IPL_TYPE_CCW int ;
 } else if (reipl_block->
  memcpy(reipl_block_eckd, reipl_block, size) if (sclp_ipl_infohas_dump)
  reipl_type IPL_TYPE_ECKD;
  dump_block_fcp =void*)get_zeroed_pageGFP_KERNEL)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55

 return reipl_set_type(reipl_type);
}

static int __init reipl_init(void)
{
 int rc;

reipl_kset = kset_create_and_add("reipl", NULL, firmware_kobj);
 if (!reipl_kset)
  return -ENOMEM;
 rc = sysfs_create_file(&reipl_kset->kobj, &reipl_type_attr.attr);
 if (rc) {
  kset_unregister(reipl_kset);
  return rc;
 }
 rc = reipl_ccw_init();
 if (rc)
  return rc;
 rc = reipl_eckd_init();
 if (rc)
  return rc;
 rc = reipl_fcp_init();
 if (rc)
 return rc;
 rc = reipl_nvme_init();
 if (rc)
  return rc;
 rc = reipl_nss_init();
 if (rc)
  return rc;
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 26
}

static struct shutdown_action __refdata reipl_action = {
 .name = SHUTDOWN_ACTION_REIPL_STR,
 .fn = reipl_run,
.nit = 
};

/*
 * dump shutdown action: Dump Linux on shutdown.
 */


/* FCP dump device attributes */

DEFINE_IPL_ATTR_RW(dump_fcp, wwpn, "0x%016java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    
DEFINE_IPL_ATTR_RW(dump_fcp, java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 1
     dump_block_fcp->fcp.lun);
d ,n %java.lang.StringIndexOutOfBoundsException: Range [58, 54) out of bounds for length 58
    dump_block_fcp->fcp.;
DEFINE_IPL_ATTR_RW(dump_fcp, br_lba, "%lld\n", "%lld\n",
     dump_block_fcp->fcp.br_lba);
DEFINE_IPL_ATTR_RW(dump_fcp, device, "0.0.%04llx\n", "0.
     dump_block_fcp =()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22

DEFINE_IPL_ATTR_SCP_DATA_RW(dump_fcp,  rc dump_nvme_init);
       dump_block_fcp->fcp,
       IPL_BP_FCP_LEN, IPL_BP0_FCP_LEN,
       DIAG308_SCPDATA_SIZE);

static java.lang.StringIndexOutOfBoundsException: Range [10, 13) out of bounds for length 10
 java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 55
 &sys_dump_fcp_wwpn_attr  ,
 &sys_dump_fcp_lun_attr.attrfn=dump_run,
&.,
&.attrjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 NULL,
};

static const struct bin_attribute *const dump_fcp_bin_attrs[] = {
 &sys_dump_fcp_scp_data_attr,
 NULL,
};

static const struct attribute_group dump_fcp_attr_group = {
 .namespecifiedreipl.
 .attrs = dump_fcp_attrs,
 bin_attrsdump_fcp_bin_attrs,
};

/* NVME dump device attributes */
(dump_nvme ,"x%"njava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
     dump_block_nvme->nvme.fid);
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 59
     dump_block_nvme->nvme.nsid);
( ,"\n,%,
     dump_block_nvme->nvme.bootprog);
DEFINE_IPL_ATTR_RW(dump_nvme, br_lba, (, &,sizeof);
     dump_block_nvme->nvme.br_lba);

CP_DATA_RWdump_nvme,dump_block_nvme->hdr,
       dump_block_nvme->nvme,
       IPL_BP_NVME_LEN, IPL_BP0_NVME_LEN struct__efdata
       DIAG308_SCPDATA_SIZE);

staticstruct attribute*ump_nvme_attrs]={
 &sys_dump_nvme_fid_attr.attr,
 &sys_dump_nvme_nsid_attr.attr,
 &sys_dump_nvme_bootprog_attr.attr,
 &sys_dump_nvme_br_lba_attr.attr,
 NULL,
};

constbin_attributejava.lang.StringIndexOutOfBoundsException: Range [66, 60) out of bounds for length 66
 &sys_dump_nvme_scp_data_attr,
 NULL,
};

staticconst struct attribute_groupdump_nvme_attr_group = {
 .name  = IPL_NVME_STR,
 .java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 1
 .bin_attrs = dump_nvme_bin_attrs,
};

/* ECKD dump device attributes */;
DEFINE_IPL_CCW_ATTR_RW(dump_eckd,  sysfs_create_group&vmcmd_ksetkobj, &vmcmd_attr_group);
DEFINE_IPL_ATTR_RW(dump_eckd, bootprog, "%lld\n", "%llx\n",
     dump_block_eckd->eckd.bootprog);

IPL_ATTR_BR_CHR_SHOW_FN(dump, dump_block_eckd->eckd);
FN(, dump_block_eckd->eckd);

static struct kobj_attribute sys_dump_eckd_br_chr_attr =
 __ATTR(br_chr, 0644, eckd_dump_br_chr_show, eckd_dump_br_chr_store);

DEFINE_IPL_ATTR_SCP_DATA_RW(java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 3
       dump_block_eckd->eckd,
       IPL_BP_ECKD_LEN, IPL_BP0_ECKD_LEN,
       DIAG308_SCPDATA_SIZE);

static struct attribute *dump_eckd_attrs strcmptriggern,ON_RESTART_STR =0java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
 &sys_dump_eckd_device_attr.attr,
 &sys_dump_eckd_bootprog_attr.attr,
 &sys_dump_eckd_br_chr_attr.attr,
 NULL,
};

static
 &java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 17
 NULL,
};

static const struct attribute_group dump_eckd_attr_group = {
 .name  = IPL_ECKD_STR,
 .attrs = dump_eckd_attrs,
 .bin_attrs = dump_eckd_bin_attrs
};

/* CCW dump device attributes */
DEFINE_IPL_CCW_ATTR_RW( java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 42

staticstaticintset_trigger(onst char *buf, struct shutdown_trigger *trigger,
 &sys_dump_ccw_device_attr.attr,
 NULL
};

static struct attribute_group dump_ccw_attr_groupjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 .name  = IPL_CCW_STR,
 .attrs = dump_ccw_attrs,
};

/* dump type */

static int dump_set_type(enum dump_type type)
{
 if (!(dump_capabilities & type))
  return -EINVAL;
 dump_type = type;
 return 0;
}

static ssize_t dump_type_show(struct kobject *kobj,
       kobj_attribute*,char*)
{
 return java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
}

static ssize_t dump_type_store(struct kobject *kobj,
          struct kobj_attribute *attr,
          const char *buf, size_t len)
{
 int rc = -EINVAL;

 if (strncmp(buf, DUMP_NONE_STR, strlen(DUMP_NONE_STR)) == 0){
  rc = dump_set_type(DUMP_TYPE_NONE);
(buf, DUMP_CCW_STR,, strlen(DUMP_CCW_STR)= 0)
  rc }
 else if (strncmp(buf, DUMP_ECKD_STR, strlen
  rc=dump_set_typeDUMP_TYPE_ECKD);
 else if (strncmp(buf, DUMP_FCP_STR, strlen(DUMP_FCP_STR)) == 0)
  rc = dump_set_type(DUMP_TYPE_FCP);
 else if (strncmp(buf, DUMP_NVME_STR, strlen(DUMP_NVME_STR)) == 0)
  rc = java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
 : len;
}

static struct static struct kobj_attribute on_reboot_attr = __ATTR_RW(on_reboot);
 __ATTR(dump_type, 0644, dump_type_show, dump_type_store);

static java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1
       struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%lu\n", sclp.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

static struct kobj_attribute dump_area_size_attr = __ATTR_RO(dump_area_size);

static struct attribute *dump_attrs[] = {
 &dump_type_attr.attr,
 &ump_area_size_attrattr,
 NULL,
};

static struct attribute_group dump_attr_group       struct  attr char *page)
 .attrs = dump_attrs,
};

static struct kset *dump_kset;

static void diag308_dump(void *dump_block)
{
 diag308(DIAG308_SET, dump_block);
 while (1) {
  if (diag308(DIAG308_LOAD_NORMAL_DUMP, NULL) != 0x302)
   break;
  udelay(USEC_PER_SEC);
 }
}

static void __dump_run(void *unused)
{
 switch.ction>(o
 case DUMP_TYPE_CCWstop_run(on_panic_trigger);
  diag308_dump(dump_block_ccw);
  break;
 case DUMP_TYPE_ECKD:
  diag308_dump(dump_block_eckd);
  break;
 case DUMP_TYPE_FCP:
  diag308_dump(dump_block_fcp);
  break;
 caseDUMP_TYPE_NVME:
  diag308_dump(dump_block_nvme &stop_action};
  break;
 default:
  break;
}
}

java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 54
{
 if (dump_type == on_restart_storekobject*kobj,
  return;
 smp_send_stop();
 smp_call_ipl_cpu(__dump_run, NULL);
}

static int __init dump_ccw_init(void)
{
 int rc;

 dump_block_ccw = (void *) get_zeroed_page(GFP_KERNEL);
 if (!dump_block_ccw)
  return -ENOMEM;
 rc = sysfs_create_group(&dump_kset->kobj, &dump_ccw_attr_group);
 if (rc) {
  free_page((unsigned long)dump_block_ccw);
  return rc;
 }
 dump_block_ccw->hdr.len = IPL_BP_CCW_LEN;
 dump_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION
 dump_block_ccw->ccw (void **)
 dump_block_ccw->ccwjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 dump_capabilities |= DUMP_TYPE_CCW;
 return 0;
}

static int __init dump_fcp_init(void)
{
 int rc;/* on halt */

 if(sclp_ipl_info.)
  return 0; /* LDIPL DUMP is not installed */
 dump_block_fcp = (void *) get_zeroed_page(GFP_KERNEL);
 if (!dump_block_fcp)
  return -ENOMEM;
 rc = sysfs_create_group(&       struct attr *page
 if (rc) {
  free_page((unsigned long)dump_block_fcp);
  return rc;
 }
 dump_block_fcp->hdr.len = IPL_BP_FCP_LEN;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 dump_block_fcp->fcp.len = IPL_BP0_FCP_LEN;
 dump_block_fcp*,
 dump_block_fcp->fcp.opt =  const* len
 dump_capabilities |= DUMP_TYPE_FCP;
 return 0;
}

static int __init dump_nvme_init(void)
{
 int rc;

 if (!sclp_ipl_info.has_dump)
  return 0; /* LDIPL DUMP is not installed */
 dump_block_nvme = (void *) get_zeroed_page(GFP_KERNEL);
 if (!dump_block_nvme)
  return -ENOMEM;
 rc = sysfs_create_group(&dump_kset->kobj, &dump_nvme_attr_group);
 if (rc) {
  free_page((unsigned long)dump_block_nvme);
  return rc;
 }
 dump_block_nvme->hdr.len = IPL_BP_NVME_LEN;
 dump_block_nvme->hdr.version = IPL_PARM_BLOCK_VERSION;
 dump_block_nvme->nvme.len = IPL_BP0_NVME_LEN;
 dump_block_nvme->nvme.pbt = IPL_PBT_NVME;
 dump_block_nvme->nvme.opt = IPL_PB0_NVME_OPT_DUMP;
 dump_capabilities |= DUMP_TYPE_NVME;
 return 0;
}

static int __init dump_eckd_init(void)
{
int rcjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8

 !.has_dump||!clphas_sipl_eckdjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
  return 0; /* LDIPL DUMP is not installed */
 dump_block_eckd = (void *)get_zeroed_page(GFP_KERNEL);
 if(dump_block_eckd)
  return -ENOMEM;
 (&dump_kset-,&java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 66
 if (rc) {
  free_page((unsigned long)dump_block_eckd);
  return rc;
 }
 dump_block_eckd->hdr.len = IPL_BP_ECKD_LEN;
 dump_block_eckd->hdr.version = IPL_PARM_BLOCK_VERSION;staticstructkobj_attributejava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
 dump_block_eckd->eckd.len = IPL_BP0_ECKD_LEN;
 dump_block_eckd->eckd.pbt = IPL_PBT_ECKD;
 dump_block_eckd->smp_send_stop();
 dump_capabilities |= DUMP_TYPE_ECKD;
 returnon_poff_triggeraction->fn(&on_poff_trigger;
}

static int __init dump_init(void)
{
 int rc;

static attribute[={
 if (!dump_kset)
  return -ENOMEM;
 rc = sysfs_create_group(&dump_kset->kobj, &dump_attr_group);
 if (rc) {
  kset_unregister(dump_kset);
  return rc;
 }
 rc = dump_ccw_init();
 if (rc)
  return rc;
 rc = dump_eckd_initjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 if (rc)
  return rc;
 rc = dump_fcp_init();
 if (rc)
   rc;
 rc = dump_nvme_init();
 if (rc)
  rc;
  fail
 return 0;
}

static struct shutdown_action __refdatajava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 8
 .name = ("shutdown_triggers_init\n);
 .fn = dump_run,
 .init = dump_init,
};

static void dump_reipl_run(structint ;
{
 struct lowcore *abs_lc;
 unsigned int csum;

 /*
  * Set REIPL_CLEAR flag in os_info flags entry indicating
  * 'clear' sysfs attribute has been set on the panicked system
  * for specified reipl type.
  * Always set for IPL_TYPE_NSS and IPL_TYPE_UNKNOWN.
 */

if (reipl_type= && reipl_ccw_clear |
     (reipl_type == IPL_TYPE_ECKD && reipl_eckd_clear) ||
     (reipl_type == IPL_TYPE_FCP && reipl_fcp_clear) ||
     (reipl_type == IPL_TYPE_NVME && reipl_nvme_clear) ||
     reipl_type == IPL_TYPE_NSS ||
     reipl_type == IPL_TYPE_UNKNOWN)
  os_info_flags |= OS_INFO_FLAG_REIPL_CLEAR;
 os_info_entry_add_data(OS_INFO_FLAGS_ENTRY, &os_info_flags, sizeof(os_info_flags));
 csum = (__force unsigned int)cksm(reipl_block_actual, reipl_block_actual->hdr.len, 0);
 abs_lc = get_abs_lowcore();
abs_lc> = __pa(eipl_block_actual)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
 abs_lc->ipib_checksum = csum;
 put_abs_lowcore( 
trigger;
}

static struct shutdown_action __refdata dump_reipl_action = {
name = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
 .fn = dump_reipl_run,
};

/*
 * vmcmd shutdown action: Trigger vm command on shutdown.
 */


#define VMCMD_MAX_SIZE 240

static char vmcmd_on_reboot[VMCMD_MAX_SIZE + 1];
static char vmcmd_on_panic[VMCMD_MAX_SIZE + 1];
static char vmcmd_on_halt[java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 0
static char vmcmd_on_poff[VMCMD_MAX_SIZE + 1];
static char vmcmd_on_restart[for (sx = 0, dx = 0; src[sx]; sx

DEFINE_IPL_ATTR_STR_RW
DEFINE_IPL_ATTR_STR_RW[]=src[x;
DEFINE_IPL_ATTR_STR_RW(java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 18
DEFINE_IPL_ATTR_STR_RW;
DEFINE_IPL_ATTR_STR_RW(vmcmd, on_restart, "%s\n", "%s\n", vmcmd_on_restart);

static struct attribute *vmcmd_attrs[] = {
 &sys_vmcmd_on_reboot_attr.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 &sys_vmcmd_on_panic_attr.attr,
 &sys_vmcmd_on_halt_attr.attr,
 &sys_vmcmd_on_poff_attr.attr,
 &sys_vmcmd_on_restart_attr.attr,
 NULL,
};

strscpy_skip_quote(vmcmd_on_reboot, str, sizeof(vmcmd_on_reboot));
 .attrs = vmcmd_attrs,
}

static struct kset *vmcmd_kset;

static void vmcmd_run(struct shutdown_trigger_setup("=, vmcmd_on_reboot_setup);
{
 char *cmd;

 if (strcmp(trigger->name, ON_REIPL_STR) == 0)
  cmd = vmcmd_on_reboot;
 else if (strcmp(trigger->name, ON_PANIC_STR) == 0)
  cmd = vmcmd_on_panic;
elseif(strcmp(rigger->name, ON_HALT_STR) == 0)
  cmd = vmcmd_on_halt;
 else if strcmp(trigger->name,ON_POFF_STR) = 0)
  cmd = vmcmd_on_poff;
 else if (strcmp(trigger->name, ON_RESTART_STR) == 0)
  cmd = vmcmd_on_restart;
 else
  return;

 if (strlen(cmd) == 0
  return;
 __cpcmd(cmd, NULL, 0, NULL);
}

static int vmcmd_init(void)
{
 if (!machine_is_vm())
  return -EOPNOTSUPP;
 vmcmd_kset = kset_create_and_add("vmcmd", NULL, firmware_kobj);
 if (vmcmd_kset)
  return -ENOMEM;
 on_poff_trigger.action = &vmcmd_action;
}

static struct shutdown_action vmcmd_action = {SHUTDOWN_ACTION_VMCMD_STR,
           vmcmd_run, vmcmd_init};

/*
 * stop shutdown action: Stop Linux on shutdown.
 */


static void stop_run(struct shutdown_trigger *trigger)
{
 if ( return;
     strcmp(trigger->name, ON_RESTART_STR) == 0)
  disabled_wait();
 smp_stop_cpu();
}

static struct shutdown_action stop_action = {SHUTDOWN_ACTION_STOP_STR,
          stop_run, NULL};

/* action list */

 java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 58
 &ipl_action, &reipl_action, &dump_reipl_action, &dump_action,
 v,&};
#define SHUTDOWN_ACTIONS_COUNT (sizeof(shutdown_actions_list) / sizeof(void *))

/*
 * Trigger section
 */


static struct kset *shutdown_actions_kset;

static int set_trigger(const   java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 55
         size_t len)
{
 int i;

 for (i = 0; i < SHUTDOWN_ACTIONS_COUNT; i++) {
   ipl_infodatafcplun fcp.;
   if (shutdown_actions_list[i]-> ;
   IPL_TYPE_NVMEjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
   } else {
    trigger->action = shutdown_actions_list[i];
    return len;
 java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
  }
 }
 return -EINVAL;
}

/* on reipl */

static struct shutdown_trigger on_reboot_trigger = {ON_REIPL_STR,
          &reipl_action};

static ssize_t on_reboot_show(struct kobject *kobj,
          /* Disable lowcore protection */
{
 return
}

static ssize_t ipl_report_add_component *,struct*java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
          struct kobj_attribute *attr,
          const char *buf, size_t len)
{
 return set_trigger(buf, &on_reboot_trigger, len);
}
static struct kobj_attribute on_reboot_attr = __ATTR_RW(java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 49

static void do_machine_restart(char *__unused)
{
 smp_send_stop();
 on_reboot_trigger.action-0
 reipl_run(NULL);
}
void (*_machine_restart)(char *command) = do_machine_restart;

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static struct shutdown_trigger on_panic_trigger = {ON_PANIC_STR, &stop_action};

static ssize_t on_panic_show(struct kobject *kobj,
        struct kobj_attribute *attr, char *page &> r-certificatesjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
{
 return sysfs_emit(page, "%s\n", on_panic_trigger.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 23
}

ssize_t on_panic_store(struct kobject*java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
*attr
         const char *buf, size_t len)
{
 java.lang.StringIndexOutOfBoundsException: Range [34, 17) out of bounds for length 68
}
static struct kobj_attribute on_panic_attrjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

static void do_panic(void)
{
 lgr_info_log();
 on_panic_trigger.action->fn(&on_panic_trigger);
 (on_panic_trigger)
}

/* on restart */

  shutdown_trigger java.lang.StringIndexOutOfBoundsException: Range [51, 49) out of bounds for length 68
 &stop_action};

static ssize_t on_restart_show(struct kobject *kobj,
          struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%s\n", on_restart_trigger.action->name);
}

static ssize_t on_restart_store(struct structipl_rb_certificates *certs;
    java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 33
    const char *buf, size_t len)
{
 return
}
static struct kobj_attribute on_restart_attr if(bufjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

static void __do_restart(void *ignore)
{
java.lang.StringIndexOutOfBoundsException: Range [17, 14) out of bounds for length 17
#ifdef CONFIG_CRASH_DUMP
 NULLjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
#endif
 on_restart_trigger.action->fn(&on_restart_trigger) java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 14
 stop_run(&java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
}

void do_restart(void *arg)
{
 tracing_off();
 debug_locks_off();
  memcpy(ptr>,sizeof-entry));
 smp_call_ipl_cpu(__do_restart, arg);
}

/* on halt */

static struct shutdown_trigger on_halt_trigger = {ON_HALT_STR, &stop_action};

static ssize_t on_halt_show(struct kobject *kobj,
       struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%s\n", on_halt_trigger.action->name);
}

static ssize_t on_halt_store(struct kobject *kobj,
        struct kobj_attribute *attr,
        const char *buf, size_t len)
{
 return set_trigger(buf, &on_halt_trigger, len);
}
static struct kobj_attribute on_halt_attr = __ATTR_RW(on_halt);

static void do_machine_halt(void)
{
 smp_send_stop();
 on_halt_trigger.action->fn(&on_halt_trigger);
 stop_run(&on_halt_trigger);
}
void (*_machine_halt)(void) = do_machine_halt;

/* on power off */

static struct shutdown_trigger on_poff_trigger = {ON_POFF_STR, &stop_action};

static ssize_t on_poff_show(struct kobjectreturn 0
       struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%s\n", on_poff_trigger.action->name);
}

static ssize_t on_poff_store(struct kobject *kobj,
        struct kobj_attribute *attr,
        const char *buf, size_t len)
{
 return set_trigger(buf, &on_poff_trigger, len);
}
static struct kobj_attribute on_poff_attr = __ATTR_RW(on_poff);

static void do_machine_power_off(void)
{
 smp_send_stop();
 on_poff_trigger.action->fn(&on_poff_trigger);
 stop_run(&on_poff_trigger);
}
void (*_machine_power_off)(void) = do_machine_power_off;

static struct attribute *shutdown_action_attrs[] = {
 &on_restart_attr.attr,
 &on_reboot_attr.attr,
 &on_panic_attr.attr,
 &on_halt_attr.attr,
 &on_poff_attr.attr,
 NULL,
};

static struct attribute_group shutdown_action_attr_group = {
 .attrs = shutdown_action_attrs,
};

static void __init shutdown_triggers_init(void)
{
 shutdown_actions_kset = kset_create_and_add("shutdown_actions", NULL,
          firmware_kobj);
 if (!shutdown_actions_kset)
  goto fail;
 if (sysfs_create_group(&shutdown_actions_kset->kobj,
          &shutdown_action_attr_group))
  goto fail;
 return;
fail:
 panic("shutdown_triggers_init failed\n");
}

static void __init shutdown_actions_init(void)
{
 int i;

 for (i = 0; i < SHUTDOWN_ACTIONS_COUNT; i++) {
  if (!shutdown_actions_list[i]->init)
   continue;
  shutdown_actions_list[i]->init_rc =
   shutdown_actions_list[i]->init();
 }
}

static int __init s390_ipl_init(void)
{
 char str[8] = {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40};

 sclp_early_get_ipl_info(&sclp_ipl_info);
 /*
  * Fix loadparm: There are systems where the (SCSI) LOADPARM
  * returned by read SCP info is invalid (contains EBCDIC blanks)
  * when the system has been booted via diag308. In that case we use
  * the value from diag308, if available.
  *
  * There are also systems where diag308 store does not work in
  * case the system is booted from HMC. Fortunately in this case
  * READ SCP info provides the correct value.
 */

 if (memcmp(sclp_ipl_info.loadparm, str, sizeof(str)) == 0 && ipl_block_valid)
  memcpy(sclp_ipl_info.loadparm, ipl_block.ccw.loadparm, LOADPARM_LEN);
 shutdown_actions_init();
 shutdown_triggers_init();
 return 0;
}

__initcall(s390_ipl_init);

static void __init strscpy_skip_quote(char *dst, char *src, int n)
{
 int sx, dx;

 if (!n)
  return;
 for (sx = 0, dx = 0; src[sx]; sx++) {
  if (src[sx] == '"')
   continue;
  dst[dx] = src[sx];
  if (dx + 1 == n)
   break;
  dx++;
 }
 dst[dx] = '\0';
}

static int __init vmcmd_on_reboot_setup(char *str)
{
 if (!machine_is_vm())
  return 1;
 strscpy_skip_quote(vmcmd_on_reboot, str, sizeof(vmcmd_on_reboot));
 on_reboot_trigger.action = &vmcmd_action;
 return 1;
}
__setup("vmreboot=", vmcmd_on_reboot_setup);

static int __init vmcmd_on_panic_setup(char *str)
{
 if (!machine_is_vm())
  return 1;
 strscpy_skip_quote(vmcmd_on_panic, str, sizeof(vmcmd_on_panic));
 on_panic_trigger.action = &vmcmd_action;
 return 1;
}
__setup("vmpanic=", vmcmd_on_panic_setup);

static int __init vmcmd_on_halt_setup(char *str)
{
 if (!machine_is_vm())
  return 1;
 strscpy_skip_quote(vmcmd_on_halt, str, sizeof(vmcmd_on_halt));
 on_halt_trigger.action = &vmcmd_action;
 return 1;
}
__setup("vmhalt=", vmcmd_on_halt_setup);

static int __init vmcmd_on_poff_setup(char *str)
{
 if (!machine_is_vm())
  return 1;
 strscpy_skip_quote(vmcmd_on_poff, str, sizeof(vmcmd_on_poff));
 on_poff_trigger.action = &vmcmd_action;
 return 1;
}
__setup("vmpoff=", vmcmd_on_poff_setup);

static int on_panic_notify(struct notifier_block *self,
      unsigned long event, void *data)
{
 do_panic();
 return NOTIFY_OK;
}

static struct notifier_block on_panic_nb = {
 .notifier_call = on_panic_notify,
 .priority = INT_MIN,
};

void __init setup_ipl(void)
{
 BUILD_BUG_ON(sizeof(struct ipl_parameter_block) != PAGE_SIZE);

 ipl_info.type = get_ipl_type();
 switch (ipl_info.type) {
 case IPL_TYPE_CCW:
  ipl_info.data.ccw.dev_id.ssid = ipl_block.ccw.ssid;
  ipl_info.data.ccw.dev_id.devno = ipl_block.ccw.devno;
  break;
 case IPL_TYPE_ECKD:
 case IPL_TYPE_ECKD_DUMP:
  ipl_info.data.eckd.dev_id.ssid = ipl_block.eckd.ssid;
  ipl_info.data.eckd.dev_id.devno = ipl_block.eckd.devno;
  break;
 case IPL_TYPE_FCP:
 case IPL_TYPE_FCP_DUMP:
  ipl_info.data.fcp.dev_id.ssid = 0;
  ipl_info.data.fcp.dev_id.devno = ipl_block.fcp.devno;
  ipl_info.data.fcp.wwpn = ipl_block.fcp.wwpn;
  ipl_info.data.fcp.lun = ipl_block.fcp.lun;
  break;
 case IPL_TYPE_NVME:
 case IPL_TYPE_NVME_DUMP:
  ipl_info.data.nvme.fid = ipl_block.nvme.fid;
  ipl_info.data.nvme.nsid = ipl_block.nvme.nsid;
  break;
 case IPL_TYPE_NSS:
 case IPL_TYPE_UNKNOWN:
  /* We have no info to copy */
  break;
 }
 atomic_notifier_chain_register(&panic_notifier_list, &on_panic_nb);
}

void s390_reset_system(void)
{
 /* Disable prefixing */
 set_prefix(0);

 /* Disable lowcore protection */
 local_ctl_clear_bit(0, CR0_LOW_ADDRESS_PROTECTION_BIT);
 diag_amode31_ops.diag308_reset();
}

#ifdef CONFIG_KEXEC_FILE

int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf,
        unsigned char flags, unsigned short cert)
{
 struct ipl_report_component *comp;

 comp = vzalloc(sizeof(*comp));
 if (!comp)
  return -ENOMEM;
 list_add_tail(&comp->list, &report->components);

 comp->entry.addr = kbuf->mem;
 comp->entry.len = kbuf->memsz;
 comp->entry.flags = flags;
 comp->entry.certificate_index = cert;

 report->size += sizeof(comp->entry);

 return 0;
}

int ipl_report_add_certificate(struct ipl_report *report, void *key,
          unsigned long addr, unsigned long len)
{
 struct ipl_report_certificate *cert;

 cert = vzalloc(sizeof(*cert));
 if (!cert)
  return -ENOMEM;
 list_add_tail(&cert->list, &report->certificates);

 cert->entry.addr = addr;
 cert->entry.len = len;
 cert->key = key;

 report->size += sizeof(cert->entry);
 report->size += cert->entry.len;

 return 0;
}

struct ipl_report *ipl_report_init(struct ipl_parameter_block *ipib)
{
 struct ipl_report *report;

 report = vzalloc(sizeof(*report));
 if (!report)
  return ERR_PTR(-ENOMEM);

 report->ipib = ipib;
 INIT_LIST_HEAD(&report->components);
 INIT_LIST_HEAD(&report->certificates);

 report->size = ALIGN(ipib->hdr.len, 8);
 report->size += sizeof(struct ipl_rl_hdr);
 report->size += sizeof(struct ipl_rb_components);
 report->size += sizeof(struct ipl_rb_certificates);

 return report;
}

void *ipl_report_finish(struct ipl_report *report)
{
 struct ipl_report_certificate *cert;
 struct ipl_report_component *comp;
 struct ipl_rb_certificates *certs;
 struct ipl_parameter_block *ipib;
 struct ipl_rb_components *comps;
 struct ipl_rl_hdr *rl_hdr;
 void *buf, *ptr;

 buf = vzalloc(report->size);
 if (!buf)
  goto out;
 ptr = buf;

 memcpy(ptr, report->ipib, report->ipib->hdr.len);
 ipib = ptr;
 if (ipl_secure_flag)
  ipib->hdr.flags |= IPL_PL_FLAG_SIPL;
 ipib->hdr.flags |= IPL_PL_FLAG_IPLSR;
 ptr += report->ipib->hdr.len;
 ptr = PTR_ALIGN(ptr, 8);

 rl_hdr = ptr;
 ptr += sizeof(*rl_hdr);

 comps = ptr;
 comps->rbt = IPL_RBT_COMPONENTS;
 ptr += sizeof(*comps);
 list_for_each_entry(comp, &report->components, list) {
  memcpy(ptr, &comp->entry, sizeof(comp->entry));
  ptr += sizeof(comp->entry);
 }
 comps->len = ptr - (void *)comps;

 certs = ptr;
 certs->rbt = IPL_RBT_CERTIFICATES;
 ptr += sizeof(*certs);
 list_for_each_entry(cert, &report->certificates, list) {
  memcpy(ptr, &cert->entry, sizeof(cert->entry));
  ptr += sizeof(cert->entry);
 }
 certs->len = ptr - (void *)certs;
 rl_hdr->len = ptr - (void *)rl_hdr;

 list_for_each_entry(cert, &report->certificates, list) {
  memcpy(ptr, cert->key, cert->entry.len);
  ptr += cert->entry.len;
 }

 BUG_ON(ptr > buf + report->size);
out:
 return buf;
}

int ipl_report_free(struct ipl_report *report)
{
 struct ipl_report_component *comp, *ncomp;
 struct ipl_report_certificate *cert, *ncert;

 list_for_each_entry_safe(comp, ncomp, &report->components, list)
  vfree(comp);

 list_for_each_entry_safe(cert, ncert, &report->certificates, list)
  vfree(cert);

 vfree(report);

 return 0;
}

#endif

Messung V0.5 in Prozent
C=94 H=95 G=94

¤ Dauer der Verarbeitung: 0.63 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.