| 107 | } |
| 108 | |
| 109 | int flashrom_host_write(struct buffer *buffer, const char *region) |
| 110 | { |
| 111 | char *tmpfile; |
| 112 | char region_param[PATH_MAX]; |
| 113 | int rv; |
| 114 | |
| 115 | if (create_temp_file(&tmpfile) != 0) |
| 116 | return -1; |
| 117 | if (buffer_write_file(buffer, tmpfile) != 0) { |
| 118 | rv = -2; |
| 119 | goto fail; |
| 120 | } |
| 121 | |
| 122 | if (region) |
| 123 | snprintf(region_param, sizeof(region_param), "%s:%s", region, |
| 124 | tmpfile); |
| 125 | const char *const argv[] = { |
| 126 | FLASHROM_EXEC_NAME, |
| 127 | "-p", |
| 128 | FLASHROM_PROGRAMMER_INTERNAL_AP, |
| 129 | "--noverify-all", |
| 130 | "-w", |
| 131 | region ? "-i" : tmpfile, |
| 132 | region ? region_param : NULL, |
| 133 | NULL, |
| 134 | }; |
| 135 | |
| 136 | rv = run_flashrom(argv); |
| 137 | |
| 138 | fail: |
| 139 | unlink(tmpfile); |
| 140 | free(tmpfile); |
| 141 | |
| 142 | return rv; |
| 143 | } |
no test coverage detected