Hi Joursoir,

It is awesome to have you interested in doing a project for flashrom!
Please keep going! :)

A reminder from me, is that we want you to send a small patch if you
want to get accepted for a project. Have a look at the guidelines
https://www.flashrom.org/GSoC
You can of course ask questions if you have any. Good luck!

On Sat, Apr 2, 2022 at 8:19 PM Thomas Heijligen <s...@posteo.de> wrote:
>
> Hi Joursoir,
>
> I'm going to reply to your questions on Monday. Sorry for the delay, I'm 
> currently not in reach of my Computer and want to look a few things up before 
> answering.
>
> -- Thomas
>
> On 1 April 2022 20:43:10 WEST, Joursoir <c...@joursoir.net> wrote:
> >Hello Thomas,
> >
> >I went ahead and started looking into shutdown functions. Almost of
> >them use global variables, but I already have ideas on how to rewrite
> >it. Now I start coding a prototype and want to implement struct
> >example_data. But I have run into a problem with its initialization:
> >
> >1) In theory, we can declare a static variable within each programmer's
> >file. It would be convenient, but this method has a big disadvantage.
> >We allocate private_data for every programmers but use only one.
> >
> >static struct example_data {
> >       ...
> >} private_data;
> >
> >2) It's not possible to add a variable to struct programmer_entry
> >because the structure is read only (structures in programmer.h are
> >declared as const).
> >
> >3) Use a static global variable in flashrom.c. Lesser of two evils
> >principle as they say
> >
> >static const struct programmer_entry *programmer = NULL;
> >static const char *programmer_param = NULL;
> >static void *programmer_data = NULL;
> >
> >The next issue is the initialization of programmer_data:
> >
> >a) Do it inside programmer->init(). The problem here is the duplication
> >of programmer_data init code in each function.
> >
> >b) Do it outside programmer->init(). The problem here is that we can't
> >find out the size of example_data (it can be drkaised_data,
> >it85spi_data and etc)
> >
> >programmer_data = calloc(1, sizeof(EXAMPLE_DATA));
> >if (!data) {
> >       ...
> >}
> >...
> >ret = programmer->init(&programmer_data);
> >
> >Perhaps there is some simpler solution, but I don't notice it.
> >



-- 
Anastasia.
_______________________________________________
flashrom mailing list -- flashrom@flashrom.org
To unsubscribe send an email to flashrom-le...@flashrom.org

Reply via email to