(self, pos, data, size=None, events=True, **kwargs)
return pos+1
Write a packet to the stream.

        :param int pos:     The packet number to write in the sequence of the stream. May be None to append to the stream.
        :param data:        The data to write, as a string or bitvector.
        :param size:        The optional size to write. May be symbolic; must be constrained to at most the size of data.
        :return:            The next packet to use after this
Write a packet to the stream.
Write a packet to the stream .
def write(self, pos, data, size=None, events=True, **kwargs):
        """
        Write a packet to the stream.

        :param int pos:     The packet number to write in the sequence of the stream. May be None to append to the stream.
        :param data:        The data to write, as a string or bitvector.
        :param size:        The optional size to write. May be symbolic; must be constrained to at most the size of data.
        :return:            The next packet to use after this
        """
        if events:
            self.state.history.add_event('fs_write', filename=self.name, data=data, size=size, pos=pos)

        # sanity check on read/write modes
        if self.write_mode is None:
            self.write_mode = True
        elif self.write_mode is False:
            raise SimFileError("Cannot read and write to the same SimPackets")

        data = _deps_unpack(data)[0]
        if type(data) is bytes:
            data = claripy.BVV(data)
        if size is None:
            size = len(data) // self.state.arch.byte_width if isinstance(data, claripy.Bits) else len(data)
        if type(size) is int:
            size = self.state.solver.BVV(size, self.state.arch.bits)

        # sanity check on packet number and determine if data is already present
        if pos < 0:
            raise SimFileError("SimPacket.write(%d): Negative packet number?" % pos)
        elif pos > len(self.content):
            raise SimFileError("SimPacket.write(%d): Packet number is past frontier of %d?" % (pos, len(self.content)))
        elif pos != len(self.content):
            realdata, realsize = self.content[pos]
            maxlen = max(len(realdata), len(data))
            self.state.add_constraints(realdata[maxlen-1:0] == data[maxlen-1:0])
            self.state.add_constraints(size == realsize)
            if not self.state.solver.satisfiable():
                raise SimFileError("Packet write equality constraints made state unsatisfiable???")
            return pos+1

        # write it out!
        self.content.append((_deps_unpack(data)[0], size))
        return pos+1
def write ( self , pos , data , size = None , events = True , * * kwargs ) : if events : self . state . history . add_event ( 'fs_write' , filename = self . name , data = data , size = size , pos = pos ) # sanity check on read/write modes if self . write_mode is None : self . write_mode = True elif self . write_mode is False : raise SimFileError ( "Cannot read and write to the same SimPackets" ) data = _deps_unpack ( data ) [ 0 ] if type ( data ) is bytes : data = claripy . BVV ( data ) if size is None : size = len ( data ) // self . state . arch . byte_width if isinstance ( data , claripy . Bits ) else len ( data ) if type ( size ) is int : size = self . state . solver . BVV ( size , self . state . arch . bits ) # sanity check on packet number and determine if data is already present if pos < 0 : raise SimFileError ( "SimPacket.write(%d): Negative packet number?" % pos ) elif pos > len ( self . content ) : raise SimFileError ( "SimPacket.write(%d): Packet number is past frontier of %d?" % ( pos , len ( self . content ) ) ) elif pos != len ( self . content ) : realdata , realsize = self . content [ pos ] maxlen = max ( len ( realdata ) , len ( data ) ) self . state . add_constraints ( realdata [ maxlen - 1 : 0 ] == data [ maxlen - 1 : 0 ] ) self . state . add_constraints ( size == realsize ) if not self . state . solver . satisfiable ( ) : raise SimFileError ( "Packet write equality constraints made state unsatisfiable???" ) return pos + 1 # write it out! self . content . append ( ( _deps_unpack ( data ) [ 0 ] , size ) ) return pos + 1