
On Sat, 23 May 2020 14:24:40 +0200 Heinrich Schuchardt xypron.glpk@gmx.de wrote:
Add some of the missing DFU function descriptions.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
include/dfu.h | 178 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 174 insertions(+), 4 deletions(-)
diff --git a/include/dfu.h b/include/dfu.h index 938a4d1b81..065d8db824 100644 --- a/include/dfu.h +++ b/include/dfu.h @@ -159,20 +159,139 @@ struct dfu_entity { };
#ifdef CONFIG_SET_DFU_ALT_INFO +/**
- set_dfu_alt_info() - set dfu_alt_info environment variable
- If CONFIG_SET_DFU_ALT_INFO=y, this board specific function is
called to set
- environment variable dfu_alt_info.
- @interface: dfu interface, e.g. "mmc" or "nand"
- @devstr: device number as string
- */
void set_dfu_alt_info(char *interface, char *devstr); #endif
+/**
- dfu_alt_init() - initialize buffer for dfu entities
- @num: number of entities
- @dfu: on return allocated buffer
- Return: 0 on success
- */
int dfu_alt_init(int num, struct dfu_entity **dfu);
+/**
- dfu_alt_add() - add alternate to dfu entity buffer
- @dfu: dfu entity
- @interface: dfu interface, e.g. "mmc" or "nand"
- @devstr: device number as string
- @s: string description of alternate
- Return: 0 on success
- */
int dfu_alt_add(struct dfu_entity *dfu, char *interface, char *devstr, char *s); + +/**
- dfu_config_entities() - initialize dfu entitities from
envirionment
- Initialize the list of dfu entities from environment variable
dfu_alt_info.
- The list must be freed by calling dfu_free_entities(). This
function bypasses
- set_dfu_alt_info(). So typically you should use
dfu_init_env_entities()
- instead.
- See function :c:func:`dfu_free_entities`
- See function :c:func:`dfu_init_env_entities`
- @s: string with alternates
- @interface: interface, e.g. "mmc" or "nand"
- @devstr: device number as string
- Return: 0 on success, a negative error code otherwise
- */
int dfu_config_entities(char *s, char *interface, char *devstr);
+/**
- dfu_free_entities() - free the list of dfu entities
- Free the internal list of dfu entities.
- See function :c:func:`dfu_init_env_entities`
- */
void dfu_free_entities(void);
+/**
- dfu_show_entities() - print DFU alt settings list
- */
void dfu_show_entities(void);
+/**
- dfu_get_alt_number() - get number of alternates
- Return: number of alternates in the dfu entities list
- */
int dfu_get_alt_number(void); -const char *dfu_get_dev_type(enum dfu_device_type t); -const char *dfu_get_layout(enum dfu_layout l);
+/**
- dfu_get_dev_type() - get string representation for dfu device type
- @type: device type
- Return: string representation for device type
- */
+const char *dfu_get_dev_type(enum dfu_device_type type);
+/**
- dfu_get_layout() - get string describing layout
- Internally layouts are represented by enum dfu_device_type
values. This
- function translates an enum value to a human readable string,
e.g. DFU_FS_FAT
- is translated to "FAT".
- @layout: layout
- Result: string representation for the layout
- */
+const char *dfu_get_layout(enum dfu_layout layout);
+/**
- dfu_get_entity() - get dfu entity for an alternate id
- @alt: alternate id
- Return: dfu entity
- */
struct dfu_entity *dfu_get_entity(int alt);
char *dfu_extract_token(char** e, int *n);
+/**
- dfu_get_alt() - get alternate id for filename
- Environment variable dfu_alt_info defines the write destinations
(alternates)
- for different filenames. This function get the index of the
alternate for
- a filename. If an absolute filename is provided (starting with
'/'), the
- directory path is ignored.
- @name: filename
- Return: id of the alternate or negative error number
(-ENODEV)
- */
int dfu_get_alt(char *name);
+/**
- dfu_init_env_entities() - initialize dfu entitities from
envirionment
- Initialize the list of dfu entities from environment variable
dfu_alt_info.
- The list must be freed by calling dfu_free_entities().
- @interface and @devstr are used to select the relevant set of
alternates
- from environment variable dfu_alt_info.
- If environment variable dfu_alt_info specifies the interface and
the device,
- use NULL for @interface and @devstr.
- See function :c:func:`dfu_free_entities`
- @interface: interface, e.g. "mmc" or "nand"
- @devstr: device number as string
- Return: 0 on success, a negative error code otherwise
- */
int dfu_init_env_entities(char *interface, char *devstr);
unsigned char *dfu_get_buf(struct dfu_entity *dfu); unsigned char *dfu_free_buf(void); unsigned long dfu_get_buf_size(void); @@ -183,8 +302,59 @@ unsigned long dfu_get_timeout(void); void dfu_set_timeout(unsigned long); #endif
+/**
- dfu_read() - read from dfu entity
- The block sequence number @blk_seq_num is a 16 bit counter that
must be
- incremented with each call for the same dfu entity @de.
- @de: dfu entity
- @buf: buffer
- @size: size of buffer
- @blk_seq_num: block sequence number
- Return: 0 for success, -1 for error
- */
int dfu_read(struct dfu_entity *de, void *buf, int size, int blk_seq_num); + +/**
- dfu_write() - write to dfu entity
- Write the contents of a buffer @buf to the dfu entity @de. After
writing
- the last block call dfu_flush(). If a file is already loaded
completely
- into memory it is preferable to use dfu_write_from_mem_addr()
which takes
- care of blockwise transfer and flushing.
- The block sequence number @blk_seq_num is a 16 bit counter that
must be
- incremented with each call for the same dfu entity @de.
- See function :c:func:`dfu_flush`
- See function :c:func:`dfu_write_from_mem_addr`
- @de: dfu entity
- @buf: buffer
- @size: size of buffer
- @blk_seq_num: block sequence number
- Return: 0 for success, -1 for error
- */
int dfu_write(struct dfu_entity *de, void *buf, int size, int blk_seq_num); + +/**
- dfu_flush() - flush to dfu entity
- This function has to be called after writing the last block to
the dfu
- entity @de.
- The block sequence number @blk_seq_num is a 16 bit counter that
must be
- incremented with each call for the same dfu entity @de.
- See function :c:func:`dfu_write`
- @de: dfu entity
- @buf: ignored
- @size: ignored
- @blk_seq_num: block sequence number of last write - ignored
- Return: 0 for success, -1 for error
- */
int dfu_flush(struct dfu_entity *de, void *buf, int size, int blk_seq_num);
/** @@ -195,9 +365,9 @@ int dfu_flush(struct dfu_entity *de, void *buf, int size, int blk_seq_num);
- DFU targets.
- @dfu: pointer to the dfu_entity, which should be
initialized
*/
void dfu_initiated_callback(struct dfu_entity *dfu);
/**
- dfu_flush_callback() - weak callback called at the end of the DFU
write * @@ -205,7 +375,6 @@ void dfu_initiated_callback(struct dfu_entity *dfu);
- This function allows to manage some board specific behavior on
DFU targets *
- @dfu: pointer to the dfu_entity, which should be flushed
*/
void dfu_flush_callback(struct dfu_entity *dfu);
@@ -217,6 +386,7 @@ void dfu_transaction_cleanup(struct dfu_entity *dfu);
It should be NULL when not used.
*/ extern struct dfu_entity *dfu_defer_flush;
/**
- dfu_get_defer_flush() - get current value of dfu_defer_flush
pointer *
2.26.2
Acked-by: Lukasz Majewski lukma@denx.de
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de