Changeset aa9bad8 in mainline for uspace/srv/bd/hr/superblock.h


Ignore:
Timestamp:
2025-06-27T22:21:05Z (4 weeks ago)
Author:
Miroslav Cimerman <mc@…>
Children:
2de7c1f
Parents:
78433bb
git-author:
Miroslav Cimerman <mc@…> (2025-06-27 22:14:37)
git-committer:
Miroslav Cimerman <mc@…> (2025-06-27 22:21:05)
Message:

hr: let each format implement own probe

This will allow metadata to have superblocks in
different locations accross versions.

This also greatly reduces the format handling interface,
because now, functions used by the probing done
publicly in superblock.c are now used just
inside specific metadata format code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/bd/hr/superblock.h

    r78433bb raa9bad8  
    4444
    4545typedef struct hr_superblock_ops {
    46         void *(*alloc_struct)(void);
     46        errno_t (*probe)(service_id_t, void **);
    4747        errno_t (*init_vol2meta)(hr_volume_t *);
    4848        errno_t (*init_meta2vol)(const list_t *, hr_volume_t *);
    49         void (*encode)(void *, void *);
    50         errno_t (*decode)(const void *, void *);
    51         errno_t (*get_block)(service_id_t, void **);
    52         errno_t (*write_block)(service_id_t, const void *);
    5349        errno_t (*erase_block)(service_id_t);
    54         bool (*has_valid_magic)(const void *);
    5550        bool (*compare_uuids)(const void *, const void *);
    5651        void (*inc_counter)(hr_volume_t *);
     
    6661} hr_superblock_ops_t;
    6762
    68 extern hr_superblock_ops_t *get_type_ops(hr_metadata_type_t);
    69 extern errno_t find_metadata(service_id_t, void **, hr_metadata_type_t *);
     63extern hr_superblock_ops_t *hr_get_meta_type_ops(hr_metadata_type_t);
     64extern errno_t hr_find_metadata(service_id_t, void **, hr_metadata_type_t *);
    7065
    7166#endif
Note: See TracChangeset for help on using the changeset viewer.