mirror of
https://github.com/macports/pallet.git
synced 2026-07-12 18:18:47 -07:00
git-svn-id: https://svn.macports.org/repository/macports/contrib/MacPorts_Framework@39835 d073be05-634f-4543-b044-5fe20cf6d1d6
120 lines
5.5 KiB
C
Executable File
120 lines
5.5 KiB
C
Executable File
/*
|
|
File: MPHelperNotificationsCommon.h
|
|
|
|
Contains: Common code between client and server.
|
|
|
|
Written by: DTS
|
|
|
|
Copyright: Copyright (c) 2005 by Apple Computer, Inc., All Rights Reserved.
|
|
|
|
Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc.
|
|
("Apple") in consideration of your agreement to the following terms, and your
|
|
use, installation, modification or redistribution of this Apple software
|
|
constitutes acceptance of these terms. If you do not agree with these terms,
|
|
please do not use, install, modify or redistribute this Apple software.
|
|
|
|
In consideration of your agreement to abide by the following terms, and subject
|
|
to these terms, Apple grants you a personal, non-exclusive license, under Apple's
|
|
copyrights in this original Apple software (the "Apple Software"), to use,
|
|
reproduce, modify and redistribute the Apple Software, with or without
|
|
modifications, in source and/or binary forms; provided that if you redistribute
|
|
the Apple Software in its entirety and without modifications, you must retain
|
|
this notice and the following text and disclaimers in all such redistributions of
|
|
the Apple Software. Neither the name, trademarks, service marks or logos of
|
|
Apple Computer, Inc. may be used to endorse or promote products derived from the
|
|
Apple Software without specific prior written permission from Apple. Except as
|
|
expressly stated in this notice, no other rights or licenses, express or implied,
|
|
are granted by Apple herein, including but not limited to any patent rights that
|
|
may be infringed by your derivative works or by other works in which the Apple
|
|
Software may be incorporated.
|
|
|
|
The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO
|
|
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
|
|
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
|
|
COMBINATION WITH YOUR PRODUCTS.
|
|
|
|
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
|
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
|
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
|
|
OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
|
|
(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
|
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
Change History (most recent first):
|
|
|
|
$Log: MPHelperNotificationsCommon.h,v $
|
|
Revision 1.1 2005/05/17 12:19:20
|
|
First checked in.
|
|
|
|
|
|
*/
|
|
|
|
#ifndef _COMMON_H
|
|
#define _COMMON_H
|
|
|
|
/////////////////////////////////////////////////////////////////
|
|
|
|
// System interfaces
|
|
|
|
#include <CoreServices/CoreServices.h>
|
|
|
|
// Project interfaces
|
|
|
|
#include "MPHelperNotificationsProtocol.h"
|
|
|
|
/////////////////////////////////////////////////////////////////
|
|
|
|
extern int MoreUNIXErrno(int result);
|
|
extern int MoreUNIXIgnoreSIGPIPE(void);
|
|
extern int MoreUNIXRead( int fd, void *buf, size_t bufSize, size_t *bytesRead );
|
|
extern int MoreUNIXWrite(int fd, const void *buf, size_t bufSize, size_t *bytesWritten);
|
|
// The above routines are taken from the MoreIsBetter library.
|
|
|
|
extern int MoreUNIXSetNonBlocking(int fd);
|
|
|
|
typedef void (*SignalSocketCallback)(const siginfo_t *sigInfo, void *refCon);
|
|
// This callback is called when a signal occurs. It's called in the
|
|
// context of the runloop specified when you registered the callback.
|
|
// sigInfo describes the signal and refCon is the value you supplied
|
|
// when you registered the callback.
|
|
|
|
extern int InstallSignalToSocket(
|
|
const sigset_t * sigSet,
|
|
CFRunLoopRef runLoop,
|
|
CFStringRef runLoopMode,
|
|
SignalSocketCallback callback,
|
|
void * refCon
|
|
);
|
|
// A method for routing signals to a runloop-based program.
|
|
//
|
|
// sigSet is the set of signals that you're interested in.
|
|
// Use the routines documented in <x-man-page://3/sigsetopts>
|
|
// to construct this.
|
|
//
|
|
// runLoop and runLoopMode specify how you want the callback
|
|
// to be run. You typically pass CFRunLoopGetCurrent and
|
|
// kCFRunLoopDefaultMode.
|
|
//
|
|
// callback is the routine you want called, and refCon is an
|
|
// uninterpreted value that's passed to that callback.
|
|
//
|
|
// The function result is an errno-style error code.
|
|
//
|
|
// IMPORTANT:
|
|
// You can only call this routine once for any given application;
|
|
// you must register all of the signals you're interested in at that
|
|
// time. There is no way to deregister.
|
|
|
|
#endif
|
|
|
|
extern void DebugPrintDescriptorTable(void);
|
|
// Prints a nice dump of the file descriptor table to stdout.
|
|
|
|
extern void InitPacketHeader(PacketHeader *packet, OSType packetType, size_t packetSize, Boolean rpc);
|
|
// Initialises the PacketHeader structure with the values specified
|
|
// in the parameters. The rpc parameter controls whether the fID
|
|
// field is set to kPacketIDNone (rpc false, hence no ID) or an
|
|
// incrementing sequence number (rpc true).
|