| 822 | } |
| 823 | |
| 824 | rt_err_t rt_pic_irq_set_affinity(int irq, rt_bitmap_t *affinity) |
| 825 | { |
| 826 | rt_err_t err = -RT_EINVAL; |
| 827 | struct rt_pic_irq *pirq; |
| 828 | |
| 829 | if (affinity && (pirq = irq2pirq(irq))) |
| 830 | { |
| 831 | rt_hw_spin_lock(&pirq->rw_lock.lock); |
| 832 | |
| 833 | if (pirq->pic->ops->irq_set_affinity) |
| 834 | { |
| 835 | err = pirq->pic->ops->irq_set_affinity(pirq, affinity); |
| 836 | |
| 837 | if (!err) |
| 838 | { |
| 839 | rt_memcpy(pirq->affinity, affinity, sizeof(pirq->affinity)); |
| 840 | } |
| 841 | } |
| 842 | else |
| 843 | { |
| 844 | err = -RT_ENOSYS; |
| 845 | } |
| 846 | |
| 847 | rt_hw_spin_unlock(&pirq->rw_lock.lock); |
| 848 | } |
| 849 | |
| 850 | return err; |
| 851 | } |
| 852 | |
| 853 | rt_err_t rt_pic_irq_get_affinity(int irq, rt_bitmap_t *out_affinity) |
| 854 | { |
no test coverage detected