Lines Matching full:intf

146 ipmi_serial_term_open(struct ipmi_intf * intf)  in ipmi_serial_term_open()  argument
153 if (!intf->devfile) { in ipmi_serial_term_open()
161 if ((p = strchr(intf->devfile, ':'))) { in ipmi_serial_term_open()
184 intf->fd = open(intf->devfile, O_RDWR | O_NONBLOCK, 0); in ipmi_serial_term_open()
185 if (intf->fd < 0) { in ipmi_serial_term_open()
186 lperror(LOG_ERR, "Could not open device at %s", intf->devfile); in ipmi_serial_term_open()
200 tcgetattr(intf->fd, &ti); in ipmi_serial_term_open()
228 tcsetattr(intf->fd, TCSAFLUSH, &ti); in ipmi_serial_term_open()
230 if (intf->ssn_params.timeout == 0) in ipmi_serial_term_open()
231 intf->ssn_params.timeout = IPMI_SERIAL_TIMEOUT; in ipmi_serial_term_open()
232 if (intf->ssn_params.retry == 0) in ipmi_serial_term_open()
233 intf->ssn_params.retry = IPMI_SERIAL_RETRY; in ipmi_serial_term_open()
235 intf->opened = 1; in ipmi_serial_term_open()
241 ipmi_serial_term_close(struct ipmi_intf * intf) in ipmi_serial_term_close() argument
243 if (intf->opened) { in ipmi_serial_term_close()
244 close(intf->fd); in ipmi_serial_term_close()
245 intf->fd = -1; in ipmi_serial_term_close()
247 ipmi_intf_session_cleanup(intf); in ipmi_serial_term_close()
248 intf->opened = 0; in ipmi_serial_term_close()
255 serial_wait_for_data(struct ipmi_intf * intf) in serial_wait_for_data() argument
260 pfd.fd = intf->fd; in serial_wait_for_data()
264 n = poll(&pfd, 1, intf->ssn_params.timeout*1000); in serial_wait_for_data()
279 serial_read_line(struct ipmi_intf * intf, char *str, int len) in serial_read_line() argument
286 if (serial_wait_for_data(intf)) { in serial_read_line()
289 rv = read(intf->fd, str + i, 1); in serial_read_line()
318 serial_write_line(struct ipmi_intf * intf, const char *str) in serial_write_line() argument
324 rv = write(intf->fd, str + cnt, cb - cnt); in serial_write_line()
340 serial_flush(struct ipmi_intf * intf) in serial_flush() argument
343 return ioctl(intf->fd, TCFLSH, TCIOFLUSH); in serial_flush()
345 return ioctl(intf->fd, TIOCFLUSH); in serial_flush()
358 recv_response(struct ipmi_intf * intf, unsigned char *data, int len) in recv_response() argument
368 if ((rv = serial_read_line(intf, p, sizeof(hex_rs) - resp_len)) < 0) { in recv_response()
396 serial_write_line(intf, "\r\r\r\r"); in recv_response()
398 serial_flush(intf); in recv_response()
466 serial_term_build_msg(const struct ipmi_intf * intf, in serial_term_build_msg() argument
477 if (intf->target_addr && intf->target_addr != intf->my_addr) { in serial_term_build_msg()
478 if (intf->transit_addr != 0) { in serial_term_build_msg()
508 outer_rq->channel = intf->transit_channel | 0x40; in serial_term_build_msg()
509 outer_rq->msg.rsSA = intf->transit_addr; in serial_term_build_msg()
512 outer_rq->msg.rqSA = intf->my_addr; in serial_term_build_msg()
524 inner_rq->channel = intf->target_channel | 0x40; in serial_term_build_msg()
525 inner_rq->msg.rsSA = intf->target_addr; in serial_term_build_msg()
528 inner_rq->msg.rqSA = intf->my_addr; in serial_term_build_msg()
598 serial_term_send_msg(struct ipmi_intf * intf, uint8_t * msg, int msg_len) in serial_term_send_msg() argument
649 tmp = write(intf->fd, data, size); in serial_term_send_msg()
662 serial_term_wait_response(struct ipmi_intf * intf, in serial_term_wait_response() argument
672 msg_len = recv_response(intf, msg, max_len); in serial_term_wait_response()
717 serial_term_get_message(struct ipmi_intf * intf, in serial_term_get_message() argument
742 serial_flush(intf); in serial_term_get_message()
743 serial_term_send_msg(intf, (uint8_t *) &hdr, 3); in serial_term_get_message()
746 rv = serial_term_wait_response(intf, &tmp_ctx, data, sizeof (data)); in serial_term_get_message()
774 } while (tm < intf->ssn_params.timeout); in serial_term_get_message()
780 ipmi_serial_term_send_cmd(struct ipmi_intf * intf, struct ipmi_rq * req) in ipmi_serial_term_send_cmd() argument
787 if (!intf->opened && intf->open && intf->open(intf) < 0) { in ipmi_serial_term_send_cmd()
792 for (retry = 0; retry < intf->ssn_params.retry; retry++) { in ipmi_serial_term_send_cmd()
794 bridging_level = serial_term_build_msg(intf, req, msg, in ipmi_serial_term_send_cmd()
801 serial_flush(intf); in ipmi_serial_term_send_cmd()
802 serial_term_send_msg(intf, msg, msg_len); in ipmi_serial_term_send_cmd()
805 rv = serial_term_wait_response(intf, &req_ctx[0], msg, sizeof (msg)); in ipmi_serial_term_send_cmd()
822 rv = serial_term_get_message(intf, &req_ctx[1], in ipmi_serial_term_send_cmd()
837 rv = serial_term_wait_response(intf, &req_ctx[1], in ipmi_serial_term_send_cmd()
885 ipmi_serial_term_setup(struct ipmi_intf * intf) in ipmi_serial_term_setup() argument
888 intf->max_request_data_size = IPMI_SERIAL_MAX_RQ_SIZE; in ipmi_serial_term_setup()
889 intf->max_response_data_size = IPMI_SERIAL_MAX_RS_SIZE; in ipmi_serial_term_setup()