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:
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:
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
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
Partager