コード例 #1
0
//-----------------------------------------------------------------------------
void dcl_message< msgCreateCommandQueue >::parse_request( const void* payload_ptr )
{
    const msgCreateCommandQueue_request* request_ptr = 
        reinterpret_cast< const msgCreateCommandQueue_request* >( payload_ptr );

    device_id_ = network_to_host( request_ptr->device_id_ );
    context_id_ = network_to_host( request_ptr->context_id_ );
    properties_ = network_to_host( request_ptr->properties_ );
}
コード例 #2
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgEnqueueCopyBuffer >::parse_request( const void* payload_ptr )
{
    const void* enqueue_ptr = enqueue_message::parse_enqueue_request( payload_ptr );

    const msgEnqueueCopyBuffer_request* request_ptr = 
        reinterpret_cast< const msgEnqueueCopyBuffer_request* >( enqueue_ptr );

    src_remote_id_ = network_to_host( request_ptr->src_id_ );
    dst_remote_id_ = network_to_host( request_ptr->dst_id_ );
    size_ = network_to_host( request_ptr->size_ );
    src_offset_ = network_to_host( request_ptr->src_offset_ );
    dst_offset_ = network_to_host( request_ptr->dst_offset_ );
}
コード例 #3
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgEnqueueWriteBuffer >::parse_request( const void* payload_ptr )
{
    const void* enqueue_ptr = enqueue_message::parse_enqueue_request( payload_ptr );

    const msgEnqueueWriteBuffer_request* request_ptr = 
        reinterpret_cast< const msgEnqueueWriteBuffer_request* >( enqueue_ptr );

    remote_id_ = network_to_host( request_ptr->id_ );
    buffer_len_ = network_to_host( request_ptr->buffer_len_ );
    offset_ = network_to_host( request_ptr->offset_ );
//    std::cerr << "write remote message id: " << remote_id_ << std::endl;

    buffer_ptr_ = request_ptr->buffer_;
}
コード例 #4
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgCreateBuffer >::parse_request( const void* payload_ptr )
{
    const msgCreateBuffer_request* request_ptr = 
        reinterpret_cast< const msgCreateBuffer_request* >( payload_ptr );

    buffer_ptr_ = NULL;
    context_id_ = network_to_host( request_ptr->context_id_ );
    buffer_len_ = network_to_host( request_ptr->buffer_len_ );
    flags_ = static_cast<cl_mem_flags>( network_to_host( request_ptr->flags_ ) );

    if( network_to_host( request_ptr->message_buffer_ ) != 0 )
    {
        buffer_ptr_ = reinterpret_cast<const uint8_t*>( request_ptr->buffer_ );
    }
}
コード例 #5
0
//-----------------------------------------------------------------------------
void dcl_message< msgCreateCommandQueue >::parse_response( const void* payload_ptr )
{
    const remote_id_t* response_ptr = 
        reinterpret_cast< const remote_id_t* >( payload_ptr );

    remote_id_ = network_to_host( *response_ptr );
}
コード例 #6
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgEnqueueReadBuffer >::parse_request( const void* payload_ptr )
{
    const void* enqueue_ptr = enqueue_message::parse_enqueue_request( payload_ptr );

    const msgEnqueueReadBuffer_request* request_ptr = 
        reinterpret_cast< const msgEnqueueReadBuffer_request* >( enqueue_ptr );

    remote_id_ = network_to_host( request_ptr->id_ );
    size_ = network_to_host( request_ptr->size_ );
    offset_ = network_to_host( request_ptr->offset_ );

//    std::cerr << "read remote message id: " << remote_id_ << std::endl;

    set_response_size( size_ +
                       sizeof(msgEnqueueReadBuffer_response) - 1 );
}
コード例 #7
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgCreateBuffer >::parse_response( const void* payload_ptr )
{
    const remote_id_t* response_ptr = 
        reinterpret_cast< const remote_id_t* >( payload_ptr );

    remote_id_ = network_to_host( *response_ptr );
    
    //std::cerr << "created message id: " << remote_id_ << std::endl;
}
コード例 #8
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgCreateImage2D >::parse_request( const void* payload_ptr )
{
    const msgCreateImage2D_request* request_ptr = 
        reinterpret_cast< const msgCreateImage2D_request* >( payload_ptr );

    context_id_ = network_to_host( request_ptr->context_id_ );
    flags_ = static_cast<cl_mem_flags>( request_ptr->flags_ );
    network_to_channel_order( request_ptr->channel_order );
    network_to_channel_type( request_ptr->channel_type );
    width_ = network_to_host( request_ptr->width_ );
    height_ = network_to_host( request_ptr->height_ );
    row_pitch_ = network_to_host( request_ptr->row_pitch_ );

    buffer_len_ = network_to_host( request_ptr->buffer_len_ );
    buffer_ptr_ = NULL;

    if( request_ptr->message_buffer_ != 0 )
    {
        buffer_ptr_ = reinterpret_cast<const uint8_t*>( request_ptr->buffer_ );
    }
}
コード例 #9
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgEnqueueReadBuffer >::parse_response( const void* payload_ptr )
{
    const msgEnqueueReadBuffer_response* response_ptr =
        reinterpret_cast<const msgEnqueueReadBuffer_response*>( payload_ptr );

    size_ = network_to_host( response_ptr->size_ );

    if( data_ptr_ != NULL )
        memcpy( data_ptr_, response_ptr->buffer_, size_ );
    else
        buffer_.assign( response_ptr->buffer_, response_ptr->buffer_ + size_ );
}
コード例 #10
0
ファイル: msg_memory.cpp プロジェクト: andrelrt/distributedcl
//-----------------------------------------------------------------------------
void dcl_message< msgEnqueueWriteImage >::parse_request( const void* payload_ptr )
{
    const void* enqueue_ptr = enqueue_message::parse_enqueue_request( payload_ptr );

    const msgEnqueueWriteImage_request* request_ptr =
        reinterpret_cast< const msgEnqueueWriteImage_request* >( enqueue_ptr );

    remote_id_ = network_to_host( request_ptr->remote_id_ );
    row_pitch_ = network_to_host( request_ptr->row_pitch_  );
    slice_pitch_ = network_to_host( request_ptr->slice_pitch_ );

    origin_[ 0 ] = network_to_host( request_ptr->origin_[ 0 ] );
    origin_[ 1 ] = network_to_host( request_ptr->origin_[ 1 ] );
    origin_[ 2 ] = network_to_host( request_ptr->origin_[ 2 ] );

    region_[ 0 ] = network_to_host( request_ptr->region_[ 0 ] );
    region_[ 1 ] = network_to_host( request_ptr->region_[ 1 ] );
    region_[ 2 ] = network_to_host( request_ptr->region_[ 2 ] );

    buffer_len_ = network_to_host( request_ptr->buffer_len_ );
    buffer_ptr_ = request_ptr->buffer_;
}
コード例 #11
0
ファイル: serialization.c プロジェクト: efarres/GoIPbus
// read an IPbus transaction from a stream
ipbus_transaction_t ipbus_decode_transaction(const CircularBuffer *buf, int swapbytes) {
  ipbus_transaction_t output = ipbus_decode_transaction_header(buf, swapbytes);

  size_t words_read = 1;

  output.data.words = (uint32_t*)malloc(output.data.size * sizeof(uint32_t));

  for (unsigned int i = 0; i < output.data.size; ++i) {
    uint32_t dataword = network_to_host(cbuffer_value_at(buf, words_read)); 
    words_read += 1;
    if (swapbytes) {
      dataword = __bswap_32(dataword);
    }
    output.data.words[i] = dataword;
  }
  return output;
}
コード例 #12
0
//-----------------------------------------------------------------------------
void dcl_message< msgFinish >::parse_request( const void* payload_ptr )
{
    const remote_id_t* request_ptr = reinterpret_cast<const remote_id_t*>( payload_ptr );

    remote_id_ = network_to_host( *request_ptr );
}