You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
2.1KB

  1. /***************************************************************************
  2. * Copyright (C) 2009 by Zachary T Welch <zw@superlucidity.net> *
  3. * *
  4. * This program is free software; you can redistribute it and/or modify *
  5. * it under the terms of the GNU General Public License as published by *
  6. * the Free Software Foundation; either version 2 of the License, or *
  7. * (at your option) any later version. *
  8. * *
  9. * This program is distributed in the hope that it will be useful, *
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of *
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
  12. * GNU General Public License for more details. *
  13. * *
  14. * You should have received a copy of the GNU General Public License *
  15. * along with this program; if not, write to the *
  16. * Free Software Foundation, Inc., *
  17. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
  18. ***************************************************************************/
  19. #ifdef HAVE_CONFIG_H
  20. #include "config.h"
  21. #endif
  22. #include "common.h"
  23. #include <helper/log.h>
  24. unsigned get_flash_name_index(const char *name)
  25. {
  26. const char *name_index = strrchr(name, '.');
  27. if (NULL == name_index)
  28. return 0;
  29. if (name_index[1] < '0' || name_index[1] > '9')
  30. return ~0U;
  31. unsigned requested;
  32. int retval = parse_uint(name_index + 1, &requested);
  33. /* detect parsing error by forcing past end of bank list */
  34. return (ERROR_OK == retval) ? requested : ~0U;
  35. }
  36. bool flash_driver_name_matches(const char *name, const char *expected)
  37. {
  38. unsigned blen = strlen(name);
  39. /* only match up to the length of the driver name... */
  40. if (strncmp(name, expected, blen) != 0)
  41. return false;
  42. /* ...then check that name terminates at this spot. */
  43. return expected[blen] == '.' || expected[blen] == '\0';
  44. }