~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to slirp/mbuf.c

  • Committer: ths
  • Date: 2007-10-08 12:45:38 UTC
  • Revision ID: git-v1:450d4ff553af32fc9d83fef20d7106b0151526b8
CRIS disassembler, originally from binutils, by Edgar E. Iglesias.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3356 c046a42c-6fe2-441c-8c8c-71466251a162

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
#include <slirp.h>
19
19
 
 
20
struct  mbuf *mbutl;
 
21
char    *mclrefcnt;
20
22
int mbuf_alloced = 0;
21
23
struct mbuf m_freelist, m_usedlist;
22
 
#define MBUF_THRESH 30
 
24
int mbuf_thresh = 30;
23
25
int mbuf_max = 0;
24
 
 
25
 
/*
26
 
 * Find a nice value for msize
27
 
 * XXX if_maxlinkhdr already in mtu
28
 
 */
29
 
#define SLIRP_MSIZE (IF_MTU + IF_MAXLINKHDR + sizeof(struct m_hdr ) + 6)
 
26
int msize;
30
27
 
31
28
void
32
29
m_init()
33
30
{
34
31
        m_freelist.m_next = m_freelist.m_prev = &m_freelist;
35
32
        m_usedlist.m_next = m_usedlist.m_prev = &m_usedlist;
 
33
        msize_init();
 
34
}
 
35
 
 
36
void
 
37
msize_init()
 
38
{
 
39
        /*
 
40
         * Find a nice value for msize
 
41
         * XXX if_maxlinkhdr already in mtu
 
42
         */
 
43
        msize = (if_mtu>if_mru?if_mtu:if_mru) +
 
44
                        if_maxlinkhdr + sizeof(struct m_hdr ) + 6;
36
45
}
37
46
 
38
47
/*
52
61
        DEBUG_CALL("m_get");
53
62
 
54
63
        if (m_freelist.m_next == &m_freelist) {
55
 
                m = (struct mbuf *)malloc(SLIRP_MSIZE);
 
64
                m = (struct mbuf *)malloc(msize);
56
65
                if (m == NULL) goto end_error;
57
66
                mbuf_alloced++;
58
 
                if (mbuf_alloced > MBUF_THRESH)
 
67
                if (mbuf_alloced > mbuf_thresh)
59
68
                        flags = M_DOFREE;
60
69
                if (mbuf_alloced > mbuf_max)
61
70
                        mbuf_max = mbuf_alloced;
69
78
        m->m_flags = (flags | M_USEDLIST);
70
79
 
71
80
        /* Initialise it */
72
 
        m->m_size = SLIRP_MSIZE - sizeof(struct m_hdr);
 
81
        m->m_size = msize - sizeof(struct m_hdr);
73
82
        m->m_data = m->m_dat;
74
83
        m->m_len = 0;
75
84
        m->m_nextpkt = 0;