• Takashi Sakamoto's avatar
    Revert "ALSA: firewire-lib: change structure member with proper type" · e4f34cf6
    Takashi Sakamoto authored
    This reverts commit 6b7e95d1. This commit
    is based on a concern about value of the given parameter. It's expected
    to be ORed value with some enumeration-constants, thus often it can not be
    one of the enumeration-constants. I understood that this is out of
    specification and causes implementation-dependent issues.
    
    In C language specification, enumerated type can be interpreted as an
    integer type, in which all of enumeration-constants in corresponding
    enumerator-list can be stored. Implementations can select one of char,
    signed int and unsigned int as its type, and this selection is
    implementation-dependent.
    
    In GCC, a signed integer is selected when at least one of
    enumeration-constants has negative value, else an unsigned integer is
    selected. This behaviour can be switched by -fshort-enums to short type.
    Anyway, the type can be decided after scanning all of
    enumeration-constants.
    
    Totally, there's no rules to constrain the value of enumerated type to
    be one of enumeration-constants. In short, in enumerated type, decision
    of actual type for the type is the most important and
    enumeration-constants are just used for the decision, thus it's permitted
    to have an integer value in a range of enumeration-constants. In our case,
    actual type for the type is currently deterministic to be either char or
    unsigned int. Under GCC, it's unsigned int.
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    e4f34cf6
amdtp-stream.c 23.9 KB