[pso] [tema3] warning-uri RELOADED

omar Chouydary chouydary at yahoo.com
Thu May 10 20:11:05 EEST 2007


Revenind la problema cu warning-ul , am cautat si pe google printr-o gramada de mesaje despre aceasta problema, si s-ar putea sa fie intr-adevar legata de alinierea structurii mele asa cum spunea si Lucian. 
   
  Am incercat totusi sa-mi aloc eu structura pitix_super_block cu kmalloc in fill_super si sa-i dau un memcpy(ps, bh->b_data, sizeof(struct pitix_super_block)) dar o ia pe ulei si nu citeste cum trebuie blocul nici macar dupa a 2-a citire cu sb_bread ceea ce ma duce la scrierea proasta a numarului de blocuri si inode-uri libere pe disc de unde rezulta si picarea testului (ceea ce inainte cu tot cu warning-uri nu se intampla).
   
  Pun aici structura mea:
   
  struct pitix_super_block {
  unsigned long magic;
  __u8 version;
  __u8 inode_data_blocks;
  __u8 block_size_bits;
  __u8 imap_block;
  __u8 dmap_block;
  __u8 izone_block;
  __u8 dzone_block;
  __u16 bfree;
  __u16 ffree; 
  };
   
   
  Codul cu eroarea asa cum am mai spus este asta:
   
  ....
   struct pitix_super_block *ps;
   struct buffer_head *bh;
   
  .....
   
  ps = (struct pitix_super_bloc *) bh->b_data;  -> Aici e warning: assignment from 
                                                                    incompatible pointer type
  ....
   
  Am incercat si sa fac intai cast la (void*), si sa iau &bh->b_data[0], si inca o gramada de chestii, fara succes. 
   
  Daca are cineva vreo idee cum sa rezolv asta este bine venita (in afara de a schimba modalitatea, adica fara memcpy-uri si chestii de genul asta).
   
  Omar.
  

omar Chouydary <chouydary at yahoo.com> wrote:
    Am facut tema3, si trece toate testele. La compilare insa am 2 warning-uri (o sa le explic mai jos) si la upload imi zice asa:
  -1: compilarea a produs 2 warning-uri
Asta inseamna ca se scade 1 pct pt ca am 2 warninguri? 
   
  Problema cu warning-urile (sunt de acelasi tip) este aici:
   
  ps = (struct pitix_super_bloc *) bh->b_data;
   
  unde:
   -  ps este definit ca : struct pitix_super_block *ps;
  -   bh->b_data este definit ca:  char    *b_data; (definitia din buffer_head.h) 
   
  Nu ma prind de ce nu pot sa fac un cast de la acest pointer din b_data catre cel din ps fara warning. Vreo idee? (In afara de -Wno sau ceva de genul asta)
   
  Omar.
    
---------------------------------
  Ahhh...imagining that irresistible "new car" smell?
Check out new cars at Yahoo! Autos. _______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso


       
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
 Check outnew cars at Yahoo! Autos.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20070510/f240f263/attachment.htm


More information about the pso mailing list