fis-gtm/sr_port_cm/gtcm_write_ast.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;
}