move to version 5 of header: kernel_size == kernel_image_size means uncompressed

This commit is contained in:
Laurent Vivier 2005-06-09 19:55:12 +00:00
parent db7be2407b
commit 713ca6ad89
4 changed files with 14 additions and 3 deletions

View File

@ -23,7 +23,7 @@
***************************************************************************/
_start: bra setup
_signature: .dc.b 'E','M','0','4'
_signature: .dc.b 'E','M','0','5'
/* kernel image information */

View File

@ -21,6 +21,8 @@ struct emile_l2_header {
u_int32_t signature;
/* EMO4 addendum: if kernel_image_size == 0,
* kernel_image_offset is a pointer to a container
* EM05 addendum: if kernel_image_size == kernel_size
* kernel is not compressed
*/
u_int32_t kernel_image_offset;
u_int32_t kernel_image_size;
@ -72,6 +74,7 @@ struct emile_container {
#define EMILE_02_SIGNATURE (('E'<<24)|('M'<<16)|('0'<<8)|'2')
#define EMILE_03_SIGNATURE (('E'<<24)|('M'<<16)|('0'<<8)|'3')
#define EMILE_04_SIGNATURE (('E'<<24)|('M'<<16)|('0'<<8)|'4')
#define EMILE_05_SIGNATURE (('E'<<24)|('M'<<16)|('0'<<8)|'5')
#define EMILE_COMPAT(a,b) ( ( EMILE_ID(a) == EMILE_ID(b) ) && \
( EMILE_VERSION(a) <= EMILE_VERSION(b) ) )

View File

@ -192,7 +192,11 @@ int main(int argc, char** argv)
if (buffer_size == 0)
{
buffer_size = emile_get_uncompressed_size(kernel_image);
if (buffer_size == -1)
if (buffer_size == 0)
{
buffer_size = emile_file_get_size(kernel_image);
}
else if (buffer_size == -1)
{
fprintf(stderr,
"ERROR: cannot compute size of uncompressed kernel\n");

View File

@ -636,7 +636,11 @@ int main(int argc, char **argv)
if ((action & ACTION_SET_BUFFER) == 0)
{
buffer_size = emile_get_uncompressed_size(kernel_path);
if (buffer_size == -1)
if (buffer_size == 0)
{
buffer_size = emile_file_get_size(kernel_path);
}
else if (buffer_size == -1)
{
fprintf(stderr,
"ERROR: cannot compute size of uncompressed kernel\n");