| 449 | |
| 450 | |
| 451 | cs_error_t |
| 452 | corosync_cfg_trackstart ( |
| 453 | corosync_cfg_handle_t cfg_handle, |
| 454 | uint8_t track_flags) |
| 455 | { |
| 456 | struct cfg_inst *cfg_inst; |
| 457 | struct req_lib_cfg_trackstart req_lib_cfg_trackstart; |
| 458 | struct res_lib_cfg_trackstart res_lib_cfg_trackstart; |
| 459 | cs_error_t error; |
| 460 | struct iovec iov; |
| 461 | |
| 462 | req_lib_cfg_trackstart.header.size = sizeof (struct req_lib_cfg_trackstart); |
| 463 | req_lib_cfg_trackstart.header.id = MESSAGE_REQ_CFG_TRACKSTART; |
| 464 | req_lib_cfg_trackstart.track_flags = track_flags; |
| 465 | |
| 466 | error = hdb_error_to_cs(hdb_handle_get (&cfg_hdb, cfg_handle, |
| 467 | (void *)&cfg_inst)); |
| 468 | if (error != CS_OK) { |
| 469 | return (error); |
| 470 | } |
| 471 | |
| 472 | iov.iov_base = (void *)&req_lib_cfg_trackstart, |
| 473 | iov.iov_len = sizeof (struct req_lib_cfg_trackstart), |
| 474 | |
| 475 | error = qb_to_cs_error (qb_ipcc_sendv_recv (cfg_inst->c, |
| 476 | &iov, |
| 477 | 1, |
| 478 | &res_lib_cfg_trackstart, |
| 479 | sizeof (struct res_lib_cfg_trackstart), CS_IPC_TIMEOUT_MS)); |
| 480 | |
| 481 | (void)hdb_handle_put (&cfg_hdb, cfg_handle); |
| 482 | |
| 483 | return (error == CS_OK ? res_lib_cfg_trackstart.header.error : error); |
| 484 | } |
| 485 | |
| 486 | cs_error_t |
| 487 | corosync_cfg_trackstop ( |