diff options
| author | Alexandra Ellwood <lxs@mit.edu> | 2007-05-31 21:06:54 +0000 |
|---|---|---|
| committer | Alexandra Ellwood <lxs@mit.edu> | 2007-05-31 21:06:54 +0000 |
| commit | d45eeb7f708d5be2e9fbdbc54a04655776074f6c (patch) | |
| tree | 5ab3d7e31f285ac4d6900d3abc647cbb53a05f8d /src/ccapi/common/mac | |
| parent | 66bd29f512b9bdd5e808d645118862112973d2d6 (diff) | |
| download | krb5-d45eeb7f708d5be2e9fbdbc54a04655776074f6c.tar.gz krb5-d45eeb7f708d5be2e9fbdbc54a04655776074f6c.tar.xz krb5-d45eeb7f708d5be2e9fbdbc54a04655776074f6c.zip | |
Move CCAPI sources to krb5 repository
ticket: new
status: open
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19564 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/ccapi/common/mac')
| -rw-r--r-- | src/ccapi/common/mac/cci_mig.defs | 54 | ||||
| -rw-r--r-- | src/ccapi/common/mac/cci_mig_reply.defs | 58 | ||||
| -rw-r--r-- | src/ccapi/common/mac/cci_mig_request.defs | 62 | ||||
| -rw-r--r-- | src/ccapi/common/mac/cci_mig_types.h | 56 | ||||
| -rw-r--r-- | src/ccapi/common/mac/cci_os_debugging.c | 36 | ||||
| -rw-r--r-- | src/ccapi/common/mac/cci_os_identifier.c | 80 |
6 files changed, 346 insertions, 0 deletions
diff --git a/src/ccapi/common/mac/cci_mig.defs b/src/ccapi/common/mac/cci_mig.defs new file mode 100644 index 000000000..3a573681a --- /dev/null +++ b/src/ccapi/common/mac/cci_mig.defs @@ -0,0 +1,54 @@ +/* $Copyright: + * + * Copyright 2004-2006 by the Massachusetts Institute of Technology. + * + * All rights reserved. + * + * Export of this software from the United States of America may require a + * specific license from the United States Government. It is the + * responsibility of any person or organization contemplating export to + * obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute + * this software and its documentation for any purpose and without fee is + * hereby granted, provided that the above copyright notice appear in all + * copies and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of M.I.T. not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. Furthermore if you + * modify this software you must label your software as modified software + * and not distribute it in such a fashion that it might be confused with + * the original MIT software. M.I.T. makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Individual source code files are copyright MIT, Cygnus Support, + * OpenVision, Oracle, Sun Soft, FundsXpress, and others. + * + * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, + * and Zephyr are trademarks of the Massachusetts Institute of Technology + * (MIT). No commercial use of these trademarks may be made without prior + * written permission of MIT. + * + * "Commercial use" means use of a name in a product or other for-profit + * manner. It does NOT prevent a commercial firm from referring to the MIT + * trademarks in order to convey information (although in doing so, + * recognition of their trademark status should be given). + * $ + */ + +#include <mach/std_types.defs> +#include <mach/mach_types.defs> + +import "cci_mig_types.h"; + +/* Note the 1024 must be the same as kCCAPIMaxILMsgSize */ +type cci_mipc_inl_request_t = array [ * : 1024 ] of char; +type cci_mipc_ool_request_t = array [] of char; + +type cci_mipc_inl_reply_t = array [ * : 1024 ] of char; +type cci_mipc_ool_reply_t = array [] of char; diff --git a/src/ccapi/common/mac/cci_mig_reply.defs b/src/ccapi/common/mac/cci_mig_reply.defs new file mode 100644 index 000000000..f500ef9ac --- /dev/null +++ b/src/ccapi/common/mac/cci_mig_reply.defs @@ -0,0 +1,58 @@ +/* $Copyright: + * + * Copyright 2004-2006 by the Massachusetts Institute of Technology. + * + * All rights reserved. + * + * Export of this software from the United States of America may require a + * specific license from the United States Government. It is the + * responsibility of any person or organization contemplating export to + * obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute + * this software and its documentation for any purpose and without fee is + * hereby granted, provided that the above copyright notice appear in all + * copies and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of M.I.T. not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. Furthermore if you + * modify this software you must label your software as modified software + * and not distribute it in such a fashion that it might be confused with + * the original MIT software. M.I.T. makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Individual source code files are copyright MIT, Cygnus Support, + * OpenVision, Oracle, Sun Soft, FundsXpress, and others. + * + * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, + * and Zephyr are trademarks of the Massachusetts Institute of Technology + * (MIT). No commercial use of these trademarks may be made without prior + * written permission of MIT. + * + * "Commercial use" means use of a name in a product or other for-profit + * manner. It does NOT prevent a commercial firm from referring to the MIT + * trademarks in order to convey information (although in doing so, + * recognition of their trademark status should be given). + * $ + */ + +#include "cci_mig.defs" + +subsystem cci 200; + +serverprefix cci_mipc_; +userprefix ccs_mipc_; + +/* ",dealloc" means that the vm_read() memory will be moved to + * the other process rather than copied. This is necessary on the + * client side because we can't know when server has copied our + * buffers so we can't vm_deallocate() them ourselves. */ + +simpleroutine reply (in_reply_port : mach_port_move_send_once_t; + in_inl_reply : cci_mipc_inl_reply_t; + in_ool_reply : cci_mipc_ool_reply_t, dealloc); diff --git a/src/ccapi/common/mac/cci_mig_request.defs b/src/ccapi/common/mac/cci_mig_request.defs new file mode 100644 index 000000000..45887e1a1 --- /dev/null +++ b/src/ccapi/common/mac/cci_mig_request.defs @@ -0,0 +1,62 @@ +/* $Copyright: + * + * Copyright 2004-2006 by the Massachusetts Institute of Technology. + * + * All rights reserved. + * + * Export of this software from the United States of America may require a + * specific license from the United States Government. It is the + * responsibility of any person or organization contemplating export to + * obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute + * this software and its documentation for any purpose and without fee is + * hereby granted, provided that the above copyright notice appear in all + * copies and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of M.I.T. not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. Furthermore if you + * modify this software you must label your software as modified software + * and not distribute it in such a fashion that it might be confused with + * the original MIT software. M.I.T. makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * Individual source code files are copyright MIT, Cygnus Support, + * OpenVision, Oracle, Sun Soft, FundsXpress, and others. + * + * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, + * and Zephyr are trademarks of the Massachusetts Institute of Technology + * (MIT). No commercial use of these trademarks may be made without prior + * written permission of MIT. + * + * "Commercial use" means use of a name in a product or other for-profit + * manner. It does NOT prevent a commercial firm from referring to the MIT + * trademarks in order to convey information (although in doing so, + * recognition of their trademark status should be given). + * $ + */ + +#include "cci_mig.defs" + +subsystem ccs 100; + +serverprefix ccs_mipc_; +userprefix cci_mipc_; + +routine create_client_connection (in_server_port : mach_port_t; + out out_connection_port : mach_port_t = MACH_MSG_TYPE_MAKE_SEND); + +/* ",dealloc" means that the vm_read() memory will be moved to + * the other process rather than copied. This is necessary on the + * server side because we can't know when client has copied our + * buffers so we can't vm_deallocate() them ourselves. */ + +simpleroutine request (in_connection_port : mach_port_t; + in_reply_port : mach_port_make_send_once_t; + in_inl_request : cci_mipc_inl_request_t; + in_ool_request : cci_mipc_ool_request_t, dealloc); diff --git a/src/ccapi/common/mac/cci_mig_types.h b/src/ccapi/common/mac/cci_mig_types.h new file mode 100644 index 000000000..d82d5ac59 --- /dev/null +++ b/src/ccapi/common/mac/cci_mig_types.h @@ -0,0 +1,56 @@ +/* $Copyright: +* +* Copyright 2004-2006 by the Massachusetts Institute of Technology. +* +* All rights reserved. +* +* Export of this software from the United States of America may require a +* specific license from the United States Government. It is the +* responsibility of any person or organization contemplating export to +* obtain such a license before exporting. +* +* WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute +* this software and its documentation for any purpose and without fee is +* hereby granted, provided that the above copyright notice appear in all +* copies and that both that copyright notice and this permission notice +* appear in supporting documentation, and that the name of M.I.T. not be +* used in advertising or publicity pertaining to distribution of the +* software without specific, written prior permission. Furthermore if you +* modify this software you must label your software as modified software +* and not distribute it in such a fashion that it might be confused with +* the original MIT software. M.I.T. makes no representations about the +* suitability of this software for any purpose. It is provided "as is" +* without express or implied warranty. +* +* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +* +* Individual source code files are copyright MIT, Cygnus Support, +* OpenVision, Oracle, Sun Soft, FundsXpress, and others. +* +* Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, +* and Zephyr are trademarks of the Massachusetts Institute of Technology +* (MIT). No commercial use of these trademarks may be made without prior +* written permission of MIT. +* +* "Commercial use" means use of a name in a product or other for-profit +* manner. It does NOT prevent a commercial firm from referring to the MIT +* trademarks in order to convey information (although in doing so, +* recognition of their trademark status should be given). +* $ +*/ + +#ifndef CCI_MIG_TYPES_H +#define CCI_MIG_TYPES_H + +#include "cci_common.h" + +#define kCCAPIMaxILMsgSize 1024 + +typedef const char cci_mipc_inl_request_t[kCCAPIMaxILMsgSize]; +typedef const char *cci_mipc_ool_request_t; +typedef char cci_mipc_inl_reply_t[kCCAPIMaxILMsgSize]; +typedef char *cci_mipc_ool_reply_t; + +#endif /* CCI_MIG_TYPES_H */ diff --git a/src/ccapi/common/mac/cci_os_debugging.c b/src/ccapi/common/mac/cci_os_debugging.c new file mode 100644 index 000000000..f64b83916 --- /dev/null +++ b/src/ccapi/common/mac/cci_os_debugging.c @@ -0,0 +1,36 @@ +/* + * $Header$ + * + * Copyright 2006 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + + +#include "cci_os_debugging.h" +#include <Kerberos/KerberosDebug.h> + +/* ------------------------------------------------------------------------ */ + +inline void cci_os_debug_vprintf (const char *in_format, va_list in_args) +{ + dvprintf (in_format, in_args); +} diff --git a/src/ccapi/common/mac/cci_os_identifier.c b/src/ccapi/common/mac/cci_os_identifier.c new file mode 100644 index 000000000..c01e727bb --- /dev/null +++ b/src/ccapi/common/mac/cci_os_identifier.c @@ -0,0 +1,80 @@ +/* + * $Header$ + * + * Copyright 2006 Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + */ + +#include "cci_common.h" +#include "cci_os_identifier.h" + +#include <CoreFoundation/CoreFoundation.h> + +/* ------------------------------------------------------------------------ */ + +inline cc_int32 cci_os_identifier_new_uuid (cci_uuid_string_t *out_uuid_string) +{ + cc_int32 err = ccNoError; + cci_uuid_string_t uuid_string = NULL; + CFUUIDRef uuid = NULL; + CFStringRef uuid_stringref = NULL; + CFStringEncoding encoding = kCFStringEncodingUTF8; + CFIndex length = 0; + + if (!out_uuid_string) { err = cci_check_error (ccErrBadParam); } + + if (!err) { + uuid = CFUUIDCreate (kCFAllocatorDefault); + if (!uuid) { err = cci_check_error (ccErrNoMem); } + } + + if (!err) { + uuid_stringref = CFUUIDCreateString (kCFAllocatorDefault, uuid); + if (!uuid_stringref) { err = cci_check_error (ccErrNoMem); } + } + + if (!err) { + length = CFStringGetMaximumSizeForEncoding (CFStringGetLength (uuid_stringref), + encoding) + 1; + + uuid_string = malloc (length); + if (!uuid_string) { err = cci_check_error (ccErrNoMem); } + } + + if (!err) { + if (!CFStringGetCString (uuid_stringref, uuid_string, length, encoding)) { + err = cci_check_error (ccErrNoMem); + } + } + + if (!err) { + *out_uuid_string = uuid_string; + uuid_string = NULL; /* take ownership */ + } + + if (uuid_string ) { free (uuid_string); } + if (uuid_stringref) { CFRelease (uuid_stringref); } + if (uuid ) { CFRelease (uuid); } + + return cci_check_error (err); +} + |
