home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / nspr30-e.zip / nspr30-e / include / md / _linux.cfg < prev    next >
Text File  |  1998-11-02  |  11KB  |  405 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /*
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  * 
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  * 
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. #ifndef nspr_cpucfg___
  20. #define nspr_cpucfg___
  21.  
  22. #ifndef XP_UNIX
  23. #define XP_UNIX
  24. #endif
  25.  
  26. #ifndef LINUX
  27. #define LINUX
  28. #endif
  29.  
  30. #ifdef __powerpc__
  31.  
  32. #undef  IS_LITTLE_ENDIAN
  33. #define IS_BIG_ENDIAN    1
  34.  
  35. #define PR_BYTES_PER_BYTE   1
  36. #define PR_BYTES_PER_SHORT  2
  37. #define PR_BYTES_PER_INT    4
  38. #define PR_BYTES_PER_INT64  8
  39. #define PR_BYTES_PER_LONG   4
  40. #define PR_BYTES_PER_FLOAT  4
  41. #define PR_BYTES_PER_DOUBLE 8
  42. #define PR_BYTES_PER_WORD   4
  43. #define PR_BYTES_PER_DWORD  8
  44.  
  45. #define PR_BITS_PER_BYTE    8
  46. #define PR_BITS_PER_SHORT   16
  47. #define PR_BITS_PER_INT     32
  48. #define PR_BITS_PER_INT64   64
  49. #define PR_BITS_PER_LONG    32
  50. #define PR_BITS_PER_FLOAT   32
  51. #define PR_BITS_PER_DOUBLE  64
  52. #define PR_BITS_PER_WORD    32
  53.  
  54. #define PR_BITS_PER_BYTE_LOG2   3
  55. #define PR_BITS_PER_SHORT_LOG2  4
  56. #define PR_BITS_PER_INT_LOG2    5
  57. #define PR_BITS_PER_INT64_LOG2  6
  58. #define PR_BITS_PER_LONG_LOG2   5
  59. #define PR_BITS_PER_FLOAT_LOG2  5
  60. #define PR_BITS_PER_DOUBLE_LOG2 6
  61. #define PR_BITS_PER_WORD_LOG2   5
  62.  
  63. #define PR_ALIGN_OF_SHORT   2
  64. #define PR_ALIGN_OF_INT     4
  65. #define PR_ALIGN_OF_LONG    4
  66. #define PR_ALIGN_OF_INT64   4
  67. #define PR_ALIGN_OF_FLOAT   4
  68. #define PR_ALIGN_OF_DOUBLE  4
  69. #define PR_ALIGN_OF_POINTER 4
  70.  
  71. #define PR_BYTES_PER_WORD_LOG2   2
  72. #define PR_BYTES_PER_DWORD_LOG2  3
  73.  
  74. #elif defined(__alpha)
  75.  
  76. #define IS_LITTLE_ENDIAN 1
  77. #undef  IS_BIG_ENDIAN
  78. #define IS_64
  79.  
  80. #define PR_BYTES_PER_BYTE   1
  81. #define PR_BYTES_PER_SHORT  2
  82. #define PR_BYTES_PER_INT    4
  83. #define PR_BYTES_PER_INT64  8
  84. #define PR_BYTES_PER_LONG   8
  85. #define PR_BYTES_PER_FLOAT  4
  86. #define PR_BYTES_PER_DOUBLE 8
  87. #define PR_BYTES_PER_WORD   8
  88. #define PR_BYTES_PER_DWORD  8
  89.  
  90. #define PR_BITS_PER_BYTE    8
  91. #define PR_BITS_PER_SHORT   16
  92. #define PR_BITS_PER_INT     32
  93. #define PR_BITS_PER_INT64   64
  94. #define PR_BITS_PER_LONG    64
  95. #define PR_BITS_PER_FLOAT   32
  96. #define PR_BITS_PER_DOUBLE  64
  97. #define PR_BITS_PER_WORD    64
  98.  
  99. #define PR_BITS_PER_BYTE_LOG2   3
  100. #define PR_BITS_PER_SHORT_LOG2  4
  101. #define PR_BITS_PER_INT_LOG2    5
  102. #define PR_BITS_PER_INT64_LOG2  6
  103. #define PR_BITS_PER_LONG_LOG2   6
  104. #define PR_BITS_PER_FLOAT_LOG2  5
  105. #define PR_BITS_PER_DOUBLE_LOG2 6
  106. #define PR_BITS_PER_WORD_LOG2   6
  107.  
  108. #define PR_ALIGN_OF_SHORT   2
  109. #define PR_ALIGN_OF_INT     4
  110. #define PR_ALIGN_OF_LONG    8
  111. #define PR_ALIGN_OF_INT64   8
  112. #define PR_ALIGN_OF_FLOAT   4
  113. #define PR_ALIGN_OF_DOUBLE  8
  114. #define PR_ALIGN_OF_POINTER 8
  115.  
  116. #define PR_BYTES_PER_WORD_LOG2  3
  117. #define PR_BYTES_PER_DWORD_LOG2 3
  118.  
  119. #elif defined(__mc68000__)
  120.  
  121. #undef  IS_LITTLE_ENDIAN
  122. #define IS_BIG_ENDIAN 1
  123.  
  124. #define PR_BYTES_PER_BYTE   1
  125. #define PR_BYTES_PER_SHORT  2
  126. #define PR_BYTES_PER_INT    4
  127. #define PR_BYTES_PER_INT64  8
  128. #define PR_BYTES_PER_LONG   4
  129. #define PR_BYTES_PER_FLOAT  4
  130. #define PR_BYTES_PER_DOUBLE 8
  131. #define PR_BYTES_PER_WORD   4
  132. #define PR_BYTES_PER_DWORD  8
  133.  
  134. #define PR_BITS_PER_BYTE    8
  135. #define PR_BITS_PER_SHORT   16
  136. #define PR_BITS_PER_INT     32
  137. #define PR_BITS_PER_INT64   64
  138. #define PR_BITS_PER_LONG    32
  139. #define PR_BITS_PER_FLOAT   32
  140. #define PR_BITS_PER_DOUBLE  64
  141. #define PR_BITS_PER_WORD    32
  142.  
  143. #define PR_BITS_PER_BYTE_LOG2   3
  144. #define PR_BITS_PER_SHORT_LOG2  4
  145. #define PR_BITS_PER_INT_LOG2    5
  146. #define PR_BITS_PER_INT64_LOG2  6
  147. #define PR_BITS_PER_LONG_LOG2   5
  148. #define PR_BITS_PER_FLOAT_LOG2  5
  149. #define PR_BITS_PER_DOUBLE_LOG2 6
  150. #define PR_BITS_PER_WORD_LOG2   5
  151.  
  152. #define PR_ALIGN_OF_SHORT   2
  153. #define PR_ALIGN_OF_INT     2
  154. #define PR_ALIGN_OF_LONG    2
  155. #define PR_ALIGN_OF_INT64   2
  156. #define PR_ALIGN_OF_FLOAT   2
  157. #define PR_ALIGN_OF_DOUBLE  2
  158. #define PR_ALIGN_OF_POINTER 2
  159.  
  160. #define PR_BYTES_PER_WORD_LOG2   2
  161. #define PR_BYTES_PER_DWORD_LOG2  3
  162.  
  163. #elif defined(__sparc__)
  164.  
  165. #undef    IS_LITTLE_ENDIAN
  166. #define    IS_BIG_ENDIAN 1
  167.  
  168. #define PR_BYTES_PER_BYTE   1
  169. #define PR_BYTES_PER_SHORT  2
  170. #define PR_BYTES_PER_INT    4
  171. #define PR_BYTES_PER_INT64  8
  172. #define PR_BYTES_PER_LONG   4
  173. #define PR_BYTES_PER_FLOAT  4
  174. #define PR_BYTES_PER_DOUBLE 8
  175. #define PR_BYTES_PER_WORD   4
  176. #define PR_BYTES_PER_DWORD  8
  177.  
  178. #define PR_BITS_PER_BYTE    8
  179. #define PR_BITS_PER_SHORT   16
  180. #define PR_BITS_PER_INT     32
  181. #define PR_BITS_PER_INT64   64
  182. #define PR_BITS_PER_LONG    32
  183. #define PR_BITS_PER_FLOAT   32
  184. #define PR_BITS_PER_DOUBLE  64
  185. #define PR_BITS_PER_WORD    32
  186.  
  187. #define PR_BITS_PER_BYTE_LOG2   3
  188. #define PR_BITS_PER_SHORT_LOG2  4
  189. #define PR_BITS_PER_INT_LOG2    5
  190. #define PR_BITS_PER_INT64_LOG2  6
  191. #define PR_BITS_PER_LONG_LOG2   5
  192. #define PR_BITS_PER_FLOAT_LOG2  5
  193. #define PR_BITS_PER_DOUBLE_LOG2 6
  194. #define PR_BITS_PER_WORD_LOG2   5
  195.  
  196. #define PR_ALIGN_OF_SHORT   2
  197. #define PR_ALIGN_OF_INT     4
  198. #define PR_ALIGN_OF_LONG    4
  199. #define PR_ALIGN_OF_INT64   8
  200. #define PR_ALIGN_OF_FLOAT   4
  201. #define PR_ALIGN_OF_DOUBLE  8
  202. #define PR_ALIGN_OF_POINTER 4
  203.  
  204. #define PR_BYTES_PER_WORD_LOG2   2
  205. #define PR_BYTES_PER_DWORD_LOG2  3
  206.  
  207. #elif defined(__i386__)
  208.  
  209. #define IS_LITTLE_ENDIAN 1
  210. #undef  IS_BIG_ENDIAN
  211.  
  212. #define PR_BYTES_PER_BYTE   1
  213. #define PR_BYTES_PER_SHORT  2
  214. #define PR_BYTES_PER_INT    4
  215. #define PR_BYTES_PER_INT64  8
  216. #define PR_BYTES_PER_LONG   4
  217. #define PR_BYTES_PER_FLOAT  4
  218. #define PR_BYTES_PER_DOUBLE 8
  219. #define PR_BYTES_PER_WORD   4
  220. #define PR_BYTES_PER_DWORD  8
  221.  
  222. #define PR_BITS_PER_BYTE    8
  223. #define PR_BITS_PER_SHORT   16
  224. #define PR_BITS_PER_INT     32
  225. #define PR_BITS_PER_INT64   64
  226. #define PR_BITS_PER_LONG    32
  227. #define PR_BITS_PER_FLOAT   32
  228. #define PR_BITS_PER_DOUBLE  64
  229. #define PR_BITS_PER_WORD    32
  230.  
  231. #define PR_BITS_PER_BYTE_LOG2   3
  232. #define PR_BITS_PER_SHORT_LOG2  4
  233. #define PR_BITS_PER_INT_LOG2    5
  234. #define PR_BITS_PER_INT64_LOG2  6
  235. #define PR_BITS_PER_LONG_LOG2   5
  236. #define PR_BITS_PER_FLOAT_LOG2  5
  237. #define PR_BITS_PER_DOUBLE_LOG2 6
  238. #define PR_BITS_PER_WORD_LOG2   5
  239.  
  240. #define PR_ALIGN_OF_SHORT   2
  241. #define PR_ALIGN_OF_INT     4
  242. #define PR_ALIGN_OF_LONG    4
  243. #define PR_ALIGN_OF_INT64   4
  244. #define PR_ALIGN_OF_FLOAT   4
  245. #define PR_ALIGN_OF_DOUBLE  4
  246. #define PR_ALIGN_OF_POINTER 4
  247.  
  248. #define PR_BYTES_PER_WORD_LOG2   2
  249. #define PR_BYTES_PER_DWORD_LOG2  3
  250.  
  251. #elif defined(__mips__)
  252.  
  253. #ifdef __MIPSEB__
  254. #define IS_BIG_ENDIAN 1
  255. #undef  IS_LITTLE_ENDIAN
  256. #elif defined(__MIPSEL__)
  257. #define IS_LITTLE_ENDIAN 1
  258. #undef  IS_BIG_ENDIAN
  259. #else
  260. #error "Unknown MIPS endianness."
  261. #endif
  262.  
  263. #define PR_BYTES_PER_BYTE   1
  264. #define PR_BYTES_PER_SHORT  2
  265. #define PR_BYTES_PER_INT    4
  266. #define PR_BYTES_PER_INT64  8
  267. #define PR_BYTES_PER_LONG   4
  268. #define PR_BYTES_PER_FLOAT  4
  269. #define PR_BYTES_PER_DOUBLE 8
  270. #define PR_BYTES_PER_WORD   4
  271. #define PR_BYTES_PER_DWORD  8
  272.  
  273. #define PR_BITS_PER_BYTE    8
  274. #define PR_BITS_PER_SHORT   16
  275. #define PR_BITS_PER_INT     32
  276. #define PR_BITS_PER_INT64   64
  277. #define PR_BITS_PER_LONG    32
  278. #define PR_BITS_PER_FLOAT   32
  279. #define PR_BITS_PER_DOUBLE  64
  280. #define PR_BITS_PER_WORD    32
  281.  
  282. #define PR_BITS_PER_BYTE_LOG2   3
  283. #define PR_BITS_PER_SHORT_LOG2  4
  284. #define PR_BITS_PER_INT_LOG2    5
  285. #define PR_BITS_PER_INT64_LOG2  6
  286. #define PR_BITS_PER_LONG_LOG2   5
  287. #define PR_BITS_PER_FLOAT_LOG2  5
  288. #define PR_BITS_PER_DOUBLE_LOG2 6
  289. #define PR_BITS_PER_WORD_LOG2   5
  290.  
  291. #define PR_ALIGN_OF_SHORT   2
  292. #define PR_ALIGN_OF_INT     4
  293. #define PR_ALIGN_OF_LONG    4
  294. #define PR_ALIGN_OF_INT64   8
  295. #define PR_ALIGN_OF_FLOAT   4
  296. #define PR_ALIGN_OF_DOUBLE  8
  297. #define PR_ALIGN_OF_POINTER 4
  298.  
  299. #define PR_BYTES_PER_WORD_LOG2   2
  300. #define PR_BYTES_PER_DWORD_LOG2  3
  301.  
  302. #elif defined(__arm__)
  303.  
  304. #define IS_LITTLE_ENDIAN 1
  305. #undef  IS_BIG_ENDIAN
  306.  
  307. #define PR_BYTES_PER_BYTE   1
  308. #define PR_BYTES_PER_SHORT  2
  309. #define PR_BYTES_PER_INT    4
  310. #define PR_BYTES_PER_INT64  8
  311. #define PR_BYTES_PER_LONG   4
  312. #define PR_BYTES_PER_FLOAT  4
  313. #define PR_BYTES_PER_DOUBLE 8
  314. #define PR_BYTES_PER_WORD   4
  315. #define PR_BYTES_PER_DWORD  8
  316.  
  317. #define PR_BITS_PER_BYTE    8
  318. #define PR_BITS_PER_SHORT   16
  319. #define PR_BITS_PER_INT     32
  320. #define PR_BITS_PER_INT64   64
  321. #define PR_BITS_PER_LONG    32
  322. #define PR_BITS_PER_FLOAT   32
  323. #define PR_BITS_PER_DOUBLE  64
  324. #define PR_BITS_PER_WORD    32
  325.  
  326. #define PR_BITS_PER_BYTE_LOG2   3
  327. #define PR_BITS_PER_SHORT_LOG2  4
  328. #define PR_BITS_PER_INT_LOG2    5
  329. #define PR_BITS_PER_INT64_LOG2  6
  330. #define PR_BITS_PER_LONG_LOG2   5
  331. #define PR_BITS_PER_FLOAT_LOG2  5
  332. #define PR_BITS_PER_DOUBLE_LOG2 6
  333. #define PR_BITS_PER_WORD_LOG2   5
  334.  
  335. #define PR_ALIGN_OF_SHORT   2
  336. #define PR_ALIGN_OF_INT     4
  337. #define PR_ALIGN_OF_LONG    4
  338. #define PR_ALIGN_OF_INT64   4
  339. #define PR_ALIGN_OF_FLOAT   4
  340. #define PR_ALIGN_OF_DOUBLE  4
  341. #define PR_ALIGN_OF_POINTER 4
  342.  
  343. #define PR_BYTES_PER_WORD_LOG2   2
  344. #define PR_BYTES_PER_DWORD_LOG2  3
  345.  
  346. #else
  347.  
  348. #error "Unknown CPU architecture"
  349.  
  350. #endif
  351.  
  352. #define    HAVE_LONG_LONG
  353. /*
  354.  * XXX These two macros need to be investigated for different architectures.
  355.  */
  356. #undef    HAVE_ALIGNED_DOUBLES
  357. #undef    HAVE_ALIGNED_LONGLONGS
  358.  
  359. #ifndef NO_NSPR_10_SUPPORT
  360.  
  361. #define BYTES_PER_BYTE        PR_BYTES_PER_BYTE
  362. #define BYTES_PER_SHORT     PR_BYTES_PER_SHORT
  363. #define BYTES_PER_INT         PR_BYTES_PER_INT
  364. #define BYTES_PER_INT64        PR_BYTES_PER_INT64
  365. #define BYTES_PER_LONG        PR_BYTES_PER_LONG
  366. #define BYTES_PER_FLOAT        PR_BYTES_PER_FLOAT
  367. #define BYTES_PER_DOUBLE    PR_BYTES_PER_DOUBLE
  368. #define BYTES_PER_WORD        PR_BYTES_PER_WORD
  369. #define BYTES_PER_DWORD        PR_BYTES_PER_DWORD
  370.  
  371. #define BITS_PER_BYTE        PR_BITS_PER_BYTE
  372. #define BITS_PER_SHORT        PR_BITS_PER_SHORT
  373. #define BITS_PER_INT        PR_BITS_PER_INT
  374. #define BITS_PER_INT64        PR_BITS_PER_INT64
  375. #define BITS_PER_LONG        PR_BITS_PER_LONG
  376. #define BITS_PER_FLOAT        PR_BITS_PER_FLOAT
  377. #define BITS_PER_DOUBLE        PR_BITS_PER_DOUBLE
  378. #define BITS_PER_WORD        PR_BITS_PER_WORD
  379.  
  380. #define BITS_PER_BYTE_LOG2    PR_BITS_PER_BYTE_LOG2
  381. #define BITS_PER_SHORT_LOG2    PR_BITS_PER_SHORT_LOG2
  382. #define BITS_PER_INT_LOG2    PR_BITS_PER_INT_LOG2
  383. #define BITS_PER_INT64_LOG2    PR_BITS_PER_INT64_LOG2
  384. #define BITS_PER_LONG_LOG2    PR_BITS_PER_LONG_LOG2
  385. #define BITS_PER_FLOAT_LOG2    PR_BITS_PER_FLOAT_LOG2
  386. #define BITS_PER_DOUBLE_LOG2     PR_BITS_PER_DOUBLE_LOG2
  387. #define BITS_PER_WORD_LOG2    PR_BITS_PER_WORD_LOG2
  388.  
  389. #define ALIGN_OF_SHORT        PR_ALIGN_OF_SHORT
  390. #define ALIGN_OF_INT        PR_ALIGN_OF_INT
  391. #define ALIGN_OF_LONG        PR_ALIGN_OF_LONG
  392. #define ALIGN_OF_INT64        PR_ALIGN_OF_INT64
  393. #define ALIGN_OF_FLOAT        PR_ALIGN_OF_FLOAT
  394. #define ALIGN_OF_DOUBLE        PR_ALIGN_OF_DOUBLE
  395. #define ALIGN_OF_POINTER    PR_ALIGN_OF_POINTER
  396. #define ALIGN_OF_WORD        PR_ALIGN_OF_WORD
  397.  
  398. #define BYTES_PER_WORD_LOG2    PR_BYTES_PER_WORD_LOG2
  399. #define BYTES_PER_DWORD_LOG2    PR_BYTES_PER_DWORD_LOG2
  400. #define WORDS_PER_DWORD_LOG2    PR_WORDS_PER_DWORD_LOG2
  401.  
  402. #endif /* NO_NSPR_10_SUPPORT */
  403.  
  404. #endif /* nspr_cpucfg___ */
  405.