|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: /* ! 25: * Copyright 1994 NeXT Computer, Inc. ! 26: * All rights reserved. ! 27: */ ! 28: ! 29: #import <driverkit/i386/PCMCIATuple.h> ! 30: #import <driverkit/i386/IOPCMCIATuple.h> ! 31: #import <driverkit/i386/IOPCMCIATuplePrivate.h> ! 32: ! 33: @implementation IOPCMCIATuple(Private) ! 34: ! 35: struct _tuple_private { ! 36: id kernTuple; ! 37: unsigned char code; ! 38: unsigned length; ! 39: unsigned char *data; ! 40: }; ! 41: ! 42: - initWithKernTuple:tuple ! 43: { ! 44: struct _tuple_private *private; ! 45: ! 46: if (tuple == NULL) ! 47: return [super free]; ! 48: ! 49: [super init]; ! 50: private = (struct _tuple_private *)IOMalloc(sizeof(struct _tuple_private)); ! 51: _private = private; ! 52: private->kernTuple = tuple; ! 53: private->code = [tuple code]; ! 54: private->length = [tuple length]; ! 55: private->data = NULL; ! 56: return self; ! 57: } ! 58: ! 59: @end ! 60: ! 61: @implementation IOPCMCIATuple ! 62: ! 63: - free ! 64: { ! 65: struct _tuple_private *private = (struct _tuple_private *)_private; ! 66: if (private->data != NULL) ! 67: IOFree(private->data, private->length); ! 68: IOFree(private, sizeof(struct _tuple_private)); ! 69: return [super free]; ! 70: } ! 71: ! 72: - (unsigned char) code ! 73: { ! 74: struct _tuple_private *private = (struct _tuple_private *)_private; ! 75: return private->code; ! 76: } ! 77: ! 78: - (unsigned) length ! 79: { ! 80: struct _tuple_private *private = (struct _tuple_private *)_private; ! 81: return private->length; ! 82: } ! 83: ! 84: - (unsigned char *) data; ! 85: { ! 86: struct _tuple_private *private = (struct _tuple_private *)_private; ! 87: unsigned length; ! 88: ! 89: if (private->data == NULL) { ! 90: private->data = IOMalloc(private->length); ! 91: bcopy([private->kernTuple data], private->data, private->length); ! 92: } ! 93: return private->data; ! 94: } ! 95: ! 96: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.