aboutsummaryrefslogtreecommitdiff
path: root/gold/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'gold/common.h')
-rw-r--r--gold/common.h49
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)