diff options
Diffstat (limited to 'gold/common.h')
-rw-r--r-- | gold/common.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/gold/common.h b/gold/common.h new file mode 100644 index 0000000..75237a6 --- /dev/null +++ b/gold/common.h @@ -0,0 +1,49 @@ +// common.h -- handle common symbols for gold -*- C++ -*- + +#ifndef GOLD_COMMON_H +#define GOLD_COMMON_H + +#include "workqueue.h" + +namespace gold +{ + +class General_options; +class Symbol_table; + +// This task is used to allocate the common symbols. + +class Allocate_commons_task : public Task +{ + public: + Allocate_commons_task(const General_options& options, Symbol_table* symtab, + Layout* layout, Task_token* symtab_lock, + Task_token* blocker) + : options_(options), symtab_(symtab), layout_(layout), + symtab_lock_(symtab_lock), blocker_(blocker) + { } + + // The standard Task methods. + + Is_runnable_type + is_runnable(Workqueue*); + + Task_locker* + locks(Workqueue*); + + void + run(Workqueue*); + + private: + class Allocate_commons_locker; + + const General_options& options_; + Symbol_table* symtab_; + Layout* layout_; + Task_token* symtab_lock_; + Task_token* blocker_; +}; + +} // End namespace gold. + +#endif // !defined(GOLD_COMMON_H) |