summaryrefslogtreecommitdiffstats
path: root/kernel/arch/mn10300/unit-asb2305/pci-asb2305.h
blob: 96c484b12226566999248042c6182eb9a4af66d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* ASB2305 Arch-specific PCI declarations
 *
 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
 * Written by David Howells (dhowells@redhat.com)
 * Derived from: arch/i386/kernel/pci-i386.h: (c) 1999 Martin Mares <mj@ucw.cz>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public Licence
 * as published by the Free Software Foundation; either version
 * 2 of the Licence, or (at your option) any later version.
 */
#ifndef _PCI_ASB2305_H
#define _PCI_ASB2305_H

#undef DEBUG

#ifdef DEBUG
#define DBG(x...) printk(x)
#else
#define DBG(x...)
#endif

extern unsigned int pci_probe;

/* pci-asb2305.c */

extern void pcibios_resource_survey(void);

/* pci.c */

extern struct pci_ops *pci_root_ops;

extern struct irq_routing_table *pcibios_get_irq_routing_table(void);
extern int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq);

/* pci-irq.c */

struct irq_info {
	u8 bus, devfn;			/* Bus, device and function */
	struct {
		u8 link;		/* IRQ line ID, chipset dependent,
					 * 0=not routed */
		u16 bitmap;		/* Available IRQs */
	} __attribute__((packed)) irq[4];
	u8 slot;			/* Slot number, 0=onboard */
	u8 rfu;
} __attribute__((packed));

struct irq_routing_table {
	u32 signature;			/* PIRQ_SIGNATURE should be here */
	u16 version;			/* PIRQ_VERSION */
	u16 size;			/* Table size in bytes */
	u8 rtr_bus, rtr_devfn;		/* Where the interrupt router lies */
	u16 exclusive_irqs;		/* IRQs devoted exclusively to PCI usage */
	u16 rtr_vendor, rtr_device;	/* Vendor and device ID of interrupt router */
	u32 miniport_data;		/* Crap */
	u8 rfu[11];
	u8 checksum;			/* Modulo 256 checksum must give zero */
	struct irq_info slots[0];
} __attribute__((packed));

extern unsigned int pcibios_irq_mask;

extern void pcibios_irq_init(void);
extern void pcibios_fixup_irqs(void);
extern void pcibios_enable_irq(struct pci_dev *dev);

#endif /* PCI_ASB2305_H */
/span>.translate() self.hot_template.outputs = self._translate_outputs() if self.node_translator.hot_template_version is None: self.node_translator.hot_template_version = HotTemplate.LATEST def translate(self): """Translate to HOT YAML This method produces a translated output for main template. The nested template, if any referenced by main, will be created as a separate file. """ self._translate_to_hot_yaml() # TODO(mvelten) go back to calling hot_template.output_to_yaml instead # for stdout once embed_substack_templates is correctly implemented # return self.hot_template.output_to_yaml( # self.node_translator.hot_template_version) yaml_files = self.hot_template.output_to_yaml_files_dict( "output.yaml", self.node_translator.hot_template_version) for name, content in six.iteritems(yaml_files): if name != "output.yaml": with open(name, 'w+') as f: f.write(content) return yaml_files["output.yaml"] def translate_to_yaml_files_dict(self, base_filename, nested_resources=False): """Translate to HOT YAML This method produces a translated output containing main and any nested templates referenced by main. This output can be programmatically stored into different files by using key as template name and value as template content. """ self._translate_to_hot_yaml() return self.hot_template.output_to_yaml_files_dict( base_filename, self.node_translator.hot_template_version, nested_resources) def _translate_inputs(self): translator = TranslateInputs(self.tosca.inputs, self.parsed_params, self.deploy) return translator.translate() def _translate_outputs(self): translator = TranslateOutputs(self.tosca.outputs, self.node_translator) return translator.translate() # check all properties for all node and ensure they are resolved # to actual value def _resolve_input(self): for n in self.tosca.nodetemplates: for node_prop in n.get_properties_objects(): if isinstance(node_prop.value, dict): try: self.parsed_params[node_prop.value['get_input']] except Exception: msg = (_('Must specify all input values in \ TOSCA template, missing %s.') % node_prop.value['get_input']) log.error(msg) raise ValueError(msg)