/*
 *  ======== daemon ========
 */
static Int daemon(Void)
{

    GT_0trace(curTrace, GT_1CLASS, "daemon> thread created.\n");

    for (;;) {
        Processor_Handle proc;

        switch (getCmd(&proc)) {
            case CREATE: {
                putReply(procCreate(proc) ? SUCCESS : FAILURE);
                break;
            }

            case DELETE: {
                /* GT_1trace(curTrace, GT_ENTER, "daemon(0x%x) deleting ...\n",
                 *   proc);
                 */
                procDelete(proc);
                /* GT_1trace(curTrace, GT_ENTER, "daemon(0x%x) replying ...\n",
                 *   proc);
                 */
                putReply(SUCCESS);

                break;
            }

            case EXIT: {
                //GT_0trace(curTrace, GT_1CLASS, "daemon> thread terminating\n");
                putReply(SUCCESS);
                return (0);
            }

            default: {
                break;
            }
        }
    }
}
/*
 *  ======== daemon ========
 */
static Int daemon(Void)
{

    Log_print0(Diags_USER1, "[+1] daemon> thread created.");

    for (;;) {
        Processor_Handle proc;

        switch (getCmd(&proc)) {
            case CREATE: {
                putReply(procCreate(proc) ? SUCCESS : FAILURE);
                break;
            }

            case DELETE: {
                /* Log_print1(Diags_USER1, "daemon(0x%x) deleting ...",
                 *   (IArg)proc);
                 */
                procDelete(proc);
                /* Log_print1(Diags_USER1, "daemon(0x%x) replying ...",
                 *   (IArg)proc);
                 */
                putReply(SUCCESS);

                break;
            }

            case EXIT: {
                //Log_print0(Diags_USER1, "daemon> thread terminating");
                putReply(SUCCESS);
                return (0);
            }

            default: {
                break;
            }
        }
    }
}