| 299 | } |
| 300 | |
| 301 | EFI_VFR_RETURN_CODE |
| 302 | CFormPkg::BuildPkg ( |
| 303 | OUT PACKAGE_DATA &TBuffer |
| 304 | ) |
| 305 | { |
| 306 | |
| 307 | CHAR8 *Temp; |
| 308 | UINT32 Size; |
| 309 | CHAR8 Buffer[1024]; |
| 310 | |
| 311 | if (TBuffer.Buffer != NULL) { |
| 312 | delete TBuffer.Buffer; |
| 313 | } |
| 314 | |
| 315 | TBuffer.Size = mPkgLength; |
| 316 | TBuffer.Buffer = NULL; |
| 317 | if (TBuffer.Size != 0) { |
| 318 | TBuffer.Buffer = new CHAR8[TBuffer.Size]; |
| 319 | } else { |
| 320 | return VFR_RETURN_SUCCESS; |
| 321 | } |
| 322 | |
| 323 | Temp = TBuffer.Buffer; |
| 324 | Open (); |
| 325 | while ((Size = Read (Buffer, 1024)) != 0) { |
| 326 | memcpy (Temp, Buffer, Size); |
| 327 | Temp += Size; |
| 328 | } |
| 329 | Close (); |
| 330 | return VFR_RETURN_SUCCESS; |
| 331 | } |
| 332 | |
| 333 | |
| 334 | EFI_VFR_RETURN_CODE |