svn commit: r334046 - head/tools/tools/intel-ucode-split

Sean Bruno sbruno at freebsd.org
Tue Jun 12 22:17:20 UTC 2018



On 06/12/18 16:05, Oliver Pinter wrote:
> On 5/22/18, Ed Maste <emaste at freebsd.org> wrote:
>> Author: emaste
>> Date: Tue May 22 14:35:33 2018
>> New Revision: 334046
>> URL: https://svnweb.freebsd.org/changeset/base/334046
>>
>> Log:
>>   intel-ucode-split: add -n flag to skip creating output files
>>
>>   Sponsored by:	The FreeBSD Foundation
>>
>> Modified:
>>   head/tools/tools/intel-ucode-split/intel-ucode-split.c
> 
> Hi!
> 
> Could you please MFC the intel-ucode-split related commits to 11-STABLE?
> 
> 
> Thanks,
> op
> 

Do you need it in base for some reason?  This code is already in the
devcpu-data port and is used when the port is built.  Its not needed for
anything AFAIK.

sean


>>
>> Modified: head/tools/tools/intel-ucode-split/intel-ucode-split.c
>> ==============================================================================
>> --- head/tools/tools/intel-ucode-split/intel-ucode-split.c	Tue May 22
>> 14:26:58 2018	(r334045)
>> +++ head/tools/tools/intel-ucode-split/intel-ucode-split.c	Tue May 22
>> 14:35:33 2018	(r334046)
>> @@ -112,7 +112,7 @@ static void
>>  usage(void)
>>  {
>>
>> -	printf("ucode-split [-v] microcode_file\n");
>> +	printf("ucode-split [-nv] microcode_file\n");
>>  	exit(1);
>>  }
>>
>> @@ -124,11 +124,14 @@ main(int argc, char *argv[])
>>  	size_t len, resid;
>>  	ssize_t rv;
>>  	int c, ifd, ofd;
>> -	bool vflag;
>> +	bool nflag, vflag;
>>
>> -	vflag = false;
>> -	while ((c = getopt(argc, argv, "v")) != -1) {
>> +	nflag = vflag = false;
>> +	while ((c = getopt(argc, argv, "nv")) != -1) {
>>  		switch (c) {
>> +		case 'n':
>> +			nflag = true;
>> +			break;
>>  		case 'v':
>>  			vflag = true;
>>  			break;
>> @@ -166,40 +169,48 @@ main(int argc, char *argv[])
>>  		if (vflag)
>>  			dump_header(&hdr);
>>
>> -		sig_str = format_signature(hdr.processor_signature);
>> -		asprintf(&output_file, "%s.%02x", sig_str,
>> -		    hdr.processor_flags & 0xff);
>> -		free(sig_str);
>> -		if (output_file == NULL)
>> -			err(1, "asprintf");
>> -		ofd = open(output_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
>> -		if (ofd < 0)
>> -			err(1, "open");
>> -
>> -		/* Write header. */
>> -		rv = write(ofd, &hdr, sizeof(hdr));
>> -		if (rv < (ssize_t)sizeof(hdr))
>> -			err(1, "write");
>> -
>> -		/* Copy data. */
>>  		resid = (hdr.total_size != 0 ? hdr.total_size : 2048) -
>>  		    sizeof(hdr);
>>  		if (resid > 1 << 24) /* Arbitrary chosen maximum size. */
>>  			errx(1, "header total_size too large");
>> -		while (resid > 0) {
>> -			len = resid < bufsize ? resid : bufsize;
>> -			rv = read(ifd, buf, len);
>> -			if (rv < 0)
>> -				err(1, "read");
>> -			else if (rv < (ssize_t)len)
>> -				errx(1, "truncated microcode data");
>> -			if (write(ofd, buf, len) < (ssize_t)len)
>> +
>> +		if (nflag) {
>> +			if (lseek(ifd, resid, SEEK_CUR) == -1)
>> +				err(1, "lseek");
>> +			printf("\n");
>> +		} else {
>> +			sig_str = format_signature(hdr.processor_signature);
>> +			asprintf(&output_file, "%s.%02x", sig_str,
>> +			    hdr.processor_flags & 0xff);
>> +			free(sig_str);
>> +			if (output_file == NULL)
>> +				err(1, "asprintf");
>> +			ofd = open(output_file, O_WRONLY | O_CREAT | O_TRUNC,
>> +			    0600);
>> +			if (ofd < 0)
>> +				err(1, "open");
>> +	
>> +			/* Write header. */
>> +			rv = write(ofd, &hdr, sizeof(hdr));
>> +			if (rv < (ssize_t)sizeof(hdr))
>>  				err(1, "write");
>> -			resid -= len;
>> +	
>> +			/* Copy data. */
>> +			while (resid > 0) {
>> +				len = resid < bufsize ? resid : bufsize;
>> +				rv = read(ifd, buf, len);
>> +				if (rv < 0)
>> +					err(1, "read");
>> +				else if (rv < (ssize_t)len)
>> +					errx(1, "truncated microcode data");
>> +				if (write(ofd, buf, len) < (ssize_t)len)
>> +					err(1, "write");
>> +				resid -= len;
>> +			}
>> +			if (vflag)
>> +				printf("written to %s\n\n", output_file);
>> +			close(ofd);
>> +			free(output_file);
>>  		}
>> -		if (vflag)
>> -			printf("written to %s\n\n", output_file);
>> -		close(ofd);
>> -		free(output_file);
>>  	}
>>  }
>> _______________________________________________
>> svn-src-head at freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/svn-src-head
>> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
>>
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 618 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20180612/4f448be0/attachment.sig>


More information about the svn-src-head mailing list