1 /* --COPYRIGHT--,BSD 2 * Copyright (c) $(CPYYEAR), Texas Instruments Incorporated 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of Texas Instruments Incorporated nor the names of 17 * its contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 * --/COPYRIGHT--*/ 32 /* 33 * ======== IomAdapter.xdc ======== 34 * 35 *! Revision History 36 *! ================ 37 *! 09-Feb-2006 czhao fixed TinitFxn to Fxn 38 *! 05-Jan-2006 czhao added Finalize 39 *! 29-Nov-2005 czhao created 40 * 41 * Open Issues: 42 * 1. static policy not supported. 43 * 2. Need to map errors, commands. 44 * 3. Uarg vs Ptr 45 */ 46 47 import xdc.runtime.Error; 48 import ti.sdo.io.DriverTypes; 49 50 /*! 51 * Module through which legacy iom drivers can plug into BIOS 6.x 52 * 53 * The IomAdapter module maps iom.h to IDriver.xdc. A legacy iom 54 * driver has to hook into BIOS 6.x using this module. This module 55 * handles ALL legacy drivers in the system. This single module 56 * takes care of several legacy driver modules. 57 * 58 * As part of its create the IomAdapter module will call mbBindDev for 59 * each of the legacy drivers. {@link #open} will call mdCreateChan. 60 * {@link #close} will call mdDeleteChan. {@link #submit} will call 61 * mdSubmitChan. {@link #control} will call mdControlChan. A delete call will 62 * call mdUnbindDev. 63 * 64 */ 65 @ModuleStartup 66 @InstanceFinalize 67 68 module IomAdapter inherits ti.sdo.io.IDriver { 69 70 /*! Iom init function type definition. */ 71 typedef Void (*InitFunc)(); 72 73 instance: 74 75 /*! Pointer to legacy iom function table */ 76 config Ptr iomFxns = null; 77 78 /*! Legacy iom init function */ 79 config InitFunc initFxn = null; 80 81 /*! Legacy deviceParams */ 82 config Ptr deviceParams = null; 83 84 /*! deviceId for iom driver */ 85 config UInt deviceId = 0; 86 87 /*! 88 * ======== create ======== 89 * Create an IomAdapter instance 90 */ 91 create(); 92 93 internal: 94 95 Void driverCallback(Ptr cbArg, DriverTypes.Packet *packet); 96 97 Void postInit(Object *obj); 98 99 Error.Id mapStatus(Int status); 100 101 struct ChanObj { 102 Ptr iomChanHdl; 103 DriverTypes.DoneFxn cbFxn; 104 UArg cbArg; 105 DriverTypes.Packet abortPkt; 106 }; 107 108 struct Instance_State { 109 Int deviceId; 110 Ptr deviceParams; 111 Ptr deviceHandle; 112 Ptr iomFxns; 113 InitFunc initFxn; 114 }; 115 }