X-Git-Url: https://git.saurik.com/apple/securityd.git/blobdiff_plain/ed7595be5e083c75d54eca237d14322e52887b0d..f7aa9f666a1c7ab343b4ce8f1677ea253c4e126e:/src/flippers.cpp diff --git a/src/flippers.cpp b/src/flippers.cpp deleted file mode 100644 index 4f8fa31..0000000 --- a/src/flippers.cpp +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2003-2004 Apple Computer, Inc. All Rights Reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - - -// -// process - track a single client process and its belongings -// -#include "flippers.h" -#include - -using namespace LowLevelMemoryUtilities; - - -namespace Flippers { - -// -// The raw byte reversal flipper -// -void flip(void *addr, size_t size) -{ - assert(size > 1 && (size % 2 == 0)); - Byte *word = reinterpret_cast(addr); - for (size_t n = 0; n < size/2; n++) { - Byte b = word[n]; - word[n] = word[size-1-n]; - word[size-1-n] = b; - } -} - - -// -// Basic flippers -// -void flip(uint32 &obj) { flip(&obj, sizeof(obj)); } -void flip(uint16 &obj) { flip(&obj, sizeof(obj)); } -void flip(sint32 &obj) { flip(&obj, sizeof(obj)); } -void flip(sint16 &obj) { flip(&obj, sizeof(obj)); } - - -// -// Flip a context attribute. This is heavily polymorphic. -// -void flip(CSSM_CONTEXT_ATTRIBUTE &obj) -{ - flip(obj.AttributeType); - flip(obj.AttributeLength); - switch (obj.AttributeType & CSSM_ATTRIBUTE_TYPE_MASK) { - case CSSM_ATTRIBUTE_DATA_UINT32: - flip(obj.Attribute.Uint32); - break; - // all other alternatives are handled by CSSM_CONTEXT_ATTRIBUTE's walker - default: - break; - } -} - - -// -// Flip a CSSM_DB_ATTRIBUTE_INFO, also very polymorphic -// -void flip(CSSM_DB_ATTRIBUTE_INFO &obj) -{ - bool flippedAttributeNameFormat = false; - // check and see if obj is in host byte order. If not, flip it now - if (obj.AttributeNameFormat > CSSM_DB_ATTRIBUTE_NAME_AS_INTEGER) - { - flip(obj.AttributeNameFormat); - flippedAttributeNameFormat = true; - } - - switch (obj.AttributeNameFormat) - { - case CSSM_DB_ATTRIBUTE_NAME_AS_INTEGER: - { - flip(obj.Label.AttributeID); - } - break; - } - - flip (obj.AttributeFormat); - - if (!flippedAttributeNameFormat) - { - flip(obj.AttributeNameFormat); - } - -} - -// -// Automatically generated flippers -// -#include "flip_gen.cpp" - - -} // end namespace Flippers