/* $Id: shared_imp.h,v 1.21 2006/06/29 17:26:41 hurtta Exp $ */ /****************************************************************************** * The Elm (ME+) Mail System - $Revision: 1.21 $ $State: Exp $ * * Author: Kari Hurtta (was hurtta+elm@ozone.FMI.FI) *****************************************************************************/ #include "../shared_libs/include/shared.h" extern struct shared_CT { struct connection_type *T; struct ImpInfo * imp_idx; } * shared_connection_types; extern int shared_connection_type_count; extern struct shared_FT { struct folder_type * T; struct ImpInfo * imp_idx; } * shared_folder_types; extern int shared_folder_type_count; extern struct shared_ST { struct stream_type * T; struct ImpInfo * imp_idx; } * shared_stream_types; extern int shared_stream_type_count; extern struct shared_SEOT { struct SE_option_type * T; struct ImpInfo * imp_idx; } * shared_SE_option_types; extern int shared_SE_option_type_count; extern struct shared_CST { struct charset_type * T; struct ImpInfo * imp_idx; } * shared_CS_types; extern int shared_CS_type_count; extern struct charset_type * find_shared_CS_type P_((const char *val)); extern int cs_auto_charset P_((const char *name, struct charset_type **type, struct map_info **map)); extern int verify_shared_index P_((struct ImpInfo *i)); extern struct shared_MCF { struct mailer_config * T; struct ImpInfo * imp_idx; } * shared_MCF_types; extern int shared_MCF_type_count; struct ImpInfo { int valid; char * tag; char * shname; int base_lists_updated; void * handle; struct reg_list { struct dt_shared_info *var; int valid; int updated; union { void * dummy; struct sl_base_data * base; struct sl_connect_data * connect; struct sl_mailer_data * mailer; struct sl_mbox_data * mbox; } r; } * regs; int regs_count; struct rc_save_info_rec * rc_options; int rc_option_count; RC_post_init_f * rc_post_init; wants_rand_bits_f * wants_rand_bits; }; /* zero cell of array */ typedef void sl_zero_reg_list P_((struct dt_shared_info *var, struct reg_list *r)); typedef int sl_reg_functions P_((struct ImpInfo *i, int reg_idx)); typedef void sl_unreg_functions P_((struct ImpInfo *i, int reg_idx)); #define SHARED_LOADER_magic 0xF900 struct shared_loader { uint16 magic; sl_reg_functions *func_reg; sl_zero_reg_list *func_zero; sl_unreg_functions *func_unreg; }; extern void load_shared_libs1 P_((struct dt_shared_info *var)); extern int give_rnum P_((struct ImpInfo * I, struct dt_shared_info *var)); extern struct ImpInfo **library_list; extern int library_list_count; extern struct ImpInfo * give_impinfo P_((const char * tag)); extern int reg_code1 P_((struct ImpInfo *I, int r)); extern void load_shared_libs P_((void)); extern int tag_ok P_((CONST char *name)); extern void load_code0 P_((struct ImpInfo *I)); extern void register_list P_((SHAREDLIB *Z)); extern void register_hidden_library P_((struct dt_shared_info *parent, struct dt_shared_info *lib)); /* * Local Variables: * mode:c * c-basic-offset:4 * buffer-file-coding-system: iso-8859-1 * End: */