This is pppd_rpcServer.c in view mode; [Download] [Up]
/* Module pppd_rpc */
#define EXPORT_BOOLEAN
#include <mach/boolean.h>
#include <mach/message.h>
#include <mach/mig_errors.h>
#ifndef mig_internal
#define mig_internal static
#endif
#ifndef TypeCheck
#define TypeCheck 1
#endif
#ifndef UseExternRCSId
#ifdef hc
#define UseExternRCSId 1
#endif
#endif
#ifndef UseStaticMsgType
#if !defined(hc) || defined(__STDC__)
#define UseStaticMsgType 1
#endif
#endif
#define novalue void
#define msg_request_port msg_local_port
#define msg_reply_port msg_remote_port
#include <mach/std_types.h>
/* Routine pppd_status */
mig_internal novalue _Xpppd_status
(msg_header_t *InHeadP, msg_header_t *OutHeadP)
{
typedef struct {
msg_header_t Head;
} Request;
typedef struct {
msg_header_t Head;
msg_type_t RetCodeType;
kern_return_t RetCode;
msg_type_t cType;
int c;
} Reply;
register Request *In0P = (Request *) InHeadP;
register Reply *OutP = (Reply *) OutHeadP;
extern kern_return_t pppd_status (port_t server, int *c);
#if TypeCheck
boolean_t msg_simple;
#endif TypeCheck
unsigned int msg_size;
#if UseStaticMsgType
static const msg_type_t cType = {
/* msg_type_name = */ MSG_TYPE_INTEGER_32,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0,
};
#endif UseStaticMsgType
#if TypeCheck
msg_size = In0P->Head.msg_size;
msg_simple = In0P->Head.msg_simple;
if ((msg_size != 24) || (msg_simple != TRUE))
{ OutP->RetCode = MIG_BAD_ARGUMENTS; return; }
#endif TypeCheck
OutP->RetCode = pppd_status(In0P->Head.msg_request_port, &OutP->c);
#ifdef label_punt0
#undef label_punt0
punt0:
#endif label_punt0
if (OutP->RetCode != KERN_SUCCESS)
return;
msg_size = 40;
#if UseStaticMsgType
OutP->cType = cType;
#else UseStaticMsgType
OutP->cType.msg_type_name = MSG_TYPE_INTEGER_32;
OutP->cType.msg_type_size = 32;
OutP->cType.msg_type_number = 1;
OutP->cType.msg_type_inline = TRUE;
OutP->cType.msg_type_longform = FALSE;
OutP->cType.msg_type_deallocate = FALSE;
#endif UseStaticMsgType
OutP->Head.msg_simple = TRUE;
OutP->Head.msg_size = msg_size;
}
/* Routine set_pppd */
mig_internal novalue _Xset_pppd
(msg_header_t *InHeadP, msg_header_t *OutHeadP)
{
typedef struct {
msg_header_t Head;
msg_type_t aType;
int a;
} Request;
typedef struct {
msg_header_t Head;
msg_type_t RetCodeType;
kern_return_t RetCode;
} Reply;
register Request *In0P = (Request *) InHeadP;
register Reply *OutP = (Reply *) OutHeadP;
extern kern_return_t set_pppd (port_t server, int a);
#if TypeCheck
boolean_t msg_simple;
#endif TypeCheck
unsigned int msg_size;
#if UseStaticMsgType
static const msg_type_t aCheck = {
/* msg_type_name = */ MSG_TYPE_INTEGER_32,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0
};
#endif UseStaticMsgType
#if TypeCheck
msg_size = In0P->Head.msg_size;
msg_simple = In0P->Head.msg_simple;
if ((msg_size != 32) || (msg_simple != TRUE))
{ OutP->RetCode = MIG_BAD_ARGUMENTS; return; }
#endif TypeCheck
#if TypeCheck
#if UseStaticMsgType
if (* (int *) &In0P->aType != * (int *) &aCheck)
#else UseStaticMsgType
if ((In0P->aType.msg_type_inline != TRUE) ||
(In0P->aType.msg_type_longform != FALSE) ||
(In0P->aType.msg_type_name != MSG_TYPE_INTEGER_32) ||
(In0P->aType.msg_type_number != 1) ||
(In0P->aType.msg_type_size != 32))
#endif UseStaticMsgType
{ OutP->RetCode = MIG_BAD_ARGUMENTS; goto punt0; }
#define label_punt0
#endif TypeCheck
OutP->RetCode = set_pppd(In0P->Head.msg_request_port, In0P->a);
#ifdef label_punt0
#undef label_punt0
punt0:
#endif label_punt0
if (OutP->RetCode != KERN_SUCCESS)
return;
msg_size = 32;
OutP->Head.msg_simple = TRUE;
OutP->Head.msg_size = msg_size;
}
/* SimpleRoutine die_pppd */
mig_internal novalue _Xdie_pppd
(msg_header_t *InHeadP, msg_header_t *OutHeadP)
{
typedef struct {
msg_header_t Head;
msg_type_t aType;
int a;
} Request;
typedef struct {
msg_header_t Head;
msg_type_t RetCodeType;
kern_return_t RetCode;
} Reply;
register Request *In0P = (Request *) InHeadP;
register Reply *OutP = (Reply *) OutHeadP;
extern kern_return_t die_pppd (port_t server, int a);
#if TypeCheck
boolean_t msg_simple;
#endif TypeCheck
unsigned int msg_size;
#if UseStaticMsgType
static const msg_type_t aCheck = {
/* msg_type_name = */ MSG_TYPE_INTEGER_32,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0
};
#endif UseStaticMsgType
#if TypeCheck
msg_size = In0P->Head.msg_size;
msg_simple = In0P->Head.msg_simple;
if ((msg_size != 32) || (msg_simple != TRUE))
{ OutP->RetCode = MIG_BAD_ARGUMENTS; return; }
#endif TypeCheck
#if TypeCheck
#if UseStaticMsgType
if (* (int *) &In0P->aType != * (int *) &aCheck)
#else UseStaticMsgType
if ((In0P->aType.msg_type_inline != TRUE) ||
(In0P->aType.msg_type_longform != FALSE) ||
(In0P->aType.msg_type_name != MSG_TYPE_INTEGER_32) ||
(In0P->aType.msg_type_number != 1) ||
(In0P->aType.msg_type_size != 32))
#endif UseStaticMsgType
{ OutP->RetCode = MIG_BAD_ARGUMENTS; goto punt0; }
#define label_punt0
#endif TypeCheck
(void) die_pppd(In0P->Head.msg_request_port, In0P->a);
OutP->RetCode = MIG_NO_REPLY;
#ifdef label_punt0
#undef label_punt0
punt0:
#endif label_punt0
;
}
boolean_t pppd_rpc_server
(msg_header_t *InHeadP, msg_header_t *OutHeadP)
{
register msg_header_t *InP = InHeadP;
register death_pill_t *OutP = (death_pill_t *) OutHeadP;
#if UseStaticMsgType
static const msg_type_t RetCodeType = {
/* msg_type_name = */ MSG_TYPE_INTEGER_32,
/* msg_type_size = */ 32,
/* msg_type_number = */ 1,
/* msg_type_inline = */ TRUE,
/* msg_type_longform = */ FALSE,
/* msg_type_deallocate = */ FALSE,
/* msg_type_unused = */ 0,
};
#endif UseStaticMsgType
OutP->Head.msg_simple = TRUE;
OutP->Head.msg_size = sizeof *OutP;
OutP->Head.msg_type = InP->msg_type;
OutP->Head.msg_local_port = PORT_NULL;
OutP->Head.msg_remote_port = InP->msg_reply_port;
OutP->Head.msg_id = InP->msg_id + 100;
#if UseStaticMsgType
OutP->RetCodeType = RetCodeType;
#else UseStaticMsgType
OutP->RetCodeType.msg_type_name = MSG_TYPE_INTEGER_32;
OutP->RetCodeType.msg_type_size = 32;
OutP->RetCodeType.msg_type_number = 1;
OutP->RetCodeType.msg_type_inline = TRUE;
OutP->RetCodeType.msg_type_longform = FALSE;
OutP->RetCodeType.msg_type_deallocate = FALSE;
#endif UseStaticMsgType
OutP->RetCode = MIG_BAD_ID;
if ((InP->msg_id > 2) || (InP->msg_id < 0))
return FALSE;
else {
typedef novalue (*SERVER_STUB_PROC)
(msg_header_t *, msg_header_t *);
static const SERVER_STUB_PROC routines[] = {
_Xpppd_status,
_Xset_pppd,
_Xdie_pppd,
};
if (routines[InP->msg_id - 0])
(routines[InP->msg_id - 0]) (InP, &OutP->Head);
else
return FALSE;
}
return TRUE;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.