1/*
2 * Author:     Denise Jorge de Oliveira <dezinha@land.ufrj.br> in Dec, 1999
3 *
4 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/wb_seg.e,v 1.2 2005/07/26 18:30:27 william Exp $
5 */
6#ifndef  _WB_SEG_E
7#define  _WB_SEG_E
8
9#include <stdio.h>
10#include <string.h>
11#include <stdlib.h>
12#include <sys/types.h>
13#include <netinet/in.h>
14
15#ifndef FALSE
16#define  FALSE            0
17#define  TRUE             1
18#endif /* ~FALSE */
19
20#define  SEG_ID           256
21#define  SEG_DATA_SIZE    512
22
23typedef struct SegmentationPack{
24    char    id[SEG_ID];
25    char    data[SEG_DATA_SIZE];
26    int     DataSize;
27    int     LogicalClock;
28    int     NumSeq;
29    int     NumPackets;
30}* ptrSegPack, SegPack;
31
32typedef struct SegmentationList{
33    char                    id[SEG_ID];
34    int                     LogicalClock;
35    int                     NumPackets;
36    int                     ArrivedPcts;
37    struct Fragment         *Frag;
38    struct SegmentationList *prev, *next;
39}* ptrSegList;
40
41typedef struct Fragment{
42    char    data[SEG_DATA_SIZE];
43    int     DataSize;
44}* ptrSegVec;
45
46extern struct SegmentationList *first;
47extern struct SegmentationList *last;
48
49#ifdef _INCLUDE_FROM_WB_SEG_C_
50#undef extern
51#define extern
52#endif /*_INCLUDE_FROM_WB_SEG_C_*/
53
54extern void		InitializeSegmentation ARGS_DECL((void));
55extern ptrSegPack	Segment ARGS_DECL((char *, int, char *, int, int *));
56extern char		*DeSegment ARGS_DECL((struct SegmentationPack, int *));
57
58#ifdef _INCLUDE_FROM_WB_SEG_C_
59#undef extern
60#ifndef _NO_RECURSIVE_EXTERN
61#define extern extern
62#endif /* ~_NO_RECURSIVE_EXTERN */
63#endif /*_INCLUDE_FROM_WB_SEG_C_*/
64
65#endif  /* _WB_SEG_E */
66