Changeset b0f1366 in mainline for uspace/lib/device


Ignore:
Timestamp:
2024-09-06T11:37:54Z (16 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
9c1cf34c
Parents:
ee83e9c
Message:

hr: write persistent metadata, assemble array from metadata

Location:
uspace/lib/device
Files:
3 edited

Legend:

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

    ree83e9c rb0f1366  
    7676
    7777extern errno_t hr_create(hr_t *, hr_config_t *);
     78extern errno_t hr_assemble(hr_t *, hr_config_t *);
    7879extern errno_t hr_print_status(void);
    7980
  • uspace/lib/device/include/ipc/hr.h

    ree83e9c rb0f1366  
    4040typedef enum {
    4141        HR_CREATE = IPC_FIRST_USER_METHOD,
     42        HR_ASSEMBLE,
    4243        HR_STATUS
    4344} hr_request_t;
  • uspace/lib/device/src/hr.c

    ree83e9c rb0f1366  
    114114}
    115115
     116errno_t hr_assemble(hr_t *hr, hr_config_t *hr_config)
     117{
     118        errno_t rc, retval;
     119        async_exch_t *exch;
     120        aid_t req;
     121
     122        exch = async_exchange_begin(hr->sess);
     123        if (exch == NULL)
     124                return EINVAL;
     125
     126        req = async_send_0(exch, HR_ASSEMBLE, NULL);
     127
     128        rc = async_data_write_start(exch, hr_config, sizeof(hr_config_t));
     129        if (rc != EOK) {
     130                async_exchange_end(exch);
     131                async_forget(req);
     132                return rc;
     133        }
     134
     135        async_exchange_end(exch);
     136        async_wait_for(req, &retval);
     137        if (retval != EOK)
     138                return retval;
     139
     140        return EOK;
     141}
     142
    116143static errno_t print_vol_info(size_t index, hr_vol_info_t *vol_info)
    117144{
Note: See TracChangeset for help on using the changeset viewer.