From 4f11ee9f78dd6164cd72cec19f4f18cb089126f0 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Mon, 17 Aug 2020 20:53:43 +0200 Subject: [PATCH] es1370: Change physical addresses to phys_addr_t. Solves a TODO and some pointer to integer cast warnings. --- .../kernel/drivers/audio/ac97/es1370/es1370.h | 2 +- .../kernel/drivers/audio/ac97/es1370/util.c | 15 +++++++-------- .../kernel/drivers/audio/ac97/es1370/util.h | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.h b/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.h index 36147534dd..1febcf3891 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.h +++ b/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.h @@ -40,7 +40,7 @@ typedef struct _es1370_mem { LIST_ENTRY(_es1370_mem) next; void *log_base; - void *phy_base; + phys_addr_t phy_base; area_id area; size_t size; } es1370_mem; diff --git a/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c b/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c index 48551b7d02..866bae88a7 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c +++ b/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c @@ -65,9 +65,8 @@ round_to_pagesize(uint32 size) area_id -alloc_mem(void **phy, void **log, size_t size, const char *name) +alloc_mem(phys_addr_t *phy, void **log, size_t size, const char *name) { -// TODO: phy should be phys_addr_t*! physical_entry pe; void * logadr; area_id areaid; @@ -94,7 +93,7 @@ alloc_mem(void **phy, void **log, size_t size, const char *name) if (log) *log = logadr; if (phy) - *phy = (void*)(addr_t)pe.address; + *phy = pe.address; LOG(("area = %d, size = %d, log = %#08X, phy = %#08X\n", areaid, size, logadr, pe.address)); return areaid; @@ -107,10 +106,10 @@ alloc_mem(void **phy, void **log, size_t size, const char *name) * below does work, and I can't test if using B_ANY_KERNEL_ADDRESS also works. */ area_id -map_mem(void **log, void *phy, size_t size, const char *name) +map_mem(void **log, phys_addr_t phy, size_t size, const char *name) { uint32 offset; - void *phyadr; + phys_addr_t phyadr; void *mapadr; area_id area; @@ -119,9 +118,9 @@ map_mem(void **log, void *phy, size_t size, const char *name) offset = (uint32)phy & (B_PAGE_SIZE - 1); phyadr = phy - offset; size = round_to_pagesize(size + offset); - area = map_physical_memory(name, (addr_t)phyadr, size, - B_ANY_KERNEL_BLOCK_ADDRESS, B_READ_AREA | B_WRITE_AREA, &mapadr); - *log = mapadr + offset; + area = map_physical_memory(name, phyadr, size, B_ANY_KERNEL_BLOCK_ADDRESS, + B_READ_AREA | B_WRITE_AREA, &mapadr); + *log = (uint8 *)mapadr + offset; LOG(("physical = %p, logical = %p, offset = %#x, phyadr = %p, mapadr = %p, size = %#x, area = %#x\n", phy, *log, offset, phyadr, mapadr, size, area)); diff --git a/src/add-ons/kernel/drivers/audio/ac97/es1370/util.h b/src/add-ons/kernel/drivers/audio/ac97/es1370/util.h index 79a2c69809..2f97928831 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/es1370/util.h +++ b/src/add-ons/kernel/drivers/audio/ac97/es1370/util.h @@ -30,8 +30,8 @@ #include -area_id alloc_mem(void **phy, void **log, size_t size, const char *name); -area_id map_mem(void **log, void *phy, size_t size, const char *name); +area_id alloc_mem(phys_addr_t *phy, void **log, size_t size, const char *name); +area_id map_mem(void **log, phys_addr_t phy, size_t size, const char *name); cpu_status lock(void); void unlock(cpu_status status);