home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / zip22.zip / acorn / riscos.h < prev    next >
C/C++ Source or Header  |  1996-12-14  |  2KB  |  113 lines

  1. /* riscos.h */
  2.  
  3. #ifndef __riscos_h
  4. #define __riscos_h
  5.  
  6. #include <time.h>
  7.  
  8. typedef struct {
  9.   int errnum;
  10.   char errmess[252];
  11. } os_error;
  12.  
  13. #ifndef __swiven_h
  14. #include "swiven.h"
  15. #endif
  16.  
  17. #define MAXPATHLEN 256
  18. #define MAXFILENAMELEN 64  /* should be 11 for ADFS, 13 for DOS, 64 seems a sensible value... */
  19. #define DIR_BUFSIZE 1024   /* this should be enough to read a whole E-Format directory */
  20.  
  21. struct stat {
  22.   unsigned int st_dev;
  23.   int st_ino;
  24.   unsigned int st_mode;
  25.   int st_nlink;
  26.   unsigned short st_uid;
  27.   unsigned short st_gid;
  28.   unsigned int st_rdev;
  29.   unsigned int st_size;
  30.   unsigned int st_blksize;
  31.   time_t st_atime;
  32.   time_t st_mtime;
  33.   time_t st_ctime;
  34. };
  35.  
  36. typedef struct {
  37.   char *dirname;
  38.   void *buf;
  39.   int size;
  40.   char *act;
  41.   int offset;
  42.   int read;
  43. } DIR;
  44.  
  45. #define dstrm DIR
  46.  
  47. struct dirent {
  48.   unsigned int d_off;          /* offset of next disk directory entry */
  49.   int d_fileno;                /* file number of entry */
  50.   size_t d_reclen;             /* length of this record */
  51.   size_t d_namlen;             /* length of d_name */
  52.   char d_name[MAXFILENAMELEN]; /* name */
  53. };
  54.  
  55. typedef struct {
  56.   int load_addr;
  57.   int exec_addr;
  58.   int lenght;
  59.   int attrib;
  60.   int objtype;
  61.   char name[13];
  62. } riscos_direntry;
  63.  
  64. #define SPARKID   0x4341        /* = "AC" */
  65. #define SPARKID_2 0x30435241    /* = "ARC0" */
  66.  
  67. typedef struct {
  68.   short ID;
  69.   short size;
  70.   int   ID_2;
  71.   int   loadaddr;
  72.   int   execaddr;
  73.   int   attr;
  74.   int   zero;
  75. } extra_block;
  76.  
  77.  
  78. #define S_IFMT 0770000
  79.  
  80. #define S_IFDIR 0040000
  81. #define S_IFREG 0100000  /* 0200000 in UnixLib !?!?!?!? */
  82.  
  83. #ifndef S_IEXEC
  84. #define S_IEXEC  0000100
  85. #define S_IWRITE 0000200
  86. #define S_IREAD  0000400
  87. #endif
  88.  
  89. extern char *exts2swap; /* Extesions to swap */
  90.  
  91. int stat(char *filename,struct stat *res);
  92. DIR *opendir(char *dirname);
  93. struct dirent *readdir(DIR *d);
  94. char *readd(DIR *d);
  95. void closedir(DIR *d);
  96. int unlink(char *f);
  97. int deletedir(char *d);
  98. int chmod(char *file, int mode);
  99. void setfiletype(char *fname,int ftype);
  100. void getRISCOSexts(char *envstr);
  101. int checkext(char *suff);
  102. void swapext(char *name, char *exptr);
  103. void remove_prefix(void);
  104. void set_prefix(void);
  105. struct tm *riscos_localtime(const time_t *timer);
  106. struct tm *riscos_gmtime(const time_t *timer);
  107.  
  108. char *msname(char *);
  109. int newname(char *, int);
  110. unsigned long unix2dostime(time_t *);
  111.  
  112. #endif
  113.