Exemple #1
0
        data->AsyncPtr = PlaceToPutDataPtr;
        data->AsyncRefCon = RefCon;
        data->AsyncCompletionRtn = CompletionRtn;
    }

    return noErr;
}

static const struct { LPVOID proc; ProcInfoType type;} componentFunctions[] =
{
    {NULL, 0}, /* 0 */
    {NULL, 0}, /* 1 */
    {myDataHGetData,  kPascalStackBased
            | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
            | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DataHandler)))
            | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle)))
            | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
            | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
            | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
}, /* kDataHGetDataSelect                        */
    {NULL, 0}, /* kDataHPutDataSelect                        */
    {NULL, 0}, /* kDataHFlushDataSelect                      */
    {NULL, 0}, /* kDataHOpenForWriteSelect                   */
    {NULL, 0}, /* kDataHCloseForWriteSelect                  */
    {NULL, 0}, /* 7 */
    {myDataHOpenForRead, kPascalStackBased
            | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
            | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DataHandler)))
}, /* kDataHOpenForReadSelect
*/
	#define ComponentQTiCall(procName)				ComponentCall(procName)
	#define QTIComponentCall(procName)				ComponentCall(procName)
#endif

#define ADD_BASENAME(name) cdh_GLUE2(COMPONENT_BASENAME(),name)
#define ADD_SCOPED_BASENAME(name) COMPONENT_BASENAME()::name

#if C_DISPATCH_WITH_GLOBALS
	PASCAL_RTN ComponentResult COMPONENT_DISPATCH_ENTRY(ComponentParameters *params, COMPONENT_GLOBALS());
	static ComponentFunctionUPP COMPONENTSELECTORLOOKUP(short selector_num, ProcInfoType *procInfo);

	#if TARGET_OS_MAC && TARGET_CPU_PPC && !TARGET_API_MAC_CARBON
		// entry point for PowerPC native components
		struct RoutineDescriptor ADD_BASENAME(ComponentDispatchRD) =
		  BUILD_ROUTINE_DESCRIPTOR((kPascalStackBased | RESULT_SIZE (kFourByteCode) |
									STACK_ROUTINE_PARAMETER (1, kFourByteCode) |
									STACK_ROUTINE_PARAMETER (2, kFourByteCode)),COMPONENT_DISPATCH_ENTRY);
	#endif
	
	PASCAL_RTN ComponentResult COMPONENT_DISPATCH_ENTRY(ComponentParameters *params,COMPONENT_GLOBALS())
	{
		ComponentFunctionUPP theProc;
		ComponentResult result = badComponentSelector;
		ProcInfoType theProcInfo;
		
		theProc = COMPONENTSELECTORLOOKUP(params->what, &theProcInfo);

		if (theProc) {
			if ( (theProc != kCOMPONENT_ERROR) && (theProc != kCOMPONENT_NOERROR) ) {
				if (theProcInfo != 0) {
					result = CallComponentFunctionWithStorageProcInfo((Handle) storage, params, (ProcPtr)theProc, theProcInfo);
#endif

/////////////////////////////////////////////////////////////////////
#pragma mark ----- PowerPC Code Cache Flush -----

#if TARGET_CPU_68K && !TARGET_RT_MAC_CFM

	// This chunk of code implements the classic 68K case for MakeDataPowerPCExecutable,
	// ie we're running classic 68K code that's generating PowerPC instructions.  Boy,
	// is this a pain to implement.  We have to connect up to Interface, find the
	// appropriate symbol, build a routine descriptor for it, and then call it.
	
	enum {
		uppMakeDataExecutableProcInfo = kPascalStackBased |
				STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void *))) |
				STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned long)))
	};

	static CFragConnectionID gInterfaceLib = NULL;
	static UniversalProcPtr  gMakeDataExecutable = NULL;
	
	typedef pascal void (*MakeDataExecutableProcPtr)(void *address, unsigned long count);
	
	static pascal OSStatus MakeDataPowerPCExecutableFromClassic(void *address, ByteCount count)
	{
		OSErr err;
		Ptr junkMain;
		Str255 junkMessage;
		CFragSymbolClass junkClass;
		ProcPtr routinePtr;
Exemple #4
0
#include "macintosh_cseries.h"
#include "macintosh_network.h"

#ifdef mpwc
#pragma segment network
#endif

#define SOCKET_LISTENER_RESOURCE_TYPE 'SOCK'
#define SOCKET_LISTENER_ID 128

enum
{
    // info for calling the packet handler
    uppPacketHandlerProcInfo = kCStackBased
                               | RESULT_SIZE(kNoByteCode)
                               | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DDPPacketBufferPtr))),

    // info for calling the procedure that initializes the ddp socket listener
    uppInitializeListenerProcInfo = kCStackBased
                                    | RESULT_SIZE(SIZE_CODE(sizeof(ProcPtr)))
                                    | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(packetHandlerProcPtr)))
                                    | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DDPPacketBufferPtr)))
};

/* ---------- prototypes/NETWORK_SOCKET_LISTENER.A */

/* ---------- globals */

static DDPPacketBufferPtr ddpPacketBuffer= (DDPPacketBufferPtr) NULL;

static DDPSocketListenerUPP listenerUPP= (DDPSocketListenerUPP) NULL;
Exemple #5
0
#include <Types.h>
#include <OSUtils.h>

#endif

#if defined (KPMACPPC) && !(TARGET_API_MAC_CARBON)

#include <Traps.h>

/* declare the universal procedure pointer info */
enum {
	uppCallProgressProcInfo =
		kCStackBased |
		RESULT_SIZE (SIZE_CODE (sizeof (PTErr_t) ) ) |
		STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (KpInt32_t) ) ),

	upprelayProcInfo =
		kCStackBased |
		RESULT_SIZE (SIZE_CODE (sizeof (PTErr_t) ) ) |
		STACK_ROUTINE_PARAMETER (1, SIZE_CODE (sizeof (long) ) ) |
		STACK_ROUTINE_PARAMETER (2, SIZE_CODE (sizeof (long) ) ) |
		STACK_ROUTINE_PARAMETER (3, SIZE_CODE (sizeof (PTProgress_t) ) ) |
		STACK_ROUTINE_PARAMETER (4, SIZE_CODE (sizeof (KpInt32_t) ) )
};

#endif


#if defined (KPMAC) && !(TARGET_API_MAC_CARBON)
Exemple #6
0
pascal void SBShowHideControlStrip(Bool showIt)
{
	CallUniversalProc((UniversalProcPtr)&SBShowHideControlStrip68K[0],kPascalStackBased
		 | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(1)),showIt);
}