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, see <http://www.gnu.org/licenses/>. * 16 ***************************************************************************/ 17 18 #ifdef HAVE_CONFIG_H 19 #include "config.h" 20 #endif 21 22 #include "common.h" 23 #include <helper/log.h> 24 get_flash_name_index(const char * name)25unsigned get_flash_name_index(const char *name) 26 { 27 const char *name_index = strrchr(name, '.'); 28 if (NULL == name_index) 29 return 0; 30 if (name_index[1] < '0' || name_index[1] > '9') 31 return ~0U; 32 unsigned requested; 33 int retval = parse_uint(name_index + 1, &requested); 34 /* detect parsing error by forcing past end of bank list */ 35 return (ERROR_OK == retval) ? requested : ~0U; 36 } 37 flash_driver_name_matches(const char * name,const char * expected)38bool flash_driver_name_matches(const char *name, const char *expected) 39 { 40 unsigned blen = strlen(name); 41 /* only match up to the length of the driver name... */ 42 if (strncmp(name, expected, blen) != 0) 43 return false; 44 45 /* ...then check that name terminates at this spot. */ 46 return expected[blen] == '.' || expected[blen] == '\0'; 47 } 48