⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hostif_pc.c

📁 wince host 和 target PCI驱动程序
💻 C
字号:
/* *  +-------------------------------------------------------------------+ *  | Copyright (c) 1995,1996,1997 by Philips Semiconductors.           | *  |                                                                   | *  | This software  is furnished under a license  and may only be used | *  | and copied in accordance with the terms  and conditions of such a | *  | license  and with  the inclusion of this  copyright notice.  This | *  | software or any other copies of this software may not be provided | *  | or otherwise  made available  to any other person.  The ownership | *  | and title of this software is not transferred.                    | *  |                                                                   | *  | The information  in this software  is subject  to change  without | *  | any  prior notice  and should not be construed as a commitment by | *  | Philips Semiconductors.                                           | *  |                                                                   | *  | This  code  and  information  is  provided  "as is"  without  any | *  | warranty of any kind,  either expressed or implied, including but | *  | not limited  to the implied warranties  of merchantability and/or | *  | fitness for any particular purpose.                               | *  +-------------------------------------------------------------------+ * * *  Module name              : HostIF_pc.c    1.2 * *  Last update              : 13:05:40 - 97/10/09 * *  Title                    : Low level WinNT communication, TM-1 part * *  Reviewed                 :  * *  Revision history         :  * *  Description              :   * *           This module is part of an implementation of the HostCall interface. *           HostCall is the software component which is required by *           the TCS toolset to adapt the programs generated by this toolset *           to a specific host (see file HostCall.h in the TCS include dir). *            *           HostIF is one of two modules which form an implementation of *           the HostCall interface (the other one is RPCClient), and provides *           the necessary communication layer.  *           This communication layer consists of functions for sending and *           receiving pointer values to/from the RPCServer running on the *           host. * *           The implementation of HostCall is partitioned between RPCClient *           and HostIF as follows: * *           - _HostCall_notify is provided in HostIF *           - _HostCall_host_send is provided in RPCClient. *           - _HostCall_init and -terminate are provided in RPCClient. *           - Module RPCClient provides the general implementation strategy *             and solves all cache problems. *           - HostIF provides a simple communication interface for sending *             pointers hence and forth. *           - RPCClient communicates with a RPCServer on the host. * *           More specific, HostIF should provide for the following: *  *           1) It must implement functions _HostIF_init and _HostIF_term, *              for whatever initialisation and termination is needed. *           2) It must implement a function _HostIF_send for sending a pointer *              (to a command buffer) to the RPCServer on the host.  *              This function must return a success status. *           3) It must be able to receive similar pointers from the  *              RPCServer on the host, which must each be passed to a call *              to function _RPCClient_notify. *           4) A debug print routine to whatever destination * *           This is an HostIF implementation for communicating with *           an RPCServer running on a PC under the Windows NT OS. *           This module is implemented on top of the TM Manager. *//*----------------------------includes----------------------------------------*/#include "HostIF.h"#include <stdarg.h>#include <tmlib/tmtypes.h>#include <tmlib/dprintf.h>#include "tmmanapi.h"#include "tmmanerr.h"/*-----------------------------module state-----------------------------------*/static UInt32 hostcall_channel;             /* Created communication channel *//*----------------------------functions---------------------------------------*/    Bool _HostIF_send( Pointer command ){	tmmanPacket      packet;	packet.Argument[0]= (UInt32)command;	while (tmmanMessageSend(hostcall_channel, &packet) == statusChannelMailboxFullError) ;        return True;}     /*--------------------------- Initialisation / Termination -------------------*/    static TMStatus notify()    {	tmmanPacket Packet;	while (tmmanMessageReceive(hostcall_channel, &Packet) == statusSuccess) {            Pointer command = Packet.Argument[0];           _RPCClient_notify(command);        }	return statusSuccess;    }Bool _HostIF_init(){        UInt32  DSPHandle;        tmmanInit( 0, Null);         if (   tmmanDSPOpen ( 0, &DSPHandle ) != statusSuccess )  {            return False;        }        if ( tmmanMessageCreate ( 		    DSPHandle, 		    "CRunTime", /* message ID - should be the same on the host */		    (UInt32)notify,		    constTMManModuleTargetCallback, /* Synchronizaton Flags */		    &hostcall_channel ) != statusSuccess           ) {           tmmanExit( 0 );            return False;        }        return True;}void _HostIF_term(){	tmmanMessageDestroy ( hostcall_channel );        tmmanExit           ( 0 ); }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -