Re: [PATCH 1/7]: PCI revised (2) [PATCH 16/42]: PCI: PCI Error reporting callbacks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Mon, 7 Nov 2005, Greg KH wrote:
> 
> >  enum pci_channel_state {
> > -	pci_channel_io_normal = 0,	/* I/O channel is in normal state */
> > -	pci_channel_io_frozen = 1,	/* I/O to channel is blocked */
> > -	pci_channel_io_perm_failure,	/* PCI card is dead */
> > +	pci_channel_io_normal = (__force pci_channel_state_t) 0,	/* I/O channel is in normal state */
> > +	pci_channel_io_frozen = (__force pci_channel_state_t) 1,	/* I/O to channel is blocked */
> > +	pci_channel_io_perm_failure = (__force pci_channel_state_t) 2,	/* PCI card is dead */
> >  };
> 
> You don't have to use an enum anymore, just use a #define.

The enum works fine, though, and has less namespace pollution than a 
#define, so sometimes an enum can be preferred.

HOWEVER. For sanity, if possible please avoid using the value "0". It's 
magic for __bitwise, in that a zero is always acceptable as a bitwise 
thing (which makes sense if you think of bitwise as being about bits: the 
zero representation is totally independent of any bit ordering).

So it's better to start counting from 1 if possible.

> Sparse developers, I see code in the kernel that that does both 
> (__force foo_t) and (foo_t __force).  Which one is correct?

sparse doesn't care. Whatever scans better for humans. Attributes like 
"force" parse the same way things like "const" and "volatile" parses, and 
while most people _tend_ to write "const int", it's not incorrect to write 
"int const". Same with "__attribute__((force))", aka __force.

			Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux