-
-int can_del_mem_list(void)
-{
- struct mem_addr *mem;
-
-#ifdef DEBUG_MEM
- DEBUGMSG("can_del_mem_list, mem_head=%p\n", mem_head);
-#endif
- if(mem_head == NULL) {
- CANMSG("can_del_mem_list: no entries on the list - OK\n");
- return 0;
- }
-
- while((mem=mem_head) != NULL) {
- mem_head=mem->next;
- CANMSG("can_del_mem_list: deleting %p with size %d\n",
- mem->address, (int)mem->size);
- kfree(mem->address);
- kfree(mem);
- }
-
- return 0;
-}
-
-int can_request_io_region(unsigned long start, unsigned long n, const char *name)
-{
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0))
- if(check_region(start,n)) return 0;
- request_region(start,n,name);
- return 1;
- #else
- return (request_region(start,n,name))?1:0;
- #endif
-}
-
-void can_release_io_region(unsigned long start, unsigned long n)
-{
- release_region(start,n);
-}
-
-int can_request_mem_region(unsigned long start, unsigned long n, const char *name)
-{
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0))
- return 1;
- #else
- return (request_mem_region(start,n,name))?1:0;
- #endif
-}
-
-void can_release_mem_region(unsigned long start, unsigned long n)
-{
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0))
- return;
- #else
- release_mem_region(start,n);
- #endif
-}
-
-/* This function shifts all base address structures acording to address
- translation between physical and virtual address mappings */
-int can_base_addr_fixup(struct candevice_t *candev, unsigned long new_base)
-{
- unsigned long offs;
- int i, j;
-
- offs=new_base-candev->dev_base_addr;
- candev->dev_base_addr=new_base;
- for(i=0;i<candev->nr_all_chips;i++){
- candev->chip[i]->chip_base_addr += offs;
- for(j=0;j<candev->chip[i]->max_objects;j++)
- candev->chip[i]->msgobj[j]->obj_base_addr += offs;
- }