Пример #1
0
    def __alloc_arena(self, elementsize, pages=1):
        '''allocates an arena for elements of /elementsize/'''
        allocator = self.allocator

        size = allocator.getPageSize()*pages
        pointer = allocator.getWriteable(None, pages)
        res = bitmap.new(0, size / elementsize )
        return (pointer, (int(elementsize), res))
Пример #2
0
    def __alloc_arena(self, elementsize, pages=1):
        '''allocates an arena for elements of /elementsize/'''
        allocator = self.allocator

        size = allocator.getPageSize() * pages
        pointer = allocator.getWriteable(None, pages)
        res = bitmap.new(0, size / elementsize)
        return (pointer, (int(elementsize), res))
Пример #3
0
    def load(self, size):
        '''Allocate some number of writeable bytes for later making executable'''
        allocator = self.allocator

        # allocate size
        pages = (size / allocator.getPageSize())+1

        # get a writeable page, and then write our code to it
        pointer = self.allocator.getWriteable(None, pages)
        assert pointer not in self.loaded.keys()  # heh

        # add pointer to lookup
        self.loaded[pointer] = pages

        return pointer
Пример #4
0
    def load(self, size):
        '''Allocate some number of writeable bytes for later making executable'''
        allocator = self.allocator

        # allocate size
        pages = (size / allocator.getPageSize()) + 1

        # get a writeable page, and then write our code to it
        pointer = self.allocator.getWriteable(None, pages)
        assert pointer not in self.loaded.keys()  # heh

        # add pointer to lookup
        self.loaded[pointer] = pages

        return pointer