/[dynamips]/upstream/dynamips-0.2.6-RC1/dev_nvram.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /upstream/dynamips-0.2.6-RC1/dev_nvram.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

upstream/dynamips-0.2.5/dev_nvram.c revision 1 by dpavlin, Sat Oct 6 16:01:44 2007 UTC upstream/dynamips-0.2.6-RC1/dev_nvram.c revision 2 by dpavlin, Sat Oct 6 16:03:58 2007 UTC
# Line 190  int dev_nvram_init(vm_instance_t *vm,cha Line 190  int dev_nvram_init(vm_instance_t *vm,cha
190     vm_object_add(vm,&d->vm_obj);     vm_object_add(vm,&d->vm_obj);
191     return(0);     return(0);
192  }  }
193    
194    /* Compute NVRAM checksum */
195    m_uint16_t nvram_cksum(vm_instance_t *vm,m_uint64_t addr,size_t count)
196    {
197       m_uint32_t sum = 0;
198    
199       while(count > 1) {
200          sum = sum + physmem_copy_u16_from_vm(vm,addr);
201          addr += sizeof(m_uint16_t);
202          count -= sizeof(m_uint16_t);
203       }
204    
205       if (count > 0)
206          sum = sum + ((physmem_copy_u16_from_vm(vm,addr) & 0xFF) << 8);
207    
208       while(sum>>16)
209          sum = (sum & 0xffff) + (sum >> 16);
210    
211       return(~sum);
212    }

Legend:
Removed from v.1  
changed lines
  Added in v.2

  ViewVC Help
Powered by ViewVC 1.1.26