Re: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
Reviewed-by: Bob Feng -Original Message- From: devel@edk2.groups.io On Behalf Of gaoliming Sent: Monday, November 29, 2021 1:05 PM To: devel@edk2.groups.io; Jiang, Xiaolu Cc: Feng, Bob C ; Chen, Christine Subject: 回复: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Reviewed-by: Liming Gao > -邮件原件- > 发件人: devel@edk2.groups.io 代表 Xiaolu.Jiang > 发送时间: 2021年11月29日 10:13 > 收件人: devel@edk2.groups.io > 抄送: Xiaolu.Jiang ; Bob Feng > ; Liming Gao ; Yuwei > Chen > 主题: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for > support more PCD value. > > Currently the PCD Value only support 13 Guid,When use more 13 pcd will > cause the build tool fail, Need calculate the required memory,then > allocate it. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3718 > > Cc: Bob Feng > Cc: Liming Gao > Cc: Yuwei Chen > > Signed-off-by: Xiaolu Jiang > --- > BaseTools/Source/C/DevicePath/DevicePath.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c > b/BaseTools/Source/C/DevicePath/DevicePath.c > index c4d224ed61..ed19eb52f6 100644 > --- a/BaseTools/Source/C/DevicePath/DevicePath.c > +++ b/BaseTools/Source/C/DevicePath/DevicePath.c > @@ -170,7 +170,7 @@ int main(int argc, CHAR8 *argv[]) > fprintf(stderr, "Invalid option value, Device Path can't be > NULL"); > > return STATUS_ERROR; > >} > > - Str16 = (CHAR16 *)malloc(1024); > > + Str16 = (CHAR16 *)malloc((strlen (Str) + 1) * sizeof (CHAR16)); > >if (Str16 == NULL) { > > fprintf(stderr, "Resource, memory cannot be allocated"); > > return STATUS_ERROR; > > -- > 2.30.2.windows.1 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#84123): > https://edk2.groups.io/g/devel/message/84123 > Mute This Topic: https://groups.io/mt/87369900/4905953 > Group Owner: devel+ow...@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub > [gaolim...@byosoft.com.cn] > -=-=-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#84534): https://edk2.groups.io/g/devel/message/84534 Mute This Topic: https://groups.io/mt/87602017/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
This patch is good to me. Reviewed-by: Bob Feng -Original Message- From: Jiang, Xiaolu Sent: Tuesday, November 16, 2021 9:42 AM To: devel@edk2.groups.io Cc: Jiang, Xiaolu ; Feng, Bob C ; Liming Gao ; Chen, Christine Subject: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Currently the PCD Value only support 13 Guid,When use more 13 pcd will cause the build tool fail, Need calculate the required memory,then allocate it. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3718 Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Signed-off-by: Xiaolu Jiang --- BaseTools/Source/C/DevicePath/DevicePath.c | 36 +- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c b/BaseTools/Source/C/DevicePath/DevicePath.c index c4d224ed61..8a0f5f4e2a 100644 --- a/BaseTools/Source/C/DevicePath/DevicePath.c +++ b/BaseTools/Source/C/DevicePath/DevicePath.c @@ -144,6 +144,40 @@ Returns: *UniString = '\0'; } ++/**+ Returns the length of a Null-terminated ASCII string.++ This function returns the number of ASCII characters in the Null-terminated+ ASCII string specified by String.++ If Length > 0 and Destination is NULL, then ASSERT().+ If Length > 0 and Source is NULL, then ASSERT().+ If PcdMaximumAsciiStringLength is not zero and String contains more than+ PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,+ then ASSERT().++ @param String A pointer to a Null-terminated ASCII string.++ @return The length of String.++**/+UINTN+EFIAPI+AsciiStrLen (+ IN CONST CHAR8 *String+ )+{+ UINTN Length;++ ASSERT (String != NULL);++ for (Length = 0; *String != '\0'; String++, Length++) {++ }+ return Length;+}+ int main(int argc, CHAR8 *argv[]) { CHAR8 * Str;@@ -170,7 +204,7 @@ int main(int argc, CHAR8 *argv[]) fprintf(stderr, "Invalid option value, Device Path can't be NULL"); return STATUS_ERROR; }- Str16 = (CHAR16 *)malloc(1024);+ Str16 = (CHAR16 *)malloc((AsciiStrLen (Str) + 1) * sizeof (CHAR16)); if (Str16 == NULL) { fprintf(stderr, "Resource, memory cannot be allocated"); return STATUS_ERROR;-- 2.30.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83785): https://edk2.groups.io/g/devel/message/83785 Mute This Topic: https://groups.io/mt/87089392/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
Hi, Please help review the patch, If you have any concern pls let me know. -Original Message- From: Jiang, Xiaolu Sent: Wednesday, November 10, 2021 11:00 AM To: devel@edk2.groups.io Cc: Jiang, Xiaolu ; Feng, Bob C ; Liming Gao ; Chen, Christine ; Wu, Yidong Subject: FW: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Hi All, I have update the patch for the comments, Please help review the patch. -Original Message- From: Jiang, Xiaolu Sent: Monday, November 8, 2021 4:22 PM To: devel@edk2.groups.io Cc: Jiang, Xiaolu ; Feng, Bob C ; Liming Gao ; Chen, Christine Subject: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Currently the PCD Value only support 13 Guid,When use more 13 pcd will cause the build tool fail, Need calculate the required memory,then allocate it. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3718 Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Signed-off-by: Xiaolu Jiang --- BaseTools/Source/C/DevicePath/DevicePath.c | 36 +- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c b/BaseTools/Source/C/DevicePath/DevicePath.c index c4d224ed61..8a0f5f4e2a 100644 --- a/BaseTools/Source/C/DevicePath/DevicePath.c +++ b/BaseTools/Source/C/DevicePath/DevicePath.c @@ -144,6 +144,40 @@ Returns: *UniString = '\0'; } ++/**+ Returns the length of a Null-terminated ASCII string.++ This function returns the number of ASCII characters in the Null-terminated+ ASCII string specified by String.++ If Length > 0 and Destination is NULL, then ASSERT().+ If Length > 0 and Source is NULL, then ASSERT().+ If PcdMaximumAsciiStringLength is not zero and String contains more than+ PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,+ then ASSERT().++ @param String A pointer to a Null-terminated ASCII string.++ @return The length of String.++**/+UINTN+EFIAPI+AsciiStrLen (+ IN CONST CHAR8 *String+ )+{+ UINTN Length;++ ASSERT (String != NULL);++ for (Length = 0; *String != '\0'; String++, Length++) {++ }+ return Length;+}+ int main(int argc, CHAR8 *argv[]) { CHAR8 * Str;@@ -170,7 +204,7 @@ int main(int argc, CHAR8 *argv[]) fprintf(stderr, "Invalid option value, Device Path can't be NULL"); return STATUS_ERROR; }- Str16 = (CHAR16 *)malloc(1024);+ Str16 = (CHAR16 *)malloc((AsciiStrLen (Str) + 1) * sizeof (CHAR16)); if (Str16 == NULL) { fprintf(stderr, "Resource, memory cannot be allocated"); return STATUS_ERROR;-- 2.30.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83693): https://edk2.groups.io/g/devel/message/83693 Mute This Topic: https://groups.io/mt/87005658/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
Hi Liming, I have checked with Team member , Totally We need support 50+ Driver GUID in DevicePath PCD value ,So the length need to increase again, I will change the Patch and re-send again. Thanks! -Original Message- From: Jiang, Xiaolu Sent: Monday, November 8, 2021 9:24 AM To: gaoliming ; devel@edk2.groups.io Cc: Feng, Bob C ; Chen, Christine Subject: RE: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. 1. Currently the PCD value length is More than 1024, less than 2048, 2. Now we have 14 members, Also need to add 4~6 part to the PCD. So we Increase the length to 4096. -Original Message- From: gaoliming Sent: Monday, November 8, 2021 9:15 AM To: Jiang, Xiaolu ; devel@edk2.groups.io Cc: Feng, Bob C ; Chen, Christine Subject: 回复: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Xiaolu: Why choose 4096? Is it enough? Thanks Liming > -邮件原件- > 发件人: Xiaolu.Jiang > 发送时间: 2021年11月6日 11:51 > 收件人: devel@edk2.groups.io > 抄送: Xiaolu.Jiang ; Bob Feng > ; Liming Gao ; Yuwei > Chen > 主题: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for > support more PCD value. > > Currently the PCD Value only support 13 Guid,When use more 13 pcd will > cause the build tool fail, Need increase the DevicePath length to > support more value. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3718 > > Cc: Bob Feng > Cc: Liming Gao > Cc: Yuwei Chen > > Signed-off-by: Xiaolu Jiang > --- > BaseTools/Source/C/DevicePath/DevicePath.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c > b/BaseTools/Source/C/DevicePath/DevicePath.c > index c4d224ed61..ef493f5506 100644 > --- a/BaseTools/Source/C/DevicePath/DevicePath.c > +++ b/BaseTools/Source/C/DevicePath/DevicePath.c > @@ -170,7 +170,7 @@ int main(int argc, CHAR8 *argv[]) > fprintf(stderr, "Invalid option value, Device Path can't be > NULL"); > > return STATUS_ERROR; > >} > > - Str16 = (CHAR16 *)malloc(1024); > > + Str16 = (CHAR16 *)malloc(4096); > >if (Str16 == NULL) { > > fprintf(stderr, "Resource, memory cannot be allocated"); > > return STATUS_ERROR; > > -- > 2.30.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83456): https://edk2.groups.io/g/devel/message/83456 Mute This Topic: https://groups.io/mt/86909729/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
1. Currently the PCD value length is More than 1024, less than 2048, 2. Now we have 14 members, Also need to add 4~6 part to the PCD. So we Increase the length to 4096. -Original Message- From: gaoliming Sent: Monday, November 8, 2021 9:15 AM To: Jiang, Xiaolu ; devel@edk2.groups.io Cc: Feng, Bob C ; Chen, Christine Subject: 回复: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Xiaolu: Why choose 4096? Is it enough? Thanks Liming > -邮件原件- > 发件人: Xiaolu.Jiang > 发送时间: 2021年11月6日 11:51 > 收件人: devel@edk2.groups.io > 抄送: Xiaolu.Jiang ; Bob Feng > ; Liming Gao ; Yuwei > Chen > 主题: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for > support more PCD value. > > Currently the PCD Value only support 13 Guid,When use more 13 pcd will > cause the build tool fail, Need increase the DevicePath length to > support more value. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3718 > > Cc: Bob Feng > Cc: Liming Gao > Cc: Yuwei Chen > > Signed-off-by: Xiaolu Jiang > --- > BaseTools/Source/C/DevicePath/DevicePath.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c > b/BaseTools/Source/C/DevicePath/DevicePath.c > index c4d224ed61..ef493f5506 100644 > --- a/BaseTools/Source/C/DevicePath/DevicePath.c > +++ b/BaseTools/Source/C/DevicePath/DevicePath.c > @@ -170,7 +170,7 @@ int main(int argc, CHAR8 *argv[]) > fprintf(stderr, "Invalid option value, Device Path can't be > NULL"); > > return STATUS_ERROR; > >} > > - Str16 = (CHAR16 *)malloc(1024); > > + Str16 = (CHAR16 *)malloc(4096); > >if (Str16 == NULL) { > > fprintf(stderr, "Resource, memory cannot be allocated"); > > return STATUS_ERROR; > > -- > 2.30.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83455): https://edk2.groups.io/g/devel/message/83455 Mute This Topic: https://groups.io/mt/86909729/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
Hi Liming, It's a good suggestion, I will try it first, Thanks ! -Original Message- From: gaoliming Sent: Monday, November 8, 2021 11:18 AM To: Jiang, Xiaolu ; devel@edk2.groups.io Cc: Feng, Bob C ; Chen, Christine ; Fu, Siyuan Subject: 回复: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Xiaolu: Can you calculate the required memory, then allocate it instead of use hard code memory length? Thanks Liming > -邮件原件- > 发件人: Jiang, Xiaolu > 发送时间: 2021年11月8日 10:26 > 收件人: gaoliming ; devel@edk2.groups.io > 抄送: Feng, Bob C ; Chen, Christine > ; Fu, Siyuan > 主题: RE: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length > for support more PCD value. > > Hi Liming, > > I have checked with Team member , Totally We need support 50+ Driver > GUID in DevicePath PCD value ,So the length need to increase again, I > will change the Patch and re-send again. > > Thanks! > > -Original Message- > From: Jiang, Xiaolu > Sent: Monday, November 8, 2021 9:24 AM > To: gaoliming ; devel@edk2.groups.io > Cc: Feng, Bob C ; Chen, Christine > > Subject: RE: [edk2-devel][PATCH] BaseTools: Increase the DevicePath > length for support more PCD value. > > 1. Currently the PCD value length is More than 1024, less than 2048, > 2. Now we have 14 members, Also need to add 4~6 part to the PCD. > So we Increase the length to 4096. > > -Original Message- > From: gaoliming > Sent: Monday, November 8, 2021 9:15 AM > To: Jiang, Xiaolu ; devel@edk2.groups.io > Cc: Feng, Bob C ; Chen, Christine > > Subject: 回复: [edk2-devel][PATCH] BaseTools: Increase the DevicePath > length for support more PCD value. > > Xiaolu: > Why choose 4096? Is it enough? > > Thanks > Liming > > -邮件原件- > > 发件人: Xiaolu.Jiang > > 发送时间: 2021年11月6日 11:51 > > 收件人: devel@edk2.groups.io > > 抄送: Xiaolu.Jiang ; Bob Feng > > ; Liming Gao ; Yuwei > > Chen > > 主题: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length > > for support more PCD value. > > > > Currently the PCD Value only support 13 Guid,When use more 13 pcd > > will cause the build tool fail, Need increase the DevicePath length > > to support more value. > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3718 > > > > Cc: Bob Feng > > Cc: Liming Gao > > Cc: Yuwei Chen > > > > Signed-off-by: Xiaolu Jiang > > --- > > BaseTools/Source/C/DevicePath/DevicePath.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c > > b/BaseTools/Source/C/DevicePath/DevicePath.c > > index c4d224ed61..ef493f5506 100644 > > --- a/BaseTools/Source/C/DevicePath/DevicePath.c > > +++ b/BaseTools/Source/C/DevicePath/DevicePath.c > > @@ -170,7 +170,7 @@ int main(int argc, CHAR8 *argv[]) > > fprintf(stderr, "Invalid option value, Device Path can't be > > NULL"); > > > > return STATUS_ERROR; > > > >} > > > > - Str16 = (CHAR16 *)malloc(1024); > > > > + Str16 = (CHAR16 *)malloc(4096); > > > >if (Str16 == NULL) { > > > > fprintf(stderr, "Resource, memory cannot be allocated"); > > > > return STATUS_ERROR; > > > > -- > > 2.30.2.windows.1 > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83457): https://edk2.groups.io/g/devel/message/83457 Mute This Topic: https://groups.io/mt/86909730/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value.
Xiaolu, I think you could calculate the Str16 length based on the input argument Str. Thanks, Bob -Original Message- From: Jiang, Xiaolu Sent: Monday, November 8, 2021 10:26 AM To: gaoliming ; devel@edk2.groups.io Cc: Feng, Bob C ; Chen, Christine ; Fu, Siyuan Subject: RE: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Hi Liming, I have checked with Team member , Totally We need support 50+ Driver GUID in DevicePath PCD value ,So the length need to increase again, I will change the Patch and re-send again. Thanks! -Original Message- From: Jiang, Xiaolu Sent: Monday, November 8, 2021 9:24 AM To: gaoliming ; devel@edk2.groups.io Cc: Feng, Bob C ; Chen, Christine Subject: RE: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. 1. Currently the PCD value length is More than 1024, less than 2048, 2. Now we have 14 members, Also need to add 4~6 part to the PCD. So we Increase the length to 4096. -Original Message- From: gaoliming Sent: Monday, November 8, 2021 9:15 AM To: Jiang, Xiaolu ; devel@edk2.groups.io Cc: Feng, Bob C ; Chen, Christine Subject: 回复: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for support more PCD value. Xiaolu: Why choose 4096? Is it enough? Thanks Liming > -邮件原件- > 发件人: Xiaolu.Jiang > 发送时间: 2021年11月6日 11:51 > 收件人: devel@edk2.groups.io > 抄送: Xiaolu.Jiang ; Bob Feng > ; Liming Gao ; Yuwei > Chen > 主题: [edk2-devel][PATCH] BaseTools: Increase the DevicePath length for > support more PCD value. > > Currently the PCD Value only support 13 Guid,When use more 13 pcd will > cause the build tool fail, Need increase the DevicePath length to > support more value. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3718 > > Cc: Bob Feng > Cc: Liming Gao > Cc: Yuwei Chen > > Signed-off-by: Xiaolu Jiang > --- > BaseTools/Source/C/DevicePath/DevicePath.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c > b/BaseTools/Source/C/DevicePath/DevicePath.c > index c4d224ed61..ef493f5506 100644 > --- a/BaseTools/Source/C/DevicePath/DevicePath.c > +++ b/BaseTools/Source/C/DevicePath/DevicePath.c > @@ -170,7 +170,7 @@ int main(int argc, CHAR8 *argv[]) > fprintf(stderr, "Invalid option value, Device Path can't be > NULL"); > > return STATUS_ERROR; > >} > > - Str16 = (CHAR16 *)malloc(1024); > > + Str16 = (CHAR16 *)malloc(4096); > >if (Str16 == NULL) { > > fprintf(stderr, "Resource, memory cannot be allocated"); > > return STATUS_ERROR; > > -- > 2.30.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#83427): https://edk2.groups.io/g/devel/message/83427 Mute This Topic: https://groups.io/mt/86898008/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-