Nick: heijligen E-mail: none Board: opcode_erasefn Contents: struct { uint8_t opcode; erasefunc_t *erasefn; } opcode_erasefn_map[] = { {0x20, &spi_block_erase_20}, {0x21, &spi_block_erase_21}, {0x50, &spi_block_erase_50}, {0x52, &spi_block_erase_52}, {0x5c, &spi_block_erase_5c}, {0x60, &spi_block_erase_60}, {0x62, &spi_block_erase_62}, {0x81, &spi_block_erase_81}, {0xc4, &spi_block_erase_c4}, {0xc7, &spi_block_erase_c7}, {0xd7, &spi_block_erase_d7}, {0xd8, &spi_block_erase_d8}, {0xdb, &spi_block_erase_db}, {0xdc, &spi_block_erase_dc}, }; uint8_t spi_get_opcode_from_erasefn(erasefunc_t *erasefn) { for (unsigned int i = 0; i < ARRAY_SIZE(opcode_erasefn_map); i++) { if (erasefn == opcode_erasefn_map[i].erasefn) return opcode_erasefn_map[i].opcode; } return 0xff; // not supported opcode } erasefunc_t *spi_get_erasefn_from_opcode(uint8_t opcode) { for(uint i = 0; i < ARRAY_SIZE(opcode_erasefn_map); i++) { if (opcode == opcode_erasefn_map[i].opcode) return opcode_erasefn_map[i].erasefn; } msg_cinfo("%s: unknown erase opcode (0x%02x). Please report " "this at flashrom@flashrom.org\n", __func__, opcode); return NULL; }