Changeset e32e092 in mainline
- Timestamp:
- 2008-06-06T07:34:21Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- eb1c0a3
- Parents:
- 40257f5
- Location:
- kernel
- Files:
-
- 36 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/Makefile
r40257f5 re32e092 35 35 36 36 INCLUDES = generic/include 37 OPTIMIZATION = 337 OPTIMIZATION = 1 38 38 39 39 ## Common compiler flags -
kernel/arch/amd64/include/memstr.h
r40257f5 re32e092 38 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 39 40 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);41 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);40 extern void memsetw(void *dst, size_t cnt, uint16_t x); 41 extern void memsetb(void *dst, size_t cnt, uint8_t x); 42 42 43 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);43 extern int memcmp(const void *a, const void *b, size_t cnt); 44 44 45 45 #endif -
kernel/arch/amd64/src/pm.c
r40257f5 re32e092 156 156 void tss_initialize(tss_t *t) 157 157 { 158 memsetb( (uintptr_t)t, sizeof(tss_t), 0);158 memsetb(t, sizeof(tss_t), 0); 159 159 } 160 160 … … 240 240 ipl_t ipl = interrupts_disable(); 241 241 242 memsetb( (uintptr_t)idt, sizeof(idt), 0);242 memsetb(idt, sizeof(idt), 0); 243 243 idtr_load(&idtr); 244 244 -
kernel/arch/arm32/include/memstr.h
r40257f5 re32e092 39 39 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 40 40 41 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);42 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);41 extern void memsetw(void *dst, size_t cnt, uint16_t x); 42 extern void memsetb(void *dst, size_t cnt, uint8_t x); 43 43 44 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);44 extern int memcmp(const void *a, const void *b, size_t cnt); 45 45 46 46 #endif -
kernel/arch/ia32/include/memstr.h
r40257f5 re32e092 38 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 39 40 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);41 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);40 extern void memsetw(void *dst, size_t cnt, uint16_t x); 41 extern void memsetb(void *dst, size_t cnt, uint8_t x); 42 42 43 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);43 extern int memcmp(const void *a, const void *b, size_t cnt); 44 44 45 45 #endif -
kernel/arch/ia32/src/drivers/ega.c
r40257f5 re32e092 116 116 117 117 memcpy((void *) videoram, (void *) (videoram + ROW * 2), (SCREEN - ROW) * 2); 118 memsetw( (uintptr_t) (videoram + (SCREEN - ROW) * 2), ROW, 0x0720);118 memsetw(videoram + (SCREEN - ROW) * 2, ROW, 0x0720); 119 119 ega_cursor = ega_cursor - ROW; 120 120 } -
kernel/arch/ia32/src/pm.c
r40257f5 re32e092 113 113 void tss_initialize(tss_t *t) 114 114 { 115 memsetb( (uintptr_t)t, sizeof(struct tss), 0);115 memsetb(t, sizeof(struct tss), 0); 116 116 } 117 117 … … 241 241 ipl_t ipl = interrupts_disable(); 242 242 243 memsetb( (uintptr_t)idt, sizeof(idt), 0);243 memsetb(idt, sizeof(idt), 0); 244 244 245 245 ptr_16_32_t idtr; -
kernel/arch/ia32/src/smp/smp.c
r40257f5 re32e092 161 161 162 162 memcpy(gdt_new, gdt, GDT_ITEMS * sizeof(struct descriptor)); 163 memsetb((uintptr_t)(&gdt_new[TSS_DES]), 164 sizeof(struct descriptor), 0); 163 memsetb(&gdt_new[TSS_DES], sizeof(struct descriptor), 0); 165 164 protected_ap_gdtr.limit = GDT_ITEMS * sizeof(struct descriptor); 166 165 protected_ap_gdtr.base = KA2PA((uintptr_t) gdt_new); -
kernel/arch/ia32xen/src/ia32xen.c
r40257f5 re32e092 70 70 { 71 71 pte_t pte; 72 memsetb( (uintptr_t)&pte, sizeof(pte), 0);72 memsetb(&pte, sizeof(pte), 0); 73 73 74 74 pte.present = 1; … … 104 104 uintptr_t tva = PA2KA(tpa); 105 105 106 memsetb( tva, PAGE_SIZE, 0);106 memsetb((void *) tva, PAGE_SIZE, 0); 107 107 108 108 pte_t *tptl3 = (pte_t *) PA2KA(GET_PTL1_ADDRESS(start_info.ptl0, PTL0_INDEX(tva))); -
kernel/arch/ia32xen/src/pm.c
r40257f5 re32e092 99 99 void tss_initialize(tss_t *t) 100 100 { 101 memsetb( (uintptr_t)t, sizeof(struct tss), 0);101 memsetb(t, sizeof(struct tss), 0); 102 102 } 103 103 -
kernel/arch/ia32xen/src/smp/smp.c
r40257f5 re32e092 147 147 148 148 memcpy(gdt_new, gdt, GDT_ITEMS * sizeof(struct descriptor)); 149 memsetb( (uintptr_t)(&gdt_new[TSS_DES]), sizeof(struct descriptor), 0);149 memsetb(&gdt_new[TSS_DES], sizeof(struct descriptor), 0); 150 150 gdtr.base = (uintptr_t) gdt_new; 151 151 -
kernel/arch/ia64/include/memstr.h
r40257f5 re32e092 38 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 39 40 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);41 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);40 extern void memsetw(void *dst, size_t cnt, uint16_t x); 41 extern void memsetb(void *dst, size_t cnt, uint8_t x); 42 42 43 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);43 extern int memcmp(const void *a, const void *b, size_t cnt); 44 44 45 45 #endif -
kernel/arch/ia64/src/drivers/ega.c
r40257f5 re32e092 72 72 * Clear the screen. 73 73 */ 74 _memsetw( (uintptr_t)videoram, SCREEN, 0x0720);74 _memsetw(videoram, SCREEN, 0x0720); 75 75 76 76 chardev_initialize("ega_out", &ega_console, &ega_ops); … … 103 103 104 104 memcpy((void *) videoram, (void *) (videoram + ROW * 2), (SCREEN - ROW) * 2); 105 _memsetw( (uintptr_t) (videoram + (SCREEN - ROW) * 2), ROW, 0x0720);105 _memsetw(videoram + (SCREEN - ROW) * 2, ROW, 0x0720); 106 106 ega_cursor = ega_cursor - ROW; 107 107 } -
kernel/arch/ia64/src/mm/vhpt.c
r40257f5 re32e092 82 82 void vhpt_invalidate_all() 83 83 { 84 memsetb( (uintptr_t)vhpt_base, 1 << VHPT_WIDTH, 0);84 memsetb(vhpt_base, 1 << VHPT_WIDTH, 0); 85 85 } 86 86 -
kernel/arch/mips32/include/memstr.h
r40257f5 re32e092 38 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 39 40 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);41 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);40 extern void memsetw(void *dst, size_t cnt, uint16_t x); 41 extern void memsetb(void *dst, size_t cnt, uint8_t x); 42 42 43 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);43 extern int memcmp(const void *a, const void *b, size_t cnt); 44 44 45 45 #endif -
kernel/arch/ppc32/include/memstr.h
r40257f5 re32e092 38 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 39 40 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);41 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);40 extern void memsetw(void *dst, size_t cnt, uint16_t x); 41 extern void memsetb(void *dst, size_t cnt, uint8_t x); 42 42 43 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);43 extern int memcmp(const void *a, const void *b, size_t cnt); 44 44 45 45 #endif -
kernel/arch/ppc64/include/memstr.h
r40257f5 re32e092 38 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 39 40 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);41 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);40 extern void memsetw(void *dst, size_t cnt, uint16_t x); 41 extern void memsetb(void *dst, size_t cnt, uint8_t x); 42 42 43 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);43 extern int memcmp(const void *a, const void *b, size_t cnt); 44 44 45 45 #endif -
kernel/arch/ppc64/src/mm/page.c
r40257f5 re32e092 253 253 void pht_init(void) 254 254 { 255 memsetb( (uintptr_t)phte, 1 << PHT_BITS, 0);255 memsetb(phte, 1 << PHT_BITS, 0); 256 256 } 257 257 -
kernel/arch/sparc64/include/memstr.h
r40257f5 re32e092 38 38 #define memcpy(dst, src, cnt) __builtin_memcpy((dst), (src), (cnt)) 39 39 40 extern void memsetw( uintptr_tdst, size_t cnt, uint16_t x);41 extern void memsetb( uintptr_tdst, size_t cnt, uint8_t x);40 extern void memsetw(void *dst, size_t cnt, uint16_t x); 41 extern void memsetb(void *dst, size_t cnt, uint8_t x); 42 42 43 extern int memcmp( uintptr_t src, uintptr_t dst, int cnt);43 extern int memcmp(const void *a, const void *b, size_t cnt); 44 44 45 45 #endif -
kernel/arch/sparc64/src/mm/as.c
r40257f5 re32e092 77 77 sizeof(tsb_entry_t)); 78 78 79 memsetb( (uintptr_t)as->arch.itsb,79 memsetb(as->arch.itsb, 80 80 (ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * sizeof(tsb_entry_t), 0); 81 81 #endif -
kernel/genarch/src/mm/as_pt.c
r40257f5 re32e092 104 104 105 105 if (flags & FLAG_AS_KERNEL) { 106 memsetb( (uintptr_t)dst_ptl0, table_size, 0);106 memsetb(dst_ptl0, table_size, 0); 107 107 } else { 108 108 uintptr_t src, dst; … … 119 119 dst = (uintptr_t) &dst_ptl0[PTL0_INDEX(KERNEL_ADDRESS_SPACE_START)]; 120 120 121 memsetb( (uintptr_t)dst_ptl0, table_size, 0);121 memsetb(dst_ptl0, table_size, 0); 122 122 memcpy((void *) dst, (void *) src, table_size - (src - (uintptr_t) src_ptl0)); 123 123 mutex_unlock(&AS_KERNEL->lock); -
kernel/genarch/src/mm/page_pt.c
r40257f5 re32e092 77 77 if (GET_PTL1_FLAGS(ptl0, PTL0_INDEX(page)) & PAGE_NOT_PRESENT) { 78 78 newpt = (pte_t *)frame_alloc(PTL1_SIZE, FRAME_KA); 79 memsetb( (uintptr_t)newpt, FRAME_SIZE << PTL1_SIZE, 0);79 memsetb(newpt, FRAME_SIZE << PTL1_SIZE, 0); 80 80 SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(page), KA2PA(newpt)); 81 81 SET_PTL1_FLAGS(ptl0, PTL0_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC | PAGE_CACHEABLE | PAGE_WRITE); … … 86 86 if (GET_PTL2_FLAGS(ptl1, PTL1_INDEX(page)) & PAGE_NOT_PRESENT) { 87 87 newpt = (pte_t *)frame_alloc(PTL2_SIZE, FRAME_KA); 88 memsetb( (uintptr_t)newpt, FRAME_SIZE << PTL2_SIZE, 0);88 memsetb(newpt, FRAME_SIZE << PTL2_SIZE, 0); 89 89 SET_PTL2_ADDRESS(ptl1, PTL1_INDEX(page), KA2PA(newpt)); 90 90 SET_PTL2_FLAGS(ptl1, PTL1_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC | PAGE_CACHEABLE | PAGE_WRITE); … … 95 95 if (GET_PTL3_FLAGS(ptl2, PTL2_INDEX(page)) & PAGE_NOT_PRESENT) { 96 96 newpt = (pte_t *)frame_alloc(PTL3_SIZE, FRAME_KA); 97 memsetb( (uintptr_t)newpt, FRAME_SIZE << PTL3_SIZE, 0);97 memsetb(newpt, FRAME_SIZE << PTL3_SIZE, 0); 98 98 SET_PTL3_ADDRESS(ptl2, PTL2_INDEX(page), KA2PA(newpt)); 99 99 SET_PTL3_FLAGS(ptl2, PTL2_INDEX(page), PAGE_PRESENT | PAGE_USER | PAGE_EXEC | PAGE_CACHEABLE | PAGE_WRITE); … … 147 147 148 148 /* Destroy the mapping. Setting to PAGE_NOT_PRESENT is not sufficient. */ 149 memsetb( (uintptr_t)&ptl3[PTL3_INDEX(page)], sizeof(pte_t), 0);149 memsetb(&ptl3[PTL3_INDEX(page)], sizeof(pte_t), 0); 150 150 151 151 /* … … 167 167 frame_free(KA2PA((uintptr_t) ptl3)); 168 168 if (PTL2_ENTRIES) 169 memsetb( (uintptr_t)&ptl2[PTL2_INDEX(page)], sizeof(pte_t), 0);169 memsetb(&ptl2[PTL2_INDEX(page)], sizeof(pte_t), 0); 170 170 else if (PTL1_ENTRIES) 171 memsetb( (uintptr_t)&ptl1[PTL1_INDEX(page)], sizeof(pte_t), 0);171 memsetb(&ptl1[PTL1_INDEX(page)], sizeof(pte_t), 0); 172 172 else 173 memsetb( (uintptr_t)&ptl0[PTL0_INDEX(page)], sizeof(pte_t), 0);173 memsetb(&ptl0[PTL0_INDEX(page)], sizeof(pte_t), 0); 174 174 } else { 175 175 /* … … 196 196 frame_free(KA2PA((uintptr_t) ptl2)); 197 197 if (PTL1_ENTRIES) 198 memsetb( (uintptr_t)&ptl1[PTL1_INDEX(page)], sizeof(pte_t), 0);198 memsetb(&ptl1[PTL1_INDEX(page)], sizeof(pte_t), 0); 199 199 else 200 memsetb( (uintptr_t)&ptl0[PTL0_INDEX(page)], sizeof(pte_t), 0);200 memsetb(&ptl0[PTL0_INDEX(page)], sizeof(pte_t), 0); 201 201 } 202 202 else { … … 224 224 */ 225 225 frame_free(KA2PA((uintptr_t) ptl1)); 226 memsetb( (uintptr_t)&ptl0[PTL0_INDEX(page)], sizeof(pte_t), 0);226 memsetb(&ptl0[PTL0_INDEX(page)], sizeof(pte_t), 0); 227 227 } 228 228 } -
kernel/generic/include/memstr.h
r40257f5 re32e092 43 43 */ 44 44 extern void *_memcpy(void *dst, const void *src, size_t cnt); 45 extern void _memsetb( uintptr_tdst, size_t cnt, uint8_t x);46 extern void _memsetw( uintptr_tdst, size_t cnt, uint16_t x);45 extern void _memsetb(void *dst, size_t cnt, uint8_t x); 46 extern void _memsetw(void *dst, size_t cnt, uint16_t x); 47 47 extern char *strcpy(char *dest, const char *src); 48 48 -
kernel/generic/src/adt/hash_table.c
r40257f5 re32e092 64 64 panic("cannot allocate memory for hash table\n"); 65 65 } 66 memsetb( (uintptr_t)h->entry, m * sizeof(link_t), 0);66 memsetb(h->entry, m * sizeof(link_t), 0); 67 67 68 68 for (i = 0; i < m; i++) -
kernel/generic/src/cpu/cpu.c
r40257f5 re32e092 68 68 69 69 /* initialize everything */ 70 memsetb( (uintptr_t)cpus, sizeof(cpu_t) * config.cpu_count, 0);70 memsetb(cpus, sizeof(cpu_t) * config.cpu_count, 0); 71 71 72 72 for (i = 0; i < config.cpu_count; i++) { -
kernel/generic/src/ipc/ipc.c
r40257f5 re32e092 67 67 static void _ipc_call_init(call_t *call) 68 68 { 69 memsetb( (uintptr_t)call, sizeof(*call), 0);69 memsetb(call, sizeof(*call), 0); 70 70 call->callerbox = &TASK->answerbox; 71 71 call->sender = TASK; -
kernel/generic/src/lib/memstr.c
r40257f5 re32e092 88 88 * 89 89 */ 90 void _memsetb( uintptr_tdst, size_t cnt, uint8_t x)90 void _memsetb(void *dst, size_t cnt, uint8_t x) 91 91 { 92 92 unsigned int i; … … 107 107 * 108 108 */ 109 void _memsetw( uintptr_tdst, size_t cnt, uint16_t x)109 void _memsetw(void *dst, size_t cnt, uint16_t x) 110 110 { 111 111 unsigned int i; -
kernel/generic/src/lib/objc_ext.c
r40257f5 re32e092 162 162 void *memset(void *s, int c, size_t n) 163 163 { 164 memsetb( (uintptr_t)s, n, c);164 memsetb(s, n, c); 165 165 return s; 166 166 } -
kernel/generic/src/mm/as.c
r40257f5 re32e092 325 325 a->backend_data = *backend_data; 326 326 else 327 memsetb((uintptr_t) &a->backend_data, sizeof(a->backend_data), 328 0); 327 memsetb(&a->backend_data, sizeof(a->backend_data), 0); 329 328 330 329 btree_create(&a->used_space); -
kernel/generic/src/mm/backend_anon.c
r40257f5 re32e092 114 114 if (allocate) { 115 115 frame = (uintptr_t) frame_alloc(ONE_FRAME, 0); 116 memsetb( PA2KA(frame), FRAME_SIZE, 0);116 memsetb((void *) PA2KA(frame), FRAME_SIZE, 0); 117 117 dirty = true; 118 118 … … 145 145 */ 146 146 frame = (uintptr_t) frame_alloc(ONE_FRAME, 0); 147 memsetb( PA2KA(frame), FRAME_SIZE, 0);147 memsetb((void *) PA2KA(frame), FRAME_SIZE, 0); 148 148 dirty = true; 149 149 } -
kernel/generic/src/mm/backend_elf.c
r40257f5 re32e092 163 163 */ 164 164 frame = (uintptr_t)frame_alloc(ONE_FRAME, 0); 165 memsetb( PA2KA(frame), FRAME_SIZE, 0);165 memsetb((void *) PA2KA(frame), FRAME_SIZE, 0); 166 166 dirty = true; 167 167 } else { … … 188 188 (void *) (base + i * FRAME_SIZE + pad_lo), 189 189 FRAME_SIZE - pad_lo - pad_hi); 190 memsetb( PA2KA(frame), pad_lo, 0);191 memsetb( PA2KA(frame) + FRAME_SIZE - pad_hi, pad_hi, 0);190 memsetb((void *) PA2KA(frame), pad_lo, 0); 191 memsetb((void *) (PA2KA(frame) + FRAME_SIZE - pad_hi), pad_hi, 0); 192 192 dirty = true; 193 193 } -
kernel/generic/src/mm/slab.c
r40257f5 re32e092 560 560 cache->mag_cache = malloc(sizeof(slab_mag_cache_t) * config.cpu_count,0); 561 561 for (i = 0; i < config.cpu_count; i++) { 562 memsetb((uintptr_t)&cache->mag_cache[i], 563 sizeof(cache->mag_cache[i]), 0); 562 memsetb(&cache->mag_cache[i], sizeof(cache->mag_cache[i]), 0); 564 563 spinlock_initialize(&cache->mag_cache[i].lock, "slab_maglock_cpu"); 565 564 } … … 579 578 ipl_t ipl; 580 579 581 memsetb( (uintptr_t)cache, sizeof(*cache), 0);580 memsetb(cache, sizeof(*cache), 0); 582 581 cache->name = name; 583 582 -
kernel/generic/src/proc/thread.c
r40257f5 re32e092 294 294 295 295 /* Not needed, but good for debugging */ 296 memsetb((uintptr_t) t->kstack, THREAD_STACK_SIZE * 1 << STACK_FRAMES, 297 0); 296 memsetb(t->kstack, THREAD_STACK_SIZE * 1 << STACK_FRAMES, 0); 298 297 299 298 ipl = interrupts_disable(); -
kernel/test/mm/falloc2.c
r40257f5 re32e092 56 56 index_t k; 57 57 58 uintptr_t * frames = (uintptr_t *) malloc(MAX_FRAMES * sizeof(uintptr_t), FRAME_ATOMIC);58 void **frames = (void **) malloc(MAX_FRAMES * sizeof(void *), FRAME_ATOMIC); 59 59 if (frames == NULL) { 60 60 if (!sh_quiet) … … 74 74 allocated = 0; 75 75 for (i = 0; i < (MAX_FRAMES >> order); i++) { 76 frames[allocated] = (uintptr_t)frame_alloc(order, FRAME_ATOMIC | FRAME_KA);76 frames[allocated] = frame_alloc(order, FRAME_ATOMIC | FRAME_KA); 77 77 if (frames[allocated]) { 78 78 memsetb(frames[allocated], FRAME_SIZE << order, val); -
kernel/test/mm/slab1.c
r40257f5 re32e092 54 54 for (i = 0; i < count; i++) { 55 55 data[i] = slab_alloc(cache, 0); 56 memsetb( (uintptr_t)data[i], size, 0);56 memsetb(data[i], size, 0); 57 57 } 58 58 … … 72 72 for (i = 0; i < count; i++) { 73 73 data[i] = slab_alloc(cache, 0); 74 memsetb( (uintptr_t)data[i], size, 0);74 memsetb(data[i], size, 0); 75 75 } 76 76 … … 90 90 for (i = count / 2; i < count; i++) { 91 91 data[i] = slab_alloc(cache, 0); 92 memsetb( (uintptr_t)data[i], size, 0);92 memsetb(data[i], size, 0); 93 93 } 94 94 -
kernel/test/mm/slab2.c
r40257f5 re32e092 69 69 break; 70 70 } 71 memsetb( (uintptr_t)data1, ITEM_SIZE, 0);72 memsetb( (uintptr_t)data2, ITEM_SIZE, 0);71 memsetb(data1, ITEM_SIZE, 0); 72 memsetb(data2, ITEM_SIZE, 0); 73 73 *((void **) data1) = olddata1; 74 74 *((void **) data2) = olddata2; … … 101 101 return; 102 102 } 103 memsetb( (uintptr_t)data1, ITEM_SIZE, 0);103 memsetb(data1, ITEM_SIZE, 0); 104 104 *((void **) data1) = olddata1; 105 105 olddata1 = data1; … … 109 109 if (!data1) 110 110 break; 111 memsetb( (uintptr_t)data1, ITEM_SIZE, 0);111 memsetb(data1, ITEM_SIZE, 0); 112 112 *((void **) data1) = olddata1; 113 113 olddata1 = data1;
Note:
See TracChangeset
for help on using the changeset viewer.