89 ret += trace_seq_printf(s, " %llx",
90 dev->resource[i].start < dev->resource[i].end ?
91 (unsigned long long)(end - start) + 1 : 0);
92 }
93 if (drv)
94 ret += trace_seq_printf(s, " %s\n", drv->name);
95 else
96 ret += trace_seq_printf(s, " \n");
97 return ret;
98}
99
100static void destroy_header_iter(struct header_iter *hiter)
101{
102 if (!hiter)
103 return;
104 pci_dev_put(hiter->dev);
105 kfree(hiter);
106}
107
108static void mmio_pipe_open(struct trace_iterator *iter)
109{
110 struct header_iter *hiter;
111 struct trace_seq *s = &iter->seq;
112
113 trace_seq_printf(s, "VERSION 20070824\n");
114
115 hiter = kzalloc(sizeof(*hiter), GFP_KERNEL);
116 if (!hiter)
117 return;
118
119 hiter->dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, NULL);
120 iter->private = hiter;
121}
122
123
124static void mmio_close(struct trace_iterator *iter)
125{
126 struct header_iter *hiter = iter->private;
127 destroy_header_iter(hiter);
128 iter->private = NULL;
129}