diff --git a/include/ChangeLog b/include/ChangeLog index d9fae8232..ccfc77665 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,11 @@ +2008-12-01 Cary Coutant + + * plugin-api.h (LDPS_BAD_HANDLE): New constant. + (ld_plugin_get_input_file): New typedef. + (ld_plugin_release_input_file): New typedef. + (LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE): New constants. + (struct ld_plugin_tv): Add two new fields. + 2008-12-23 Jon Beniston * dis-asm.h: Add LM32 disassembler function prototype. diff --git a/include/plugin-api.h b/include/plugin-api.h index a90fa2318..f536d57d7 100644 --- a/include/plugin-api.h +++ b/include/plugin-api.h @@ -40,6 +40,7 @@ enum ld_plugin_status { LDPS_OK = 0, LDPS_NO_SYMS, /* Attempt to get symbols that haven't been added. */ + LDPS_BAD_HANDLE, /* No claimed object associated with given handle. */ LDPS_ERR /* Additional Error codes TBD. */ }; @@ -165,6 +166,20 @@ enum ld_plugin_status (*ld_plugin_add_symbols) (void *handle, int nsyms, const struct ld_plugin_symbol *syms); +/* The linker's interface for getting the input file information with + an open (possibly re-opened) file descriptor. */ + +typedef +enum ld_plugin_status +(*ld_plugin_get_input_file) (const void *handle, + struct ld_plugin_input_file *file); + +/* The linker's interface for releasing the input file. */ + +typedef +enum ld_plugin_status +(*ld_plugin_release_input_file) (const void *handle); + /* The linker's interface for retrieving symbol resolution information. */ typedef @@ -207,7 +222,9 @@ enum ld_plugin_tag LDPT_ADD_SYMBOLS, LDPT_GET_SYMBOLS, LDPT_ADD_INPUT_FILE, - LDPT_MESSAGE + LDPT_MESSAGE, + LDPT_GET_INPUT_FILE, + LDPT_RELEASE_INPUT_FILE }; /* The plugin transfer vector. */ @@ -226,6 +243,8 @@ struct ld_plugin_tv ld_plugin_get_symbols tv_get_symbols; ld_plugin_add_input_file tv_add_input_file; ld_plugin_message tv_message; + ld_plugin_get_input_file tv_get_input_file; + ld_plugin_release_input_file tv_release_input_file; } tv_u; };