home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-19.28-src.tgz / tar.out / fsf / emacs / unixlib / include / internal / files.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  1KB  |  36 lines

  1. #ifndef FILES_H
  2. #define FILES_H
  3.  
  4. struct fileinfo {
  5.   int flags;
  6.   void *userinfo;
  7.   unsigned long (*__regargs select_start)(void *userinfo, int rd, int wr);
  8.   void (*__regargs select_poll)(void *userinfo, int *rd, int *wr);
  9.   int (*__regargs read)(void *userinfo, void *buffer, unsigned int length);
  10.   int (*__regargs write)(void *userinfo, void *buffer, unsigned int length);
  11.   int (*__regargs lseek)(void *userinfo, long rpos, int mode);
  12.   int (*__regargs close)(void *userinfo, int internal);
  13.   int (*__regargs ioctl)(void *userinfo, int request, void *data);
  14. };
  15.  
  16. /* FI_READ & WRITE replace O_RDONLY, WRONLY & RDWR. Other flags are left untouched */
  17. #define FI_READ 1
  18. #define FI_WRITE 2
  19.  
  20. int _alloc_fd(void *userinfo, int flags,
  21.   unsigned long (*__regargs select_start)(void *userinfo, int rd, int wr),
  22.   void (*__regargs select_poll)(void *userinfo, int *rd, int *wr),
  23.   int (*__regargs read)(void *userinfo, void *buffer, unsigned int length),
  24.   int (*__regargs write)(void *userinfo, void *buffer, unsigned int length),
  25.   int (*__regargs lseek)(void *userinfo, long rpos, int mode),
  26.   int (*__regargs close)(void *userinfo, int internal),
  27.   int (*__regargs ioctl)(void *userinfo, int request, void *data)
  28. );
  29.  
  30. void _free_fd(int fd);
  31.  
  32. struct fileinfo *_find_fd(int fd);
  33. int _last_fd(void);
  34.  
  35. #endif
  36.