<div dir="ltr">Hello,<div><br></div><div>we are trying to implement Slot shiting algorithm on reservation framework.</div><div><br></div><div>I see the the struct reservation_config has a union which specifies the specific parameters of particular reservation ( currently polling_params, table_driven), but I presume this would soon become  unreadable when many other specific reservation arises( like in my case slot_shifting ).</div><div> would  it be better to hold a dynamic array of char, which we can typecast to the specific structure once we receive at kernel space? </div><div><br></div><div><font color="#ff0000"><b>current implementation : </b></font></div><div><br></div><div><div>struct reservation_config {</div><div>        unsigned int id;</div><div>        lt_t priority;</div><div>        int  cpu;</div><div><br></div><div>        union {</div><div>                struct {</div><div>                        lt_t period;</div><div>                        lt_t budget;</div><div>                        lt_t relative_deadline;</div><div>                        lt_t offset;</div><div>                } polling_params;</div><div><br></div><div>                struct {</div><div>                        lt_t major_cycle_length;</div><div>                        unsigned int num_intervals;</div><div>                        struct lt_interval __user *intervals;</div><div>                } table_driven_params;</div><div>        };</div><div>}</div></div><div><br></div><div>received by static long pres_reservation_create(int res_type, void* __user _config)</div><div><br></div><div><b><font color="#274e13">Suggested implementation: </font></b></div><div><br></div><div><div>struct reservation_config {</div><div>        unsigned int id;</div><div>        lt_t priority;</div><div>        int  cpu;</div><div>        unsigned char data[0]; // dynamic array which holds the reservation specific data.</div></div><div>  }</div><div><br></div><div>struct res_type {</div><div>       int type;</div><div>        int length; // holds the length of the struct reservation_config.</div><div>};</div><div><br></div><div>static long pres_reservation_create(struct res_type, void* __user_config)</div><div><br></div><div><font color="#660000">just a suggestion for maintaining  generic reservation framework.</font></div><div><br></div><div>Thanks and Regards,</div><div>Gokul Vasan</div><div><br></div></div>