]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
flavor): Add ef_cxa.
authorUlrich Drepper <drepper@redhat.com>
Tue, 28 Dec 1999 16:12:00 +0000 (16:12 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 28 Dec 1999 16:12:00 +0000 (16:12 +0000)
(exit_function): Add cxa variant.

stdlib/exit.h

index dcaa85a442c5f9708a5112beddbf4d8ddc8859c2..9b6c1c3d4ed07ee30a2adac9d2e71292542277d4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #ifndef        _EXIT_H
 #define _EXIT_H 1
 
+
+enum
+{
+  ef_free,     /* `ef_free' MUST be zero!  */
+  ef_us,
+  ef_on,
+  ef_at,
+  ef_cxa
+};
+
 struct exit_function
   {
-    enum { ef_free, ef_us, ef_on, ef_at } flavor; /* `ef_free' MUST be zero! */
+    /* `flavour' should be of type of the `enum' above but since we need
+       this element in an atomic operation we have to use `long int'.  */
+    long int flavor;
     union
       {
        void (*at) (void);
@@ -30,6 +42,12 @@ struct exit_function
            void (*fn) (int status, void *arg);
            void *arg;
          } on;
+       struct
+         {
+           void (*fn) (void *arg);
+           void *arg;
+           void *dso_handle;
+         } cxa;
       } func;
   };
 struct exit_function_list