/* drwosfn.h */


#ifdef __cplusplus 
extern "C" {
#endif

extern fileswitch_object_type drw_find_object(char *filename,
                             fileswitch_object_type object_found_code,
                             fileswitch_object_type *actualtype,
                                              int *filesize);
extern fileswitch_object_type drw_find_object_full(char *fullpathname,
                            fileswitch_object_type object_found_code,
                           fileswitch_object_type *actualtype,
                                              int *filesize,
                                              bits *ftype);
extern fileswitch_object_type drw_read_object_stamp(char *fullpathname,
                             fileswitch_object_type object_found_code,
                                              bits *loadaddr,
                                              bits *execaddr);
extern os_error *drw_get_cmos_time_str(os_date_and_time cmosdt);
extern os_error *drw_get_cmos_time(bits *cmosmsb,
                                   bits *cmosword);
extern os_t drw_read_monotonic_time(void);
extern os_error *drw_read_monotonic_timex(os_t *mt);
extern os_error *drw_wint_touch_srce_filex(char *srcefilename);
extern int drw_compare_file_time_stamps(bits hb1,
                                        bits lw1,
                                        bits hb2,
                                        bits lw2);
extern int drw_read_dir_entries(char *dirname,
                                int scantype,
                                void *infolist,
                                int wkbuffsize,
                                int numtoread,
                                char *entries,
                                int next_context,
                                int *readcount);
extern void drw_add_fileid(char *objectname, char *ext);
extern os_error *drw_os_canonicalise_path(char *path_name,
                                          char *buffer,
                                          char const *var,
                                          char const *path,
                                          int size,
                                          int *spare);
extern int drw_copyfile(char *sourcepath,
                        char *destinationpath,
                        int force,
                        int deletesource);
extern os_error *drw_deletefile(char *filenames,
                                int force);
extern os_error *drw_create_directory(char *dirname,
                                      int entrycount);
extern int drw_file_newer(char *filename, char *filename2);
extern os_error *drw_start_throwback(void);
extern os_error *drw_throwback_fn(char *filename,
                                  char *msg,
                                  int severity,
                                  int lineno,
                                  drw_throwback_flags *flags);
os_error *drw_end_throwback(void);
extern char *drw_get_leafname(char *namein,
                              int elementno,
                              char *wkbuff,
                              int maxobjsize,
                              char fname_separator,
                              char pathdelim);
extern char *drw_find_leafname(char *namein,
                               int elementno,
                               char *wkbuff,
                               int maxobjsize,
                               char fname_separator,
                               char pathdelim);
extern int drw_conv_verstring(char const *vstr, void *mylconv);
extern int drw_os_ver(char const *module_name,
                      int *osversion,
                      void *localconv);
extern int drw_wimp_osversion(void);
extern int drw_read_args(char *keywords,
                         char *input,
                         char *buffer,
                         int size);
extern  void drw_os_read_unsigned(os_read_unsigned_flags flags,
                                  char const *num,
                                  bits *v);
extern bits drw_check_exists(char *objname,
                             fileswitch_object_type objtype,
                             bits filetype);
extern long drw_measurefile(char *file_name);
extern int drw_loadfile(char *file_name, char *loadto, long fsize);
extern os_error *drw_savefile(char *file_name,
                              void *savedata,
                              int savedatasize,
                              int appendtofile);
extern char *drw_wimp_msglookup(messagetrans_control_block *messhandle,
                                char *token,
                                int cpy,
                                char *readmsgbuff,
                                int maxbuffsize,
                                char *msgbuffresult,
                                int numargs,
                                ...);
extern int drw_key_ctl_p(void);
extern int drw_key_shift_p(void);
extern int drw_key_pressed_limited(int key);
extern int drw_key_pressed(int key);
extern unsigned long int drw_bytetoword(void *blkptr,
                                        int index);
extern int drw_in_key_press(int tl,
                            int th,
                            int *isesc);
extern char *drw_wimp_numtodecstring(int number);
extern char *drw_wimp_numtosigneddecstring(int number);
extern char *drw_wimp_numtohexstring(int number, int digits, int prefix);
extern char *drw_wimp_numtobinstring(int number, int digits, int prefix);
extern void drw_wordtobyte(unsigned long int input,
                           void *blkptr,
                           int index);
int drw_lookup_module_name(char *module_name,
                           int *module_no,
                           int *instance_no,
                           byte **module,
                           void **workspace,
                           char **postfix);
drw_log_msg_flags drw_log_sysmessage(char *logname,
                                     char *logmsg,
                                     int loglevel,
                                     drw_log_msg_flags logflags);

#ifdef __cplusplus
}
#endif

