Rev 4522 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4522 | Rev 4532 | ||
---|---|---|---|
Line 60... | Line 60... | ||
60 | if used PCI_find_io |
60 | if used PCI_find_io |
61 | proc PCI_find_io stdcall bus, dev |
61 | proc PCI_find_io stdcall bus, dev |
Line 62... | Line 62... | ||
62 | 62 | ||
63 | push esi |
63 | push esi |
64 | xor eax, eax |
64 | xor eax, eax |
65 | mov esi, PCI_BASE_ADDRESS_0 |
65 | mov esi, PCI_header00.base_addr_0 |
66 | .check: |
66 | .check: |
67 | invoke PciRead32, [bus], [dev], esi |
- | |
68 | 67 | invoke PciRead32, [bus], [dev], esi |
|
69 | test eax, PCI_BASE_ADDRESS_IO_MASK |
68 | test eax, PCI_BASE_ADDRESS_IO_MASK |
70 | jz .inc |
- | |
71 | 69 | jz .inc |
|
72 | test eax, PCI_BASE_ADDRESS_SPACE_IO |
70 | test eax, PCI_BASE_ADDRESS_SPACE_IO |
73 | jz .inc |
- | |
74 | 71 | jz .inc |
|
75 | and eax, PCI_BASE_ADDRESS_IO_MASK |
72 | and eax, PCI_BASE_ADDRESS_IO_MASK |
76 | pop esi |
73 | pop esi |
Line 77... | Line 74... | ||
77 | ret |
74 | ret |
78 | 75 | ||
79 | .inc: |
76 | .inc: |
80 | add esi, 4 |
77 | add esi, 4 |
81 | cmp esi, PCI_BASE_ADDRESS_5 |
78 | cmp esi, PCI_header00.base_addr_5 |
82 | jbe .check |
79 | jbe .check |
83 | pop esi |
80 | pop esi |
Line 93... | Line 90... | ||
93 | 90 | ||
94 | push esi |
91 | push esi |
95 | mov esi, PCI_header00.base_addr_0 |
92 | mov esi, PCI_header00.base_addr_0 |
96 | .check: |
93 | .check: |
97 | invoke PciRead32, [bus], [dev], esi |
- | |
98 | 94 | invoke PciRead32, [bus], [dev], esi |
|
99 | test eax, PCI_BASE_ADDRESS_SPACE_IO ; mmio address? |
95 | test eax, PCI_BASE_ADDRESS_SPACE_IO ; mmio address? |
100 | jnz .inc |
- | |
101 | 96 | jnz .inc |
|
102 | test eax, 100b ; 64 bit? |
97 | test eax, 100b ; 64 bit? |
103 | jnz .inc |
98 | jnz .inc |
104 | and eax, not 1111b |
99 | and eax, not 1111b |
105 | pop esi |
100 | pop esi |