/*
**	$VER: daemon.c 1.0 (02.11.94)
**
**	start & stop a daemon process in a shared library
**
**	© Copyright 1994 by Norbert Püschel
**	All Rights Reserved
*/

#include <proto/exec.h>
#include <proto/dos.h>

struct Daemon {
  struct Process         *dm_Process;
  struct SignalSemaphore  dm_Sync;
  BYTE                    dm_Signal;
  struct DosPacket       *dm_Startup;
};

void InitDaemon(volatile struct Daemon *dm);
BOOL StartDaemon(volatile struct Daemon *dm,void (*func)(void),STRPTR name,BYTE pri);
void StopDaemon(volatile struct Daemon *dm);

volatile struct Daemon *DaemonInit(void);
void DaemonInitOK(volatile struct Daemon *dm);
void DaemonExit(volatile struct Daemon *dm);

#define DaemonOK(dm)     ((dm)->dm_Signal != -1)
#define DaemonSignal(dm) ((dm)->dm_Signal)
