Message ID | 20180221165628.78946-1-pasic@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 21.02.2018 17:56, Halil Pasic wrote: > The 'bit' field of the 'S390FeatDef' structure is not applicable to all > its instances. Currently this field is not applicable, and remains > unused, iff the feature is of type S390_FEAT_TYPE_MISC. Having the value 0 > specified for multiple such feature definition was a little confusing, s/ / / > as it's a perfectly legit bit value, and as the value of the bit > field is usually ought to be unique for each feature of a given > feature type. > > Let us introduce a specialized macro for defining features of type > S390_FEAT_TYPE_MISC so, that one does not have to specify neither bit nor > type (as the later is implied). s/later is implied/latter is implicit/ > > Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> > --- > > v1 -> v2 > * Specialized feature initializer macro for type MISC that does not > require a bit value instead of defining a 'not a bit number' (that > is extremal) bit number. > --- > target/s390x/cpu_features.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c > index a5619f2893..3b9e2745e9 100644 > --- a/target/s390x/cpu_features.c > +++ b/target/s390x/cpu_features.c > @@ -23,6 +23,10 @@ > .desc = _desc, \ > } > > +/* S390FeatDef.bit is not applicable as there is no feature block. */ > +#define FEAT_INIT_MISC(_name, _desc) \ > + FEAT_INIT(_name, S390_FEAT_TYPE_MISC, 0, _desc) > + > /* indexed by feature number for easy lookup */ > static const S390FeatDef s390_features[] = { > FEAT_INIT("esan3", S390_FEAT_TYPE_STFL, 0, "Instructions marked as n3"), > @@ -123,8 +127,8 @@ static const S390FeatDef s390_features[] = { > FEAT_INIT("ib", S390_FEAT_TYPE_SCLP_CPU, 42, "SIE: Intervention bypass facility"), > FEAT_INIT("cei", S390_FEAT_TYPE_SCLP_CPU, 43, "SIE: Conditional-external-interception facility"), > > - FEAT_INIT("dateh2", S390_FEAT_TYPE_MISC, 0, "DAT-enhancement facility 2"), > - FEAT_INIT("cmm", S390_FEAT_TYPE_MISC, 0, "Collaborative-memory-management facility"), > + FEAT_INIT_MISC("dateh2", "DAT-enhancement facility 2"), > + FEAT_INIT_MISC("cmm", "Collaborative-memory-management facility"), > > FEAT_INIT("plo-cl", S390_FEAT_TYPE_PLO, 0, "PLO Compare and load (32 bit in general registers)"), > FEAT_INIT("plo-clg", S390_FEAT_TYPE_PLO, 1, "PLO Compare and load (64 bit in parameter list)"), > Reviewed-by: David Hildenbrand <david@redhat.com>
On Wed, 21 Feb 2018 18:29:19 +0100 David Hildenbrand <david@redhat.com> wrote: > On 21.02.2018 17:56, Halil Pasic wrote: s/390x/s390x/ > > The 'bit' field of the 'S390FeatDef' structure is not applicable to all > > its instances. Currently this field is not applicable, and remains > > unused, iff the feature is of type S390_FEAT_TYPE_MISC. Having the value 0 > > specified for multiple such feature definition was a little confusing, > > s/ / / also s/definition/definitions/ > > > as it's a perfectly legit bit value, and as the value of the bit > > field is usually ought to be unique for each feature of a given > > feature type. > > > > Let us introduce a specialized macro for defining features of type > > S390_FEAT_TYPE_MISC so, that one does not have to specify neither bit nor > > type (as the later is implied). > > s/later is implied/latter is implicit/ I kept 'implied'. > > > > > Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> > > --- > > > > v1 -> v2 > > * Specialized feature initializer macro for type MISC that does not > > require a bit value instead of defining a 'not a bit number' (that > > is extremal) bit number. > > --- > > target/s390x/cpu_features.c | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) (...) > Reviewed-by: David Hildenbrand <david@redhat.com> Thanks, applied.
On 02/21/2018 05:56 PM, Halil Pasic wrote: > The 'bit' field of the 'S390FeatDef' structure is not applicable to all > its instances. Currently this field is not applicable, and remains > unused, iff the feature is of type S390_FEAT_TYPE_MISC. Having the value 0 > specified for multiple such feature definition was a little confusing, > as it's a perfectly legit bit value, and as the value of the bit > field is usually ought to be unique for each feature of a given > feature type. > > Let us introduce a specialized macro for defining features of type > S390_FEAT_TYPE_MISC so, that one does not have to specify neither bit nor > type (as the later is implied). > > Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> > --- > > v1 -> v2 > * Specialized feature initializer macro for type MISC that does not > require a bit value instead of defining a 'not a bit number' (that > is extremal) bit number. > --- > target/s390x/cpu_features.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c > index a5619f2893..3b9e2745e9 100644 > --- a/target/s390x/cpu_features.c > +++ b/target/s390x/cpu_features.c > @@ -23,6 +23,10 @@ > .desc = _desc, \ > } > > +/* S390FeatDef.bit is not applicable as there is no feature block. */ > +#define FEAT_INIT_MISC(_name, _desc) \ > + FEAT_INIT(_name, S390_FEAT_TYPE_MISC, 0, _desc) > + > /* indexed by feature number for easy lookup */ > static const S390FeatDef s390_features[] = { > FEAT_INIT("esan3", S390_FEAT_TYPE_STFL, 0, "Instructions marked as n3"), > @@ -123,8 +127,8 @@ static const S390FeatDef s390_features[] = { > FEAT_INIT("ib", S390_FEAT_TYPE_SCLP_CPU, 42, "SIE: Intervention bypass facility"), > FEAT_INIT("cei", S390_FEAT_TYPE_SCLP_CPU, 43, "SIE: Conditional-external-interception facility"), > > - FEAT_INIT("dateh2", S390_FEAT_TYPE_MISC, 0, "DAT-enhancement facility 2"), > - FEAT_INIT("cmm", S390_FEAT_TYPE_MISC, 0, "Collaborative-memory-management facility"), > + FEAT_INIT_MISC("dateh2", "DAT-enhancement facility 2"), > + FEAT_INIT_MISC("cmm", "Collaborative-memory-management facility"), > > FEAT_INIT("plo-cl", S390_FEAT_TYPE_PLO, 0, "PLO Compare and load (32 bit in general registers)"), > FEAT_INIT("plo-clg", S390_FEAT_TYPE_PLO, 1, "PLO Compare and load (64 bit in parameter list)"), >
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c index a5619f2893..3b9e2745e9 100644 --- a/target/s390x/cpu_features.c +++ b/target/s390x/cpu_features.c @@ -23,6 +23,10 @@ .desc = _desc, \ } +/* S390FeatDef.bit is not applicable as there is no feature block. */ +#define FEAT_INIT_MISC(_name, _desc) \ + FEAT_INIT(_name, S390_FEAT_TYPE_MISC, 0, _desc) + /* indexed by feature number for easy lookup */ static const S390FeatDef s390_features[] = { FEAT_INIT("esan3", S390_FEAT_TYPE_STFL, 0, "Instructions marked as n3"), @@ -123,8 +127,8 @@ static const S390FeatDef s390_features[] = { FEAT_INIT("ib", S390_FEAT_TYPE_SCLP_CPU, 42, "SIE: Intervention bypass facility"), FEAT_INIT("cei", S390_FEAT_TYPE_SCLP_CPU, 43, "SIE: Conditional-external-interception facility"), - FEAT_INIT("dateh2", S390_FEAT_TYPE_MISC, 0, "DAT-enhancement facility 2"), - FEAT_INIT("cmm", S390_FEAT_TYPE_MISC, 0, "Collaborative-memory-management facility"), + FEAT_INIT_MISC("dateh2", "DAT-enhancement facility 2"), + FEAT_INIT_MISC("cmm", "Collaborative-memory-management facility"), FEAT_INIT("plo-cl", S390_FEAT_TYPE_PLO, 0, "PLO Compare and load (32 bit in general registers)"), FEAT_INIT("plo-clg", S390_FEAT_TYPE_PLO, 1, "PLO Compare and load (64 bit in parameter list)"),
The 'bit' field of the 'S390FeatDef' structure is not applicable to all its instances. Currently this field is not applicable, and remains unused, iff the feature is of type S390_FEAT_TYPE_MISC. Having the value 0 specified for multiple such feature definition was a little confusing, as it's a perfectly legit bit value, and as the value of the bit field is usually ought to be unique for each feature of a given feature type. Let us introduce a specialized macro for defining features of type S390_FEAT_TYPE_MISC so, that one does not have to specify neither bit nor type (as the later is implied). Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com> --- v1 -> v2 * Specialized feature initializer macro for type MISC that does not require a bit value instead of defining a 'not a bit number' (that is extremal) bit number. --- target/s390x/cpu_features.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)