
Dear Anton Staaf,
In message CAF6FioVs5rsF27Boq9+Bb+3Cgdh2m=jj1c=41a-32muBUd9wtw@mail.gmail.com you wrote:
Sorry, but because such code is unportable we do not accept it, as it would lead to driver code that becomes unportable, too.
I know that this is throwing more fuel on the fire (for which I am sorry),
You don't have to apologize. I think it is important that everybody understands the reasons behind such decisions.
but I don't follow the argument that this is unportable. As far as I can tell, the # : # syntax is not using any special compiler extensions, it is simply substituted into a (boo) ? # : # expression, thus extracting either the first of second number from the definition of the bit field.
If I am wrong I would be interested to know what about this is not standard pre-processor usage?
I did not say anything about preprocessor issues. The use of bit numbers (and ranges of bit numbers) in code is inherently unportable.
For example:
"Bit 10" means 0x00000400 on some systems (like, for example, on ARM), but it means 0x00200000 on others (like, for example, on PPC).
On many systems bit 0 means trhe LSB, but the Power Architecture defines it as the MSB. Thus bit numbers should never be used in any code to access bits or to create masks etc. - they are not generally applicable.
Best regards,
Wolfgang Denk