c
static int qca_generate_hsp_nvm_name(char *buf, size_t size,
                                      struct qca_btsoc_version ver,
                                      u8 rom_ver, u16 boardid) {
    int required_size;

    // Calculate required size *carefully*, accounting for max values of rom_ver, boardid.
    required_size = snprintf(NULL, 0, "qca/hsp%02x_%04x_something", rom_ver, boardid) + 1;

    if (required_size > size) {
        return -ENAMETOOLONG; // Or truncate if that's acceptable (but handle it explicitly)
    }


    snprintf(buf, size, "qca/hsp%02x_%04x_something", rom_ver, boardid); // Now safe
    return 0;
}
