home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / OSKBox.lzh / MAILBOX / CC / mbinit.c < prev    next >
C/C++ Source or Header  |  1990-01-01  |  2KB  |  55 lines

  1. #include <stdio.h>
  2. #include <modes.h>
  3. #include <module.h>
  4. #include <events.h>
  5. #include <errno.h>
  6. #include "mailbox.h"
  7.  
  8. #define BUFFSIZE 1024
  9. #define ACCESS (MP_OWNER_READ+MP_OWNER_WRITE+MP_WORLD_READ+MP_WORLD_WRITE)
  10. #define ATTR (mkattrevs(MA_REENT,0))
  11. #define TYPE (mktypelang(MT_DATA,ML_ANY))
  12. #define COLOR 0
  13.  
  14.  
  15. main ()
  16. {
  17.     mod_exec *mail_module, *modlink(), *make_module();
  18.     char buffer[BUFFSIZE], *moddata;
  19.     int f, fsize;
  20.     int read_event, write_event;
  21.  
  22.     chdir (HOME);
  23.     if ((f = open ("mail_dir", S_IREAD)) < 0)
  24.         exit (_errmsg (0, "Error %d opening mail_dir.\n", errno));
  25.     fsize = _gs_size (f);
  26.     if ((int)(mail_module = make_module ("mail_dir", fsize, ATTR, ACCESS, TYPE, COLOR)) == -1)
  27.             exit (_errmsg (0, "Error %d while creating module.\n", errno));
  28.     moddata = (char *)mail_module + mail_module->_mexec;
  29.     read (f, moddata, fsize);
  30.     close (f);
  31.     if ((read_event = _ev_creat (0, -1, 1, "mail_read")) == -1)
  32.         exit (_errmsg (0, "Error %d while creating read signal.\n", errno));
  33.     if (_ev_unlink (read_event) == -1)
  34.         _errmsg (0, "Error %d while unlinking read signal.\n", errno);
  35.     if ((write_event = _ev_creat (0, -1, 1, "mail_write")) == -1)
  36.         exit (_errmsg (0, "Error %d while creating write signal.\n", errno));
  37.     if (_ev_unlink (write_event) == -1)
  38.         _errmsg (0, "Error %d while unlinking write signal.\n", errno);
  39.     }
  40.  
  41. movmem (from, to, count)
  42. register char *from, *to;
  43. register int count;
  44. {
  45.     if (from > to)
  46.         while (count--)
  47.             *to++ = *from++;
  48.     else {
  49.         from += count;
  50.         to += count;
  51.         while (count--)
  52.             *--to = *--from;
  53.         }
  54.     }                
  55.