view gsm-fw/gpf/osl/os_evt.c @ 367:c72feb362ef1

os_evt.c: got some bogus-looking code, decompiled as-is
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Thu, 29 May 2014 05:12:59 +0000
parents 227bc7a1c305
children 43ca9d5e30cb
line wrap: on
line source

/*
 * This C module is a reconstruction based on the disassembly of
 * os_evt.obj in frame_na7_db_fl.lib from the Leonardo package.
 */

/* set of included headers from COFF symtab: */
#include <stdio.h>
#include <string.h>
#include "gpfconf.h"	/* FreeCalypso addition */
#include "../../nucleus/nucleus.h"
#include "typedefs.h"
#include "os.h"
#include "gdi.h"
#include "os_types.h"
#include "os_glob.h"

extern T_OS_EVTGRP_TABLE_ENTRY EvtGrpTable[];

GLOBAL LONG
os_SetEvents(OS_HANDLE evt_grp_handle, unsigned event_flags)
{
	if (!EvtGrpTable[evt_grp_handle].Name[0])
		return(OS_ERROR);
	if (NU_Set_Events(&EvtGrpTable[evt_grp_handle].EvtGrp, event_flags,
				NU_OR) == NU_SUCCESS)
		return(OS_OK);
	else
		return(OS_ERROR);
}

GLOBAL LONG
os_RetrieveEvents(OS_HANDLE evt_grp_handle, unsigned event_flags, char option,
		  unsigned *retrieved_events, unsigned suspend)
{
	if (!EvtGrpTable[evt_grp_handle].Name[0])
		return(OS_ERROR);
	if (NU_Retrieve_Events(&EvtGrpTable[evt_grp_handle].EvtGrp,
				event_flags, option, retrieved_events, suspend)
			== NU_SUCCESS)
		return(OS_OK);
	else
		return(OS_ERROR);
}

GLOBAL LONG
os_GetEventGroupHandle(char *evt_grp_name, OS_HANDLE *evt_grp_handle)
{
	int idx;

	for (idx = 0; idx <= MaxEventGroups; idx++) {
		if (!EvtGrpTable[idx].Name[0])
			break;
		if (!strncmp(EvtGrpTable[idx].Name, evt_grp_name,
				RESOURCE_NAMELEN))
			break;
	}
	if (idx > MaxEventGroups || !EvtGrpTable[idx].Name[0]) {
		*evt_grp_handle = -1;
		return(OS_ERROR);
	}
	*evt_grp_handle = idx;
	return(OS_OK);
}