| Index: emcore/trunk/tools/emcore.py | 
| — | — | @@ -1159,6 +1159,60 @@ | 
| 1160 | 1160 | self.logger.info(entry.name.ljust(50) + " - " + size + "\n") | 
| 1161 | 1161 | except: break | 
| 1162 | 1162 | self.emcore.dir_close(handle) | 
|  | 1163 | + | 
|  | 1164 | +    @command | 
|  | 1165 | +    def malloc(self, size): | 
|  | 1166 | +        """ Allocates <size> bytes and returns a pointer to the allocated memory """ | 
|  | 1167 | +        size = self._hexint(size) | 
|  | 1168 | +        self.logger.info("Allocating %d bytes of memory\n" % size) | 
|  | 1169 | +        addr = self.emcore.malloc(size) | 
|  | 1170 | +        self.logger.info("Allocated %d bytes of memory at 0x%x\n" % (size, addr)) | 
|  | 1171 | + | 
|  | 1172 | +    @command | 
|  | 1173 | +    def memalign(self, align, size): | 
|  | 1174 | +        """ Allocates <size> bytes aligned to <align> and returns a pointer to the allocated memory """ | 
|  | 1175 | +        align = self._hexint(align) | 
|  | 1176 | +        size = self._hexint(size) | 
|  | 1177 | +        self.logger.info("Allocating %d bytes of memory aligned to 0x%x\n" % (size, align)) | 
|  | 1178 | +        addr = self.emcore.memalign(align, size) | 
|  | 1179 | +        self.logger.info("Allocated %d bytes of memory at 0x%x\n" % (size, addr)) | 
|  | 1180 | + | 
|  | 1181 | +    @command | 
|  | 1182 | +    def realloc(self, ptr, size): | 
|  | 1183 | +        """ The size of the memory block pointed to by <ptr> is changed to the <size> bytes, | 
|  | 1184 | +            expanding or reducing the amount of memory available in the block. | 
|  | 1185 | +            Returns a pointer to the reallocated memory. | 
|  | 1186 | +        """ | 
|  | 1187 | +        ptr = self._hexint(ptr) | 
|  | 1188 | +        size = self._hexint(size) | 
|  | 1189 | +        self.logger.info("Reallocating 0x%x to have the new size %d\n" % (ptr, size)) | 
|  | 1190 | +        addr = self.emcore.realloc(ptr, size) | 
|  | 1191 | +        self.logger.info("Reallocated memory at 0x%x to 0x%x with the new size %d\n" % (ptr, addr, size)) | 
|  | 1192 | + | 
|  | 1193 | +    @command | 
|  | 1194 | +    def reownalloc(self, ptr, owner): | 
|  | 1195 | +        """ Changes the owner of the memory allocation <ptr> to the thread struct at addr <owner> """ | 
|  | 1196 | +        ptr = self._hexint(ptr) | 
|  | 1197 | +        owner = self._hexint(owner) | 
|  | 1198 | +        self.logger.info("Changing owner of the memory region 0x%x to 0x%x" % (ptr, owner)) | 
|  | 1199 | +        self.emcore.reownalloc(ptr, owner) | 
|  | 1200 | +        self.logger.info("Successfully changed owner of 0x%x to 0x%x" % (ptr, owner)) | 
|  | 1201 | + | 
|  | 1202 | +    @command | 
|  | 1203 | +    def free(self, ptr): | 
|  | 1204 | +        """ Frees the memory space pointed to by 'ptr' """ | 
|  | 1205 | +        ptr = self._hexint(ptr) | 
|  | 1206 | +        self.logger.info("Freeing the memory region at 0x%x\n" % ptr) | 
|  | 1207 | +        self.emcore.free(ptr) | 
|  | 1208 | +        self.logger.info("Successfully freed the memory region at 0x%x\n" % ptr) | 
|  | 1209 | + | 
|  | 1210 | +    @command | 
|  | 1211 | +    def free_all(self): | 
|  | 1212 | +        """ Frees all memory allocations created by the monitor thread """ | 
|  | 1213 | +        self.logger.info("Freeing all memory allocations created by the monitor thread\n") | 
|  | 1214 | +        self.emcore.free_all() | 
|  | 1215 | +        self.logger.info("Successfully freed all memory allocations created by the monitor thread\n") | 
|  | 1216 | + | 
| 1163 | 1217 |  | 
| 1164 | 1218 | if __name__ == "__main__": | 
| 1165 | 1219 | if len(sys.argv) < 2: |