Lines Matching refs:me
111 static bool mei_init(struct mei *me, const uuid_le *guid,
118 me->verbose = verbose;
120 me->fd = open("/dev/mei0", O_RDWR);
121 if (me->fd == -1) {
122 mei_err(me, "Cannot establish a handle to the Intel MEI driver\n");
125 memcpy(&me->guid, guid, sizeof(*guid));
127 me->initialized = true;
129 memcpy(&data.in_client_uuid, &me->guid, sizeof(me->guid));
130 result = ioctl(me->fd, IOCTL_MEI_CONNECT_CLIENT, &data);
132 mei_err(me, "IOCTL_MEI_CONNECT_CLIENT receive message. err=%d\n", result);
136 mei_msg(me, "max_message_length %d\n", cl->max_msg_length);
137 mei_msg(me, "protocol_version %d\n", cl->protocol_version);
141 mei_err(me, "Intel MEI protocol version not supported\n");
145 me->buf_size = cl->max_msg_length;
146 me->prot_ver = cl->protocol_version;
150 mei_deinit(me);
154 static ssize_t mei_recv_msg(struct mei *me, unsigned char *buffer,
159 mei_msg(me, "call read length = %zd\n", len);
161 rc = read(me->fd, buffer, len);
163 mei_err(me, "read failed with status %zd %s\n",
165 mei_deinit(me);
167 mei_msg(me, "read succeeded with result %zd\n", rc);
172 static ssize_t mei_send_msg(struct mei *me, const unsigned char *buffer,
183 mei_msg(me, "call write length = %zd\n", len);
185 written = write(me->fd, buffer, len);
188 mei_err(me, "write failed with status %zd %s\n",
194 FD_SET(me->fd, &set);
195 rc = select(me->fd + 1 , &set, NULL, NULL, &tv);
196 if (rc > 0 && FD_ISSET(me->fd, &set)) {
197 mei_msg(me, "write success\n");
199 mei_err(me, "write failed on timeout with status\n");
202 mei_err(me, "write failed on select with status %zd\n", rc);
209 mei_deinit(me);