typedef struct 
{
        int             NodeId;
        int             LockId; 
        int             SeqNum;
        int             Len;
        int*            ReplyCount;
} LockReqInf;

typedef struct LockReqList* LockReqListPtr;

typedef struct LockReqList {
			            LockReqInf    Data;
                        LockReqListPtr	Next;
} LockReqList;

void  SetLockReqInfNull(LockReqList* list);
LockReqList* PutInLockReqList(LockReqList* list, LockReqInf d, int position);
int   LockReqListLength(LockReqList *list);
void  DestroyLockReqList(LockReqList* list);
LockReqList* GetLockReqInfLink(LockReqList* list, int pos);
LockReqInf  DeleteLockReqInfLink(LockReqList* list, int pos);
void  PrintLockReqList(LockReqList *list);
int getFreeLockReq(LockReqList* list);
void CopyLockReqInf(LockReqInf* node1, LockReqInf* node2);


