aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_kernel.h
blob: 478d030c177f91258500d52d1141a8ce863f575f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef RUST_KERNEL_H
#define RUST_KERNEL_H

/**
 * A global object shared by all domains.
 */
class rust_kernel {
    memory_region &_region;
    rust_log _log;
public:
    synchronized_indexed_list<rust_dom> domains;
    synchronized_indexed_list<lock_free_queue<rust_message*> > message_queues;
    rust_kernel(rust_srv *srv);
    void register_domain(rust_dom *dom);
    void deregister_domain(rust_dom *dom);
    void log_all_domain_state();
    void log(uint32_t type_bits, char const *fmt, ...);
    virtual ~rust_kernel();
};

#endif /* RUST_KERNEL_H */