Changeset 7cc30e9 in mainline for uspace/lib/display/src/display.c
- Timestamp:
- 2022-10-24T17:50:46Z (3 years ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 913add60
- Parents:
- 7a05d924
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/display/src/display.c
r7a05d924 r7cc30e9 38 38 #include <mem.h> 39 39 #include <stdlib.h> 40 #include <str.h> 40 41 #include "../private/display.h" 41 42 #include "../private/params.h" … … 147 148 { 148 149 memset(params, 0, sizeof(*params)); 150 params->caption = ""; 149 151 } 150 152 … … 162 164 { 163 165 display_window_t *window; 164 async_exch_t *exch; 165 aid_t req; 166 ipc_call_t answer; 167 errno_t rc; 166 display_wnd_params_enc_t eparams; 167 async_exch_t *exch; 168 aid_t req; 169 ipc_call_t answer; 170 errno_t rc; 171 172 /* Encode the parameters for transport */ 173 eparams.rect = params->rect; 174 eparams.caption_size = str_size(params->caption); 175 eparams.min_size = params->min_size; 176 eparams.pos = params->pos; 177 eparams.flags = params->flags; 168 178 169 179 window = calloc(1, sizeof(display_window_t)); … … 173 183 exch = async_exchange_begin(display->sess); 174 184 req = async_send_0(exch, DISPLAY_WINDOW_CREATE, &answer); 175 rc = async_data_write_start(exch, params, sizeof (display_wnd_params_t)); 185 186 /* Write fixed fields */ 187 rc = async_data_write_start(exch, &eparams, 188 sizeof (display_wnd_params_enc_t)); 189 if (rc != EOK) { 190 async_exchange_end(exch); 191 async_forget(req); 192 free(window); 193 return rc; 194 } 195 196 /* Write caption */ 197 rc = async_data_write_start(exch, params->caption, 198 eparams.caption_size); 176 199 async_exchange_end(exch); 177 200 if (rc != EOK) { … … 540 563 cursor); 541 564 async_exchange_end(exch); 565 return rc; 566 } 567 568 /** Set display window caption. 569 * 570 * @param window Window 571 * @param caption New caption 572 * @return EOK on success or an error code 573 */ 574 errno_t display_window_set_caption(display_window_t *window, 575 const char *caption) 576 { 577 async_exch_t *exch; 578 aid_t req; 579 ipc_call_t answer; 580 size_t cap_size; 581 errno_t rc; 582 583 cap_size = str_size(caption); 584 585 exch = async_exchange_begin(window->display->sess); 586 req = async_send_1(exch, DISPLAY_WINDOW_SET_CAPTION, window->id, 587 &answer); 588 589 /* Write caption */ 590 rc = async_data_write_start(exch, caption, cap_size); 591 async_exchange_end(exch); 592 if (rc != EOK) { 593 async_forget(req); 594 return rc; 595 } 596 597 async_wait_for(req, &rc); 542 598 return rc; 543 599 }
Note:
See TracChangeset
for help on using the changeset viewer.