Changeset 32105348 in mainline for uspace/srv/net/tl/tcp/state.c


Ignore:
Timestamp:
2011-10-04T18:12:41Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d9ce049
Parents:
032bbe7
Message:

Send buffer, sketch data transmission.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tl/tcp/state.c

    r032bbe7 r32105348  
    3636
    3737#include <io/log.h>
     38#include <macros.h>
     39#include <mem.h>
    3840#include "conn.h"
    3941#include "state.h"
    4042#include "tcp_type.h"
     43#include "tqueue.h"
    4144
    4245/*
     
    7881void tcp_uc_send(tcp_conn_t *conn, void *data, size_t size, xflags_t flags)
    7982{
     83        size_t buf_free;
     84        size_t xfer_size;
     85
    8086        log_msg(LVL_DEBUG, "tcp_uc_send()");
     87
     88        while (size > 0) {
     89                buf_free = conn->snd_buf_size - conn->snd_buf_used;
     90                while (buf_free == 0)
     91                        tcp_tqueue_new_data(conn);
     92
     93                xfer_size = min(size, buf_free);
     94
     95                /* Copy data to buffer */
     96                memcpy(conn->snd_buf + conn->snd_buf_used, data, xfer_size);
     97                data += xfer_size;
     98                conn->snd_buf_used += xfer_size;
     99                size -= xfer_size;
     100        }
     101
     102        tcp_tqueue_new_data(conn);
    81103}
    82104
Note: See TracChangeset for help on using the changeset viewer.