Restore the ability to write to mbbi/mbbo *VL fields

Fixes lp: #1794196
This commit is contained in:
Andrew Johnson
2018-09-25 10:56:57 -05:00
parent 7c5892adbf
commit 9a454bea68
2 changed files with 28 additions and 20 deletions

View File

@@ -217,16 +217,6 @@ static long special(DBADDR *paddr, int after)
switch (paddr->special) {
case SPC_MOD:
if (fieldIndex >= mbbiRecordZRST && fieldIndex <= mbbiRecordFFST) {
int event = DBE_PROPERTY;
if (!after) return 0;
init_common(prec);
if (prec->val == fieldIndex - mbbiRecordZRST)
event |= DBE_VALUE | DBE_LOG;
db_post_events(prec, &prec->val, event);
return 0;
}
if (fieldIndex == mbbiRecordSIMM) {
if (!after)
recGblSaveSimm(prec->sscn, &prec->oldsimm, prec->simm);
@@ -234,6 +224,20 @@ static long special(DBADDR *paddr, int after)
recGblCheckSimm((dbCommon *)prec, &prec->sscn, prec->oldsimm, prec->simm);
return 0;
}
if (!after)
return 0;
init_common(prec);
/* Note: ZRVL..FFVL are also SPC_MOD */
if (fieldIndex >= mbbiRecordZRST && fieldIndex <= mbbiRecordFFST) {
int event = DBE_PROPERTY;
if (prec->val == fieldIndex - mbbiRecordZRST)
event |= DBE_VALUE | DBE_LOG;
db_post_events(prec, &prec->val, event);
}
return 0;
default:
recGblDbaddrError(S_db_badChoice, paddr, "mbbi: special");
return S_db_badChoice;

View File

@@ -273,16 +273,6 @@ static long special(DBADDR *paddr, int after)
switch (paddr->special) {
case SPC_MOD:
if (fieldIndex >= mbboRecordZRST && fieldIndex <= mbboRecordFFST) {
int event = DBE_PROPERTY;
if (!after) return 0;
init_common(prec);
if (prec->val == fieldIndex - mbboRecordZRST)
event |= DBE_VALUE | DBE_LOG;
db_post_events(prec, &prec->val, event);
return 0;
}
if (fieldIndex == mbboRecordSIMM) {
if (!after)
recGblSaveSimm(prec->sscn, &prec->oldsimm, prec->simm);
@@ -290,6 +280,20 @@ static long special(DBADDR *paddr, int after)
recGblCheckSimm((dbCommon *)prec, &prec->sscn, prec->oldsimm, prec->simm);
return 0;
}
if (!after)
return 0;
init_common(prec);
/* Note: ZRVL..FFVL are also SPC_MOD */
if (fieldIndex >= mbboRecordZRST && fieldIndex <= mbboRecordFFST) {
int event = DBE_PROPERTY;
if (prec->val == fieldIndex - mbboRecordZRST)
event |= DBE_VALUE | DBE_LOG;
db_post_events(prec, &prec->val, event);
}
return 0;
default:
recGblDbaddrError(S_db_badChoice, paddr, "mbbo: special");
return S_db_badChoice;