Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/security/nss/cmd/libpkix/pkix/top/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 9 kB image not shown  

Quelle  ipl.c   Sprache: C

 

// SPDX-License-Identifier: GPL-2.0
/*
 *    ipl/reipl/dump support for Linux on s390.
 *
 *    Copyright IBM Corp. 2005, 2012
 *    Author(s): Michael Holzheu <holzheu@de.ibm.com>
 *   Volker Sameske <sameske@de.ibm.com>
 */


#include <linux/types.h>
#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>
#include <linux/fs.h>
#include <linux/gfp.h>
#include <linux/crash_dump.h>
#include <linux/debug_locks.h>
#include <linux/vmalloc.h>
#include <asm/asm-extable.h>
#include <asm/machine.h>
#include <asm/diag.h>
#include <asm/ipl.h>
#include <asm/smp.h>
#include <asm/setup.h>
#include <asm/cpcmd.h>
#include <asm/ebcdic.h>
#include <asm/sclp.h>
#include <asm/checksum.h>
#include <asm/debug.h>
#include <asm/abs_lowcore.h>
#include <asm/os_info.h>
#include <asm/sections.h>
#include <asm/boot_data.h>
#include "entry.h"

#define IPL_PARM_BLOCK_VERSION 0

#define IPL_UNKNOWN_STR  "unknown"
#define IPL_CCW_STR  "ccw"
#define IPL_ECKD_STR  "eckd"
#define IPL_ECKD_DUMP_STR "eckd_dump"
#define IPL_FCP_STR  "fcp"
#define IPL_FCP_DUMP_STR "fcp_dump"
#define IPL_NVME_STR  "nvme"
#define IPL_NVME_DUMP_STR "nvme_dump"
#define IPL_NSS_STR  "nss"

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

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

#define ON_PANIC_STR  "on_panic"
#define ON_HALT_STR  "on_halt"
#define ON_POFF_STR  "on_poff"
#define ON_REIPL_STR  "on_reboot"
#define ON_RESTART_STR  "on_restart"

struct shutdown_action;
struct shutdown_trigger {
 char *name;
 struct shutdown_action *action;
};

/*
 * The following shutdown action types are supported:
 */

#define SHUTDOWN_ACTION_IPL_STR  "ipl"
#define SHUTDOWN_ACTION_REIPL_STR "reipl"
#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 shutdown_trigger *trigger);
 int (*init) (void);
 int init_rc;
};

static char *ipl_type_str(enum ipl_type type)
{
 switch (type) {
 case IPL_TYPE_CCW:
  return IPL_CCW_STR;
 case IPL_TYPE_ECKD:
  return IPL_ECKD_STR;
 case IPL_TYPE_ECKD_DUMP:
  return IPL_ECKD_DUMP_STR;
 case IPL_TYPE_FCP:
  return IPL_FCP_STR;
 case IPL_TYPE_FCP_DUMP:
  return IPL_FCP_DUMP_STR;
 case IPL_TYPE_NSS:
  return IPL_NSS_STR;
 case IPL_TYPE_NVME:
  return IPL_NVME_STR;
 case IPL_TYPE_NVME_DUMP:
  return IPL_NVME_DUMP_STR;
 case IPL_TYPE_UNKNOWN:
 default:
  return IPL_UNKNOWN_STR;
 }
}

enum dump_type {
 DUMP_TYPE_NONE = 1,
 DUMP_TYPE_CCW = 2,
 DUMP_TYPE_FCP = 4,
 DUMP_TYPE_NVME = 8,
 DUMP_TYPE_ECKD = 16,
};

static char *dump_type_str(enum dump_type type)
{
 switch (type) {
 case DUMP_TYPE_NONE:
  return DUMP_NONE_STR;
 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 __bootdata_preserved(ipl_block_valid);
struct ipl_parameter_block __bootdata_preserved(ipl_block);
int __bootdata_preserved(ipl_secure_flag);

unsigned long __bootdata_preserved(ipl_cert_list_addr);
unsigned long __bootdata_preserved(ipl_cert_list_size);

unsigned long __bootdata(early_ipl_comp_list_addr);
unsigned long __bootdata(early_ipl_comp_list_size);

static int reipl_capabilities = IPL_TYPE_UNKNOWN;

static enum ipl_type reipl_type = IPL_TYPE_UNKNOWN;
static struct ipl_parameter_block *reipl_block_fcp;
static struct ipl_parameter_block *reipl_block_nvme;
static struct ipl_parameter_block *reipl_block_ccw;
static struct ipl_parameter_block *reipl_block_eckd;
static struct ipl_parameter_block *reipl_block_nss;
static struct ipl_parameter_block *reipl_block_actual;

static int dump_capabilities = DUMP_TYPE_NONE;
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 struct ipl_parameter_block *dump_block_ccw;
static struct ipl_parameter_block *dump_block_eckd;

static struct sclp_ipl_info sclp_ipl_info;

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 addr)
{
 union register_pair r1;

 r1.even = addr;
 r1.odd = 0;
 asm_inline volatile(
  " diag %[r1],%[subcode],0x308\n"
  "0: nopr %%r7\n"
  EX_TABLE(0b,0b)
  : [r1] "+&d" (r1.pair)
  : [subcode] "d" (subcode)
  : "cc", "memory");
 return r1.odd;
}

int diag308(unsigned long subcode, void *addr)
{
 diag_stat_inc(DIAG_STAT_X308);
 return __diag308(subcode, addr ? virt_to_phys(addr) : 0);
}
EXPORT_SYMBOL_GPL(diag308);

/* SYSFS */

#define IPL_ATTR_SHOW_FN(_prefix, _name, _format, args...)  \
static ssize_t sys_##_prefix##_##_name##_show(struct kobject *kobj, \
  struct kobj_attribute *attr,    \
  char *page)      \
{         \
 return sysfs_emit(page, _format, ##args);   \
}

#define IPL_ATTR_CCW_STORE_FN(_prefix, _name, _ipl_blk)   \
static ssize_t sys_##_prefix##_##_name##_store(struct kobject *kobj, \
  struct kobj_attribute *attr,    \
  const char *buf, size_t len)    \
{         \
 unsigned long long ssid, devno;     \
         \
 if (sscanf(buf, "0.%llx.%llx\n", &ssid, &devno) != 2)  \
  return -EINVAL;      \
         \
 if (ssid > __MAX_SSID || devno > __MAX_SUBCHANNEL)  \
  return -EINVAL;      \
         \
 _ipl_blk.ssid = ssid;      \
 _ipl_blk.devno = devno;      \
 return len;       \
}

#define DEFINE_IPL_CCW_ATTR_RW(_prefix, _name, _ipl_blk)  \
IPL_ATTR_SHOW_FN(_prefix, _name, "0.%x.%04x\n",    \
   _ipl_blk.ssid, _ipl_blk.devno);   \
IPL_ATTR_CCW_STORE_FN(_prefix, _name, _ipl_blk);   \
static struct kobj_attribute sys_##_prefix##_##_name##_attr =  \
 __ATTR(_name, 0644,      \
        sys_##_prefix##_##_name##_show,    \
        sys_##_prefix##_##_name##_store)    \

#define DEFINE_IPL_ATTR_RO(_prefix, _name, _format, _value)  \
IPL_ATTR_SHOW_FN(_prefix, _name, _format, _value)   \
static struct kobj_attribute sys_##_prefix##_##_name##_attr =  \
 __ATTR(_name, 0444, sys_##_prefix##_##_name##_show, NULL)

#define DEFINE_IPL_ATTR_RW(_prefix, _name, _fmt_out, _fmt_in, _value) \
IPL_ATTR_SHOW_FN(_prefix, _name, _fmt_out, (unsigned long long) _value) \
static ssize_t sys_##_prefix##_##_name##_store(struct kobject *kobj, \
  struct kobj_attribute *attr,    \
  const char *buf, size_t len)    \
{         \
 unsigned long long value;     \
 if (sscanf(buf, _fmt_in, &value) != 1)    \
  return -EINVAL;      \
 _value = value;       \
 return len;       \
}         \
static struct kobj_attribute sys_##_prefix##_##_name##_attr =  \
 __ATTR(_name, 0644,      \
   sys_##_prefix##_##_name##_show,   \
   sys_##_prefix##_##_name##_store)

#define DEFINE_IPL_ATTR_STR_RW(_prefix, _name, _fmt_out, _fmt_in, _value)\
IPL_ATTR_SHOW_FN(_prefix, _name, _fmt_out, _value)   \
static ssize_t sys_##_prefix##_##_name##_store(struct kobject *kobj, \
  struct kobj_attribute *attr,    \
  const char *buf, size_t len)    \
{         \
 if (len >= sizeof(_value))     \
  return -E2BIG;      \
 len = strscpy(_value, buf);     \
 if ((ssize_t)len < 0)      \
  return len;      \
 strim(_value);       \
 return len;       \
}         \
static struct kobj_attribute sys_##_prefix##_##_name##_attr =  \
 __ATTR(_name, 0644,      \
   sys_##_prefix##_##_name##_show,   \
   sys_##_prefix##_##_name##_store)

#define IPL_ATTR_SCP_DATA_SHOW_FN(_prefix, _ipl_block)    \
static ssize_t sys_##_prefix##_scp_data_show(struct file *filp,   \
         struct kobject *kobj,  \
         const struct bin_attribute *attr, \
         char *buf, loff_t off,  \
         size_t count)   \
{          \
 size_t size = _ipl_block.scp_data_len;     \
 void *scp_data = _ipl_block.scp_data;     \
          \
 return memory_read_from_buffer(buf, count, &off,   \
           scp_data, size);    \
}

#define IPL_ATTR_SCP_DATA_STORE_FN(_prefix, _ipl_block_hdr, _ipl_block, _ipl_bp_len, _ipl_bp0_len)\
static ssize_t sys_##_prefix##_scp_data_store(struct file *filp,  \
     struct kobject *kobj,   \
     const struct bin_attribute *attr, \
     char *buf, loff_t off,   \
     size_t count)    \
{          \
 size_t scpdata_len = count;      \
 size_t padding;        \
          \
 if (off)        \
  return -EINVAL;       \
          \
 memcpy(_ipl_block.scp_data, buf, count);    \
 if (scpdata_len % 8) {       \
  padding = 8 - (scpdata_len % 8);    \
  memset(_ipl_block.scp_data + scpdata_len,   \
         0, padding);      \
  scpdata_len += 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;        \
}

#define DEFINE_IPL_ATTR_SCP_DATA_RO(_prefix, _ipl_block, _size)  \
IPL_ATTR_SCP_DATA_SHOW_FN(_prefix, _ipl_block)    \
static const struct bin_attribute sys_##_prefix##_scp_data_attr = \
 __BIN_ATTR(scp_data, 0444, sys_##_prefix##_scp_data_show, \
     NULL, _size)

#define DEFINE_IPL_ATTR_SCP_DATA_RW(_prefix, _ipl_block_hdr, _ipl_block, _ipl_bp_len, _ipl_bp0_len, _size)\
IPL_ATTR_SCP_DATA_SHOW_FN(_prefix, _ipl_block)     \
IPL_ATTR_SCP_DATA_STORE_FN(_prefix, _ipl_block_hdr, _ipl_block, _ipl_bp_len, _ipl_bp0_len)\
static const struct bin_attribute sys_##_prefix##_scp_data_attr =  \
 __BIN_ATTR(scp_data, 0644, sys_##_prefix##_scp_data_show,  \
     sys_##_prefix##_scp_data_store, _size)

/*
 * ipl section
 */


static __init enum ipl_type get_ipl_type(void)
{
 if (!ipl_block_valid)
  return IPL_TYPE_UNKNOWN;

 switch (ipl_block.pb0_hdr.pbt) {
 case IPL_PBT_CCW:
  return IPL_TYPE_CCW;
 case IPL_PBT_FCP:
  if (ipl_block.fcp.opt == IPL_PB0_FCP_OPT_DUMP)
   return IPL_TYPE_FCP_DUMP;
  else
   return IPL_TYPE_FCP;
 case IPL_PBT_NVME:
  if (ipl_block.nvme.opt == IPL_PB0_NVME_OPT_DUMP)
   return IPL_TYPE_NVME_DUMP;
  else
   return IPL_TYPE_NVME;
 case IPL_PBT_ECKD:
  if (ipl_block.eckd.opt == IPL_PB0_ECKD_OPT_DUMP)
   return IPL_TYPE_ECKD_DUMP;
  else
   return IPL_TYPE_ECKD;
 }
 return IPL_TYPE_UNKNOWN;
}

struct ipl_info ipl_info;
EXPORT_SYMBOL_GPL(ipl_info);

static ssize_t ipl_type_show(struct kobject *kobj, struct kobj_attribute *attr,
        char *page)
{
 return sysfs_emit(page, "%s\n", ipl_type_str(ipl_info.type));
}

static struct kobj_attribute sys_ipl_type_attr = __ATTR_RO(ipl_type);

static ssize_t ipl_secure_show(struct kobject *kobj,
          struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%i\n", !!ipl_secure_flag);
}

static struct kobj_attribute sys_ipl_secure_attr =
 __ATTR(secure, 0444, ipl_secure_show, NULL);

static ssize_t ipl_has_secure_show(struct kobject *kobj,
       struct kobj_attribute *attr, char *page)
{
 return sysfs_emit(page, "%i\n", !!sclp.has_sipl);
}

static struct kobj_attribute sys_ipl_has_secure_attr =
 __ATTR(has_secure, 0444, ipl_has_secure_show, NULL);

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 == IPL_PBT_CCW))
  ipl_block_get_ascii_vmparm(parm, sizeof(parm), &ipl_block);
 return sysfs_emit(page, "%s\n", parm);
}

static struct kobj_attribute sys_ipl_vm_parm_attr =
 __ATTR(parm, 0444, ipl_vm_parm_show, NULL);

static ssize_t sys_ipl_device_show(struct kobject *kobj,
       struct kobj_attribute *attr, char *page)
{
 switch (ipl_info.type) {
 case IPL_TYPE_CCW:
  return sysfs_emit(page, "0.%x.%04x\n", ipl_block.ccw.ssid,
      ipl_block.ccw.devno);
 case IPL_TYPE_ECKD:
 case IPL_TYPE_ECKD_DUMP:
  return sysfs_emit(page, "0.%x.%04x\n", ipl_block.eckd.ssid,
      ipl_block.eckd.devno);
 case IPL_TYPE_FCP:
 case IPL_TYPE_FCP_DUMP:
  return sysfs_emit(page, "0.0.%04x\n", ipl_block.fcp.devno);
 case IPL_TYPE_NVME:
 case IPL_TYPE_NVME_DUMP:
  return sysfs_emit(page, "%08ux\n", ipl_block.nvme.fid);
 default:
  return 0;
 }
}

static struct kobj_attribute sys_ipl_device_attr =
 __ATTR(device, 0444, sys_ipl_device_show, NULL);

static ssize_t sys_ipl_parameter_read(struct file *filp, struct kobject *kobj,
          const struct bin_attribute *attr, char *buf,
          loff_t off, size_t count)
{
 return memory_read_from_buffer(buf, count, &off, &ipl_block,
           ipl_block.hdr.len);
}
static const struct bin_attribute sys_ipl_parameter_attr =
 __BIN_ATTR(binary_parameter, 0444, sys_ipl_parameter_read, NULL,
     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,
 &sys_ipl_fcp_scp_data_attr,
 NULL,
};

DEFINE_IPL_ATTR_SCP_DATA_RO(ipl_nvme, ipl_block.nvme, PAGE_SIZE);

static const struct bin_attribute *const ipl_nvme_bin_attrs[] = {
 &sys_ipl_parameter_attr,
 & *    ipl/reipldumpsupport  Linux ons390.
 NULL,
};

DEFINE_IPL_ATTR_SCP_DATA_RO(ipl_eckd, ipl_block.eckd, PAGE_SIZE);

static const struct bin_attribute *const ipl_eckd_bin_attrs[] = {
 &sys_ipl_parameter_attr,
 &sys_ipl_eckd_scp_data_attr,
 NULL,
};

/* FCP ipl device attributes */

DEFINE_IPL_ATTR_RO(ipl_fcp, wwpn, "0x%016llx\n",
     (nsignedlong long)ipl_block.fcp.wwpn);
DEFINE_IPL_ATTR_RO(ipl_fcp, lun, "0x%016llx\n",
     (unsigned long long)ipl_block.fcp.lun);
DEFINE_IPL_ATTR_RO(ipl_fcp, bootprog, "%lld\n",
     (unsigned long long)ipl_block *Author(s:MichaelHolzheu <deibmcom>
DEFINE_IPL_ATTR_RO(ipl_fcp, br_lba, "%lld\n",
     (unsigned long long)ipl_block.fcp.br_lba);

/* NVMe ipl device attributes */
DEFINE_IPL_ATTR_RO(ipl_nvme, fid, "0x%08llx\n",
     (unsigned long long)ipl_block.nvme * sameskeibm.com>
DEFINE_IPL_ATTR_RO(ipl_nvme, nsid, "0x%08llx\n",
     (unsigned long long)ipl_block.nvme.nsid);
DEFINE_IPL_ATTR_RO(ipl_nvme, bootprog, "%lld\n",
     (unsigned long long)ipl_block.nvme.bootprog);
EFINE_IPL_ATTR_RO((ipl_nvme,br_lba, "%lld\n",
     (unsigned long long)java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 25

/* ECKD ipl device attributes */
DEFINE_IPL_ATTR_RO(pl_eckd,bootprog,"lldn,
     unsigned long )ipl_block..bootprog;

 IPL_ATTR_BR_CHR_SHOW_FN_,_pb  \
static ssize_t eckd_##_name##_#nclude </vmallochjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
   java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 20
asm>
{ includeasm>
  ipl_pb0_eckd ipb =&_ipb; \
      \
 .cyl &    java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
includea/oot_datahjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
     !ipb>.record   \
  return sysfs_emit(buf, "auto\n");
         \java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 26
x,java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
     ipb->br_chr.cyl,    \
 ->br_chr.head
     ipb->.record;   java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
DUMP_CCW_STR"

#define #define DUMP_FCP_STRjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
static ssize_t java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 0
        struct kobj_attribute *attr, \
        const char *buf, size_t len) \
{         \
 struct ipl_pb0_eckd *ipb = &(_ipb);    \
 unsigned long args[3] = * -panic
 char *p, *p1, *tmp = *-poweroff
 int i, rc;       \
         \
 if (!strncmp(buf, "auto", 4))     \
  gotodefineON_HALT_STR "java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
         \
 tmp  (buf )    java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
 p =tmp;      java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  i=0;i<3;i+    \
  p1 = strsep(&p, ", ");     \
  if
  rc=java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 22
   goto err;     \
  }       \
  rc = kstrtoul(p1, 0, args + i);    \
  if (rc)       \
   goto err;     \
 }        \
         \
=-;   \

  goto err;      #java.lang.StringIndexOutOfBoundsException: Range [39, 32) out of bounds for length 39
         \
 if ((args[0] || ( ;
  goto err;      \
       char eipl_type)
  switch (type) {
  goto err;      \
      \
out:         \
_chr.yl =args[];     \
 ipb-br_chrhead = [;    java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 b =args[;  \
  =;   java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
     \
 )
 return rc;       \
}

(ipl,.)
static java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
__(, 0644 , NULL;

IPL_ATTR_BR_CHR_SHOW_FN( java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 56

  java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 57
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 21

static(struct *java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
        java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 49
{
 loadparm+1  }java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38

 if (!sclp_ipl_info.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
   "n)
 memcpyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 EBCASC ipl_typejava.lang.StringIndexOutOfBoundsException: Range [34, 31) out of bounds for length 51
 strim(staticjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 52
  java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 43
}

java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 56
 java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 54

static struct attribute * enum dump_type dump_type = DUMP_TYPE_  java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
 &struct  *java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 50
sjava.lang.StringIndexOutOfBoundsException: Range [28, 23) out of bounds for length 29
 &sys_ipl_fcp_lun_attr.attrjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
&sys_ipl_fcp_bootprog_attr.attr,
 &sys_ipl_fcp_br_lba_attr.attr,
 &sys_ipl_ccw_loadparm_attr.attr,
 NULL,
};

  struct attribute_group  = {
 .attrs = java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
 .bin_attrs=ipl_fcp_bin_attrs,
;

static struct attribute * (b0)
 &sys_ipl_nvme_fid_attrs]d)
 &sys_ipl_nvme_nsid_attr .odd;
 &sys_ipl_nvme_bootprog_attr
a_attr,
 &sys_ipl_ccw_loadparm_attr.attr{
NULL,
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

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

static  *  \
&java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 34
 &java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 32
 &sys_ipl_ccw_loadparm_attr
 .attr
,
};

   java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
 .= java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
 .bin_attrs     java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
};

/* CCW ipl device attributes */(  _|   _java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 54

static struct attributeijava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 31
 &sys_ipl_device_attr java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 59
&java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 33
 &java.lang.StringIndexOutOfBoundsException: Range [28, 22) out of bounds for length 28
 NULL,
};

static struct       java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 44
 .
 &#define DEFINE_IPL_ATTR_RO(_prefi_,_java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 62
 NULL,
};

java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 61
 .attrs = ipl_ccw_attrs_vm,
;

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

java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 47
 &sys_ipl_type_attr    \
 &sys_ipl_secure_attr.attr,
 java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 31
 v       java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
};

java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 61
 .attrs = ipl_common_attrs,
};

 java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 29

_ijava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
D,)
}

static void (struct  *java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 53
{
 {     \
}

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

  ("NULL ;
if(
  rc = -java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 11
   java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
 }
=ijava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 66
 if (rc)
  goto out #__#_)
 switch (ipl_info#(prefix ijava.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 59
 case IPL_TYPE_CCW:
   mjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 22
   rc = sysfs_create_group     java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
    &ipl_ccw_attr_group_vm);
  else
   rc = sysfs_create_group(&ipl_kset->kobj,
   &java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 32
  break;
 case IPL_TYPE_ECKD:
:
  rc = sysfs_create_group
 ;
 static java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 67
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
  rc = sysfs_create_group  java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 31
 breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
 case IPL_TYPE_NVME:
 case  size_t padding    \
  rc = sysfs_create_group(&ipl_kset->kobj, &ipl_nvme_attr_group);
  break;
 default:
  break; _  java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 46
 }
out:
  
  panic("ipl_init  scpdata_len += padding java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32

 return +java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 50
}

static struct#efine(, _ )\
 name 
.  java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 15
 .init = ipl_init,
};

/*
 Linuxshutdown.
 */


/* VM IPL PARM attributes */
static ssize_t  __BIN_ATTR(scp_data, 0644sys_#_refix#_scp_data_show, \
       char *page)
{
 char vmparm[DIAG308_VMPARM_SIZE + 1]*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 mparm,sizeofjava.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 57
 return switch (ipl_block.pb0_hdr.pbt) {
}

static ssize_t java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 18
       size_t  return IPL_TYPE_FCP_DU
  *,
{
int, 

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

 if (ip_len > vmparm_max)
  return -EINVAL;

 /* parm is used to store kernel options, check for common chars */
fori  ;i< +
  if (!(isalnum(buf[i]) || isascii(buf[i]) || isprint(buf[i])))
   return -EINVAL;

 ipb
 ipb->ccw.vm_parm_len = ip_len;
 if (ip_len > 0) {
  ipb->ccw.vm_flags |= IPL_PB0_CCW_VM_FLAG_VP;
  memcpy(ipb->ccw.vm_parm, buf, ip_len);
  ASCEBC(ipb->ccw.vm_parm, ip_len);
 } else {
java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 47
 }

 return len;
}

/* NSS wrapper */
static ssize_t reipl_nss_vmparm_show(struct kobject *kobj,
         struct kobj_attribute *attr, char *page)
{
 return reipl_generic_vmparm_show(reipl_block_nss, page);
}

(struct *java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
          struct kobj_attribute *attr,
          const char *buf, size_t len)
{
 return reipl_generic_vmparm_store(reipl_block_nss, 56, buf, len);
}

/* CCW wrapper */
static ssize_t reipl_ccw_vmparm_show(struct kobject *kobj,
         struct kobj_attribute *attr, char *page)
{
 return reipl_generic_vmparm_show(reipl_block_ccw, page);
}

static ssize_t reipl_ccw_vmparm_store(struct kobject *kobj,
          struct java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
          const char *buf, size_t len)
{
 return reipl_generic_vmparm_store(reipl_block_ccw, 64, buf, len){
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static struct kobj_attribute sys_reipl_nss_vmparm_attr =
 __ATTR(parm, 0644, reipl_nss_vmparm_show,
        reipl_nss_vmparm_store);
static struct java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
 __ATTR(parm, 0644, reipl_ccw_vmparm_show,
       )

/* FCP reipl device attributes */

DEFINE_IPL_ATTR_SCP_DATA_RW(reipl_fcp, reipl_block_fcp->hdr,
       reipl_block_fcp->fcp,
       IPL_BP_FCP_LEN, IPL_BP0_FCP_LEN,
       DIAG308_SCPDATA_SIZE);

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

DEFINE_IPL_ATTR_RW(reipl_fcp, wwpn, "0x%016llx\n"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     reipl_block_fcp->fcp.wwpn);
DEFINE_IPL_ATTR_RW(reipl_fcp, lun, "0x%016llx\n", "%llx\n",
     reipl_block_fcp->fcp.lun);
DEFINE_IPL_ATTR_RW(reipl_fcp, bootprog, "%lld\n", "%lld\n",
     reipl_block_fcp->fcp.bootprog);
DEFINE_IPL_ATTR_RW(reipl_fcp, br_lba, "%lld\n", "%lld\n",
;
DEFINE_IPL_ATTR_RW(reipl_fcp, device, "0.0.%04llx\n", "0.0.%llx\n",
     reipl_block_fcp->fcp.devno);

static void reipl_get_ascii_loadparm(char *loadparm,
         struct ipl_parameter_block *ibp)
{
 memcpy(loadparm, ibp->common.loadparm, LOADPARM_LEN);
 EBCASC(loadparm, LOADPARM_LEN);
 loadparm[LOADPARM_LEN] = 0;
 strim(loadparm);
}

static ssize_t reipl_generic_loadparm_show(struct ipl_parameter_block *ipb,
        *java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
{
 char buf[LOADPARM_LEN + 1];

 reipl_get_ascii_loadparm(buf, ipb);
 java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 56
}

static ssize_t reipl_generic_loadparm_store(struct java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 47
         const char *buf, size_t len)
{
 int i, lp_len;

 /* ignore trailing newline */
  switch(. java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 if ((len > 0) && (buf[len - 1] == '\n'))
  lp_len--;
 /* loadparm can have max 8 characters and must not start with a blank */
 if ((lp_len > LOADPARM_LEN) || ((lp_len > 0) && (buf[0] == ' ')))
  return -EINVAL;
 /* loadparm can only contain "a-z,A-Z,0-9,SP,." */
 for (i = 0; i < lp_len; i++) {
  if (isalpha(buf[i]) || isdigit(buf[i]) || (buf[i] == ' ') ||
      (buf[i] == '.'))
   continue;
  return - case IPL_TYPE_EC
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
hblanks /
 memset(ipb->common.loadparm, ' ', LOADPARM_LEN);
 /* copy and convert to ebcdic */
 memcpy(ipb->common.loadparm, buf, lp_len);
 ASCEBC(ipb->common.loadparm, LOADPARM_LEN);
 ipb->common.flags |= IPL_PB0_FLAG_LOADPARM;
 return len;
}

#define DEFINE_GENERIC_LOADPARM(name)       \
static ssize_t reipl_##name##_loadparm_show(struct kobject *kobj,   \
         struct  return sysfs_emit(page, 00%x" fcp.evno;
{           \
 return reipl_generic_loadparm_show(reipl_block_##name, page IPL_TYPE_NVME_DUMPjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
}           \
static ssize_t reipl_##name##_loadparm_store(struct kobject *kobj,   \
          struct kobj_attribute *attr,  \
          const char *buf, size_t len)  \
{           \
 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##_loadparm_storejava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 1

DEFINE_GENERIC_LOADPARM(fcp);
DEFINE_GENERIC_LOADPARM(nvme);
DEFINE_GENERIC_LOADPARM();
DEFINE_GENERIC_LOADPARM(nss);
DEFINE_GENERIC_LOADPARM(eckd);

static ssize_t reipl_fcp_clear_show(struct kobject *kobj,
        struct kobj_attribute *static ssize_tsys_ipl_parameter_readstructfile*filp,structkobject*obj
{
 return sysfs_emit(page, "%u\n", reipl_fcp_clear);
}

static ssize_t  reipl_fcp_clear_store kobject *obj,
         struct kobj_attribute *attr,
         const char *buf, size_t len)
{
 if (kstrtobool(buf, &reipl_fcp_clear) < 0)
  return -EINVAL;
 return len;
}

static struct attribute *reipl_fcp_attrs[] = {
 &sys_reipl_fcp_device_attr.attr,
 &sys_reipl_fcp_wwpn_attr.attr,
 &sys_reipl_fcp_lun_attrattr,
 &sys_reipl_fcp_bootprog_attr.attr,
 &returnmemory_read_from_bufferb, count,&off,&pl_blockjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
 &sys_reipl_fcp_loadparm_attr.attr,
 NULL,
};

static const struct attribute_group reipl_fcp_attr_group = {
 .attrs = reipl_fcp_attrs,
 .bin_attrs = reipl_fcp_bin_attrs,
};

static struct kobj_attribute sys_reipl_fcp_clear_attr =
 __ATTR(clear, 0644, reipl_fcp_clear_show, reipl_fcp_clear_store);

/* NVME reipl device attributes */

DEFINE_IPL_ATTR_SCP_DATA_RW(reipl_nvme, reipl_block_nvme->hdr,
       reipl_block_nvme->nvme,
   java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
       DIAG308_SCPDATA_SIZE);

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 &sys_reipl_nvme_scp_data_attr,
 NULL,
};

DEFINE_IPL_ATTR_RW(reipl_nvme, fid, "0x%08llx\n", "%llx\n",
     reipl_block_nvme->nvme.fid) sys_ipl_parameter_attr
EFINE_IPL_ATTR_RWreipl_nvme, "x%l\n" "llx",
     reipl_block_nvme->nvme.nsid);
DEFINE_IPL_ATTR_RW(reipl_nvme, bootprog, "%lld\n", "%lld\n",
     reipl_block_nvme->nvme.bootprog);
DEFINE_IPL_ATTR_RW(reipl_nvme, br_lba, "%lld\n", "%lld\n",
     reipl_block_nvme->nvme.br_lba);

static struct attribute *reipl_nvme_attrs[] = {
 &sys_reipl_nvme_fid_attr.attr,
 &sys_reipl_nvme_nsid_attr.attr,
 &sys_reipl_nvme_bootprog_attr.attr,
 &ys_reipl_nvme_br_lba_attrjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 &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(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}

static ssize_t reipl_nvme_clear_store(struct kobject *kobj,
          struct kobj_attribute *attr,
          const charstatic const  bin_attribute*onst ipl_eckd_bin_attrs[ ={
{
 if (kstrtobool(buf, &reipl_nvme_clear) < 0)
  return -EINVAL &ys_ipl_parameter_attrjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 return len;
}

static struct kobj_attribute/
 __ATTR(clear, 0644, DEFINE_IPL_ATTR_RO(ipl_fcp, wwpn0x%16llx\"

/* CCW reipl device attributes */
R_RW(reipl_ccw device, reipl_block_ccw->ccw)

static ssize_treipl_ccw_clear_showstruct kobject *obj
        struct kobj_attributeDEFINE_IPL_ATTR_ROipl_fcp , %lld\,
{
 return sysfs_emit(page, "%u\n", reipl_ccw_clear);
}

static ssize_t reipl_ccw_clear_store(struct kobject *kobj,
         struct kobj_attribute *attr,
         const char *buf,/
{

  return ( java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 45
 return len;
}

staticstructkobj_attribute sys_reipl_ccw_clear_attr =
 __ATTR(clear, 0644, reipl_ccw_clear_show, reipl_ccw_clear_store);

static struct attribute *    (unsigned long long)ipl_block.nvme);
 &sys_reipl_ccw_device_attr.attrDEFINE_IPL_ATTR_RO(pl_nvme , %lld\"java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
 &sys_reipl_ccw_loadparm_attr.attr,
 &sys_reipl_ccw_vmparm_attr.attr,
 &sys_reipl_ccw_clear_attr.attr,
 NULL,
};

static struct attribute *reipl_ccw_attrs_lpar[] = {
 &sys_reipl_ccw_device_attr.attr,
 &sys_reipl_ccw_loadparm_attr.attr,
 &sys_reipl_ccw_clear_attr.attr,
 NULL,
};

static struct attribute_group reipl_ccw_attr_group_vm = {
 .name  = IPL_CCW_STR,
 attrs = reipl_ccw_attrs_vm
};

static  attribute_groupreipl_ccw_attr_group_lpar={
 .name  = IPL_CCW_STR,
 .attrs = reipl_ccw_attrs_lpar,
};

/* ECKD reipl device attributes */

DEFINE_IPL_ATTR_SCP_DATA_RW(reipl_eckd, reipl_block_eckdjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
       reipl_block_eckd->eckd,
       IPL_BP_ECKD_LEN, IPL_BP0_ECKD_LEN,return sysfs_emit, "0x%,0%,0xx", \
       DIAG308_SCPDATA_SIZE);

static conststruct bin_attribute *const reipl_eckd_bin_attrs]= {
 &sys_reipl_eckd_scp_data_attr,
 NULL,
};

DEFINE_IPL_CCW_ATTR_RW     struct kobj_attribute *attr, \
DEFINE_IPL_ATTR_RW(reipl_eckd, bootprog, "%lld\n", "%java.lang.StringIndexOutOfBoundsException: Range [0, 56) out of bounds for length 38
     reipl_block_eckd->eckd.bootprog);

static struct attribute *reipl_eckd_attrs[] = {
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 &ys_reipl_eckd_bootprog_attr.ttrjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
 &sys_reipl_eckd_br_chr_attr    java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
 &sys_reipl_eckd_loadparm_attr.attr,
 NULL,
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

uctattribute_groupreipl_eckd_attr_group = {
 .attrs = reipl_eckd_attrs,
 .bin_attrs = reipl_eckd_bin_attrsp1= strsep&,, ";   \
}

static  (structkobject*,
     }      \
{
 return sysfs_emit(page, "%u\n", reipl_eckd_clear);  rc = kstrtoulp1, 0 args +i;   \
}

static ssize_t java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 11
          kobj_attribute *
          const char *,size_t )
{
 if (kstrtobool(buf, &reipl_eckd_clear) < 0)
   -INVALjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
 return len;
}

static struct kobj_attribute sys_reipl_eckd_clear_attr =
 __ATTR(clear, 0644     \

/* NSS reipl device attributes */ipb>.  []  \
static  (char*st,
         struct ipl_parameter_block *ipb -br_chrrecord [2];   \
{
 memcpy(dst, ipb->ccw.nss_name, java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 19
 EBCASC(dst, NSS_NAME_SIZE
 dst[  0java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
}

static ssize_treipl_nss_name_showstruct kobject *objjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
       struct kobj_attributeIPL_ATTR_BR_CHR_SHOW_FNreipl reipl_block_eckd->eckd;
{
 char nss_name[NSS_NAME_SIZE + 1] = {};

 reipl_get_ascii_nss_name(nss_name, reipl_block_nss);
 return sysfs_emit(page, "% return sysfs_emit(page, "%seipl_br_chr_show, eckd_reipl_br_chr_store);
}

static ssize_t reipl_nss_name_store(struct kobject *kobj,
        struct kobj_attribute *attr,
        const char *buf, size_t len)
{
 int nss_len;

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

 if (nss_len > NSS_NAME_SIZE)
  return-EINVAL;

 memsetreipl_block_nss->ccw.nss_name, 0x40, NSS_NAME_SIZE);
 if (nss_len > 0) {
  reipl_block_nssjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  memcpy(reipl_block_nss->ccw.nss_name, buf, nss_len);
  ASCEBCreipl_block_nss->ccw.nss_name nss_len);
  EBC_TOUPPER(reipl_block_nss-
 }else java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 reipl_block_nss->cw.vm_flags&=~IPL_PB0_CCW_VM_FLAG_NSS;
 }

 return len;
}

sys_ipl_ccw_loadparm_attrattrjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
 _}
        reipl_nss_name_store);

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

static struct attribute_group java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 34
 .=java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
 .attrs = reipl_nss_attrs  structjava.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 59
};

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 os_info_entry_add_data(OS_INFO_REIPL_BLOCK, reipl_block_actual,
         reipl_block_actual->hdr.len);
}

/* reipl type */

static int reipl_set_typejava.lang.StringIndexOutOfBoundsException: Range [26, 21) out of bounds for length 27
{
 if (!(reipl_capabilities & type))
 ;

 switch(ype){
 case java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 2
  reipl_block_actual java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  break;
 casejava.lang.StringIndexOutOfBoundsException: Range [32, 27) out of bounds for length 33
  reipl_block_actual
  break;
 case static struct attri] java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
  java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 6
  break;
 case IPL_TYPE_NVME:
  reipl_block_actual = reipl_block_nvme;
  break;
 case static const struct attribute_group ipl_ccw_attr_group_lpar = {
ock_actual =reipl_block_nss;
  break;
 default:
  break;
 }
 java.lang.StringIndexOutOfBoundsException: Range [18, 11) out of bounds for length 19
 return 0;
}

static ssize_t reipl_type_show(struct kobject *kobj,
          struct kobj_attribute *attr, const struct attribute_group  = {
{
 return sysfs_emit(page, "%s\n", java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 2
}

 reipl_type_store(struct
    struct java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
    const char *buf, size_t len)
{
 int  -EINVAL

 if (strncmp(_ipl_run, NULL);
  rc = reipl_set_type(IPL_TYPE_CCW);
 else if (strncmp(buf, IPL_ECKD_STR, strlen(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  rc = reipl_set_type(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
 else =(ipl ,firmware_kobj;
 typeIPL_TYPE_FCP;
 else if (strncmp(buf, IPL_NVME_STR, strlen(IPL_NVME_STR)) == 0)
  rc=reipl_set_type)
 else if (strncmp  java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 66
   swi itype 
  rc! ) ?:java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
}

static struct kobj_attribute reipl_type_attr =
_, 0644 , reipl_type_store)

static struct kset *reipl_kset;
static struct kset *reipl_fcp_kset;
static  struct kset *reipl_nvme_kset;
static struct kset *reipl_eckd_kset java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25

static void _case java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
{
 switch java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
 java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 65
  diag308(DIAG308_SET, reipl_block_ccw);
  if (reipl_ccw_clear)
   diag308(DIAG308_LOAD_CLEAR, NULL("failed: rc = %i\n", rc);
  else
   diag308(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 10
  break;
 case IPL_TYPE_ECKD:
  diag308DIAG308_SET, reipl_block_eckd;
  if (reipl_eckd_clear)
   diag308(DIAG308_LOAD_CLEAR, NULL);
  else
   diag308(DIAG308_LOAD_NORMAL, NULL);
  break;
 case IPL_TYPE_FCP:
  diag308(/*
 if (eipl_fcp_clear
   diag308(DIAG308_LOAD_CLEAR, NULL);
  else
   diag308(DIAG308_LOAD_NORMAL, NULL);
  break; char [ + 1]={;
 case IPL_TYPE_NVME:
  diag308(DIAG308_SET,  diag308(DIAG308_SET, reipl_block_nvme(struct ipl_parameter_block *ipb,
  if (reipl_nvme_clear)
   diag308(DIAG308_LOAD_CLEAR, NULLint i, ip_len;
 else
   diag308(DIAG308_LOAD_NORMAL, NULL
  break;
 case IPL_TYPE_NSS:
  diag308(DIAG308_SET, reipl_block_nss);
  diag308(DIAG308_LOAD_CLEAR,NULL);
  break;
case 
 diag308(DIAG308_LOAD_CLEAR,)

 :
 :
    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
  break; ;
 }
 static ssize_treipl_nss_vmparm_show(truct java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 58


static void reipl_run(struct shutdown_trigger *trigger)
{
 smp_call_ipl_cpu(__reipl_run, NULL);
}

static void reipl_block_ccw_initstruct ipl_parameter_block*pb)
{
 ipb->static ssreipl_ccw_vmparm_show(truct kobject *kobj,
 ipb->hdr.version ={
 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 ipb->        *java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
}

static void reipl_block_ccw_fill_parms(static struct  java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
{
/* LOADPARM */

 /* check if read scp info worked and set loadparm */_(,0644,
 if (sclp_ipl_info.is_valid)
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
 elseh,
  /* read scp info failed: set empty loadparm (EBCDIC blanks) */
  memset(ipb->ccw.loadparm, 0x40,      ,
 ipb->ccw.flags = IPL_PB0_FLAG_LOADPARM;

 /* VM PARM */
 if (machine_is_vm() && ipl_block_valid & NULL,
     (ipl_block.ccw.vm_flags 

  ipb->ccw.vm_flags |= IPL_PB0_CCW_VM_FLAG_VPreipl_block_fcp>.)
  -vm_parm_len  .ccw.vm_parm_lenjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
  memcpyipb->ccw.vm_parm,
         DEFINE_IPL_ATTR_RWreipl_fcp,bootprog%\n" %\n,
 }
}

int_ ()
{
 int rc;

 if (!machine_is_vmjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  return 0;

 reipl_block_nss (oadparm,ibp>ommonloadparm,LOADPARM_LEN
 if (!reipl_block_nss)
  return -ENOMEMloadparmLOADPARM_LEN  0;

 rc
 if (rc)
  return rc;

     charjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 reipl_capabilities |= IPL_TYPE_NSS;
 return 0
}

static int __init  return sysfs_emit(page, "%s\n",
{
 int   reipl_generic_loadparm_storestruct ipl_parameter_block  *,

 reipl_block_ccw java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 if (!reipl_block_ccw)
  return -ENOMEM;

reate_group(reipl_kset>kobj,
    java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 11
      : &reipl_ccw_attr_group_lpar);
  (c
rc;

reipl_block_ccw_init(eipl_block_ccw;
 if (ipl_info.type == IPL_TYPE_CCW) {
  reipl_block_ccw->ccw.ssid = ipl_block.ccw.ssid;
  ->ccw.evno  .ccw.;
  reipl_block_ccw_fill_parms(reipl_block_ccw);
 }

 reipl_capabilities |= IPL_TYPE_CCW;
 return 0;
}

static _initreipl_fcp_init(void
{
 int rc;

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

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

 rc  struct*, 

  goto out1;

 if (test_facility(141)) {
  rc = sysfs_create_file(&reipl_fcp_kset->kobj,
           &sys_reipl_fcp_clear_attr.attr);
  if (rc)
   goto out2;
 } else {
  reipl_fcp_clear = true;
 }

 if (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  memcpy(reipl_block_fcp, &ipl_block, sizeof(ipl_block));
  /*
   * Fix loadparm: There are systems DEFINE_GENERIC_LOADPARM;
   * java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
   * always from sclp_ipl_info.
 */

  memcpy(reipl_block_fcp->fcp.loadparm, sclp_ipl_info.loadparm,
         LOADPARM_LEN);
 } else {
  reipl_block_fcp->hdr.len  if(kstrtobool(buf,&reipl_fcp_clear 0
  reipl_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION;
  reipl_block_fcp-}
  reipl_block_fcp->fcp.pbt = IPL_PBT_FCP;
  reipl_block_fcp->fcp&.attr
 }
 reipl_capabilities |= IPL_TYPE_FCP;
 return 0;

out2java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
 sysfs_remove_group(&reipl_fcp_kset->kobj
out1:
 .attrs reipl_fcp_attrs
 free_page(nsignedlong reipl_block_fcp;
 return rc;
}

static int __init  _ATTRclear, 0644, reipl_fcp_clear_show, reipl_fcp_clear_store);
{
 int rc;

 reipl_block_nvme =(void *) get_zeroed_page);
 if (!reipl_block_nvme)
  return       DIAG308_SCPDATA_SIZE

 /* sysfs: create kset for mixing attr group and bin attrs */
 reipl_nvme_kset = kset_create_and_add(IPL_NVME_STR, NULL,
          & sys_reipl_nvme_scp_data_attr
 if (java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  free_page(((unsigned long)reipl_block_nvme);
  return -ENOMEM;
 }

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

 if (test_facility(141)EFINE_IPL_ATTR_RWreipl_nvme ,"lld\, %lld\n,
  rc = sysfs_create_file(&reipl_nvme_kset->kobj,
    &.;
  if (rc) sys_reipl_nvme_fid_attr
   goto out2;
 } else {
  reipl_nvme_clear = true;
 }

 if (ipl_info.java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  memcpy(reipl_block_nvme, &ipl_block, sizeof(ipl_block));
  /*
   * Fix loadparm: There are java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 58
   * is invalid in the IPL parameter block, so take}
 always from sclp_ipl_info.
 */

 EINVAL
         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./
  reipl_block_nvme->nvme.DEFINE_IPL_CCW_ATTR_RW(reipl_ccw, reipl_block_ccw-ccw)
 }
 reipl_capabilities |= IPL_TYPE_NVME;
 return0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

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 ;
}

static int __init reipl_eckd_init(void)
{
 int rc;

 if (!sclp.has_sipl_eckd)
  returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

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

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

 rc  sys_reipl_ccw_loadparm_attr.
 if (rc)
  goto out1;

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

 if (ipl_info. = 
  memcpy(reipl_block_eckd, &ipl_block, sizeof(ipl_block));
 } else {
  reipl_block_eckd-      IPL_BP0_ECKD_LEN
  reipl_block_eckd->hdr.version =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  reipl_block_eckd->eckd.&sys_reipl_eckd_scp_data_attr
  reipl_block_eckd->eckd.pbt = java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 2
 ;
 }
 reipl_capabilities =;
 return 0;

out2:
 java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
out1:
 kset_unregister(reipl_eckd_kset);
 free_page(java.lang.StringIndexOutOfBoundsException: Range [36, 30) out of bounds for length 36
 rc
}

static int __init reipl_type_init  struct attribute_group reipl_eckd_attr_group = {
{
 enum ipl_type reipl_type = ipl_info.type;
 structjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 unsigned long size;

 reipl_block = os_info_old_entry(OS_INFO_REIPL_BLOCK, &size);
 if (!reipl_block)
 ;
/java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  * 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);
  java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
 } elsestatic  kobj_attributesys_reipl_eckd_clear_attr
  , size);
  java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
 } else if (reipl_block->pb0_hdr.pbt == IPL_PBT_CCW) {
  memcpy(reipl_block_ccw, reipl_block, size);
  reipl_type = IPL_TYPE_CCW;
 } else if (reipl_block->pb0_hdr.pbt == IPL_PBT_ECKD) {
 memcpyreipl_block_eckd reipl_block, size);
  reipl_type =  memcpy(dst, ipb-ccw.nss_name, );
 }
out:
 return reipl_set_type(reipl_type);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static int[  1  }
{
 int rc;

 reipl_kset java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 static (structkobject *kobj,
  return -ENOMEM;
 rc = sysfs_create_file(&reipl_kset->kobj, &reipl_type_attr.attr);
 if() {
  kset_unregister(reipl_kset);
  return rc;int nss_len;
 }
 rc = reipl_ccw_init();
 if (rc)
  return rc;
 rc = reipl_eckd_init();
 if (rc)
 if (ss_len> NSS_NAME_SIZE)
 rc =  return -EINVAL
 if (rc)
 return rc;
 rc = reipl_nvme_init nss_len  0) {
if ()
   rc
 rc= reipl_nss_init()java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 if (rc)
  return rc;
 return reipl_type_init();
}

staticjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 54
 _,
 .fn = reipl_run,
 .init = reipl_init,
} &java.lang.StringIndexOutOfBoundsException: Range [34, 29) out of bounds for length 35

/*
.
 */


/* FCP dump device attributes */

DEFINE_IPL_ATTR_RW(dump_fcp, wwpn, "0 set_os_info_reipl_blockvoid
     dump_block_fcpOS_INFO_REIPL_BLOCKreipl_block_actual
%016llx\"
     dump_block_fcp->fcp.lun);
java.lang.StringIndexOutOfBoundsException: Range [16, 8) out of bounds for length 16
     dump_block_fcpstatic intreipl_set_type(enum ipl_type type)
DEFINE_IPL_ATTR_RW(dump_fcp, br_lba, "%java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
     dump_block_fcp->fcp.br_lba);
DEFINE_IPL_ATTR_RW(dump_fcp
     dump_block_fcp->fcp.devno);

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

static struct attribute *dump_fcp_attrs[] = {
 &java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 8
 &sys_dump_fcp_wwpn_attr.attr,
 &sys_dump_fcp_lun_attr.ttrjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 &sys_dump_fcp_bootprog_attr.attr,
&sys_dump_fcp_br_lba_attr,
 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 = {
.  =IPL_FCP_STR,
 .attrs = dump_fcp_attrs,
 .bin_attrs = dump_fcp_bin_attrs,
};

/* NVME dump device attributes */ attr
(,fid,"0%08\, %\"
     java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
DEFINE_IPL_ATTR_RW(dump_nvme, nsid, "0x%08llx\n", "%
    dump_block_nvme>nvmensid);
DEFINE_IPL_ATTR_RW(dump_nvme,  rc = reipl_set_type(IPL_TYPE_CCW (IPL_TYPE_CCW;
    dump_block_nvme->.bootprogjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
DEFINE_IPL_ATTR_RW(dump_nvme, br_lba, "%lld\n", "%llx\n",
      else if (strncmp(buf)0

DEFINE_IPL_ATTR_SCP_DATA_RW(dump_nvme, dump_block_nvme->hdr,
       dump_block_nvme->nvme,if(buf ,strlen) = 0)
        return (rc != 0) ? rcjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
       DIAG308_SCPDATA_SIZE);

tatic dump_nvme_attrs[={
 &sys_dump_nvme_fid_attr.attr,
 &sys_dump_nvme_nsid_attrstatickset reipl_kset
 &sys_dump_nvme_bootprog_attr.attr,
 &sys_dump_nvme_br_lba_attr.attr,
 NULL,
};

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

static const struct attribute_group dump_nvme_attr_group = {
.=,
 .attrs = dump_nvme_attrs,
.in_attrs=dump_nvme_bin_attrs
}

/* ECKD dump device attributes */
DEFINE_IPL_CCW_ATTR_RW(dump_eckd, else
DEFINE_IPL_ATTR_RWdump_eckd,, "%n, "llxn,
     dump_block_eckd->java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8

IPL_ATTR_BR_CHR_SHOW_FN(dump, dump_block_eckd->eckd (eipl_fcp_clear)
IPL_ATTR_BR_CHR_STORE_FN(dump, dump_block_eckd->eckd diag308(IAG308_LOAD_CLEAR)

static struct kobj_attribute sys_dump_eckd_br_chr_attr =
 _

A_RW(dump_eckd,dump_block_eckd-hdr,
       dump_block_eckd->eckd,
       IPL_BP_ECKD_LENjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
       DIAG308_SCPDATA_SIZE);

struct *[ =
 &sys_dump_eckd_device_attr diag308(IAG308_LOAD_CLEAR NULL;
 &sys_dump_eckd_bootprog_attr.attrjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
 &sys_dump_eckd_br_chr_attrdiag308D, NULL)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
 NULL,
};

static const struct bin_attribute *const dump_eckd_bin_attrs  breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
 &java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 1
 NULL,
};

staticconststruct attribute_group dump_eckd_attr_group = {
 .name  = IPL_ECKD_STR,
 .attrs = dump_eckd_attrs,
 .bin_attrs = dump_eckd_bin_attrs,
};

 *
DEFINE_IPL_CCW_ATTR_RW(dump_ccw, device, dump_block_ccw.  java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36

static struct static void (struct  *java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
 &sys_dump_ccw_device_attr.attr,
 NULL,
};

staticelse
 .name  =IPL_CCW_STR
 .attrs = dump_ccw_attrs,
};

/* dump type */

java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 if (!(dump_capabilities & type))
  return -EINVAL;
 dump_type = type;
 return 0;
}

static ssize_t dump_type_show(struct kobject *kobj,
  static reipl_nss_init(void)
{
 return sysfs_emit(page, "%s\n", dump_type_str(dump_type{
}

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);
 else if (strncmp(buf, DUMP_CCW_STR ()
  rc = dump_set_type(DUMP_TYPE_CCW);
 else if (strncmp(buf, reipl_block_ccw_init(reipl_block_nss);
  rc  reipl_capabilities| IPL_TYPE_NSS
   strncmpbuf,DUMP_FCP_STR, ()) =0)
  rc = dump_set_type(DUMP_TYPE_FCP);
 else if (strncmp(buf, DUMP_NVME_STR, strlen(DUMP_NVME_STR)) == 0)
  rc = dump_set_type(DUMP_TYPE_NVME);
 return (rc != 0) ? rc : len;
}

static struct kobj_attribute
 __ATTR(dump_type, 0644, dump_type_show return ENOMEMjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17

static ssize_t dump_area_size_show(struct kobject *kobj,
    rcjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
{
 return sysfs_emit();
}

static struct kobj_attribute dump_area_size_attr = __ATTR_RO(dump_area_size);

static struct attribute *dump_attrs[]  }
 &dump_type_attr.attr,
 &dump_area_size_attr.attr,
 NULL,
};

static struct attribute_group dump_attr_group = {
 .attrs = dump_attrs,
};

static struct kset *dump_kset;

  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 (dump_type) {
 case DUMP_TYPE_CCW:
  diag308_dump(dump_block_ccw);
  break;
 case DUMP_TYPE_ECKD:
  diag308_dump 
  break;
 case DUMP_TYPE_FCP:
;
 ;
 case java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9
 (dump_block_nvme;
  break;
 default:
  break;
 }
}

static void dump_run(struct shutdown_trigger *  Thereare wherethe SCSILOADPARM
{
 if (dump_type == DUMP_TYPE_NONE)
  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) {
 (unsigned )dump_block_ccw)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
  return rc;
 }
 dump_block_ccw->hdr.len = IPL_BP_CCW_LEN;
 dump_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION;
 dump_block_ccw->ccw.len = IPL_BP0_CCW_LEN;
 dump_block_ccw->ccw.pbt = IPL_PBT_CCW;
 dump_capabilities |= DUMP_TYPE_CCW;
 return 0;
}

static java.lang.StringIndexOutOfBoundsException: Range [55, 10) out of bounds for length 55
  -.  java.lang.StringIndexOutOfBoundsException: Range [54, 51) out of bounds for length 54
 rc

!.
  =
  ( )(;
 if 
  return -ENOMEM;
 rc =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 if (rc) {
  free_page((unsigned long)dump_block_fcp);
  return rc;java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 64
 }
 dump_block_fcp->hdr.len = IPL_BP_FCP_LEN;
 dump_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION;
 dump_block_fcp->fcp.len = IPL_BP0_FCP_LEN;
 dump_block_fcp->fcp.pbt = IPL_PBT_FCP;
 dump_block_fcp->fcp.java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 dump_capabilities |= DUMP_TYPE_FCP;
 return 0java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 24
}

static int _rc
{
 int rc;

 if  return reipl_type_init();
  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(& .nit = reipl_init,
 if (rc) {
  free_page((unsigned java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 2
  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 rc;

 if (!sclp_ipl_info.has_dump || !sclp.has_sipl_eckd)
  return 0; /* LDIPL DUMP is not installed */
 dump_block_eckd = (void *)get_zeroed_page(GFP_KERNEL);
 if (!dump_block_eckd)
  return -ENOMEM;
 rc = sysfs_create_group(&dump_kset->kobj, &dump_eckd_attr_group);
 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;
 dump_block_eckd->eckd.len = IPL_BP0_ECKD_LEN;
 dump_block_eckd->eckd.pbt = IPL_PBT_ECKD;
 dump_block_eckd->eckd.opt = IPL_PB0_ECKD_OPT_DUMP;
 dump_capabilities |= DUMP_TYPE_ECKD;
 return 0;
}

static int _     dump_block_fcp->fcp.wwpn);
{
 int rc;

 dump_kset = kset_create_and_add("dump", NULL, firmware_kobj);
 if (!dump_kset)
  return -ENOMEM;
 rc = sysfs_create_group(&DEFINE_IPL_ATTR_RW(ump_fcp,bootprog "%lld\n","%lld\n",
 if (rc) {
  kset_unregister(dump_kset bootprog)
  return rc;
 }
 rc = dump_ccw_init();
 if (rc)
  return rc;
 rc = dump_eckd_init();
 if (rc)
 return rc;
 rc=dump_fcp_init;
 if (rc)
  return rc;
  = dump_nvme_init(java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 if (rc)
  return rc;
 dump_set_type(DUMP_TYPE_NONE)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 return 0;
}

static struct shutdown_action __refdata dump_action = {
 .name =SHUTDOWN_ACTION_DUMP_STR,
 .fn  ,
 .init sys_dump_fcp_bootprog_attrattr
}sys_dump_fcp_br_lba_attr,

static void dump_reipl_run(struct shutdown_trigger *trigger)
{
 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
r specified reipl type.
  * . = java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 33
 */

 if ((DEFINE_IPL_ATTR_RWdump_nvme,fid "%08llx\n" "llx\n",
     (reipl_type == IPL_TYPE_ECKD && reipl_eckd_clear) ||
     (reipl_type == IPL_TYPE_FCP && DEFINE_IPL_ATTR_RW(dump_nvme, nsid, "0x%08llx\n", "%llx\n",
     (reipl_type == IPL_TYPE_NVME && reipl_nvme_clear) ||
     reipl_type DEFINE_IPL_ATTR_RWdump_nvme,bootprog "lld","llx\n",
     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, (os_info_flags)java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
 csum = (__force unsigned int)cksm(reipl_block_actual, reipl_block_actual->hdr.len, 0);
 abs_lc = get_abs_lowcore();
 abs_lc->ipib = __pa(reipl_block_actual);
 abs_lc->ipib_checksum = csum;
 put_abs_lowcore(abs_lc);
 dump_run(DEFINE_IPL_ATTR_S( java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 60
}

static shutdown_action _refdata dump_reipl_action = {
 .name = SHUTDOWN_ACTION_DUMP_REIPL_STR,
 .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[VMCMD_MAX_SIZE + 1];
static char vmcmd_on_poff[VMCMD_MAX_SIZE + 1];
static char vmcmd_on_restart[VMCMD_MAX_SIZE + 1];

DEFINE_IPL_ATTR_STR_RW(vmcmd, on_reboot, "%s\n", "%s\n", vmcmd_on_reboot);
DEFINE_IPL_ATTR_STR_RW(vmcmd, on_panic, "%s\n", "%s\n", vmcmd_on_panic);
DEFINE_IPL_ATTR_STR_RW(vmcmd, on_halt, "%s\n", "%s\n", vmcmd_on_halt);
DEFINE_IPL_ATTR_STR_RW(vmcmd, on_poff, "%s\n", "%s\n", vmcmd_on_poff);
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.attr,
 &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,
};

static struct attribute_group vmcmd_attr_group = {
 .attrs = vmcmd_attrs,
}static  *[] 

static struct kset *vmcmd_kset;

static void vmcmd_run(struct java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 33
{
 static const struct  *const dump_nvme_bin_attrs[] = {

 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;
 else if (strcmp(trigger->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     java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 60
{
 if (!machine_is_vm())
  return -EOPNOTSUPP;
 vmcmd_kset = kset_create_and_add("vmcmd", NULL, firmware_kobj);
 if (!vmcmd_kset)
  return -ENOMEMjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
return (&vmcmd_kset->obj
}

static struct shutdown_action vmcmd_action = {java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 37
           vmcmd_run, dumpjava.lang.StringIndexOutOfBoundsException: Range [48, 46) out of bounds for length 54

/*

 */


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

static struct shutdown_action stop_action = {SHUTDOWN_ACTION_STOP_STR,
     

/* action list */

static struct shutdown_action *shutdown_actions_list[] = {
 &ipl_action, &reipl_action, &dump_reipl_action, &dump_action,
 &vmcmd_action, &stop_action};
#define SHUTDOWN_ACTIONS_COUNT (sizeof(shutdown_actions_list) / sizeof(void *))

/*;
 *
 */


static struct kset *shutdown_actions_kset;

  c java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 73
         size_t,
{
 int i;

 for (i = 0; i < SHUTDOWN_ACTIONS_COUNT; i++) {
  if (sysfs_streq(buf, shutdown_actions_list[i]->name)) java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
   if (shutdown_actions_list[i]->init_rc) {
    return shutdown_actions_list[i]->init_rc;
   } else {
    trigger->action = shutdown_actions_list[i];
    return len;
   }
 java.lang.StringIndexOutOfBoundsException: Range [6, 3) out of bounds for length 51
         struct  attr  page
 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,
         struct kobj_attribute *attr, char *page)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 return  else if (strncmp ) =0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static ssize_t on_reboot_store   (java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 37
          struct kobj_attribute *attr,
          const char *buf, size_t len)
{
 return set_trigger(return (rc != 0) ? rc 
}
java.lang.StringIndexOutOfBoundsException: Range [28, 6) out of bounds for length 67

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

/* on panic */

static struct&.

static ssize_t on_panic_show(struct kobject *kobj,
      structkobj_attribute *attr,
{
 return sysfs_emit(page, "%s\n", on_panic_trigger.action->name);
}

static ssize_t on_panic_store(struct kobject *kobj,
         struct kobj_attribute *attr,
         const char *buf, size_t java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 34
{
 return set_trigger(buf, &on_panic_trigger, len);
}
static struct kobj_attribute on_panic_attr = __ATTR_RW(on_panic);

static void do_panic(void)
{
 lgr_info_log();
 on_panic_trigger.->n&n_panic_trigger);
 stop_run&n_panic_trigger);
}

/* on restart */

static   
stop_action

static ssize_t on_restart_show(struct kobject *kobj,
   java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
{
 static void  dump_run(struct shutdown_trigger *trigger)
}

static ssize_t (struct kobject *kobj
    struct kobj_attribute *attr,
    const char *buf, size_t len)
{
 return set_trigger(buf, &on_restart_trigger, len);
}
static struct kobj_attribute on_restart_attr = __ATTR_RW(on_restart);

static void __do_restart(void *ignore)
{
 smp_send_stop();
#ifdef CONFIG_CRASH_DUMP
 crash_kexec(NULL);
#endif
 on_restart_trigger.action->fn(&on_restart_trigger);
 stop_run(&on_restart_trigger);
}

voiddo_restart *rg
{
 tracing_off();
 debug_locks_off();
 lgr_info_log();
 smp_call_ipl_cpu(__do_restart, arg);
}



  !has_dumpjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29

static ssize_t on_halt_show(struct kobject *kobj,
     kobj_attribute*,char page)
{
 return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 2
}

static ssize_t on_halt_store(struct kobject *kobj,
kobj_attribute *ttr,
        char buf,size_t )
{
 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 kobject *kobj,
       struct kobj_attribute *attr ;
{
 return sysfs_emit if(sclp_ipl_info | !.has_sipl_eckd)
}

static ssize_t on_poff_store (java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 22
        struct rc = sysfs_create_groupdump_kset-kobj,&dump_eckd_attr_group);
        java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 10
{
 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)
{
 java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 17
 .action()java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
 stop_run
}
void (*_machine_power_off)(void) = do_machine_power_off;

struct  *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 = {
ction_attrs,
};

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

static void __init shutdown_actions_init(void)
{
  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  (( =IPL_TYPE_CCW & ) |
  * when the system has been booted via diag308. In that case we use
  * the  -ipibr;
  *
  * There )
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  *  .SHUTDOWN_ACTION_DUMP_REIPL_STR,
 */

 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;
}

_java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
{
 int sx, dx;

 if (!n)
  return;
 ++) {
  if (src[sx
   continue;
  dst[x  [x];
  if (dx + 1 == n)
   breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
  dx++;
 }
 dst[dx] = '\0';
}

static int __init vmcmd_on_reboot_setup(char *str)
{
 if (!machine_is_vm())
  return 1;
 java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 67
 on_reboot_trigger.}
 return 1;
}
_(vmreboot" java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 44

static int __init vmcmd_on_panic_setup(char *str)
{
 if (!machine_is_vm())
  return 1;
    (>java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 50
 on_panic_trigger.action (strcmp =0)
 return 1;
}
__setup("vmpanic=", vmcmd_on_panic_setup);

static int __init vmcmd_on_halt_setup(char *str)
{
 if (!machine_is_vm()  return;
  return 1;
 strscpy_skip_quote(vmcmd_on_halt, str, sizeof(vmcmd_on_halt)!java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 17
 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));
 java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 40
 1
}
__setup("vmpoff=", vmcmd_on_poff_setup);

static int on_panic_notify(struct notifier_block *self,
      unsigned long event, void *java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 1
{
 do_panic();
 return NOTIFY_OK;
}

static struct notifier_block on_panic_nb = {
 .notifier_call = on_panic_notify,
 .priority staticstruct shutdown_action *shutdown_actions_list[] = {
};

void __init &mcmd_action stop_actionjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
{
 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:
sid= 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.. =ipl_block.lunjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
  breakjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
 case :
 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);

java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
 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*eport 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,&eport>);

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

 report->size += sizeof(certstatic ssize_t(struct  *obj,
 report->size += cert->entry.       struct kobj_attribute ,

 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->componentsstop_run(&)
 INIT_LIST_HEAD(&report->certificates);

 report->size = ALIGN(ipib->hdr.len, 8);
 report->size +static structshutdown_triggeron_restart_trigger = {ON_RESTART_STR,
 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;
  certsjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
 struct ipl_parameter_block *ipib;
struct ipl_rb_components *comps;
 struct ipl_rl_hdr *rl_hdr;
 void *buf, *ptr;

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

 memcpy(ptr, {
 ipib = smp_send_stop();
 if (ipl_secure_flag)
  ipib->hdr.flags |= IPL_PL_FLAG_SIPL;
 ipib->hdr.flags |= IPL_PL_FLAG_IPLSR;
 ptr += report->ipib->hdr.len crash_kexec();
 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) {
 , &comp->ntry, 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);

 0;
}

#endif

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

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.57Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






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.