Lines Matching +full:half +full:- +full:length

4  * Copyright (c) 2005-2007 Fabrice Bellard
30 #include "hw/qdev-properties.h"
31 #include "hw/qdev-properties-system.h"
32 #include "system/block-backend.h"
36 #include "qemu/error-report.h"
48 addr = (addr >> s->it_shift) & (s->size - 1); in macio_nvram_writeb()
50 s->data[addr] = value; in macio_nvram_writeb()
51 if (s->blk) { in macio_nvram_writeb()
52 if (blk_pwrite(s->blk, addr, 1, &s->data[addr], 0) < 0) { in macio_nvram_writeb()
54 blk_name(s->blk)); in macio_nvram_writeb()
65 addr = (addr >> s->it_shift) & (s->size - 1); in macio_nvram_readb()
66 value = s->data[addr]; in macio_nvram_readb()
102 s->data = g_malloc0(s->size); in macio_nvram_realizefn()
104 if (s->blk) { in macio_nvram_realizefn()
105 int64_t len = blk_getlength(s->blk); in macio_nvram_realizefn()
107 error_setg_errno(errp, -len, in macio_nvram_realizefn()
108 "could not get length of nvram backing image"); in macio_nvram_realizefn()
110 } else if (len != s->size) { in macio_nvram_realizefn()
111 error_setg_errno(errp, -len, in macio_nvram_realizefn()
115 if (blk_set_perm(s->blk, BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE, in macio_nvram_realizefn()
119 if (blk_pread(s->blk, 0, s->size, s->data, 0) < 0) { in macio_nvram_realizefn()
120 error_setg(errp, "can't read-nvram contents"); in macio_nvram_realizefn()
125 memory_region_init_io(&s->mem, OBJECT(s), &macio_nvram_ops, s, in macio_nvram_realizefn()
126 "macio-nvram", s->size << s->it_shift); in macio_nvram_realizefn()
127 sysbus_init_mmio(d, &s->mem); in macio_nvram_realizefn()
134 g_free(s->data); in macio_nvram_unrealizefn()
147 dc->realize = macio_nvram_realizefn; in macio_nvram_class_init()
148 dc->unrealize = macio_nvram_unrealizefn; in macio_nvram_class_init()
150 dc->vmsd = &vmstate_macio_nvram; in macio_nvram_class_init()
152 set_bit(DEVICE_CATEGORY_MISC, dc->categories); in macio_nvram_class_init()
174 sysp_end = chrp_nvram_create_system_partition(&nvr->data[off], in pmac_format_nvram_partition_of()
178 chrp_nvram_create_free_partition(&nvr->data[sysp_end], len - sysp_end); in pmac_format_nvram_partition_of()
189 unsigned char *data = &nvr->data[start]; in pmac_format_nvram_partition_osx()
193 part_header->signature = OSX_NVRAM_SIGNATURE; in pmac_format_nvram_partition_osx()
194 pstrcpy(part_header->name, sizeof(part_header->name), "wwwwwwwwwwww"); in pmac_format_nvram_partition_osx()
202 stl_be_p(&data[16], adler32(0, &data[20], len - 20)); in pmac_format_nvram_partition_osx()
209 * Mac OS X expects side "B" of the flash at the second half of NVRAM, in pmac_format_nvram_partition()
210 * so we use half of the chip for OF and the other half for a free OSX in pmac_format_nvram_partition()