Changeset fc265b4 in mainline for uspace/lib/device/src/hr.c


Ignore:
Timestamp:
2025-05-07T10:41:29Z (5 weeks ago)
Author:
Miroslav Cimerman <mc@…>
Children:
af4ecb76
Parents:
ac4b70b
Message:

hr: IPC methods: don't create own hr_t session

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/device/src/hr.c

    rac4b70b rfc265b4  
    148148}
    149149
    150 errno_t hr_auto_assemble(size_t *rassembled_cnt)
    151 {
    152         hr_t *hr;
     150errno_t hr_auto_assemble(hr_t *hr, size_t *rassembled_cnt)
     151{
    153152        errno_t rc;
    154153        size_t assembled_cnt;
    155 
    156         rc = hr_sess_init(&hr);
    157         if (rc != EOK)
    158                 return rc;
    159154
    160155        async_exch_t *exch = async_exchange_begin(hr->sess);
     
    179174                *rassembled_cnt = assembled_cnt;
    180175error:
    181         hr_sess_destroy(hr);
    182176        return rc;
    183177}
     
    266260}
    267261
    268 errno_t hr_stop(const char *devname)
    269 {
    270         hr_t *hr;
     262errno_t hr_stop(hr_t *hr, const char *devname)
     263{
    271264        errno_t rc;
    272265        async_exch_t *exch;
     
    277270                return rc;
    278271
    279         rc = hr_sess_init(&hr);
    280         if (rc != EOK)
    281                 return rc;
    282 
    283272        exch = async_exchange_begin(hr->sess);
    284273        if (exch == NULL) {
     
    290279        async_exchange_end(exch);
    291280error:
    292         hr_sess_destroy(hr);
    293         return rc;
    294 }
    295 
    296 errno_t hr_stop_all(void)
    297 {
    298         hr_t *hr;
    299         async_exch_t *exch;
    300         errno_t rc;
    301 
    302         rc = hr_sess_init(&hr);
    303         if (rc != EOK)
    304                 return rc;
     281        return rc;
     282}
     283
     284errno_t hr_stop_all(hr_t *hr)
     285{
     286        async_exch_t *exch;
     287        errno_t rc;
    305288
    306289        exch = async_exchange_begin(hr->sess);
     
    313296        async_exchange_end(exch);
    314297error:
    315         hr_sess_destroy(hr);
    316         return rc;
    317 }
    318 
    319 errno_t hr_fail_extent(const char *volume_name, unsigned long extent)
    320 {
    321         hr_t *hr;
     298        return rc;
     299}
     300
     301errno_t hr_fail_extent(hr_t *hr, const char *volume_name, unsigned long extent)
     302{
    322303        errno_t rc;
    323304        async_exch_t *exch;
     
    328309                return rc;
    329310
    330         rc = hr_sess_init(&hr);
    331         if (rc != EOK)
    332                 return rc;
    333 
    334311        exch = async_exchange_begin(hr->sess);
    335312        if (exch == NULL) {
     
    341318        async_exchange_end(exch);
    342319error:
    343         hr_sess_destroy(hr);
    344         return rc;
    345 }
    346 
    347 errno_t hr_add_hotspare(const char *volume_name, const char *hotspare)
    348 {
    349         hr_t *hr;
     320        return rc;
     321}
     322
     323errno_t hr_add_hotspare(hr_t *hr, const char *volume_name, const char *hotspare)
     324{
    350325        errno_t rc;
    351326        async_exch_t *exch;
     
    360335                return rc;
    361336
    362         rc = hr_sess_init(&hr);
    363         if (rc != EOK)
    364                 return rc;
    365 
    366337        exch = async_exchange_begin(hr->sess);
    367338        if (exch == NULL) {
     
    373344        async_exchange_end(exch);
    374345error:
    375         hr_sess_destroy(hr);
    376         return rc;
    377 }
    378 
    379 errno_t hr_print_status(void)
    380 {
    381         hr_t *hr;
     346        return rc;
     347}
     348
     349errno_t hr_print_status(hr_t *hr)
     350{
    382351        errno_t rc, retval;
    383352        async_exch_t *exch;
     
    385354        size_t size, i;
    386355        hr_vol_info_t *vols = NULL;
    387 
    388         rc = hr_sess_init(&hr);
    389         if (rc != EOK)
    390                 return rc;
    391356
    392357        exch = async_exchange_begin(hr->sess);
     
    429394
    430395        if (size == 0) {
    431                 printf("no active arrays\n");
     396                printf("no active volumes\n");
    432397                goto error;
    433398        }
     
    440405
    441406error:
    442         hr_sess_destroy(hr);
    443407        if (vols != NULL)
    444408                free(vols);
Note: See TracChangeset for help on using the changeset viewer.