Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
SAGlobals.c
/*------------------------------------------------------------------------------ |
# |
# Macintosh Developer Technical Support |
# |
# Sample Control Panel Device and INIT Combination |
# |
# Program: INIT - CDEV |
# File: SAGlobals.c - C Source |
# |
# Copyright © 1990 Apple Computer, Inc. |
# All rights reserved. |
# |
------------------------------------------------------------------------------*/ |
#include <Memory.h> |
#include <OSUtils.h> |
#include <SAGlobals.h> |
#define kAppParmsSize 32 |
/* |
!!! NOTE !!! |
These routines are used to implement global variables in standalone code, |
as per Technote #256. However, they have been modified here to allocate |
the buffer space from a non-relocatable pointer rather than a relocatable |
handle. The reason for this is because our globals will be used in our |
INIT to hold a PPC parameter block. Our INIT will prime a PPCInform call, |
and then exit. While the INIT is not executing and while the PPCInform |
call is outstanding, we don't want our globals to move. Since our INIT |
will be spending 99.9999999% of its time in this state, it doesn't made |
sense to allocate our memory from a handle. And since the best place for a |
block of memory that isn't going to be moving is low in the heap, we |
allocate the block with NewPtr. |
*/ |
long A5Size (void); |
/* prototype for routine in Runtime.o */ |
void A5Init (Ptr myA5); |
/* prototype for routine in Runtime.o */ |
pascal void MakeA5World (A5RefType *A5Ref) { |
*A5Ref = NewPtr(A5Size()); |
if ((long)*A5Ref) { |
A5Init((Ptr)( (long)*A5Ref + A5Size() - kAppParmsSize)); |
} |
} |
pascal long SetA5World (A5RefType A5Ref) { |
return SetA5( (long)A5Ref + A5Size() - kAppParmsSize); |
} |
pascal void DisposeA5World (A5RefType A5Ref) { |
DisposePtr((Ptr)A5Ref); |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14