1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- typedef struct Packet Packet;
- typedef struct Mem Mem;
- typedef struct Frag Frag;
- enum {
- BigMemSize = MaxFragSize,
- SmallMemSize = BigMemSize/8,
- NLocalFrag = 2,
- };
- /* position to carve out of a Mem */
- enum {
- PFront,
- PMiddle,
- PEnd,
- };
- struct Mem
- {
- Lock lk;
- int ref;
- uchar *bp;
- uchar *ep;
- uchar *rp;
- uchar *wp;
- Mem *next;
- };
- enum {
- FragLocalFree,
- FragLocalAlloc,
- FragGlobal,
- };
-
- struct Frag
- {
- int state;
- Mem *mem;
- uchar *rp;
- uchar *wp;
- Frag *next;
- };
- struct Packet
- {
- int size;
- int asize; /* allocated memmory - always greater than size */
-
- Packet *next;
-
- Frag *first;
- Frag *last;
-
- Frag local[NLocalFrag];
- };
|