Changeset 7f1c620 in mainline for genarch/src/acpi/acpi.c
- Timestamp:
- 2006-07-04T17:17:56Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0ffa3ef5
- Parents:
- 991779c5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
genarch/src/acpi/acpi.c
r991779c5 r7f1c620 52 52 53 53 struct acpi_signature_map signature_map[] = { 54 { ( __u8*)"APIC", (void *) &acpi_madt, "Multiple APIC Description Table" }54 { (uint8_t *)"APIC", (void *) &acpi_madt, "Multiple APIC Description Table" } 55 55 }; 56 56 57 static int rsdp_check( __u8*rsdp) {57 static int rsdp_check(uint8_t *rsdp) { 58 58 struct acpi_rsdp *r = (struct acpi_rsdp *) rsdp; 59 __u8sum = 0;59 uint8_t sum = 0; 60 60 int i; 61 61 … … 76 76 } 77 77 78 int acpi_sdt_check( __u8*sdt)78 int acpi_sdt_check(uint8_t *sdt) 79 79 { 80 80 struct acpi_sdt_header *h = (struct acpi_sdt_header *) sdt; 81 __u8sum = 0;81 uint8_t sum = 0; 82 82 int i; 83 83 … … 90 90 static void map_sdt(struct acpi_sdt_header *sdt) 91 91 { 92 page_mapping_insert(AS_KERNEL, ( __address) sdt, (__address) sdt, PAGE_NOT_CACHEABLE);93 map_structure(( __address) sdt, sdt->length);92 page_mapping_insert(AS_KERNEL, (uintptr_t) sdt, (uintptr_t) sdt, PAGE_NOT_CACHEABLE); 93 map_structure((uintptr_t) sdt, sdt->length); 94 94 } 95 95 96 96 static void configure_via_rsdt(void) 97 97 { 98 int i, j, cnt = (acpi_rsdt->header.length - sizeof(struct acpi_sdt_header))/sizeof( __u32);98 int i, j, cnt = (acpi_rsdt->header.length - sizeof(struct acpi_sdt_header))/sizeof(uint32_t); 99 99 100 100 for (i=0; i<cnt; i++) { 101 101 for (j=0; j<sizeof(signature_map)/sizeof(struct acpi_signature_map); j++) { 102 struct acpi_sdt_header *h = (struct acpi_sdt_header *) ( __native) acpi_rsdt->entry[i];102 struct acpi_sdt_header *h = (struct acpi_sdt_header *) (unative_t) acpi_rsdt->entry[i]; 103 103 104 104 map_sdt(h); 105 if (*(( __u32 *) &h->signature[0])==*((__u32*) &signature_map[j].signature[0])) {106 if (!acpi_sdt_check(( __u8*) h))105 if (*((uint32_t *) &h->signature[0])==*((uint32_t *) &signature_map[j].signature[0])) { 106 if (!acpi_sdt_check((uint8_t *) h)) 107 107 goto next; 108 108 *signature_map[j].sdt_ptr = h; … … 117 117 static void configure_via_xsdt(void) 118 118 { 119 int i, j, cnt = (acpi_xsdt->header.length - sizeof(struct acpi_sdt_header))/sizeof( __u64);119 int i, j, cnt = (acpi_xsdt->header.length - sizeof(struct acpi_sdt_header))/sizeof(uint64_t); 120 120 121 121 for (i=0; i<cnt; i++) { 122 122 for (j=0; j<sizeof(signature_map)/sizeof(struct acpi_signature_map); j++) { 123 struct acpi_sdt_header *h = (struct acpi_sdt_header *) (( __address) acpi_rsdt->entry[i]);123 struct acpi_sdt_header *h = (struct acpi_sdt_header *) ((uintptr_t) acpi_rsdt->entry[i]); 124 124 125 125 map_sdt(h); 126 if (*(( __u32 *) &h->signature[0])==*((__u32*) &signature_map[j].signature[0])) {127 if (!acpi_sdt_check(( __u8*) h))126 if (*((uint32_t *) &h->signature[0])==*((uint32_t *) &signature_map[j].signature[0])) { 127 if (!acpi_sdt_check((uint8_t *) h)) 128 128 goto next; 129 129 *signature_map[j].sdt_ptr = h; … … 139 139 void acpi_init(void) 140 140 { 141 __u8 *addr[2] = { NULL, (__u8*) PA2KA(0xe0000) };141 uint8_t *addr[2] = { NULL, (uint8_t *) PA2KA(0xe0000) }; 142 142 int i, j, length[2] = { 1024, 128*1024 }; 143 __u64 *sig = (__u64*) RSDP_SIGNATURE;143 uint64_t *sig = (uint64_t *) RSDP_SIGNATURE; 144 144 145 145 /* … … 149 149 */ 150 150 151 addr[0] = ( __u8*) PA2KA(ebda);151 addr[0] = (uint8_t *) PA2KA(ebda); 152 152 for (i = (ebda ? 0 : 1); i < 2; i++) { 153 153 for (j = 0; j < length[i]; j += 16) { 154 if (*(( __u64*) &addr[i][j]) == *sig && rsdp_check(&addr[i][j])) {154 if (*((uint64_t *) &addr[i][j]) == *sig && rsdp_check(&addr[i][j])) { 155 155 acpi_rsdp = (struct acpi_rsdp *) &addr[i][j]; 156 156 goto rsdp_found; … … 164 164 printf("%#zx: ACPI Root System Description Pointer\n", acpi_rsdp); 165 165 166 acpi_rsdt = (struct acpi_rsdt *) ( __native) acpi_rsdp->rsdt_address;167 if (acpi_rsdp->revision) acpi_xsdt = (struct acpi_xsdt *) (( __address) acpi_rsdp->xsdt_address);166 acpi_rsdt = (struct acpi_rsdt *) (unative_t) acpi_rsdp->rsdt_address; 167 if (acpi_rsdp->revision) acpi_xsdt = (struct acpi_xsdt *) ((uintptr_t) acpi_rsdp->xsdt_address); 168 168 169 169 if (acpi_rsdt) map_sdt((struct acpi_sdt_header *) acpi_rsdt); 170 170 if (acpi_xsdt) map_sdt((struct acpi_sdt_header *) acpi_xsdt); 171 171 172 if (acpi_rsdt && !acpi_sdt_check(( __u8*) acpi_rsdt)) {172 if (acpi_rsdt && !acpi_sdt_check((uint8_t *) acpi_rsdt)) { 173 173 printf("RSDT: %s\n", "bad checksum"); 174 174 return; 175 175 } 176 if (acpi_xsdt && !acpi_sdt_check(( __u8*) acpi_xsdt)) {176 if (acpi_xsdt && !acpi_sdt_check((uint8_t *) acpi_xsdt)) { 177 177 printf("XSDT: %s\n", "bad checksum"); 178 178 return;
Note:
See TracChangeset
for help on using the changeset viewer.