From 3d3d43c37357872371764c823857d63be793bda5 Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Wed, 16 Jun 2004 17:23:12 +0000 Subject: [PATCH] add check_full_in_bank() --- second/bank.c | 21 +++++++++++++++++++++ second/bank.h | 1 + 2 files changed, 22 insertions(+) diff --git a/second/bank.c b/second/bank.c index 5f3a275..30de916 100644 --- a/second/bank.c +++ b/second/bank.c @@ -221,6 +221,27 @@ unsigned long bank_mem_avail() return size; } +int check_full_in_bank(unsigned long start, unsigned long size) +{ + int i; + + for (i = 0; i < memory_map.bank_number; i++) + { + if ( ( (memory_map.bank[i].logiAddr <= start) && + (start < memory_map.bank[i].logiAddr + memory_map.bank[i].size) ) && + ! ( (memory_map.bank[i].logiAddr <= start + size) && + (start + size < memory_map.bank[i].logiAddr + memory_map.bank[i].size) ) ) + { + printf("0x%lx in 0x%lx : 0x%lx\n", start, + memory_map.bank[i].logiAddr, + memory_map.bank[i].logiAddr + memory_map.bank[i].size); + printf("0x%lx out of bound\n", start + size); + return -1; + } + } + return 0; +} + #ifdef BANK_DUMP void bank_dump() { diff --git a/second/bank.h b/second/bank.h index b75ec3c..00bf432 100644 --- a/second/bank.h +++ b/second/bank.h @@ -26,3 +26,4 @@ extern unsigned long bank_mem_avail(); extern void bank_dump(); extern int logical2physical(unsigned long logical, unsigned long *physical); extern int physical2logical(unsigned long physical, unsigned long *logical); +extern int check_full_in_bank(unsigned long start, unsigned long size);