lib_def.h
上传用户:yj_qqy
上传日期:2017-01-28
资源大小:2911k
文件大小:27k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                               uC/LIB
  4. *                                       CUSTOM LIBRARY MODULES
  5. *
  6. *                          (c) Copyright 2004-2008; Micrium, Inc.; Weston, FL
  7. *
  8. *               All rights reserved.  Protected by international copyright laws.
  9. *
  10. *               uC/LIB is provided in source form for FREE evaluation, for educational
  11. *               use or peaceful research.  If you plan on using uC/LIB in a commercial
  12. *               product you need to contact Micrium to properly license its use in your
  13. *               product.  We provide ALL the source code for your convenience and to
  14. *               help you experience uC/LIB.  The fact that the source code is provided
  15. *               does NOT mean that you can use it without paying a licensing fee.
  16. *
  17. *               Knowledge of the source code may NOT be used to develop a similar product.
  18. *
  19. *               Please help us continue to provide the Embedded community with the finest
  20. *               software available.  Your honesty is greatly appreciated.
  21. *********************************************************************************************************
  22. */
  23. /*
  24. *********************************************************************************************************
  25. *
  26. *                                     CORE CUSTOM LIBRARY MODULE
  27. *
  28. * Filename      : lib_def.h
  29. * Version       : V1.25
  30. * Programmer(s) : ITJ
  31. *********************************************************************************************************
  32. * Note(s)       : (1) NO compiler-supplied standard library functions are used in library or product software.
  33. *
  34. *                     (a) ALL standard library functions are implemented in the custom library modules :
  35. *
  36. *                         (1) <Custom Library Directory>lib*.*
  37. *
  38. *                         (2) <Custom Library Directory>Ports<cpu><compiler>lib*_a.*
  39. *
  40. *                               where
  41. *                                       <Custom Library Directory>      directory path for custom library software
  42. *                                       <cpu>                           directory name for specific processor (CPU)
  43. *                                       <compiler>                      directory name for specific compiler
  44. *
  45. *                     (b) Product-specific library functions are implemented in individual products.
  46. *********************************************************************************************************
  47. */
  48. /*
  49. *********************************************************************************************************
  50. *                                               MODULE
  51. *********************************************************************************************************
  52. */
  53. #ifndef  LIB_DEF_MODULE_PRESENT
  54. #define  LIB_DEF_MODULE_PRESENT
  55. /*$PAGE*/
  56. /*
  57. *********************************************************************************************************
  58. *                                CUSTOM LIBRARY MODULE VERSION NUMBER
  59. *
  60. * Note(s) : (1) (a) The custom library module software version is denoted as follows :
  61. *
  62. *                       Vx.yy
  63. *
  64. *                           where
  65. *                                   V               denotes 'Version' label
  66. *                                   x               denotes major software version revision number
  67. *                                   yy              denotes minor software version revision number
  68. *
  69. *               (b) The software version label #define is formatted as follows :
  70. *
  71. *                       ver = x.yy * 100
  72. *
  73. *                           where
  74. *                                   ver             denotes software version number scaled as an integer value
  75. *                                   x.yy            denotes software version number
  76. *********************************************************************************************************
  77. */
  78. #define  LIB_VERSION                                     124u   /* See Note #1.                                         */
  79. /*
  80. *********************************************************************************************************
  81. *                                            INCLUDE FILES
  82. *
  83. * Note(s) : (1) The following common software files are located in the following directories :
  84. *
  85. *               (a) <Custom Library Directory>lib*.*
  86. *
  87. *               (b) (1) <CPU-Compiler Directory>cpu_def.h
  88. *
  89. *                   (2) <CPU-Compiler Directory><cpu><compiler>cpu*.*
  90. *
  91. *                           where
  92. *                                   <Custom Library Directory>      directory path for custom   library      software
  93. *                                   <CPU-Compiler Directory>        directory path for common   CPU-compiler software
  94. *                                   <cpu>                           directory name for specific processor (CPU)
  95. *                                   <compiler>                      directory name for specific compiler
  96. *
  97. *           (2) Compiler MUST be configured to include the '<Custom Library Directory>uC-LIB',
  98. *               '<CPU-Compiler Directory>' directory, & the specific CPU-compiler directory as 
  99. *               additional include path directories.
  100. *********************************************************************************************************
  101. */
  102. #include  <cpu.h>
  103. /*$PAGE*/
  104. /*
  105. *********************************************************************************************************
  106. *                                          STANDARD DEFINES
  107. *********************************************************************************************************
  108. */
  109. #define  DEF_DISABLED                                      0
  110. #define  DEF_ENABLED                                       1
  111. #define  DEF_FALSE                                         0
  112. #define  DEF_TRUE                                          1
  113. #define  DEF_NO                                            0
  114. #define  DEF_YES                                           1
  115. #define  DEF_OFF                                           0
  116. #define  DEF_ON                                            1
  117. #define  DEF_CLR                                           0
  118. #define  DEF_SET                                           1
  119. #define  DEF_ACTIVE                                        0
  120. #define  DEF_INACTIVE                                      1
  121. #define  DEF_FAIL                                          0
  122. #define  DEF_OK                                            1
  123.                                                                 /* -------------------- BIT DEFINES ------------------- */
  124. #define  DEF_BIT_NONE                                   0x00
  125. #define  DEF_BIT_00                                     0x01
  126. #define  DEF_BIT_01                                     0x02
  127. #define  DEF_BIT_02                                     0x04
  128. #define  DEF_BIT_03                                     0x08
  129. #define  DEF_BIT_04                                     0x10
  130. #define  DEF_BIT_05                                     0x20
  131. #define  DEF_BIT_06                                     0x40
  132. #define  DEF_BIT_07                                     0x80
  133. #define  DEF_BIT_08                                   0x0100
  134. #define  DEF_BIT_09                                   0x0200
  135. #define  DEF_BIT_10                                   0x0400
  136. #define  DEF_BIT_11                                   0x0800
  137. #define  DEF_BIT_12                                   0x1000
  138. #define  DEF_BIT_13                                   0x2000
  139. #define  DEF_BIT_14                                   0x4000
  140. #define  DEF_BIT_15                                   0x8000
  141. #define  DEF_BIT_16                               0x00010000
  142. #define  DEF_BIT_17                               0x00020000
  143. #define  DEF_BIT_18                               0x00040000
  144. #define  DEF_BIT_19                               0x00080000
  145. #define  DEF_BIT_20                               0x00100000
  146. #define  DEF_BIT_21                               0x00200000
  147. #define  DEF_BIT_22                               0x00400000
  148. #define  DEF_BIT_23                               0x00800000
  149. #define  DEF_BIT_24                               0x01000000
  150. #define  DEF_BIT_25                               0x02000000
  151. #define  DEF_BIT_26                               0x04000000
  152. #define  DEF_BIT_27                               0x08000000
  153. #define  DEF_BIT_28                               0x10000000
  154. #define  DEF_BIT_29                               0x20000000
  155. #define  DEF_BIT_30                               0x40000000
  156. #define  DEF_BIT_31                               0x80000000
  157.                                                                 /* ------------------- OCTET DEFINES ------------------ */
  158. #define  DEF_OCTET_NBR_BITS                                8
  159. #define  DEF_OCTET_MASK                                 0xFF
  160. #define  DEF_NIBBLE_NBR_BITS                               4
  161. #define  DEF_NIBBLE_MASK                                0x0F
  162. /*$PAGE*/
  163.                                                                 /* ------------------ INTEGER DEFINES ----------------- */
  164. #define  DEF_INT_08_NBR_BITS                               8
  165. #define  DEF_INT_08_MASK                                0xFF
  166.                                                             
  167. #define  DEF_INT_08U_MIN_VAL                               0u
  168. #define  DEF_INT_08U_MAX_VAL                             255u
  169. #define  DEF_INT_08S_MIN_VAL                            -128
  170. #define  DEF_INT_08S_MAX_VAL                             127
  171. #define  DEF_INT_08S_MIN_VAL_ONES_CPL                   -127
  172. #define  DEF_INT_08S_MAX_VAL_ONES_CPL                    127
  173. #define  DEF_INT_16_NBR_BITS                              16
  174. #define  DEF_INT_16_MASK                              0xFFFF
  175.                                                             
  176. #define  DEF_INT_16U_MIN_VAL                               0u
  177. #define  DEF_INT_16U_MAX_VAL                           65535u
  178. #define  DEF_INT_16S_MIN_VAL                          -32768
  179. #define  DEF_INT_16S_MAX_VAL                           32767
  180. #define  DEF_INT_16S_MIN_VAL_ONES_CPL                 -32767
  181. #define  DEF_INT_16S_MAX_VAL_ONES_CPL                  32767
  182. #define  DEF_INT_32_NBR_BITS                              32
  183. #define  DEF_INT_32_MASK                          0xFFFFFFFF
  184.                                                             
  185. #define  DEF_INT_32U_MIN_VAL                               0u
  186. #define  DEF_INT_32U_MAX_VAL                      4294967295u
  187. #define  DEF_INT_32S_MIN_VAL                     -2147483648
  188. #define  DEF_INT_32S_MAX_VAL                      2147483647
  189. #define  DEF_INT_32S_MIN_VAL_ONES_CPL            -2147483647
  190. #define  DEF_INT_32S_MAX_VAL_ONES_CPL             2147483647
  191. #define  DEF_INT_64_NBR_BITS                              64
  192. #define  DEF_INT_64_MASK                  0xFFFFFFFFFFFFFFFF
  193.                                                             
  194. #define  DEF_INT_64U_MIN_VAL                               0u
  195. #define  DEF_INT_64U_MAX_VAL            18446744073709551615u
  196. #define  DEF_INT_64S_MIN_VAL            -9223372036854775808
  197. #define  DEF_INT_64S_MAX_VAL             9223372036854775807
  198. #define  DEF_INT_64S_MIN_VAL_ONES_CPL   -9223372036854775807
  199. #define  DEF_INT_64S_MAX_VAL_ONES_CPL    9223372036854775807
  200. /*$PAGE*/
  201.                                                                 /* ---------------- CPU INTEGER DEFINES --------------- */
  202. #define  DEF_INT_CPU_NBR_BITS                           (CPU_CFG_DATA_SIZE * DEF_OCTET_NBR_BITS)
  203. #if     (DEF_INT_CPU_NBR_BITS == DEF_INT_08_NBR_BITS)
  204. #define  DEF_INT_CPU_MASK                                DEF_INT_08_MASK
  205.                                                                    
  206. #define  DEF_INT_CPU_U_MIN_VAL                           DEF_INT_08U_MIN_VAL
  207. #define  DEF_INT_CPU_U_MAX_VAL                           DEF_INT_08U_MAX_VAL
  208. #define  DEF_INT_CPU_S_MIN_VAL                           DEF_INT_08S_MIN_VAL
  209. #define  DEF_INT_CPU_S_MAX_VAL                           DEF_INT_08S_MAX_VAL
  210. #define  DEF_INT_CPU_S_MIN_VAL_ONES_CPL                  DEF_INT_08S_MIN_VAL_ONES_CPL
  211. #define  DEF_INT_CPU_S_MAX_VAL_ONES_CPL                  DEF_INT_08S_MAX_VAL_ONES_CPL
  212. #elif   (DEF_INT_CPU_NBR_BITS == DEF_INT_16_NBR_BITS)
  213. #define  DEF_INT_CPU_MASK                                DEF_INT_16_MASK
  214.                                                                    
  215. #define  DEF_INT_CPU_U_MIN_VAL                           DEF_INT_16U_MIN_VAL
  216. #define  DEF_INT_CPU_U_MAX_VAL                           DEF_INT_16U_MAX_VAL
  217. #define  DEF_INT_CPU_S_MIN_VAL                           DEF_INT_16S_MIN_VAL
  218. #define  DEF_INT_CPU_S_MAX_VAL                           DEF_INT_16S_MAX_VAL
  219. #define  DEF_INT_CPU_S_MIN_VAL_ONES_CPL                  DEF_INT_16S_MIN_VAL_ONES_CPL
  220. #define  DEF_INT_CPU_S_MAX_VAL_ONES_CPL                  DEF_INT_16S_MAX_VAL_ONES_CPL
  221. #elif   (DEF_INT_CPU_NBR_BITS == DEF_INT_32_NBR_BITS)
  222. #define  DEF_INT_CPU_MASK                                DEF_INT_32_MASK
  223.                                                     
  224. #define  DEF_INT_CPU_U_MIN_VAL                           DEF_INT_32U_MIN_VAL
  225. #define  DEF_INT_CPU_U_MAX_VAL                           DEF_INT_32U_MAX_VAL
  226. #define  DEF_INT_CPU_S_MIN_VAL                           DEF_INT_32S_MIN_VAL
  227. #define  DEF_INT_CPU_S_MAX_VAL                           DEF_INT_32S_MAX_VAL
  228. #define  DEF_INT_CPU_S_MIN_VAL_ONES_CPL                  DEF_INT_32S_MIN_VAL_ONES_CPL
  229. #define  DEF_INT_CPU_S_MAX_VAL_ONES_CPL                  DEF_INT_32S_MAX_VAL_ONES_CPL
  230. #elif   (DEF_INT_CPU_NBR_BITS == DEF_INT_64_NBR_BITS)
  231. #define  DEF_INT_CPU_MASK                                DEF_INT_64_MASK
  232.                                                                    
  233. #define  DEF_INT_CPU_U_MIN_VAL                           DEF_INT_64U_MIN_VAL
  234. #define  DEF_INT_CPU_U_MAX_VAL                           DEF_INT_64U_MAX_VAL
  235. #define  DEF_INT_CPU_S_MIN_VAL                           DEF_INT_64S_MIN_VAL
  236. #define  DEF_INT_CPU_S_MAX_VAL                           DEF_INT_64S_MAX_VAL
  237. #define  DEF_INT_CPU_S_MIN_VAL_ONES_CPL                  DEF_INT_64S_MIN_VAL_ONES_CPL
  238. #define  DEF_INT_CPU_S_MAX_VAL_ONES_CPL                  DEF_INT_64S_MAX_VAL_ONES_CPL
  239.                                                       
  240. #else
  241. #error  "CPU_CFG_DATA_SIZE  illegally #defined in 'cpu.h'      "
  242. #error  "                   [See 'cpu.h  CONFIGURATION ERRORS']"
  243. #endif
  244. /*$PAGE*/
  245.                                                                 /* ------------------- TIME DEFINES ------------------- */
  246. #define  DEF_TIME_NBR_HR_PER_DAY                          24uL
  247. #define  DEF_TIME_NBR_MIN_PER_HR                          60uL
  248. #define  DEF_TIME_NBR_MIN_PER_DAY                       (DEF_TIME_NBR_MIN_PER_HR  * DEF_TIME_NBR_HR_PER_DAY)
  249. #define  DEF_TIME_NBR_SEC_PER_MIN                         60uL
  250. #define  DEF_TIME_NBR_SEC_PER_HR                        (DEF_TIME_NBR_SEC_PER_MIN * DEF_TIME_NBR_MIN_PER_HR)
  251. #define  DEF_TIME_NBR_SEC_PER_DAY                       (DEF_TIME_NBR_SEC_PER_HR  * DEF_TIME_NBR_HR_PER_DAY)
  252. #define  DEF_TIME_NBR_mS_PER_SEC                        1000uL
  253. #define  DEF_TIME_NBR_uS_PER_SEC                     1000000uL
  254. #define  DEF_TIME_NBR_nS_PER_SEC                  1000000000uL
  255. /*$PAGE*/
  256. /*
  257. *********************************************************************************************************
  258. *                                             ERROR CODES
  259. *
  260. * Note(s) : (1) All generic library error codes are #define'd in 'lib_def.h';
  261. *               Any module-specific error codes are #define'd in library module header files.
  262. *********************************************************************************************************
  263. */
  264. #define  LIB_ERR_NONE                                      0
  265. /*$PAGE*/
  266. /*
  267. *********************************************************************************************************
  268. *                                             DATA TYPES
  269. *********************************************************************************************************
  270. */
  271. typedef  CPU_INT16U  LIB_ERR;
  272. /*
  273. *********************************************************************************************************
  274. *                                          GLOBAL VARIABLES
  275. *********************************************************************************************************
  276. */
  277. /*$PAGE*/
  278. /*
  279. *********************************************************************************************************
  280. *                                             BIT MACRO'S
  281. *********************************************************************************************************
  282. */
  283. /*
  284. *********************************************************************************************************
  285. *                                              DEF_BIT()
  286. *
  287. * Description : Create bit mask with single, specified bit set.
  288. *
  289. * Argument(s) : bit         Bit number of bit to set.
  290. *
  291. * Return(s)   : Bit mask with single, specified bit set.
  292. *
  293. * Caller(s)   : Application.
  294. *
  295. * Note(s)     : (1) 'bit' values that overflow the target CPU &/or compiler environment (e.g. negative
  296. *                   or greater-than-CPU-data-size values) MAY generate compiler warnings &/or errors.
  297. *********************************************************************************************************
  298. */
  299. #define  DEF_BIT(bit)                            (1u << (bit))
  300. /*$PAGE*/
  301. /*
  302. *********************************************************************************************************
  303. *                                           DEF_BIT_MASK()
  304. *
  305. * Description : Shift a bit mask.
  306. *
  307. * Argument(s) : bit_mask    Bit mask to shift.
  308. *
  309. *               bit_shift   Number of bit positions to left-shift bit mask.
  310. *
  311. * Return(s)   : Shifted bit mask.
  312. *
  313. * Caller(s)   : Application.
  314. *
  315. * Note(s)     : (1) 'bit_shift' values that overflow the target CPU &/or compiler environment (e.g. negative
  316. *                   or greater-than-CPU-data-size values) MAY generate compiler warnings &/or errors.
  317. *********************************************************************************************************
  318. */
  319. #define  DEF_BIT_MASK(bit_mask, bit_shift)             ((bit_mask)       << (bit_shift))
  320. /*
  321. *********************************************************************************************************
  322. *                                           DEF_BIT_FIELD()
  323. *
  324. * Description : Create & shift a contiguous bit field.
  325. *
  326. * Argument(s) : bit_field   Number of contiguous bits to set in the bit field.
  327. *
  328. *               bit_shift   Number of bit positions   to left-shift bit field.
  329. *
  330. * Return(s)   : Shifted bit field.
  331. *
  332. * Caller(s)   : Application.
  333. *
  334. * Note(s)     : (1) 'bit_field'/'bit_shift' values that overflow the target CPU &/or compiler environment 
  335. *                   (e.g. negative or greater-than-CPU-data-size values) MAY generate compiler warnings
  336. *                   &/or errors.
  337. *********************************************************************************************************
  338. */
  339. #define  DEF_BIT_FIELD(bit_field, bit_shift)         ((((bit_field) >= DEF_INT_CPU_NBR_BITS) ? (DEF_INT_CPU_U_MAX_VAL)   
  340.                                                                                              : (DEF_BIT(bit_field) - 1)) 
  341.                                                                                                     << (bit_shift))
  342. /*$PAGE*/
  343. /*
  344. *********************************************************************************************************
  345. *                                            DEF_BIT_SET()
  346. *
  347. * Description : Set specified bit(s) in a value.
  348. *
  349. * Argument(s) : val         Value to modify by setting specified bit(s).
  350. *
  351. *               mask        Mask of bits to set.
  352. *
  353. * Return(s)   : Modified value with specified bit(s) set.
  354. *
  355. * Caller(s)   : Application.
  356. *
  357. * Note(s)     : none.
  358. *********************************************************************************************************
  359. */
  360. #define  DEF_BIT_SET(val, mask)                       { (val) |=  (mask); }
  361. /*
  362. *********************************************************************************************************
  363. *                                            DEF_BIT_CLR()
  364. *
  365. * Description : Clear specified bit(s) in a value.
  366. *
  367. * Argument(s) : val         Value to modify by clearing specified bit(s).
  368. *
  369. *               mask        Mask of bits to clear.
  370. *
  371. * Return(s)   : Modified value with specified bit(s) clear.
  372. *
  373. * Caller(s)   : Application.
  374. *
  375. * Note(s)     : none.
  376. *********************************************************************************************************
  377. */
  378. #define  DEF_BIT_CLR(val, mask)                       { (val) &= ~(mask); }
  379. /*$PAGE*/
  380. /*
  381. *********************************************************************************************************
  382. *                                          DEF_BIT_IS_SET()
  383. *
  384. * Description : Determine if specified bit(s) in a value are set.
  385. *
  386. * Argument(s) : val         Value to check for specified bit(s) set.
  387. *
  388. *               mask        Mask of bits to check if set.
  389. *
  390. * Return(s)   : DEF_YES, if ALL specified bit(s) are     set in value.
  391. *     
  392. *               DEF_NO,  if ALL specified bit(s) are NOT set in value.
  393. *
  394. * Caller(s)   : Application.
  395. *
  396. * Note(s)     : none.
  397. *********************************************************************************************************
  398. */
  399. #define  DEF_BIT_IS_SET(val, mask)                   ((((val) & (mask)) == (mask)) ? (DEF_YES) : (DEF_NO ))
  400. /*
  401. *********************************************************************************************************
  402. *                                          DEF_BIT_IS_CLR()
  403. *
  404. * Description : Determine if specified bit(s) in a value are clear.
  405. *
  406. * Argument(s) : val         Value to check for specified bit(s) clear.
  407. *
  408. *               mask        Mask of bits to check if clear.
  409. *
  410. * Return(s)   : DEF_YES, if ALL specified bit(s) are     clear in value.
  411. *     
  412. *               DEF_NO,  if ALL specified bit(s) are NOT clear in value.
  413. *
  414. * Caller(s)   : Application.
  415. *
  416. * Note(s)     : none.
  417. *********************************************************************************************************
  418. */
  419. #define  DEF_BIT_IS_CLR(val, mask)                    (((val) & (mask))            ? (DEF_NO ) : (DEF_YES))
  420. /*$PAGE*/
  421. /*
  422. *********************************************************************************************************
  423. *                                        DEF_BIT_IS_SET_ANY()
  424. *
  425. * Description : Determine if any specified bit(s) in a value are set.
  426. *
  427. * Argument(s) : val         Value to check for specified bit(s) set.
  428. *
  429. *               mask        Mask of bits to check if set.
  430. *
  431. * Return(s)   : DEF_YES, if ANY specified bit(s) are     set in value.
  432. *     
  433. *               DEF_NO,  if ALL specified bit(s) are NOT set in value.
  434. *
  435. * Caller(s)   : Application.
  436. *
  437. * Note(s)     : none.
  438. *********************************************************************************************************
  439. */
  440. #define  DEF_BIT_IS_SET_ANY(val, mask)                (((val) & (mask))            ? (DEF_YES) : (DEF_NO ))
  441. /*
  442. *********************************************************************************************************
  443. *                                        DEF_BIT_IS_CLR_ANY()
  444. *
  445. * Description : Determine if any specified bit(s) in a value are clear.
  446. *
  447. * Argument(s) : val         Value to check for specified bit(s) clear.
  448. *
  449. *               mask        Mask of bits to check if clear.
  450. *
  451. * Return(s)   : DEF_YES, if ANY specified bit(s) are     clear in value.
  452. *     
  453. *               DEF_NO,  if ALL specified bit(s) are NOT clear in value.
  454. *
  455. * Note(s)     : none.
  456. *********************************************************************************************************
  457. */
  458. #define  DEF_BIT_IS_CLR_ANY(val, mask)               ((((val) & (mask)) != (mask)) ? (DEF_YES) : (DEF_NO ))
  459. /*$PAGE*/
  460. /*
  461. *********************************************************************************************************
  462. *                                            MATH MACRO'S
  463. *********************************************************************************************************
  464. */
  465. /*
  466. *********************************************************************************************************
  467. *                                              DEF_MIN()
  468. *
  469. * Description : Determine the minimum of two values.
  470. *
  471. * Argument(s) : a           First  value.
  472. *
  473. *               b           Second value.
  474. *
  475. * Return(s)   : Minimum of the two values.
  476. *
  477. * Caller(s)   : Application.
  478. *
  479. * Note(s)     : none.
  480. *********************************************************************************************************
  481. */
  482. #define  DEF_MIN(a, b)                                  (((a) < (b)) ? (a) : (b))
  483. /*
  484. *********************************************************************************************************
  485. *                                              DEF_MAX()
  486. *
  487. * Description : Determine the maximum of two values.
  488. *
  489. * Argument(s) : a           First  value.
  490. *
  491. *               b           Second value.
  492. *
  493. * Return(s)   : Maximum of the two values.
  494. *
  495. * Note(s)     : none.
  496. *********************************************************************************************************
  497. */
  498. #define  DEF_MAX(a, b)                                  (((a) > (b)) ? (a) : (b))
  499. /*$PAGE*/
  500. /*
  501. *********************************************************************************************************
  502. *                                              DEF_ABS()
  503. *
  504. * Description : Determine the absolute value of a value.
  505. *
  506. * Argument(s) : a           Value to calculate absolute value.
  507. *
  508. * Return(s)   : Absolute value of the value.
  509. *
  510. * Caller(s)   : Application.
  511. *
  512. * Note(s)     : none.
  513. *********************************************************************************************************
  514. */
  515. #define  DEF_ABS(a)                                     (((a) < 0) ? (-(a)) : (a))
  516. /*$PAGE*/
  517. /*
  518. *********************************************************************************************************
  519. *                                         FUNCTION PROTOTYPES
  520. *********************************************************************************************************
  521. */
  522. /*
  523. *********************************************************************************************************
  524. *                                        CONFIGURATION ERRORS
  525. *********************************************************************************************************
  526. */
  527. /*$PAGE*/
  528. /*
  529. *********************************************************************************************************
  530. *                                             MODULE END
  531. *********************************************************************************************************
  532. */
  533. #endif                                                          /* End of lib def module include.                       */