aboutsummaryrefslogtreecommitdiff
path: root/gold/plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'gold/plugin.h')
-rw-r--r--gold/plugin.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/gold/plugin.h b/gold/plugin.h
index 7658668..d591d26 100644
--- a/gold/plugin.h
+++ b/gold/plugin.h
@@ -60,6 +60,7 @@ class Plugin
claim_file_handler_(NULL),
all_symbols_read_handler_(NULL),
cleanup_handler_(NULL),
+ new_input_handler_(NULL),
cleanup_done_(false)
{ }
@@ -78,6 +79,10 @@ class Plugin
void
all_symbols_read();
+ // Call the new_input handler.
+ void
+ new_input(struct ld_plugin_input_file* plugin_input_file);
+
// Call the cleanup handler.
void
cleanup();
@@ -97,6 +102,11 @@ class Plugin
set_cleanup_handler(ld_plugin_cleanup_handler handler)
{ this->cleanup_handler_ = handler; }
+ // Register a new_input handler.
+ void
+ set_new_input_handler(ld_plugin_new_input_handler handler)
+ { this->new_input_handler_ = handler; }
+
// Add an argument
void
add_option(const char* arg)
@@ -118,6 +128,7 @@ class Plugin
ld_plugin_claim_file_handler claim_file_handler_;
ld_plugin_all_symbols_read_handler all_symbols_read_handler_;
ld_plugin_cleanup_handler cleanup_handler_;
+ ld_plugin_new_input_handler new_input_handler_;
// TRUE if the cleanup handlers have been called.
bool cleanup_done_;
};
@@ -218,6 +229,14 @@ class Plugin_manager
(*this->current_)->set_all_symbols_read_handler(handler);
}
+ // Register a new_input handler.
+ void
+ set_new_input_handler(ld_plugin_new_input_handler handler)
+ {
+ gold_assert(this->current_ != plugins_.end());
+ (*this->current_)->set_new_input_handler(handler);
+ }
+
// Register a claim-file handler.
void
set_cleanup_handler(ld_plugin_cleanup_handler handler)