Lines Matching refs:buffer

32 static void show_buffer(struct dell_wmi_smbios_buffer *buffer)
35 buffer->std.cmd_class, buffer->std.cmd_select,
36 buffer->std.input[0], buffer->std.input[1],
37 buffer->std.input[2], buffer->std.input[3],
38 buffer->std.output[0], buffer->std.output[1],
39 buffer->std.output[2], buffer->std.output[3]);
42 static int run_wmi_smbios_cmd(struct dell_wmi_smbios_buffer *buffer)
48 ret = ioctl(fd, DELL_WMI_SMBIOS_CMD, buffer);
95 struct dell_wmi_smbios_buffer *buffer)
99 buffer->std.cmd_class = CLASS_TOKEN_READ;
100 buffer->std.cmd_select = SELECT_TOKEN_STD;
101 buffer->std.input[0] = *location;
102 ret = run_wmi_smbios_cmd(buffer);
103 if (ret != 0 || buffer->std.output[0] != 0)
105 ret = (buffer->std.output[1] == *cmpvalue);
109 static int query_token(__u16 token, struct dell_wmi_smbios_buffer *buffer)
120 return token_is_active(&location, &value, buffer);
123 static int activate_token(struct dell_wmi_smbios_buffer *buffer,
135 buffer->std.cmd_class = CLASS_TOKEN_WRITE;
136 buffer->std.cmd_select = SELECT_TOKEN_STD;
137 buffer->std.input[0] = location;
138 buffer->std.input[1] = 1;
139 ret = run_wmi_smbios_cmd(buffer);
157 struct dell_wmi_smbios_buffer *buffer;
163 printf("Unable to read buffer size\n");
166 printf("Detected required buffer size %lld\n", value);
168 buffer = malloc(value);
169 if (buffer == NULL) {
174 buffer->length = value;
177 buffer->std.cmd_class = CLASS_FLASH_INTERFACE;
178 buffer->std.cmd_select = SELECT_FLASH_INTERFACE;
179 buffer->std.input[0] = 2;
180 ret = run_wmi_smbios_cmd(buffer);
186 show_buffer(buffer);
189 ret = query_token(CAPSULE_EN_TOKEN, buffer);
191 ret = query_token(CAPSULE_DIS_TOKEN, buffer);
197 if (activate_token(buffer, CAPSULE_EN_TOKEN)) {
205 free(buffer);