Lines Matching defs:parser
265 struct of_range_parser parser;
268 ret = of_range_parser_init(&parser, np);
272 for_each_of_range(&parser, &range)
753 static int parser_init(struct of_pci_range_parser *parser,
758 parser->node = node;
759 parser->pna = of_n_addr_cells(node);
760 parser->na = of_bus_n_addr_cells(node);
761 parser->ns = of_bus_n_size_cells(node);
762 parser->dma = !strcmp(name, "dma-ranges");
763 parser->bus = of_match_bus(node);
765 parser->range = of_get_property(node, name, &rlen);
766 if (parser->range == NULL)
769 parser->end = parser->range + rlen / sizeof(__be32);
774 int of_pci_range_parser_init(struct of_pci_range_parser *parser,
777 return parser_init(parser, node, "ranges");
781 int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser,
784 return parser_init(parser, node, "dma-ranges");
789 struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser,
792 int na = parser->na;
793 int ns = parser->ns;
794 int np = parser->pna + na + ns;
795 int busflag_na = parser->bus->flag_cells;
800 if (!parser->range || parser->range + np > parser->end)
803 range->flags = parser->bus->get_flags(parser->range);
805 range->bus_addr = of_read_number(parser->range + busflag_na, na - busflag_na);
807 if (parser->dma)
808 range->cpu_addr = of_translate_dma_address(parser->node,
809 parser->range + na);
811 range->cpu_addr = of_translate_address(parser->node,
812 parser->range + na);
814 range->parent_bus_addr = of_read_number(parser->range + na, parser->pna);
815 range->size = of_read_number(parser->range + parser->pna + na, ns);
817 parser->range += np;
820 while (parser->range + np <= parser->end) {
824 flags = parser->bus->get_flags(parser->range);
825 bus_addr = of_read_number(parser->range + busflag_na, na - busflag_na);
826 if (parser->dma)
827 cpu_addr = of_translate_dma_address(parser->node,
828 parser->range + na);
830 cpu_addr = of_translate_address(parser->node,
831 parser->range + na);
832 size = of_read_number(parser->range + parser->pna + na, ns);
841 parser->range += np;
894 struct of_range_parser parser;
919 of_dma_range_parser_init(&parser, node);
920 for_each_of_range(&parser, &range) {
941 of_dma_range_parser_init(&parser, node);
942 for_each_of_range(&parser, &range) {
967 struct of_range_parser parser;
980 of_dma_range_parser_init(&parser, np);
981 for_each_of_range(&parser, &range)