Advertisement
TerusTheBird

pad data structure

Feb 2nd, 2020
235
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. typedef union {
  2.     struct { // meta commands
  3.         union {
  4.             struct { // set up data pointer
  5.                 u8* ptr;
  6.                 u8  pad[6];
  7.             } c00_data;
  8.             struct { // write <= 9 bytes
  9.                 u8 count;
  10.                 u8 bytes[ 9 ];
  11.             } c01_data;
  12.             struct { // write N zeroes
  13.                 u32 number_of_zeroes;
  14.                 u8  padding[ 6 ];
  15.             } c02_data;
  16.             struct { // checksum/ack/nak
  17.                 // ?????
  18.             } c03_data;
  19.             struct { // jump to given function pointer
  20.                 void (*func_pointer)(void);
  21.                 u8 padding[ 6 ];
  22.             } c04_data;
  23.             u8 bytes[ 10 ];
  24.         };
  25.         u8 meta_command;
  26.     } meta;
  27.     struct { // DMA
  28.         u32 dest_ram;
  29.         u32 src_vrom;
  30.         u32 size:24;
  31.     } lowlevel;
  32.     u8 bytes[ 12 ]; // last byte is padding
  33. } pad_data_t;
  34. // 12 bytes long
Advertisement
RAW Paste Data Copied
Advertisement