Changeset dbd91da in mainline for uspace/lib


Ignore:
Timestamp:
2024-10-05T10:32:59Z (12 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
6b8e89b0
Parents:
34abe6c5
git-author:
Miroslav Cimerman <mc@…> (2024-10-05 10:23:08)
git-committer:
Miroslav Cimerman <mc@…> (2024-10-05 10:32:59)
Message:

hr: remake structures to include extent status

Also rename .devs → .extents in hr_volume_t and when printing status,
display each extent status, and parity disk when array is of type RAID4.

Location:
uspace/lib/device
Files:
2 edited

Legend:

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

    r34abe6c5 rdbd91da  
    6464} hr_config_t;
    6565
     66typedef struct hr_extent {
     67        service_id_t svc_id;
     68        int status;
     69} hr_extent_t;
     70
    6671typedef struct hr_vol_info {
    67         service_id_t extents[HR_MAXDEVS];
     72        hr_extent_t extents[HR_MAXDEVS];
    6873        size_t extent_no;
    6974        service_id_t svc_id;
  • uspace/lib/device/src/hr.c

    r34abe6c5 rdbd91da  
    146146        size_t i;
    147147        char *devname;
     148        hr_extent_t *ext;
    148149
    149150        printf("--- vol %zu ---\n", index);
     
    170171        printf("block size: %zu\n", vol_info->bsize);
    171172
    172         printf("extents: [index] [devname]\n");
     173        if (vol_info->level == hr_l_4)
     174                printf("extents: [P] [status] [index] [devname]\n");
     175        else
     176                printf("extents: [status] [index] [devname]\n");
    173177        for (i = 0; i < vol_info->extent_no; i++) {
    174                 rc = loc_service_get_name(vol_info->extents[i], &devname);
     178                ext = &vol_info->extents[i];
     179                rc = loc_service_get_name(ext->svc_id, &devname);
    175180                if (rc != EOK)
    176181                        return rc;
    177                 printf("          %zu       %s\n", i, devname);
     182                if (i == 0 && vol_info->level == hr_l_4)
     183                        printf("          P   %d        %zu       %s\n", ext->status, i, devname);
     184                else if (vol_info->level == hr_l_4)
     185                        printf("              %d        %zu       %s\n", ext->status, i, devname);
     186                else
     187                        printf("          %d        %zu       %s\n", ext->status, i, devname);
    178188        }
    179189        return EOK;
Note: See TracChangeset for help on using the changeset viewer.