: char* casts
PATCH 2/5 : char* casts
Not all signedness pointer issues can be fixed by declaration, sometimes casts are necessary (mostly char* vs. uint8_t*).
Signature · 9 lines
Andre Przywara AMD-Operating System Research Center (OSRC), Dresden, Germany Tel: +49 351 277-84917 ----to satisfy European Law for business letters: AMD Saxony Limited Liability Company & Co. KG, Wilschdorfer Landstr. 101, 01109 Dresden, Germany Register Court Dresden: HRA 4896, General Partner authorized to represent: AMD Saxony LLC (Wilmington, Delaware, US) General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
tools/ioemu/block-vpc.c +1 -1
@@ -81,7 +81,7 @@ typedef struct BDRVVPCState {static int vpc_probe (const uint8_t *buf,int buf_size,const char *filename) { -if (buf_size >=8 && !strncmp (buf,"conectix" ,8 )) +if (buf_size >=8 && !strncmp ((char *)buf,"conectix" ,8 ))return 100 ;return 0 ; }
tools/ioemu/block-vvfat.c +10 -10
@@ -530,7 +530,7 @@ static inline uint32_t fat_get(BDRVVVFATuint16_t * entry=array_get (&(s->fat),cluster);return le16_to_cpu (*entry); }else { -const uint8_t * x=s->fat.pointer+cluster*3 /2 ; +const uint8_t * x=(uint8_t *)(s->fat.pointer)+cluster*3 /2 ;return ((x[0 ]|(x[1 ]<<8 ))>>(cluster&1 ?4 :0 ))&0x0fff ; } }
@@ -591,7 +591,7 @@ static inline direntry_t* create_short_a entry=array_get_next (&(s->directory));memset (entry->name,0x20 ,11 ); -strncpy (entry->name,filename,i); +strncpy ((char *)entry->name,filename,i);if (j >0 )for (i =0 ; i <3 && filename[j+1 +i]; i++)
@@ -833,7 +833,7 @@ static int init_directories(BDRVVVFATSta {direntry_t * entry=array_get_next (&(s->directory)); entry->attributes=0x28 ;/* archive | volume label */ -snprintf (entry->name,11 ,"QEMU VVFAT" ); +snprintf ((char *)entry->name,11 ,"QEMU VVFAT" ); }/* Now build FAT, and write back information into directory */
@@ -1150,7 +1150,7 @@ static inline int read_cluster(BDRVVVFAT s->current_mapping = mapping; read_cluster_directory: offset = s->cluster_size*(cluster_num-s->current_mapping->begin); - s->cluster = s->directory.pointer+offset + s->cluster = (unsigned char *)s->directory.pointer+offset +0x20 *s->current_mapping->info.dir.first_dir_index;assert (((s->cluster-(unsigned char *)s->directory.pointer)%s->cluster_size)==0 );assert ((char *)s->cluster+s->cluster_size <= s->directory.pointer+s->directory.next*s->directory.item_size);
@@ -1420,7 +1420,7 @@ static int parse_long_name(long_file_nam }if (pointer[0 ] &0x40 ) - lfn->len = offset +strlen (lfn->name + offset); + lfn->len = offset +strlen ((char *)lfn->name + offset);return 0 ; }
@@ -1459,7 +1459,7 @@ static int parse_short_name(BDRVVVFATSta }else lfn->name[i + j +1 ] ='\0' ; - lfn->len =strlen (lfn->name); + lfn->len =strlen ((char *)lfn->name);return 0 ; }
@@ -1755,8 +1755,8 @@ DLOG(fprintf(stderr, "check direntry %d:fprintf (stderr,"Error in short name (%d)\n" , subret); goto fail; } -if (subret >0 || !strcmp (lfn.name,"." ) - || !strcmp (lfn.name,".." )) +if (subret >0 || !strcmp ((char *)lfn.name,"." ) + || !strcmp ((char *)lfn.name,".." ))continue ; } lfn.checksum =0x100 ;/* cannot use long name twice */
@@ -1765,7 +1765,7 @@ DLOG(fprintf(stderr, "check direntry %d:fprintf (stderr,"Name too long: %s/%s\n" , path, lfn.name); goto fail; } -strcpy (path2 + path_len +1 , lfn.name); +strcpy (path2 + path_len +1 , (char *)lfn.name);if (is_directory (direntries + i)) {if (begin_of_direntry (direntries + i) ==0 ) {
@@ -2197,7 +2197,7 @@ static int commit_one_file(BDRVVVFATStatassert (size >=0 ); ret =vvfat_read (s->bs,cluster2sector (s, c), - cluster, (rest_size +0x1ff ) /0x200 ); + (uint8_t *)cluster, (rest_size +0x1ff ) /0x200 );if (ret <0 )return ret;
tools/ioemu/gdbstub.c +2 -2
@@ -206,7 +206,7 @@ static int put_packet(GDBState *s, char *(p++) =tohex ((csum) &0xf ); s->last_packet_len = p - s->last_packet; -put_buffer (s, s->last_packet, s->last_packet_len); +put_buffer (s, (uint8_t *)s->last_packet, s->last_packet_len);#ifdef CONFIG_USER_ONLY i =get_char (s);
@@ -992,7 +992,7 @@ static void gdb_read_byte(GDBState *s, i#ifdef DEBUG_GDB printf ("Got NACK, retransmitting\n" );#endif -put_buffer (s, s->last_packet, s->last_packet_len); +put_buffer (s, (uint8_t *)s->last_packet, s->last_packet_len); }#ifdef DEBUG_GDB else if (ch == '+')
tools/ioemu/hw/ide.c +6 -6
@@ -614,12 +614,12 @@ static void ide_identify(IDEState *s)put_le16 (p +5 ,512 );/* XXX: retired, remove ? */ put_le16 (p +6 , s->sectors);snprintf (buf,sizeof (buf),"QM%05d" , s->drive_serial); -padstr ((uint8_t *)(p +10 ), buf,20 );/* serial number */ +padstr ((char *)(p +10 ), buf,20 );/* serial number */ put_le16 (p +20 ,3 );/* XXX: retired, remove ? */ put_le16 (p +21 ,512 );/* cache size in sectors */ put_le16 (p +22 ,4 );/* ecc bytes */ -padstr ((uint8_t *)(p +23 ),QEMU_VERSION ,8 );/* firmware version */ -padstr ((uint8_t *)(p +27 ),"QEMU HARDDISK" ,40 );/* model */ +padstr ((char *)(p +23 ),QEMU_VERSION ,8 );/* firmware version */ +padstr ((char *)(p +27 ),"QEMU HARDDISK" ,40 );/* model */ #if MAX_MULT_SECTORS >1 put_le16 (p +47 ,0x8000 |MAX_MULT_SECTORS );#endif
@@ -680,12 +680,12 @@ static void ide_atapi_identify(IDEState/* Removable CDROM, 50us response, 12 byte packets */ put_le16 (p +0 , (2 <<14 ) | (5 <<8 ) | (1 <<7 ) | (2 <<5 ) | (0 <<0 ));snprintf (buf,sizeof (buf),"QM%05d" , s->drive_serial); -padstr ((uint8_t *)(p +10 ), buf,20 );/* serial number */ +padstr ((char *)(p +10 ), buf,20 );/* serial number */ put_le16 (p +20 ,3 );/* buffer type */ put_le16 (p +21 ,512 );/* cache size in sectors */ put_le16 (p +22 ,4 );/* ecc bytes */ -padstr ((uint8_t *)(p +23 ),QEMU_VERSION ,8 );/* firmware version */ -padstr ((uint8_t *)(p +27 ),"QEMU CD-ROM" ,40 );/* model */ +padstr ((char *)(p +23 ),QEMU_VERSION ,8 );/* firmware version */ +padstr ((char *)(p +27 ),"QEMU CD-ROM" ,40 );/* model */ put_le16 (p +48 ,1 );/* dword I/O (XXX: should not be set on CDROM) */ #ifdef USE_DMA_CDROM put_le16 (p +49 ,1 <<9 |1 <<8 );/* DMA and LBA supported */
tools/ioemu/vl.c +4 -4
@@ -1236,7 +1236,7 @@ void qemu_chr_printf(CharDriverState *s,va_list ap;va_start (ap, fmt);vsnprintf (buf,sizeof (buf), fmt, ap); -qemu_chr_write (s, buf,strlen (buf)); +qemu_chr_write (s, (uint8_t *)buf,strlen (buf));va_end (ap); }
@@ -1650,7 +1650,7 @@ static int stdio_write(CharDriverState * (secs /60 ) %60 , secs %60 , (int)((ti / 1000000) % 1000)); -unix_write (s->fd_out, buf1,strlen (buf1)); +unix_write (s->fd_out, (uint8_t *)buf1,strlen (buf1)); } }return len;
@@ -4845,7 +4846,7 @@ int qemu_savevm_state(QEMUFile *f)/* ID string */ len =strlen (se->idstr);qemu_put_byte (f, len); -qemu_put_buffer (f, se->idstr, len); +qemu_put_buffer (f, (uint8_t *)se->idstr, len);qemu_put_be32 (f, se->instance_id);qemu_put_be32 (f, se->version_id);
@@ -4907,7 +4908,7 @@ int qemu_loadvm_state(QEMUFile *f)if (qemu_ftell (f) >= end_pos)break ; len =qemu_get_byte (f); -qemu_get_buffer (f, idstr, len); +qemu_get_buffer (f, (uint8_t *)idstr, len); idstr[len] ='\0' ; instance_id =qemu_get_be32 (f); version_id =qemu_get_be32 (f);
tools/ioemu/vnc.c +1 -1
@@ -1458,7 +1458,7 @@ static int protocol_client_msg(VncStatereturn 8 + v; } -client_cut_text (vs,read_u32 (data,4 ), (char *)(data +8 )); +client_cut_text (vs,read_u32 (data,4 ), data +8 );break ;default :printf ("Msg: %d\n" , data[0 ]);
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel