[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Printing bogus values in ne2000_asic_ioport_read()/ ne2

From: address@hidden
Subject: Re: [Qemu-devel] Printing bogus values in ne2000_asic_ioport_read()/ ne2000_receive()
Date: Wed, 1 Mar 2006 11:06:44 +0100 (CET)

Regarding the bogus numbers occasionally printed, you can see that the 
ffs are printed when the character has its bit7 set to 1. This occurs 
because in
      printf("%02x ", s[i]);
the expected argument for %02x is an integer, and since the actual 
argument is
a (signed) character, the compiler promotes it to an integer extending 
the sign bit.
You can simply write instead
      printf("%02x ", (unsigned char)s[i]);
and the problem should disappear, since in this case the promotion to 
an integer
adds non-significative 0s that are ignored when printig


----Messaggio originale----
Da: address@hidden
Data: 25/02/2006 19.29
A: <address@hidden>
Ogg: [Qemu-devel] Printing bogus values in ne2000_asic_ioport_read()/   

I am using QEMU in one of my research projects. I
landed in a problem where I see bogus numbers being
printed when I printed the packet/each word that is
received from ne2000.

In ne2000_receive(), I copied the packet received to a
static char [] and printed the packet using
 static void print_packet(char *s, int len)
  int i,j;
  for (i=0;i<len;i++) {
      if (i%20 == 0)
      printf("%02x ", s[i]);
And some bytes it prints as fffffffff<last byte>
instead of just the last byte.
For eg:
52 54 00 12 34 56 00 ffffffff 4f 0a 46 05 08 00 45 00
00 ffffff80 00 00
40 00 40 01 ffffffbc 2b ffffffc0 ffffffa8 fffffffe
fffffffe ffffffc0 ffffffa8 ff

Tiscali ADSL 4 Mega Flat
Naviga senza limiti con l'unica Adsl a 4 Mega di velocità a soli 19,95 € al 
Attivala subito e hai GRATIS 2 MESI e l'ATTIVAZIONE. 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]