Lines Matching refs:input
243 property::parse_string(input_buffer &input) in parse_string() argument
246 assert(input[0] == '"'); in parse_string()
247 ++input; in parse_string()
248 const char *start = (const char*)input; in parse_string()
250 while (char c = input[0]) in parse_string()
252 if (c == '"' && input[-1] != '\\') in parse_string()
254 input.consume('"'); in parse_string()
257 ++input; in parse_string()
265 property::parse_cells(input_buffer &input, int cell_size) in parse_cells() argument
267 assert(input[0] == '<'); in parse_cells()
268 ++input; in parse_cells()
270 input.next_token(); in parse_cells()
271 while (!input.consume('>')) in parse_cells()
273 input.next_token(); in parse_cells()
276 if (input.consume('&')) in parse_cells()
280 input.parse_error("reference only permitted in 32-bit arrays"); in parse_cells()
284 input.next_token(); in parse_cells()
287 string referenced = string::parse_node_name(input); in parse_cells()
290 input.parse_error("Expected node name"); in parse_cells()
294 input.next_token(); in parse_cells()
312 if (!input.consume_integer_expression(val)) in parse_cells()
314 input.parse_error("Expected numbers in array of cells"); in parse_cells()
335 input.next_token(); in parse_cells()
346 property::parse_bytes(input_buffer &input) in parse_bytes() argument
348 assert(input[0] == '['); in parse_bytes()
349 ++input; in parse_bytes()
351 input.next_token(); in parse_bytes()
352 while (!input.consume(']')) in parse_bytes()
359 if (!input.consume_hex_byte(val)) in parse_bytes()
361 input.parse_error("Expected hex bytes in array of bytes"); in parse_bytes()
366 input.next_token(); in parse_bytes()
373 property::parse_reference(input_buffer &input) in parse_reference() argument
375 assert(input[0] == '&'); in parse_reference()
376 ++input; in parse_reference()
377 input.next_token(); in parse_reference()
379 v.string_data = string::parse_node_name(input); in parse_reference()
382 input.parse_error("Expected node name"); in parse_reference()
432 void property::parse_define(input_buffer &input, define_map *defines) in parse_define() argument
434 input.consume('$'); in parse_define()
437 input.parse_error("No predefined properties to match name\n"); in parse_define()
441 string name = string::parse_property_name(input); in parse_define()
446 input.parse_error("Undefined property name\n"); in parse_define()
453 property::property(input_buffer &input, in property() argument
460 input.next_token(); in property()
461 switch (input[0]) in property()
465 parse_define(input, defines); in property()
472 input.parse_error("Invalid property value."); in property()
478 valid = input.consume("/bits/"); in property()
479 input.next_token(); in property()
480 valid &= input.consume_integer(bits); in property()
485 input.parse_error("Invalid size for elements"); in property()
489 input.next_token(); in property()
490 if (input[0] != '<') in property()
492 input.parse_error("/bits/ directive is only valid on arrays"); in property()
496 parse_cells(input, bits); in property()
500 parse_string(input); in property()
503 parse_cells(input, 32); in property()
506 parse_bytes(input); in property()
509 parse_reference(input); in property()
516 input.next_token(); in property()
517 } while (input.consume(',')); in property()
518 if (semicolonTerminated && !input.consume(';')) in property()
520 input.parse_error("Expected ; at end of property"); in property()
537 property::parse(input_buffer &input, string key, string label, in parse() argument
540 property_ptr p(new property(input, key, label, semicolonTerminated, defines)); in parse()
640 node::parse_name(input_buffer &input, bool &is_property, const char *error) in parse_name() argument
646 input.next_token(); in parse_name()
649 return string::parse_property_name(input); in parse_name()
651 string n = string::parse_node_or_property_name(input, is_property); in parse_name()
656 input.parse_error(error); in parse_name()
750 node::node(input_buffer &input, string n, string l, string a, define_map *defines) : in node() argument
753 if (!input.consume('{')) in node()
755 input.parse_error("Expected { to start new device tree node.\n"); in node()
757 input.next_token(); in node()
758 while (valid && !input.consume('}')) in node()
764 child_name = parse_name(input, is_property, in node()
766 if (input.consume(':')) in node()
772 child_name = parse_name(input, is_property, "Expected property or node name"); in node()
774 if (input.consume('@')) in node()
776 child_address = parse_name(input, is_property, "Expected unit address"); in node()
782 input.next_token(); in node()
784 if (input.consume('=')) in node()
786 property_ptr p = property::parse(input, child_name, in node()
797 else if (!is_property && input[0] == ('{')) in node()
799 node_ptr child = node::parse(input, child_name, in node()
810 else if (input.consume(';')) in node()
816 input.parse_error("Error parsing property."); in node()
819 input.next_token(); in node()
821 input.consume(';'); in node()
852 node::parse(input_buffer &input, in parse() argument
858 node_ptr n(new node(input, name, label, address, defines)); in parse()
1173 device_tree::parse_include(input_buffer &input, in parse_include() argument
1179 if (!input.consume("/include/")) in parse_include()
1184 if (input.consume("if ")) in parse_include()
1186 input.next_token(); in parse_include()
1187 string name = string::parse_property_name(input); in parse_include()
1193 input.consume('/'); in parse_include()
1195 input.next_token(); in parse_include()
1196 if (!input.consume('"')) in parse_include()
1198 input.parse_error("Expected quoted filename"); in parse_include()
1203 while (input[length] != '"') length++; in parse_include()
1205 std::string file((const char*)input, length); in parse_include()
1207 input.consume(file.c_str()); in parse_include()
1210 input.consume('"'); in parse_include()
1211 input.next_token(); in parse_include()
1236 input.parse_error("Unable to locate input file"); in parse_include()
1237 input.consume('"'); in parse_include()
1238 input.next_token(); in parse_include()
1242 input.consume('"'); in parse_include()
1243 input.next_token(); in parse_include()
1249 device_tree::parse_file(input_buffer &input, in parse_file() argument
1255 input.next_token(); in parse_file()
1257 if (input.consume("/dts-v1/;")) in parse_file()
1261 input.next_token(); in parse_file()
1262 input.next_token(); in parse_file()
1265 input.parse_error("Expected /dts-v1/; version string"); in parse_file()
1267 while(parse_include(input, dir, roots, depfile, read_header)) {} in parse_file()
1269 while(input.consume("/memreserve/")) in parse_file()
1272 input.next_token(); in parse_file()
1274 if (!(input.consume_integer_expression(start) && in parse_file()
1275 (input.next_token(), in parse_file()
1276 input.consume_integer_expression(len)))) in parse_file()
1278 input.parse_error("Expected size on /memreserve/ node."); in parse_file()
1280 input.next_token(); in parse_file()
1281 input.consume(';'); in parse_file()
1284 input.next_token(); in parse_file()
1285 while(parse_include(input, dir, roots, depfile, read_header)) {} in parse_file()
1286 while (valid && !input.finished()) in parse_file()
1289 if (input.consume('/')) in parse_file()
1291 input.next_token(); in parse_file()
1292 n = node::parse(input, string(), string(), string(), &defines); in parse_file()
1294 else if (input.consume('&')) in parse_file()
1296 input.next_token(); in parse_file()
1297 string name = string::parse_node_name(input); in parse_file()
1298 input.next_token(); in parse_file()
1299 n = node::parse(input, name, string(), string(), &defines); in parse_file()
1303 input.parse_error("Failed to find root node /."); in parse_file()
1313 input.next_token(); in parse_file()
1314 while(parse_include(input, dir, roots, depfile, read_header)) {} in parse_file()
1486 input_buffer &input = *in; in parse_dtb() local
1488 valid = h.read_dtb(input); in parse_dtb()
1500 input.buffer_from_offset(h.off_mem_rsvmap, 0); in parse_dtb()
1513 input.buffer_from_offset(h.off_dt_struct, h.size_dt_struct); in parse_dtb()
1515 input.buffer_from_offset(h.off_dt_strings, h.size_dt_strings); in parse_dtb()
1545 input_buffer &input = *in; in parse_dts() local
1547 parse_file(input, dir, roots, depfile, read_header); in parse_dts()
1552 input.parse_error("Failed to find root node /."); in parse_dts()