ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • error: ‘SA_INTERRUPT’ undeclared
    Raspberry Pi/Linux Device Driver Programming 2015. 2. 11. 14:22





    언제 부터 변경된 건지는 확실치 않지만 현재 쓰는 리눅스 버전에서는 SA_INTERRUPT 대신에  IRQF_DISABLED를 사용하는 거로 바뀐거 같다..


    http://lwn.net/Articles/229673/ 에 따르면 대응관계는 다음과 같다..

    +#define SA_INTERRUPT		deprecated_irq_flag(IRQF_DISABLED)
    +#define SA_SAMPLE_RANDOM	deprecated_irq_flag(IRQF_SAMPLE_RANDOM)
    +#define SA_SHIRQ		deprecated_irq_flag(IRQF_SHARED)
    +#define SA_PROBEIRQ		deprecated_irq_flag(IRQF_PROBE_SHARED)
    +#define SA_PERCPU		deprecated_irq_flag(IRQF_PERCPU)
    +
    +#define SA_TRIGGER_LOW		deprecated_irq_flag(IRQF_TRIGGER_LOW)
    +#define SA_TRIGGER_HIGH		deprecated_irq_flag(IRQF_TRIGGER_HIGH)
    +#define SA_TRIGGER_FALLING	deprecated_irq_flag(IRQF_TRIGGER_FALLING)
    +#define SA_TRIGGER_RISING	deprecated_irq_flag(IRQF_TRIGGER_RISING)
    +#define SA_TRIGGER_MASK		deprecated_irq_flag(IRQF_TRIGGER_MASK)


    각각의 상수에 대한 정의는 

    http://lxr.free-electrons.com/source/include/linux/interrupt.h#L128에 나와 있음..

     38 /*
     39  * These flags used only by the kernel as part of the
     40  * irq handling routines.
     41  *
     42  * IRQF_DISABLED - keep irqs disabled when calling the action handler.
     43  *                 DEPRECATED. This flag is a NOOP and scheduled to be removed
     44  * IRQF_SHARED - allow sharing the irq among several devices
     45  * IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur
     46  * IRQF_TIMER - Flag to mark this interrupt as timer interrupt
     47  * IRQF_PERCPU - Interrupt is per cpu
     48  * IRQF_NOBALANCING - Flag to exclude this interrupt from irq balancing
     49  * IRQF_IRQPOLL - Interrupt is used for polling (only the interrupt that is
     50  *                registered first in an shared interrupt is considered for
     51  *                performance reasons)
     52  * IRQF_ONESHOT - Interrupt is not reenabled after the hardirq handler finished.
     53  *                Used by threaded interrupts which need to keep the
     54  *                irq line disabled until the threaded handler has been run.
     55  * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend
     56  * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set
     57  * IRQF_NO_THREAD - Interrupt cannot be threaded
     58  * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device
     59  *                resume time.
     60  */
     61 #define IRQF_DISABLED           0x00000020
     62 #define IRQF_SHARED             0x00000080
     63 #define IRQF_PROBE_SHARED       0x00000100
     64 #define __IRQF_TIMER            0x00000200
     65 #define IRQF_PERCPU             0x00000400
     66 #define IRQF_NOBALANCING        0x00000800
     67 #define IRQF_IRQPOLL            0x00001000
     68 #define IRQF_ONESHOT            0x00002000
     69 #define IRQF_NO_SUSPEND         0x00004000
     70 #define IRQF_FORCE_RESUME       0x00008000
     71 #define IRQF_NO_THREAD          0x00010000
     72 #define IRQF_EARLY_RESUME       0x00020000


    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 0

Designed by Tistory.