Add callbacks for fork() (XCC)
[akaros.git] / tools / compilers / gcc-glibc / glibc-2.19-akaros / sysdeps / akaros / fork_cb.c
1 /* Copyright (c) 2016 Google Inc.
2  * Barret Rhoden <brho@cs.berkeley.edu>
3  * See LICENSE for details.
4  *
5  * fork() callbacks.  See sys/fork_cb.h. */
6
7 #include <sys/fork_cb.h>
8 #include <ros/common.h>
9
10 struct fork_cb *fork_callbacks;
11
12 void register_fork_cb(struct fork_cb *cb)
13 {
14         struct fork_cb *old;
15
16         do {
17                 old = ACCESS_ONCE(fork_callbacks);
18                 cb->next = old;
19         } while (!__sync_bool_compare_and_swap(&fork_callbacks, old, cb));
20 }