# define IRQ_WORD 0x200 /* word values */
# define IRQ_LONG 0x400 /* long values */
-/* Field names for SYS_IOPENABLE. */
-#define IOP_ENDPT m2_l1 /* target endpoint */
-
/* Field names for _UMAP, _VIRCOPY, _PHYSCOPY. */
#define CP_SRC_ENDPT m5_i1 /* process to copy from */
#define CP_SRC_ADDR m5_l1 /* address where data come from */
} mess_lsys_krn_sys_abort;
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_abort);
+typedef struct {
+ endpoint_t endpt;
+
+ uint8_t padding[52];
+} mess_lsys_krn_sys_iopenable;
+_ASSERT_MSG_SIZE(mess_lsys_krn_sys_iopenable);
+
typedef struct {
int request;
int vector;
mess_lsys_krn_schedctl m_lsys_krn_schedctl;
mess_lsys_krn_schedule m_lsys_krn_schedule;
mess_lsys_krn_sys_abort m_lsys_krn_sys_abort;
+ mess_lsys_krn_sys_iopenable m_lsys_krn_sys_iopenable;
mess_lsys_krn_sys_irqctl m_lsys_krn_sys_irqctl;
mess_lsys_krn_sys_memset m_lsys_krn_sys_memset;
mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio;
* m_type: SYS_IOPENABLE
*
* The parameters for this system call are:
- * m2_i2: IOP_ENDPT (process to give I/O Protection Level bits)
+ * m_lsys_krn_sys_iopenable.endpt (process to give I/O Protection Level bits)
*
* Author:
* Jorrit N. Herder <jnherder@cs.vu.nl>
int proc_nr;
#if 1 /* ENABLE_USERPRIV && ENABLE_USERIOPL */
- if (m_ptr->IOP_ENDPT == SELF) {
+ if (m_ptr->m_lsys_krn_sys_iopenable.endpt == SELF) {
okendpt(caller->p_endpoint, &proc_nr);
- } else if(!isokendpt(m_ptr->IOP_ENDPT, &proc_nr))
+ } else if(!isokendpt(m_ptr->m_lsys_krn_sys_iopenable.endpt, &proc_nr))
return(EINVAL);
enable_iop(proc_addr(proc_nr));
return(OK);
endpoint_t proc_ep; /* number of process to allow I/O */
{
message m_iop;
- m_iop.IOP_ENDPT = proc_ep;
+ m_iop.m_lsys_krn_sys_iopenable.endpt = proc_ep;
return _kernel_call(SYS_IOPENABLE, &m_iop);
}