riscos.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:3k
源码类别:

压缩解压

开发平台:

MultiPlatform

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