Project

General

Profile

Actions

Refactoring #391

open

Refactor singleton states into reentrant pattern

Added by Alexander Goncharov over 2 years ago. Updated about 2 years ago.

Status:
In Progress
Priority:
Normal
Category:
Programmer
Target version:
Start date:
06/17/2022
Due date:
% Done:

80%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

Move global singleton states into a struct and store within the spi_master / opaque_master / par_master data field for the life-time of the driver.

This is one of the steps on the way to move *_master data memory management behind the initialisation API.

List of programmers which need to be refactored:

* - non-trivial case, this programmer requires some tricks

Actions #1

Updated by Alexander Goncharov over 2 years ago

  • Description updated (diff)
  • Related links updated (diff)

Added a list of programmers and links to patches

Actions #2

Updated by Alexander Goncharov over 2 years ago

  • % Done changed from 0 to 50
Actions #3

Updated by Anastasia Klimchuk over 2 years ago

I can add more info on some of those:

dummyflasher: needs to migrate shutdown function into master struct(s), global state has already been removed

ch341a_spi and serprog are non-trivial cases of global state: it is wired into the core of flashrom unfortunately, via programmer_delay function. still possible of course, but this is more work and needs some design & experimenting first. So to me it seems better to go through easier cases first, and then get to harder ones.

internal is also a special one, and probably needs collaboration with other people, which I will try to organise.

Actions #4

Updated by Alexander Goncharov over 2 years ago

  • Description updated (diff)

drkaiser , gfxnvidia are done.

I've marked non-trivial cases with *.

dummyflasher : depending on supported buses, it can register opaque, par and spi masters at the same time.

atavia : atavia_map function doesn't have access to struct flashctx.

Actions #5

Updated by Alexander Goncharov over 2 years ago

  • Description updated (diff)

mediatek_i2c_spi, it8212, atapromise, nicintel are done.

Actions #6

Updated by Alexander Goncharov about 2 years ago

  • Description updated (diff)

nicintel_eeprom, nicnatsemi, satamv, satasii are done.

Actions #7

Updated by Alexander Goncharov about 2 years ago

  • % Done changed from 50 to 80
Actions #8

Updated by Felix Singer about 2 years ago

  • Tracker changed from Feature to Refactoring
  • Target version changed from none to main
Actions

Also available in: Atom PDF