Changeset 4d9c807 in mainline for uspace/lib/display/src/display.c
- Timestamp:
- 2019-12-13T19:02:10Z (4 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- fdc8e40
- Parents:
- 4fbdc3d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/display/src/display.c
r4fbdc3d r4d9c807 36 36 #include <ipcgfx/client.h> 37 37 #include <loc.h> 38 #include <mem.h> 38 39 #include <stdlib.h> 39 40 … … 133 134 } 134 135 136 /** Initialize window parameters structure. 137 * 138 * @param params Window parameters structure 139 */ 140 void display_wnd_params_init(display_wnd_params_t *params) 141 { 142 memset(params, 0, sizeof(*params)); 143 } 144 135 145 /** Create a display window. 136 146 * 137 147 * @param display Display 148 * @param params Window parameters 138 149 * @param cb Callback functions 139 150 * @param cb_arg Argument to callback functions … … 141 152 * @return EOK on success or an error code 142 153 */ 143 errno_t display_window_create(display_t *display, display_wnd_ cb_t *cb,144 void *cb_arg, display_window_t **rwindow)154 errno_t display_window_create(display_t *display, display_wnd_params_t *params, 155 display_wnd_cb_t *cb, void *cb_arg, display_window_t **rwindow) 145 156 { 146 157 display_window_t *window; 147 158 async_exch_t *exch; 148 sysarg_t wnd_id; 159 aid_t req; 160 ipc_call_t answer; 149 161 errno_t rc; 150 162 … … 154 166 155 167 exch = async_exchange_begin(display->sess); 156 rc = async_req_0_1(exch, DISPLAY_WINDOW_CREATE, &wnd_id); 157 158 async_exchange_end(exch); 159 160 if (rc != EOK) { 161 free(window); 162 return rc; 163 } 168 req = async_send_0(exch, DISPLAY_WINDOW_CREATE, &answer); 169 rc = async_data_write_start(exch, params, sizeof (display_wnd_params_t)); 170 async_exchange_end(exch); 171 if (rc != EOK) { 172 async_forget(req); 173 return rc; 174 } 175 176 async_wait_for(req, &rc); 177 if (rc != EOK) 178 return rc; 164 179 165 180 window->display = display; 166 window->id = wnd_id;181 window->id = ipc_get_arg1(&answer); 167 182 window->cb = cb; 168 183 window->cb_arg = cb_arg;
Note:
See TracChangeset
for help on using the changeset viewer.