1*fae548d3Szrj // common.h -- handle common symbols for gold -*- C++ -*- 2*fae548d3Szrj 3*fae548d3Szrj // Copyright (C) 2006-2020 Free Software Foundation, Inc. 4*fae548d3Szrj // Written by Ian Lance Taylor <iant@google.com>. 5*fae548d3Szrj 6*fae548d3Szrj // This file is part of gold. 7*fae548d3Szrj 8*fae548d3Szrj // This program is free software; you can redistribute it and/or modify 9*fae548d3Szrj // it under the terms of the GNU General Public License as published by 10*fae548d3Szrj // the Free Software Foundation; either version 3 of the License, or 11*fae548d3Szrj // (at your option) any later version. 12*fae548d3Szrj 13*fae548d3Szrj // This program is distributed in the hope that it will be useful, 14*fae548d3Szrj // but WITHOUT ANY WARRANTY; without even the implied warranty of 15*fae548d3Szrj // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*fae548d3Szrj // GNU General Public License for more details. 17*fae548d3Szrj 18*fae548d3Szrj // You should have received a copy of the GNU General Public License 19*fae548d3Szrj // along with this program; if not, write to the Free Software 20*fae548d3Szrj // Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 21*fae548d3Szrj // MA 02110-1301, USA. 22*fae548d3Szrj 23*fae548d3Szrj #ifndef GOLD_COMMON_H 24*fae548d3Szrj #define GOLD_COMMON_H 25*fae548d3Szrj 26*fae548d3Szrj #include "workqueue.h" 27*fae548d3Szrj 28*fae548d3Szrj namespace gold 29*fae548d3Szrj { 30*fae548d3Szrj 31*fae548d3Szrj class Symbol_table; 32*fae548d3Szrj 33*fae548d3Szrj // This task is used to allocate the common symbols. 34*fae548d3Szrj 35*fae548d3Szrj class Allocate_commons_task : public Task 36*fae548d3Szrj { 37*fae548d3Szrj public: Allocate_commons_task(Symbol_table * symtab,Layout * layout,Mapfile * mapfile,Task_token * blocker)38*fae548d3Szrj Allocate_commons_task(Symbol_table* symtab, Layout* layout, Mapfile* mapfile, 39*fae548d3Szrj Task_token* blocker) 40*fae548d3Szrj : symtab_(symtab), layout_(layout), mapfile_(mapfile), blocker_(blocker) 41*fae548d3Szrj { } 42*fae548d3Szrj 43*fae548d3Szrj // The standard Task methods. 44*fae548d3Szrj 45*fae548d3Szrj Task_token* 46*fae548d3Szrj is_runnable(); 47*fae548d3Szrj 48*fae548d3Szrj void 49*fae548d3Szrj locks(Task_locker*); 50*fae548d3Szrj 51*fae548d3Szrj void 52*fae548d3Szrj run(Workqueue*); 53*fae548d3Szrj 54*fae548d3Szrj std::string get_name()55*fae548d3Szrj get_name() const 56*fae548d3Szrj { return "Allocate_commons_task"; } 57*fae548d3Szrj 58*fae548d3Szrj private: 59*fae548d3Szrj Symbol_table* symtab_; 60*fae548d3Szrj Layout* layout_; 61*fae548d3Szrj Mapfile* mapfile_; 62*fae548d3Szrj Task_token* blocker_; 63*fae548d3Szrj }; 64*fae548d3Szrj 65*fae548d3Szrj } // End namespace gold. 66*fae548d3Szrj 67*fae548d3Szrj #endif // !defined(GOLD_COMMON_H) 68