41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
|
/****************************************************************
|
||
|
* *
|
||
|
* Copyright 2001, 2004 Sanchez Computer Associates, Inc. *
|
||
|
* *
|
||
|
* This source code contains the intellectual property *
|
||
|
* of its copyright holder(s), and is made available *
|
||
|
* under a license. If you do not know the terms of *
|
||
|
* the license, please stop and do not read further. *
|
||
|
* *
|
||
|
****************************************************************/
|
||
|
|
||
|
#include "mdef.h"
|
||
|
#include "cmidef.h"
|
||
|
#include "hashtab_mname.h" /* needed for cmmdef.h */
|
||
|
#include "cmmdef.h"
|
||
|
#include "gtcm_write_ast.h"
|
||
|
#include "gtcm_action_pending.h"
|
||
|
#include "gtcm_int_unpack.h"
|
||
|
#include "gtcm_read_ast.h"
|
||
|
|
||
|
void gtcm_write_ast(struct CLB *c)
|
||
|
{
|
||
|
if (CMI_CLB_ERROR(c))
|
||
|
{ /* error */
|
||
|
*c->mbf = CMMS_E_TERMINATE;
|
||
|
c->ast = 0;
|
||
|
gtcm_action_pending(c->usr);
|
||
|
return;
|
||
|
}
|
||
|
if (((connection_struct *)c->usr)->int_cancel.laflag & 1)
|
||
|
{ /* deal with deferred interrupt cancel message in gtcm_mbxread_ast */
|
||
|
c->ast = 0;
|
||
|
gtcm_int_unpack(c->usr);
|
||
|
} else if (((connection_struct *)c->usr)->state != CM_NOOP) /* never NOOP I think - smw */
|
||
|
{
|
||
|
c->ast = gtcm_read_ast;
|
||
|
cmi_read(c);
|
||
|
} else
|
||
|
c->ast = NULL;
|
||
|
}
|