Created SILC Crypto Toolkit git repository.
[crypto.git] / lib / silcutil / silcfsm_i.h
diff --git a/lib/silcutil/silcfsm_i.h b/lib/silcutil/silcfsm_i.h
deleted file mode 100644 (file)
index 50475da..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
-
-  silcfsm_i.h
-
-  Author: Pekka Riikonen <priikone@silcnet.org>
-
-  Copyright (C) 2005 - 2006 Pekka Riikonen
-
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; version 2 of the License.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-*/
-
-#ifndef SILCFSM_I_H
-#define SILCFSM_I_H
-
-#ifndef SILCFSM_H
-#error "Do not include this header directly"
-#endif
-
-/* FSM state status */
-typedef enum {
-  SILC_FSM_ST_CONTINUE,             /* Continue immediately to next state */
-  SILC_FSM_ST_YIELD,        /* Continue to next state through scheduler */
-  SILC_FSM_ST_WAIT,         /* Wait for some async call or timeout */
-  SILC_FSM_ST_FINISH,       /* Finish state machine and call destructor
-                               through scheduler */
-} SilcFSMStatus;
-
-/* Event structure, holds list of FSM machines that are waiting for this
-   event.  The SilcFSM has *next; pointer that is used with SilcList.
-   Internally events act as semaphore counters. */
-struct SilcFSMEventObject {
-  SilcFSM fsm;                         /* Machine */
-  SilcList waiters;                    /* List of SilcFSM pointers */
-  unsigned int value     : 21;         /* Current event semaphore value */
-  unsigned int refcnt    : 10;         /* Reference counter */
-  unsigned int allocated : 1;          /* Set if allocated */
-};
-
-/* FSM and FSM thread context */
-struct SilcFSMObject {
-  struct SilcFSMObject *next;
-  void *fsm_context;                   /* Caller's context */
-  SilcSchedule schedule;               /* Scheduler */
-  SilcFSMEvent event;                  /* Valid if waiting event timeout */
-  SilcFSMStateCallback next_state;     /* Next state in machine */
-  void *state_context;                 /* Extra state specific context */
-  SilcFSMDestructor destructor;                /* Destructor */
-  void *destructor_context;
-  union {
-    /* Machine */
-    struct {
-      SilcAtomic32 threads;            /* Number of threads */
-      SilcMutex lock;                  /* Lock, valid if using real threads */
-    } m;
-
-    /* Thread */
-    struct {
-      struct SilcFSMObject *fsm;       /* Machine */
-      SilcFSMEvent event;               /* Event for waiting termination */
-    } t;
-  } u;
-  unsigned int thread           : 1;   /* Set if this is thread */
-  unsigned int real_thread      : 1;    /* Set if to use real threads */
-  unsigned int async_call       : 1;    /* Set if called real async call */
-  unsigned int finished         : 1;    /* Set if SILC_FSM_FINISH returned */
-  unsigned int event_timedout   : 1;    /* Set if waiting event timedout */
-  unsigned int synchronous      : 1;    /* Set if silc_fsm_start_sync called */
-  unsigned int next_later       : 1;    /* Set if silc_fsm_next_later called */
-  unsigned int started          : 1;    /* Set when started and not finished */
-};
-
-/* Event signal context */
-typedef struct {
-  SilcFSMEvent event;                  /* Event */
-  SilcFSM fsm;                         /* Signalled FSM */
-} *SilcFSMEventSignal;
-
-/* Used internally by the SILC_FSM_CALL macros to detect whether async
-   call is really async or not. */
-static inline
-SilcBool silc_fsm_set_call(struct SilcFSMObject *fsm, SilcBool async_call)
-{
-  SilcBool old = fsm->async_call;
-  fsm->async_call = async_call;
-  return old;
-}
-
-/* Wait for thread to terminate */
-SilcBool silc_fsm_thread_wait(void *fsm, void *thread);
-
-/* Events */
-SilcUInt32 silc_fsm_event_wait(SilcFSMEvent event, void *fsm);
-SilcUInt32 silc_fsm_event_timedwait(SilcFSMEvent event, void *fsm,
-                                   SilcUInt32 seconds, SilcUInt32 useconds,
-                                   SilcBool *ret_to);
-void silc_fsm_event_signal(SilcFSMEvent event);
-
-#endif /* SILCFSM_I_H */