On Sat, Feb 10, 2007 at 12:42:41PM +0100, Arnd Bergmann wrote:
> On Friday 09 February 2007 12:24, Arjan van de Ven wrote:
> > 
> > On Fri, 2007-02-09 at 10:57 +0000, Frederik Deweerdt wrote:
> > > +static const int __deprecated SA_INTERRUPT = IRQF_DISABLED;
> > > +static const int __deprecated SA_SAMPLE_RANDOM = IRQF_SAMPLE_RANDOM;
> > > +static const int __deprecated SA_SHIRQ = IRQF_SHARED;
> > > +static const int __deprecated SA_PROBEIRQ = IRQF_PROBE_SHARED;
> > > +static const int __deprecated SA_PERCPU = IRQF_PERCPU;
> > > +
> > > +static const int __deprecated SA_TRIGGER_LOW = IRQF_TRIGGER_LOW;
> > > +static const int __deprecated SA_TRIGGER_HIGH = IRQF_TRIGGER_HIGH;
> > > +static const int __deprecated SA_TRIGGER_FALLING = IRQF_TRIGGER_FALLING;
> > > +static const int __deprecated SA_TRIGGER_RISING = IRQF_TRIGGER_RISING;
> > > +static const int __deprecated SA_TRIGGER_MASK = IRQF_TRIGGER_MASK;
> > 
> > this will include these in every .o file for which the .c file includes
> > the header. NOT GOOD(tm)
> > 
> 
> How about this one instead then:
Well, the warning you get is not that obvious:

test.c: In function 'main':
test.c:11: warning: 'deprecated_irqf' is deprecated

And as far as I could test (gcc 4.1.1 and gcc 3.4.3), Arjan's comment is
not true, the "static const int" don't use extra space, they get
optimized away by the compiler (see http://lkml.org/lkml/2007/2/9/106).

Regards,
Frederik
> 
> Mark SA_* constants as deprecated
> 
> Signed-off-by: Arnd Bergmann <[EMAIL PROTECTED]>
> 
> --- a/include/linux/interrupt.h
> +++ b/include/linux/interrupt.h
> @@ -53,17 +53,19 @@
>   * Migration helpers. Scheduled for removal in 1/2007
>   * Do not use for new code !
>   */
> -#define SA_INTERRUPT         IRQF_DISABLED
> -#define SA_SAMPLE_RANDOM     IRQF_SAMPLE_RANDOM
> -#define SA_SHIRQ             IRQF_SHARED
> -#define SA_PROBEIRQ          IRQF_PROBE_SHARED
> -#define SA_PERCPU            IRQF_PERCPU
> -
> -#define SA_TRIGGER_LOW               IRQF_TRIGGER_LOW
> -#define SA_TRIGGER_HIGH              IRQF_TRIGGER_HIGH
> -#define SA_TRIGGER_FALLING   IRQF_TRIGGER_FALLING
> -#define SA_TRIGGER_RISING    IRQF_TRIGGER_RISING
> -#define SA_TRIGGER_MASK              IRQF_TRIGGER_MASK
> +typedef unsigned int __deprecated deprecated_irqf;
> +
> +#define SA_INTERRUPT         ((deprecated_irqf)IRQF_DISABLED)
> +#define SA_SAMPLE_RANDOM     ((deprecated_irqf)IRQF_SAMPLE_RANDOM)
> +#define SA_SHIRQ             ((deprecated_irqf)IRQF_SHARED)
> +#define SA_PROBEIRQ          ((deprecated_irqf)IRQF_PROBE_SHARED)
> +#define SA_PERCPU            ((deprecated_irqf)IRQF_PERCPU)
> +
> +#define SA_TRIGGER_LOW               ((deprecated_irqf)IRQF_TRIGGER_LOW)
> +#define SA_TRIGGER_HIGH              ((deprecated_irqf)IRQF_TRIGGER_HIGH)
> +#define SA_TRIGGER_FALLING   ((deprecated_irqf)IRQF_TRIGGER_FALLING)
> +#define SA_TRIGGER_RISING    ((deprecated_irqf)IRQF_TRIGGER_RISING)
> +#define SA_TRIGGER_MASK              ((deprecated_irqf)IRQF_TRIGGER_MASK)
>  
>  typedef irqreturn_t (*irq_handler_t)(int, void *);
>  
> 
-
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/

Reply via email to