crw
typedef void (*crw_handler_t)(struct crw *, struct crw *, int);
static void chp_process_crw(struct crw *crw0, struct crw *crw1,
static void chsc_process_crw(struct crw *crw0, struct crw *crw1, int overflow)
memset(&crw, 0, sizeof(crw));
crw.slct = slct;
crw.oflw = oflw;
crw.chn = chn;
crw.rsc = rsc;
crw.anc = anc;
crw.erc = erc;
crw.rsid = rsid;
rc = crw_inject(&crw);
static struct crw *crw_inject_data;
static int crw_inject(struct crw *crw)
struct crw *copy;
copy = kmemdup(crw, sizeof(*crw), GFP_KERNEL);
int stcrw_get_injected(struct crw *crw)
memcpy(crw, crw_inject_data, sizeof(*crw));
struct crw crw;
int stcrw_get_injected(struct crw *crw);
crw[chain].slct, crw[chain].oflw, crw[chain].chn,
crw[chain].rsc, crw[chain].anc, crw[chain].erc,
crw[chain].rsid);
if (crw[chain].oflw) {
if (crw[0].chn && !chain) {
handler = crw_handlers[crw[chain].rsc];
handler(&crw[0], chain ? &crw[1] : NULL, 0);
chain = crw[chain].chn ? chain + 1 : 0;
struct crw crw[2];
struct crw tmp_crw;
ccode = stcrw(&crw[chain]);
static void css_process_crw(struct crw *crw0, struct crw *crw1, int overflow)
static inline int __stcrw(struct crw *crw)
: CC_OUT(cc, ccode), [crw] "=Q" (*crw)
static inline int _stcrw(struct crw *crw)
if (stcrw_get_injected(crw) == 0)
return __stcrw(crw);
int stcrw(struct crw *crw)
ccode = _stcrw(crw);
trace_s390_cio_stcrw(crw, ccode);
int stcrw(struct crw *crw);
TP_PROTO(struct crw *crw, int cc),
TP_ARGS(crw, cc),
__field_struct(struct crw, crw)
__entry->crw = *crw;
__entry->slct = crw->slct;
__entry->oflw = crw->oflw;
__entry->chn = crw->chn;
__entry->rsc = crw->rsc;
__entry->anc = crw->anc;
__entry->erc = crw->erc;
__entry->rsid = crw->rsid;
if (crw)
memcpy(®ion->crw, &crw->crw, sizeof(region->crw));
region->crw = 0;
kfree(crw);
if (!list_empty(&private->crw) && private->crw_trigger)
struct vfio_ccw_crw *crw;
crw = list_first_entry_or_null(&private->crw,
if (crw)
list_del(&crw->next);
if (!list_empty(&private->crw) && private->crw_trigger)
struct vfio_ccw_crw *crw;
crw = kzalloc_obj(*crw, GFP_ATOMIC);
if (!crw)
crw->crw.rsc = rsc;
crw->crw.erc = erc;
crw->crw.rsid = rsid;
list_add_tail(&crw->next, &private->crw);
struct vfio_ccw_crw *crw, *temp;
list_for_each_entry_safe(crw, temp, &private->crw, next) {
list_del(&crw->next);
kfree(crw);
INIT_LIST_HEAD(&private->crw);
struct list_head crw;
struct crw crw;
int crw = 0, orw = 0;
crw = 1;
if (cifs_convert_flags(oflags, orw) != cifs_convert_flags(cflags, crw))
__u32 crw;