Remove some old craft
[platform/upstream/rpm.git] / rpmio / rpmsq.h
index 8fc3ff3..00a1a72 100644 (file)
@@ -5,80 +5,46 @@
  * \file rpmio/rpmsq.h
  *
  */
-
-#include <rpmsw.h>
+#include <rpm/rpmsw.h>
+#include <signal.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/**
- */
-typedef struct rpmsig_s * rpmsig;
-
-/**
- */
-typedef struct rpmsqElem * rpmsq;
-
-/**
+/** \ingroup rpmsq
  * Default signal handler prototype.
  * @param signum       signal number
  * @param info         (siginfo_t) signal info
  * @param context      signal context
  */
-typedef void (*rpmsqAction_t) (int signum, void * info, void * context);
-
-extern int _rpmsq_debug;
-
-/* XXX make this fully opaque? */
-#if defined(_RPMSQ_INTERNAL)
-/**
- * SIGCHLD queue element.
- */
-struct rpmsqElem {
-    struct rpmsqElem * q_forw; /*!< for use by insque(3)/remque(3). */
-    struct rpmsqElem * q_back;
-    pid_t child;               /*!< Currently running child. */
-    volatile pid_t reaped;     /*!< Reaped waitpid(3) return. */
-    volatile int status;       /*!< Reaped waitpid(3) status. */
-    struct rpmop_s op;         /*!< Scriptlet operation timestamp; */
-    rpmtime_t ms_scriptlets;   /*!< Accumulated script duration (msecs). */
-    int reaper;                        /*!< Register SIGCHLD handler? */
-    int pipes[2];              /*!< Parent/child interlock. */
-    void * id;                 /*!< Blocking thread id (pthread_t). */
-    pthread_mutex_t mutex;     /*!< Signal delivery to thread condvar. */
-    pthread_cond_t cond;
-};
-#endif /* _RPMSQ_INTERNAL */
-
-extern rpmsq rpmsqQueue;
-
-extern sigset_t rpmsqCaught;
-
-/**
- * Insert node into from queue.
- * @param elem         node to link
- * @param prev         previous node from queue
- * @return             0 on success
- */
-int rpmsqInsert(void * elem, void * prev);
+#ifdef SA_SIGINFO
+typedef void (*rpmsqAction_t) (int signum, siginfo_t * info, void * context);
+#else
+typedef void (*rpmsqAction_t) (int signum);
+#endif
 
-/**
- * Remove node from queue.
- * @param elem         node to link
- * @return             0 on success
+/** \ingroup rpmsq
+ * Test if given signal has been caught (while signals blocked).
+ * Similar to sigismember() but operates on internal signal queue.
+ * @param signum       signal to test for
+ * @return             1 if caught, 0 if not and -1 on error
  */
-int rpmsqRemove(void * elem);
+int rpmsqIsCaught(int signum);
 
-/**
+/** \ingroup rpmsq
  * Default signal handler.
  * @param signum       signal number
  * @param info         (siginfo_t) signal info
  * @param context      signal context
  */
-void rpmsqAction(int signum, void * info, void * context);
+#ifdef SA_SIGINFO
+void rpmsqAction(int signum, siginfo_t * info, void * context);
+#else
+void rpmsqAction(int signum);
+#endif
 
-/**
+/** \ingroup rpmsq
  * Enable or disable a signal handler.
  * @param signum       signal to enable (or disable if negative)
  * @param handler      sa_sigaction handler (or NULL to use rpmsqHandler())
@@ -86,47 +52,6 @@ void rpmsqAction(int signum, void * info, void * context);
  */
 int rpmsqEnable(int signum, rpmsqAction_t handler);
 
-/**
- * Fork a child process.
- * @param sq           scriptlet queue element
- * @return             fork(2) pid
- */
-pid_t rpmsqFork(rpmsq sq);
-
-/**
- * Wait for child process to be reaped.
- * @param sq           scriptlet queue element
- * @return             reaped child pid
- */
-pid_t rpmsqWait(rpmsq sq);
-
-/**
- * Call a function in a thread.
- * @param start                function
- * @param arg          function argument
- * @return             thread pointer (NULL on error)
- */
-void * rpmsqThread(void * (*start) (void * arg), void * arg);
-
-/**
- * Wait for thread to terminate.
- * @param thread       thread
- * @return             0 on success
- */
-int rpmsqJoin(void * thread);
-
-/**
- * Compare thread with current thread.
- * @param thread       thread
- * @return             0 if not equal
- */
-int rpmsqThreadEqual(void * thread);
-
-/**
- * Execute a command, returning its status.
- */
-int rpmsqExecve (const char ** argv);
-
 #ifdef __cplusplus
 }
 #endif