Changeset de81104 in mainline


Ignore:
Timestamp:
2025-03-23T16:35:34Z (3 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
2958e70
Parents:
e3e53cc
git-author:
Miroslav Cimerman <mc@…> (2025-03-23 16:14:36)
git-committer:
Miroslav Cimerman <mc@…> (2025-03-23 16:35:34)
Message:

hr: style headers

Location:
uspace
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/device/include/hr.h

    re3e53cc rde81104  
    11/*
    2  * Copyright (c) 2024 Miroslav Cimerman
     2 * Copyright (c) 2025 Miroslav Cimerman
    33 * All rights reserved.
    44 *
     
    9090
    9191typedef struct hr_config {
    92         char devname[HR_DEVNAME_LEN];
    93         service_id_t devs[HR_MAX_EXTENTS];
    94         size_t dev_no;
    95         hr_level_t level;
     92        char            devname[HR_DEVNAME_LEN];
     93        service_id_t    devs[HR_MAX_EXTENTS];
     94        size_t          dev_no;
     95        hr_level_t      level;
    9696} hr_config_t;
    9797
    9898typedef struct hr_extent {
    99         service_id_t svc_id;
    100         hr_ext_status_t status;
     99        service_id_t    svc_id;
     100        hr_ext_status_t  status;
    101101} hr_extent_t;
    102102
    103103typedef struct hr_vol_info {
    104         hr_extent_t extents[HR_MAX_EXTENTS];
    105         hr_extent_t hotspares[HR_MAX_HOTSPARES];
    106         size_t extent_no;
    107         size_t hotspare_no;
    108         service_id_t svc_id;
    109         hr_level_t level;
    110         uint64_t nblocks;
    111         uint32_t strip_size;
    112         size_t bsize;
    113         hr_vol_status_t status;
    114         uint8_t layout;
     104        hr_extent_t      extents[HR_MAX_EXTENTS];
     105        hr_extent_t      hotspares[HR_MAX_HOTSPARES];
     106        size_t          extent_no;
     107        size_t          hotspare_no;
     108        service_id_t    svc_id;
     109        hr_level_t      level;
     110        uint64_t        nblocks;
     111        uint32_t        strip_size;
     112        size_t          bsize;
     113        hr_vol_status_t  status;
     114        uint8_t          layout;
    115115} hr_vol_info_t;
    116116
    117 extern errno_t hr_sess_init(hr_t **);
    118 extern void hr_sess_destroy(hr_t *);
    119 
    120 extern errno_t hr_create(hr_t *, hr_config_t *, bool);
    121 extern errno_t hr_stop(const char *, long);
    122 extern errno_t hr_add_hotspare(service_id_t, service_id_t);
    123 extern errno_t hr_print_status(void);
    124 
    125 extern const char *hr_get_vol_status_msg(hr_vol_status_t);
    126 extern const char *hr_get_ext_status_msg(hr_ext_status_t);
    127 extern const char *hr_get_layout_str(hr_level_t, uint8_t);
     117extern errno_t           hr_sess_init(hr_t **);
     118extern void              hr_sess_destroy(hr_t *);
     119extern errno_t           hr_create(hr_t *, hr_config_t *, bool);
     120extern errno_t           hr_stop(const char *, long);
     121extern errno_t           hr_add_hotspare(service_id_t, service_id_t);
     122extern errno_t           hr_print_status(void);
     123extern const char       *hr_get_vol_status_msg(hr_vol_status_t);
     124extern const char       *hr_get_ext_status_msg(hr_ext_status_t);
     125extern const char       *hr_get_layout_str(hr_level_t, uint8_t);
    128126
    129127#endif
  • uspace/srv/bd/hr/var.h

    re3e53cc rde81104  
    4545#include "fge.h"
    4646
    47 #define NAME "hr"
    48 
    49 #define HR_STRIP_SIZE DATA_XFER_LIMIT
     47#define NAME            "hr"
     48#define HR_STRIP_SIZE   DATA_XFER_LIMIT
    5049
    5150struct hr_volume;
     
    5352
    5453typedef struct hr_ops {
    55         errno_t (*create)(hr_volume_t *);
    56         errno_t (*init)(hr_volume_t *);
    57         void    (*status_event)(hr_volume_t *);
    58         errno_t (*add_hotspare)(hr_volume_t *, service_id_t);
     54        errno_t         (*create)(hr_volume_t *);
     55        errno_t         (*init)(hr_volume_t *);
     56        void            (*status_event)(hr_volume_t *);
     57        errno_t         (*add_hotspare)(hr_volume_t *, service_id_t);
    5958} hr_ops_t;
    6059
    6160typedef struct hr_volume {
    62         hr_ops_t hr_ops;
    63         bd_srvs_t hr_bds;
     61        link_t           lvolumes;              /* link to all volumes list */
     62        hr_ops_t         hr_ops;                /* level init and create fcns */
     63        bd_srvs_t        hr_bds;                /* block interface to the vol */
     64        service_id_t     svc_id;                /* service id */
    6465
    65         link_t lvolumes; /* protected by static hr_volumes_lock in hr.c */
     66        fibril_mutex_t   lock;                  /* XXX: gone after para */
     67        list_t           range_lock_list;       /* list of range locks */
     68        fibril_mutex_t   range_lock_list_lock;  /* range locks list lock */
     69        hr_fpool_t      *fge;                   /* fibril pool */
    6670
    67         /*
    68          * XXX: will be gone after all paralelization, but still used
    69          * in yet-unparallelized levels
     71        /* invariants */
     72        size_t           extent_no;             /* number of extents */
     73        size_t           bsize;                 /* block size */
     74        uint64_t         nblocks;               /* no. of all usable blocks */
     75        uint64_t         data_blkno;            /* no. of user usable blocks */
     76        uint64_t         data_offset;           /* user data offset in blocks */
     77        uint32_t         strip_size;            /* strip size */
     78        hr_level_t       level;                 /* volume level */
     79        uint8_t          layout;                /* RAID Level Qualifier */
     80        char             devname[HR_DEVNAME_LEN];
     81
     82        hr_extent_t      extents[HR_MAX_EXTENTS];
     83        fibril_rwlock_t  extents_lock;          /* extent service id lock */
     84
     85        size_t           hotspare_no;           /* no. of available hotspares */
     86        hr_extent_t      hotspares[HR_MAX_HOTSPARES + HR_MAX_EXTENTS];
     87        fibril_mutex_t   hotspare_lock;         /* lock protecting hotspares */
     88
     89        fibril_rwlock_t  states_lock;           /* states lock */
     90
     91        _Atomic bool     state_dirty;           /* dirty state */
     92
     93        /* XXX: unportable for 32-bit?
     94         *
     95         * Add macros for locking or atomic increment depending
     96         * on the platform?
    7097         */
    71         fibril_mutex_t lock;
    72 
    73         list_t range_lock_list;
    74         fibril_mutex_t range_lock_list_lock;
    75 
    76         hr_fpool_t *fge;
    77 
    78         /* after assembly, these are invariant */
    79         size_t extent_no;
    80         size_t bsize;
    81         uint64_t nblocks;
    82         uint64_t data_blkno;
    83         uint64_t data_offset; /* in blocks */
    84         uint32_t strip_size;
    85         hr_level_t level;
    86         uint8_t layout; /* RAID Level Qualifier */
    87         service_id_t svc_id;
    88         char devname[HR_DEVNAME_LEN];
    89 
    90         size_t hotspare_no;
    91         hr_extent_t hotspares[HR_MAX_HOTSPARES + HR_MAX_EXTENTS];
    92 
    93         /* protects hotspares (hotspares.{svc_id,status}, hotspare_no) */
    94         fibril_mutex_t hotspare_lock;
    95 
    96         hr_extent_t extents[HR_MAX_EXTENTS];
    97         /* protects extents ordering (extents.svc_id) */
    98         fibril_rwlock_t extents_lock;
    99         /* protects states (extents.status, hr_volume_t.status) */
    100         fibril_rwlock_t states_lock;
    101 
    102         _Atomic bool state_dirty;
    103         _Atomic uint64_t rebuild_blk;
    104         uint64_t counter; /* metadata syncing */
    105         hr_vol_status_t status;
     98        _Atomic uint64_t rebuild_blk;           /* rebuild position */
     99        uint64_t         counter;               /* TODO: metadata syncing */
     100        hr_vol_status_t  status;                /* volume status */
    106101} hr_volume_t;
    107102
     
    113108
    114109typedef struct hr_range_lock {
    115         fibril_mutex_t lock;
    116         link_t link;
    117         hr_volume_t *vol;
    118         uint64_t off;
    119         uint64_t len;
    120         size_t pending; /* protected by vol->range_lock_list_lock */
    121         bool ignore; /* protected by vol->range_lock_list_lock */
     110        link_t           link;
     111        fibril_mutex_t   lock;
     112        hr_volume_t     *vol;           /* back-pointer to volume */
     113        uint64_t         off;           /* start of the range */
     114        uint64_t         len;           /* length of the range */
     115
     116        size_t           pending;       /* prot. by vol->range_lock_list_lock */
     117        bool             ignore;        /* prot. by vol->range_lock_list_lock */
    122118} hr_range_lock_t;
    123119
    124 extern errno_t hr_init_devs(hr_volume_t *);
    125 extern void hr_fini_devs(hr_volume_t *);
     120extern errno_t          hr_init_devs(hr_volume_t *);
     121extern void             hr_fini_devs(hr_volume_t *);
    126122
    127 extern errno_t hr_raid0_create(hr_volume_t *);
    128 extern errno_t hr_raid1_create(hr_volume_t *);
    129 extern errno_t hr_raid5_create(hr_volume_t *);
     123extern errno_t          hr_raid0_create(hr_volume_t *);
     124extern errno_t          hr_raid1_create(hr_volume_t *);
     125extern errno_t          hr_raid5_create(hr_volume_t *);
    130126
    131 extern errno_t hr_raid0_init(hr_volume_t *);
    132 extern errno_t hr_raid1_init(hr_volume_t *);
    133 extern errno_t hr_raid5_init(hr_volume_t *);
     127extern errno_t          hr_raid0_init(hr_volume_t *);
     128extern errno_t          hr_raid1_init(hr_volume_t *);
     129extern errno_t          hr_raid5_init(hr_volume_t *);
    134130
    135 extern void hr_raid0_status_event(hr_volume_t *);
    136 extern void hr_raid1_status_event(hr_volume_t *);
    137 extern void hr_raid5_status_event(hr_volume_t *);
     131extern void             hr_raid0_status_event(hr_volume_t *);
     132extern void             hr_raid1_status_event(hr_volume_t *);
     133extern void             hr_raid5_status_event(hr_volume_t *);
    138134
    139 extern errno_t hr_raid1_add_hotspare(hr_volume_t *, service_id_t);
    140 extern errno_t hr_raid5_add_hotspare(hr_volume_t *, service_id_t);
     135extern errno_t          hr_raid1_add_hotspare(hr_volume_t *, service_id_t);
     136extern errno_t          hr_raid5_add_hotspare(hr_volume_t *, service_id_t);
    141137
    142138#endif
Note: See TracChangeset for help on using the changeset viewer.