/* Function prototypes for the system library. The prototypes in this file
- * are undefined to do_unused if the kernel call is not enabled in config.h.
+ * are undefined to NULL if the kernel call is not enabled in config.h.
* The implementation is contained in src/kernel/system/.
*
* The system library allows to access system services by doing a kernel call.
#include "proto.h"
#include "proc.h"
-/* Default handler for unused kernel calls. */
-_PROTOTYPE( int do_unused, (struct proc * caller, message *m_ptr) );
-
_PROTOTYPE( int do_exec, (struct proc * caller, message *m_ptr) );
#if ! USE_EXEC
-#define do_exec do_unused
+#define do_exec NULL
#endif
_PROTOTYPE( int do_fork, (struct proc * caller, message *m_ptr) );
#if ! USE_FORK
-#define do_fork do_unused
+#define do_fork NULL
#endif
_PROTOTYPE( int do_newmap, (struct proc * caller, message *m_ptr) );
#if ! USE_NEWMAP
-#define do_newmap do_unused
+#define do_newmap NULL
#endif
_PROTOTYPE( int do_clear, (struct proc * caller, message *m_ptr) );
#if ! USE_CLEAR
-#define do_clear do_unused
+#define do_clear NULL
#endif
_PROTOTYPE( int do_trace, (struct proc * caller, message *m_ptr) );
#if ! USE_TRACE
-#define do_trace do_unused
+#define do_trace NULL
#endif
_PROTOTYPE( int do_runctl, (struct proc * caller, message *m_ptr) );
#if ! USE_RUNCTL
-#define do_runctl do_unused
+#define do_runctl NULL
#endif
_PROTOTYPE( int do_update, (struct proc * caller, message *m_ptr) );
#if ! USE_UPDATE
-#define do_update do_unused
+#define do_update NULL
#endif
_PROTOTYPE( int do_exit, (struct proc * caller, message *m_ptr) );
#if ! USE_EXIT
-#define do_exit do_unused
+#define do_exit NULL
#endif
_PROTOTYPE( int do_copy, (struct proc * caller, message *m_ptr) );
#define do_vircopy do_copy
#if ! (USE_VIRCOPY || USE_PHYSCOPY)
-#define do_copy do_unused
+#define do_copy NULL
#endif
_PROTOTYPE( int do_umap, (struct proc * caller, message *m_ptr) );
#if ! USE_UMAP
-#define do_umap do_unused
+#define do_umap NULL
#endif
_PROTOTYPE( int do_memset, (struct proc * caller, message *m_ptr) );
#if ! USE_MEMSET
-#define do_memset do_unused
+#define do_memset NULL
#endif
_PROTOTYPE( int do_abort, (struct proc * caller, message *m_ptr) );
#if ! USE_ABORT
-#define do_abort do_unused
+#define do_abort NULL
#endif
_PROTOTYPE( int do_getinfo, (struct proc * caller, message *m_ptr) );
#if ! USE_GETINFO
-#define do_getinfo do_unused
+#define do_getinfo NULL
#endif
_PROTOTYPE( int do_privctl, (struct proc * caller, message *m_ptr) );
#if ! USE_PRIVCTL
-#define do_privctl do_unused
+#define do_privctl NULL
#endif
_PROTOTYPE( int do_segctl, (struct proc * caller, message *m_ptr) );
#if ! USE_SEGCTL
-#define do_segctl do_unused
+#define do_segctl NULL
#endif
_PROTOTYPE( int do_irqctl, (struct proc * caller, message *m_ptr) );
#if ! USE_IRQCTL
-#define do_irqctl do_unused
+#define do_irqctl NULL
#endif
_PROTOTYPE( int do_devio, (struct proc * caller, message *m_ptr) );
#if ! USE_DEVIO
-#define do_devio do_unused
+#define do_devio NULL
#endif
_PROTOTYPE( int do_vdevio, (struct proc * caller, message *m_ptr) );
#if ! USE_VDEVIO
-#define do_vdevio do_unused
+#define do_vdevio NULL
#endif
_PROTOTYPE( int do_int86, (struct proc * caller, message *m_ptr) );
_PROTOTYPE( int do_sdevio, (struct proc * caller, message *m_ptr) );
#if ! USE_SDEVIO
-#define do_sdevio do_unused
+#define do_sdevio NULL
#endif
_PROTOTYPE( int do_kill, (struct proc * caller, message *m_ptr) );
#if ! USE_KILL
-#define do_kill do_unused
+#define do_kill NULL
#endif
_PROTOTYPE( int do_getksig, (struct proc * caller, message *m_ptr) );
#if ! USE_GETKSIG
-#define do_getksig do_unused
+#define do_getksig NULL
#endif
_PROTOTYPE( int do_endksig, (struct proc * caller, message *m_ptr) );
#if ! USE_ENDKSIG
-#define do_endksig do_unused
+#define do_endksig NULL
#endif
_PROTOTYPE( int do_sigsend, (struct proc * caller, message *m_ptr) );
#if ! USE_SIGSEND
-#define do_sigsend do_unused
+#define do_sigsend NULL
#endif
_PROTOTYPE( int do_sigreturn, (struct proc * caller, message *m_ptr) );
#if ! USE_SIGRETURN
-#define do_sigreturn do_unused
+#define do_sigreturn NULL
#endif
_PROTOTYPE( int do_times, (struct proc * caller, message *m_ptr) );
#if ! USE_TIMES
-#define do_times do_unused
+#define do_times NULL
#endif
_PROTOTYPE( int do_setalarm, (struct proc * caller, message *m_ptr) );
#if ! USE_SETALARM
-#define do_setalarm do_unused
+#define do_setalarm NULL
#endif
_PROTOTYPE( int do_stime, (struct proc * caller, message *m_ptr) );
_PROTOTYPE( int do_vtimer, (struct proc * caller, message *m_ptr) );
#if ! USE_VTIMER
-#define do_vtimer do_unused
+#define do_vtimer NULL
#endif
_PROTOTYPE( int do_safecopy_to, (struct proc * caller, message *m_ptr) );
_PROTOTYPE( int do_sprofile, (struct proc * caller, message *m_ptr) );
#if ! SPROFILE
-#define do_sprofile do_unused
+#define do_sprofile NULL
#endif
_PROTOTYPE( int do_cprofile, (struct proc * caller, message *m_ptr) );
_PROTOTYPE( int do_getmcontext, (struct proc * caller, message *m_ptr) );
_PROTOTYPE( int do_setmcontext, (struct proc * caller, message *m_ptr) );
#if ! USE_MCONTEXT
-#define do_getmcontext do_unused
-#define do_setmcontext do_unused
+#define do_getmcontext NULL
+#define do_setmcontext NULL
#endif
_PROTOTYPE( int do_schedule, (struct proc * caller, message *m_ptr) );
_PROTOTYPE( int do_statectl, (struct proc * caller, message *m_ptr) );
#if ! USE_STATECTL
-#define do_statectl do_unused
+#define do_statectl NULL
#endif
#endif /* SYSTEM_H */
case IRQ_DISABLE:
if (irq_hook_id >= NR_IRQ_HOOKS || irq_hook_id < 0 ||
irq_hooks[irq_hook_id].proc_nr_e == NONE) return(EINVAL);
- if (irq_hooks[irq_hook_id].proc_nr_e != m_ptr->m_source) return(EPERM);
+ if (irq_hooks[irq_hook_id].proc_nr_e != caller->p_endpoint) return(EPERM);
if (m_ptr->IRQ_REQUEST == IRQ_ENABLE) {
enable_irq(&irq_hooks[irq_hook_id]);
}
{
printf(
"do_irqctl: IRQ check failed for proc %d, IRQ %d\n",
- m_ptr->m_source, irq_vec);
+ caller->p_endpoint, irq_vec);
return EPERM;
}
}
/* Try to find an existing mapping to override. */
hook_ptr = NULL;
for (i=0; !hook_ptr && i<NR_IRQ_HOOKS; i++) {
- if (irq_hooks[i].proc_nr_e == m_ptr->m_source
+ if (irq_hooks[i].proc_nr_e == caller->p_endpoint
&& irq_hooks[i].notify_id == notify_id) {
irq_hook_id = i;
hook_ptr = &irq_hooks[irq_hook_id]; /* existing hook */
if (hook_ptr == NULL) return(ENOSPC);
/* Install the handler. */
- hook_ptr->proc_nr_e = m_ptr->m_source; /* process to notify */
+ hook_ptr->proc_nr_e = caller->p_endpoint; /* process to notify */
hook_ptr->notify_id = notify_id; /* identifier to pass */
hook_ptr->policy = m_ptr->IRQ_POLICY; /* policy for interrupts */
put_irq_handler(hook_ptr, irq_vec, generic_handler);
if (irq_hook_id < 0 || irq_hook_id >= NR_IRQ_HOOKS ||
irq_hooks[irq_hook_id].proc_nr_e == NONE) {
return(EINVAL);
- } else if (m_ptr->m_source != irq_hooks[irq_hook_id].proc_nr_e) {
+ } else if (caller->p_endpoint != irq_hooks[irq_hook_id].proc_nr_e) {
return(EPERM);
}
/* Remove the handler and return. */