1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39 40
41
42 import xdc.runtime.Error;
43 import ti.sdo.io.DriverTypes;
44
45 /*!
46 * Module through which legacy iom drivers can plug into BIOS 6.x
47 *
48 * The IomAdapter module maps iom.h to IDriver.xdc. A legacy iom
49 * driver has to hook into BIOS 6.x using this module. This module
50 * handles ALL legacy drivers in the system. This single module
51 * takes care of several legacy driver modules.
52 *
53 * As part of its create the IomAdapter module will call mbBindDev for
54 * each of the legacy drivers. {@link #open} will call mdCreateChan.
55 * {@link #close} will call mdDeleteChan. {@link #submit} will call
56 * mdSubmitChan. {@link #control} will call mdControlChan. A delete call will
57 * call mdUnbindDev.
58 *
59 */
60 @ModuleStartup
61 @InstanceFinalize
62
63 module IomAdapter inherits ti.sdo.io.IDriver {
64
65 /*! Iom init function type definition. */
66 typedef Void (*InitFunc)();
67
68 instance:
69
70 /*! Pointer to legacy iom function table */
71 config Ptr iomFxns = null;
72
73 /*! Legacy iom init function */
74 config InitFunc initFxn = null;
75
76 /*! Legacy deviceParams */
77 config Ptr deviceParams = null;
78
79 /*! deviceId for iom driver */
80 config UInt deviceId = 0;
81
82 /*!
83 * ======== create ========
84 * Create an IomAdapter instance
85 */
86 create();
87
88 internal:
89
90 Void driverCallback(Ptr cbArg, DriverTypes.Packet *packet);
91
92 Void postInit(Object *obj);
93
94 Error.Id mapStatus(Int status);
95
96 struct ChanObj {
97 Ptr iomChanHdl;
98 DriverTypes.DoneFxn cbFxn;
99 UArg cbArg;
100 DriverTypes.Packet abortPkt;
101 };
102
103 struct Instance_State {
104 Int deviceId;
105 Ptr deviceParams;
106 Ptr deviceHandle;
107 Ptr iomFxns;
108 InitFunc initFxn;
109 };
110 }
111 112 113
114