aboutsummaryrefslogtreecommitdiffstats
path: root/generic/examples/bitstream.py
blob: 7f0b5c070493be4ca0b5f5520ebd2c1d1ac820c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from write_fasm import *
from simple_config import K

# Need to tell FASM generator how to write parameters
# (celltype, parameter) -> ParameterConfig
param_map = {
	("GENERIC_SLICE", "K"): ParameterConfig(write=False),
	("GENERIC_SLICE", "INIT"): ParameterConfig(write=True, numeric=True, width=2**K),
	("GENERIC_SLICE", "FF_USED"): ParameterConfig(write=True, numeric=True, width=1),

	("GENERIC_IOB", "INPUT_USED"): ParameterConfig(write=True, numeric=True, width=1),
	("GENERIC_IOB", "OUTPUT_USED"): ParameterConfig(write=True, numeric=True, width=1),
	("GENERIC_IOB", "ENABLE_USED"): ParameterConfig(write=True, numeric=True, width=1),
}

with open("blinky.fasm", "w") as f:
	write_fasm(ctx, param_map, f)
fastcall void apic_timer_interrupt(void); fastcall void error_interrupt(void); fastcall void pmu_apic_interrupt(void); fastcall void spurious_interrupt(void); fastcall void thermal_interrupt(void); fastcall void cmci_interrupt(void); void disable_8259A_irq(unsigned int irq); void enable_8259A_irq(unsigned int irq); int i8259A_irq_pending(unsigned int irq); void init_8259A(int aeoi); int i8259A_suspend(void); int i8259A_resume(void); void setup_IO_APIC(void); void disable_IO_APIC(void); void print_IO_APIC(void); void setup_ioapic_dest(void); extern unsigned long io_apic_irqs; extern atomic_t irq_err_count; extern atomic_t irq_mis_count; int pirq_shared(struct domain *d , int irq); int map_domain_pirq(struct domain *d, int pirq, int vector, int type, void *data); int unmap_domain_pirq(struct domain *d, int pirq); int get_free_pirq(struct domain *d, int type, int index); void free_domain_pirqs(struct domain *d); #define domain_irq_to_vector(d, irq) ((d)->arch.pirq_vector[irq] ?: \ IO_APIC_IRQ(irq) ? 0 : LEGACY_VECTOR(irq)) #define domain_vector_to_irq(d, vec) ((d)->arch.vector_pirq[vec] ?: \ ((vec) < FIRST_LEGACY_VECTOR || \ (vec) > LAST_LEGACY_VECTOR) ? \ 0 : LEGACY_IRQ_FROM_VECTOR(vec)) int pirq_guest_force_unbind(struct domain *d, int irq); #endif /* _ASM_HW_IRQ_H */