minix/lib/syslib/sys_irqctl.c

27 lines
790 B
C
Raw Normal View History

2005-04-21 16:53:53 +02:00
#include "syslib.h"
/*===========================================================================*
* sys_irqctl *
*===========================================================================*/
2005-05-02 16:30:04 +02:00
PUBLIC int sys_irqctl(req, irq_vec, policy, hook_id)
2005-04-21 16:53:53 +02:00
int req; /* IRQ control request */
int irq_vec; /* IRQ vector to control */
int policy; /* bit mask for policy flags */
2005-05-02 16:30:04 +02:00
int *hook_id; /* ID of IRQ hook at kernel */
2005-04-21 16:53:53 +02:00
{
message m_irq;
int s;
m_irq.m_type = SYS_IRQCTL;
m_irq.IRQ_REQUEST = req;
m_irq.IRQ_VECTOR = irq_vec;
m_irq.IRQ_POLICY = policy;
2005-05-02 16:30:04 +02:00
m_irq.IRQ_HOOK_ID = *hook_id;
2005-04-21 16:53:53 +02:00
2005-05-02 16:30:04 +02:00
s = _taskcall(SYSTASK, SYS_IRQCTL, &m_irq);
if (req == IRQ_SETPOLICY) *hook_id = m_irq.IRQ_HOOK_ID;
return(s);
2005-04-21 16:53:53 +02:00
}