Bonjour,
pour le développement d'un module pour le noyau linux sur ARM, pour la lecture "brute" d'un zone de mémoire flash,
j'ai un buffer non pas en char* mais d'une structure représenant la forme des données en mémoire flash.

Voici ma structure:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
typedef struct 
{
  //métadonnées
  uint8_t id;
  ...
  uint32_t klen;
  uint32_t vlen;
 
  //données
  uint8_t data[1];
}page;
Comme la taille de la page n'est pas connue statiquement, et elle peut varier voici comment je l'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
page *mon_buffer=vmalloc( page_length );
read_flash(mon_buffer, page_length)
Ainsi je n'ai pas besoin de spécifier une par une les métadonnées et je peux accéder directement au donnée utiles via
Code : Sélectionner tout - Visualiser dans une fenêtre à part
mon_buffer->data+offset_data
.

Cela est-il corrècte ? peut il y a avoir un cas qui mettrais en défaut ce choix de mise en oeuvre (si oui lequel ?) ?
Et au sens plus "conventionel" cela pose t-il un probleme de "violation" des conventions ... ?

Merci