Thu Jan 18 00:32:43 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
[kopensolaris-gnu/glibc.git] / set-hooks.h
index 7a7d0bc..10d0b10 100644 (file)
@@ -31,15 +31,19 @@ Cambridge, MA 02139, USA.  */
   typedef void __##NAME##_hook_function_t PROTO; \
   symbol_set_define (NAME)
 
+#define DECLARE_HOOK(NAME, PROTO)              \
+  typedef void __##NAME##_hook_function_t PROTO;\
+  symbol_set_declare (NAME)
+
 /* Run all the functions hooked on the set called NAME.
    Each function is called like this: `function ARGS'.  */
 
 #define RUN_HOOK(NAME, ARGS) \
 do {                                                                         \
   void *const *ptr;                                                          \
-  for (ptr = __symbol_set_first_element (NAME);                                      \
+  for (ptr = symbol_set_first_element (NAME);                                \
        ! symbol_set_end_p (NAME, ptr); ++ptr)                                \
-    (*(__##NAME##_hook_function_t *) ptr) ARGS;                                      \
+    (*(__##NAME##_hook_function_t *) *ptr) ARGS;                             \
 } while (0)
 
 /* Define a hook variable with NAME and PROTO, and a function called RUNNER