diff options
| author | Leah Rowe <leah@libreboot.org> | 2023-09-19 16:05:34 +0100 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2023-09-19 16:05:34 +0100 | 
| commit | d9bed115018bae46ca6b20a9f8f55ee434dd8cfa (patch) | |
| tree | 15764c5ec6f64017d00b44909c91f2e74b78ebad /util | |
| parent | 5e8013601a7592721a908252625eb785ae9f7a8b (diff) | |
util/nvmutil: further optimise swap command
don't swap pointers at all. handle it in the for loop.
258 sloccount now, versus 261.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'util')
| -rw-r--r-- | util/nvmutil/nvmutil.c | 13 | 
1 files changed, 5 insertions, 8 deletions
| diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index 79b0ceeb..36ef6b01 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -279,15 +279,12 @@ void  writeGbeFile(void)  {  	errno = 0; -	if (cmd == writeGbeFile) { -		err_if(!(validChecksum(0) || validChecksum(1))); -		xorswap(gbe[0], gbe[1]); -	} -	for (int p = 0; p < 2; p++) { -		if ((!nvmPartModified[p]) && (gbe[0] <= gbe[1])) +	err_if((cmd == writeGbeFile) && !(validChecksum(0) || validChecksum(1))); +	for (int p = 0, x = (cmd == writeGbeFile) ? 1 : 0; p < 2; p++) { +		if ((!nvmPartModified[p]) && (cmd != writeGbeFile))  			continue; -		handle_endianness(p); -		err_if(pwrite(fd, (uint8_t *) gbe[p], nf, p << 12) == -1); +		handle_endianness(p^x); +		err_if(pwrite(fd, (uint8_t *) gbe[p^x], nf, p << 12) == -1);  	}  	err_if(close(fd) == -1);  } | 
