| 336 | |
| 337 | |
| 338 | cs_error_t quorum_trackstart ( |
| 339 | quorum_handle_t handle, |
| 340 | unsigned int flags ) |
| 341 | { |
| 342 | cs_error_t error; |
| 343 | struct quorum_inst *quorum_inst; |
| 344 | struct iovec iov; |
| 345 | struct req_lib_quorum_trackstart req_lib_quorum_trackstart; |
| 346 | struct qb_ipc_response_header res; |
| 347 | |
| 348 | error = hdb_error_to_cs(hdb_handle_get (&quorum_handle_t_db, handle, (void *)&quorum_inst)); |
| 349 | if (error != CS_OK) { |
| 350 | return (error); |
| 351 | } |
| 352 | |
| 353 | req_lib_quorum_trackstart.header.size = sizeof (struct req_lib_quorum_trackstart); |
| 354 | req_lib_quorum_trackstart.header.id = MESSAGE_REQ_QUORUM_TRACKSTART; |
| 355 | req_lib_quorum_trackstart.track_flags = flags; |
| 356 | |
| 357 | iov.iov_base = (char *)&req_lib_quorum_trackstart; |
| 358 | iov.iov_len = sizeof (struct req_lib_quorum_trackstart); |
| 359 | |
| 360 | error = qb_to_cs_error(qb_ipcc_sendv_recv ( |
| 361 | quorum_inst->c, |
| 362 | &iov, |
| 363 | 1, |
| 364 | &res, |
| 365 | sizeof (res), CS_IPC_TIMEOUT_MS)); |
| 366 | |
| 367 | if (error != CS_OK) { |
| 368 | goto error_exit; |
| 369 | } |
| 370 | |
| 371 | error = res.error; |
| 372 | |
| 373 | error_exit: |
| 374 | (void)hdb_handle_put (&quorum_handle_t_db, handle); |
| 375 | |
| 376 | return (error); |
| 377 | } |
| 378 | |
| 379 | cs_error_t quorum_trackstop ( |
| 380 | quorum_handle_t handle) |