Esempio n. 1
0
File: header.c Progetto: Prajna/mach
void
WriteServerHeader(FILE *file, const statement_t *stats)
{
    register const statement_t *stat;
    const char *protect = strconcat(SubsystemName, "_server_");

    WriteProlog(file, protect);
    for (stat = stats; stat != stNULL; stat = stat->stNext)
	switch (stat->stKind)
	{
	  case skRoutine:
	    WriteServerRoutine(file, stat->stRoutine);
	    break;
	  case skImport:
	  case skSImport:
	    WriteImport(file, stat->stFileName);
	    break;
	  case skUImport:
	    break;
	  default:
	    fatal("WriteServerHeader(): bad statement_kind_t (%d)",
		  (int) stat->stKind);
	}
    WriteEpilog(file, protect);
}
Esempio n. 2
0
void
WriteServerHeader(FILE *file, statement_t *stats)
{
	register statement_t *stat;
    const char *protect = strconcat(SubsystemName, "_server_");

	WriteProlog(file, protect, TRUE, FALSE);
	for (stat = stats; stat != stNULL; stat = stat->stNext)
		switch (stat->stKind)
		{
		case skImport:
		case skSImport:
		case skDImport:
			WriteImport(file, stat->stFileName);
			break;
		case skRoutine:
		case skUImport:
		case skIImport:
			break;
		default:
			fatal("WriteServerHeader(): bad statement_kind_t (%d)",
				  (int) stat->stKind);
		}
	fprintf(file, "\n#ifdef __BeforeMigServerHeader\n");
	fprintf(file, "__BeforeMigServerHeader\n");
	fprintf(file, "#endif /* __BeforeMigServerHeader */\n\n");
	for (stat = stats; stat != stNULL; stat = stat->stNext) {
		if (stat->stKind == skRoutine)
			WriteServerRoutine(file, stat->stRoutine);
	}

	for (stat = stats; stat != stNULL; stat = stat->stNext) {
		if (stat->stKind == skRoutine)
			WriteServerRoutine(file, stat->stRoutine);
	}
	WriteDispatcher(file);

	WriteRequestTypes(file, stats);
	WriteServerRequestUnion(file, stats);

	WriteReplyTypes(file, stats);
	WriteServerReplyUnion(file, stats);

	WriteEpilog(file, protect, FALSE);
}