Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. /* addrspace.c */
  2. /*****************************************************************************/
  3. /* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only                     */
  4. /*                                                                           */
  5. /* AS                                                                        */
  6. /*                                                                           */
  7. /* Address Space enumeration                                                 */
  8. /*                                                                           */
  9. /*****************************************************************************/
  10.  
  11. #include "strutil.h"
  12. #include "addrspace.h"
  13.  
  14. const char *SegNames[SegCountPlusStruct] =
  15. {
  16.   "NOTHING", "CODE", "DATA", "IDATA", "XDATA", "YDATA",
  17.   "BITDATA", "IO", "REG", "ROMDATA", "EEDATA", "STRUCT"
  18. };
  19.  
  20. char SegShorts[SegCountPlusStruct] =
  21. {
  22.   '-','C','D','I','X','Y','B','P','R','O','E','S'
  23. };
  24.  
  25. /*!------------------------------------------------------------------------
  26.  * \fn     addrspace_lookup(const char *p_name)
  27.  * \brief  look up address space's name
  28.  * \param  p_name name in source
  29.  * \return enum or SegCountPlusStruct if not found
  30.  * ------------------------------------------------------------------------ */
  31.  
  32. as_addrspace_t addrspace_lookup(const char *p_name)
  33. {
  34.   as_addrspace_t res;
  35.  
  36.   for (res = SegNone; res < SegCountPlusStruct; res++)
  37.     if (!as_strcasecmp(p_name, SegNames[res]))
  38.       break;
  39.   return res;
  40. }
  41.