mirror of https://github.com/acidanthera/audk.git
Modified to strip leading white-space characters and ignore blank or comment only lines
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4080 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
a7593b363b
commit
2e7ddad2a0
|
@ -30,6 +30,8 @@ Abstract:
|
|||
|
||||
#define MAX_LINE_LEN 256
|
||||
|
||||
#define STATUS_IGNORE 0xA
|
||||
|
||||
//
|
||||
// Structure definition for a microcode header
|
||||
//
|
||||
|
@ -120,6 +122,7 @@ Returns:
|
|||
{
|
||||
char Line[MAX_LINE_LEN];
|
||||
char *cptr;
|
||||
unsigned int ctr;
|
||||
|
||||
Line[MAX_LINE_LEN - 1] = 0;
|
||||
*Data = 0;
|
||||
|
@ -132,6 +135,17 @@ Returns:
|
|||
if (Line[MAX_LINE_LEN - 1] != 0) {
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
// Strip leading white-space characters (except carriage returns) from Line
|
||||
//
|
||||
if (isspace(Line[0]) && Line[0] != '\n') {
|
||||
while (isspace(Line[0])) {
|
||||
for (ctr = 0; ctr < strlen(Line); ctr++)
|
||||
if (Line[ctr] != '\n')
|
||||
Line[ctr] = Line[ctr + 1];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Look for
|
||||
// dd 000000001h ; comment
|
||||
|
@ -155,6 +169,12 @@ Returns:
|
|||
}
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
if (strlen(Line) == 1) {
|
||||
return STATUS_IGNORE;
|
||||
}
|
||||
if (tolower(cptr[0]) == ';') {
|
||||
return STATUS_IGNORE;
|
||||
}
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -188,6 +208,7 @@ Returns:
|
|||
unsigned int Checksum;
|
||||
char *Buffer;
|
||||
char *Ptr;
|
||||
char *OrigPtr;
|
||||
unsigned int TotalSize;
|
||||
|
||||
Status = STATUS_ERROR;
|
||||
|
@ -212,6 +233,9 @@ Returns:
|
|||
if (Status == STATUS_SUCCESS) {
|
||||
Size += sizeof (Data);
|
||||
}
|
||||
if (Status == STATUS_IGNORE) {
|
||||
Status = STATUS_SUCCESS;
|
||||
}
|
||||
} while (Status == STATUS_SUCCESS);
|
||||
//
|
||||
// Error if no data.
|
||||
|
@ -237,12 +261,18 @@ Returns:
|
|||
//
|
||||
fseek (InFptr, 0, SEEK_SET);
|
||||
Ptr = Buffer;
|
||||
OrigPtr = Ptr;
|
||||
do {
|
||||
OrigPtr = Ptr;
|
||||
Status = MicrocodeReadData (InFptr, &Data);
|
||||
if (Status == STATUS_SUCCESS) {
|
||||
*(unsigned int *) Ptr = Data;
|
||||
Ptr += sizeof (Data);
|
||||
}
|
||||
if (Status == STATUS_IGNORE) {
|
||||
Ptr = OrigPtr;
|
||||
Status = STATUS_SUCCESS;
|
||||
}
|
||||
} while (Status == STATUS_SUCCESS);
|
||||
//
|
||||
// Can't do much checking on the header because, per the spec, the
|
||||
|
|
Loading…
Reference in New Issue