~ubuntu-branches/ubuntu/lucid/fpc/lucid-proposed

« back to all changes in this revision

Viewing changes to fpcsrc/packages/extra/univint/DriverFamilyMatching.pas

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-10-09 23:29:00 UTC
  • mfrom: (4.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20081009232900-553f61m37jkp6upv
Tags: 2.2.2-4
[ Torsten Werner ]
* Update ABI version in fpc-depends automatically.
* Remove empty directories from binary package fpc-source.

[ Mazen Neifer ]
* Removed leading path when calling update-alternatives to remove a Linitian
  error.
* Fixed clean target.
* Improved description of packages. (Closes: #498882)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{
2
 
     File:       DriverFamilyMatching.p
3
 
 
4
 
     Contains:   Interfaces for create native drivers NDRV
5
 
 
6
 
     Version:    Universal Interfaces 3.4.2
7
 
 
8
 
     Copyright:  � 1995-2002 by Apple Computer, Inc., all rights reserved.
9
 
 
10
 
     Bugs?:      For bug reports, consult the following page on
11
 
                 the World Wide Web:
12
 
 
13
 
                     http://www.freepascal.org/bugs.html
14
 
 
15
 
}
16
 
 
17
 
 
18
 
{
19
 
    Modified for use with Free Pascal
20
 
    Version 200
21
 
    Please report any bugs to <gpc@microbizz.nl>
22
 
}
23
 
 
24
 
{$mode macpas}
25
 
{$packenum 1}
26
 
{$macro on}
27
 
{$inline on}
28
 
{$CALLING MWPASCAL}
29
 
 
30
 
unit DriverFamilyMatching;
31
 
interface
32
 
{$setc UNIVERSAL_INTERFACES_VERSION := $0342}
33
 
{$setc GAP_INTERFACES_VERSION := $0200}
34
 
 
35
 
{$ifc not defined USE_CFSTR_CONSTANT_MACROS}
36
 
    {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
37
 
{$endc}
38
 
 
39
 
{$ifc defined CPUPOWERPC and defined CPUI386}
40
 
        {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
41
 
{$endc}
42
 
{$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
43
 
        {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
44
 
{$endc}
45
 
 
46
 
{$ifc not defined __ppc__ and defined CPUPOWERPC}
47
 
        {$setc __ppc__ := 1}
48
 
{$elsec}
49
 
        {$setc __ppc__ := 0}
50
 
{$endc}
51
 
{$ifc not defined __i386__ and defined CPUI386}
52
 
        {$setc __i386__ := 1}
53
 
{$elsec}
54
 
        {$setc __i386__ := 0}
55
 
{$endc}
56
 
 
57
 
{$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
58
 
        {$error Conflicting definitions for __ppc__ and __i386__}
59
 
{$endc}
60
 
 
61
 
{$ifc defined __ppc__ and __ppc__}
62
 
        {$setc TARGET_CPU_PPC := TRUE}
63
 
        {$setc TARGET_CPU_X86 := FALSE}
64
 
{$elifc defined __i386__ and __i386__}
65
 
        {$setc TARGET_CPU_PPC := FALSE}
66
 
        {$setc TARGET_CPU_X86 := TRUE}
67
 
{$elsec}
68
 
        {$error Neither __ppc__ nor __i386__ is defined.}
69
 
{$endc}
70
 
{$setc TARGET_CPU_PPC_64 := FALSE}
71
 
 
72
 
{$ifc defined FPC_BIG_ENDIAN}
73
 
        {$setc TARGET_RT_BIG_ENDIAN := TRUE}
74
 
        {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
75
 
{$elifc defined FPC_LITTLE_ENDIAN}
76
 
        {$setc TARGET_RT_BIG_ENDIAN := FALSE}
77
 
        {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
78
 
{$elsec}
79
 
        {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
80
 
{$endc}
81
 
{$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
82
 
{$setc CALL_NOT_IN_CARBON := FALSE}
83
 
{$setc OLDROUTINENAMES := FALSE}
84
 
{$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
85
 
{$setc OPAQUE_UPP_TYPES := TRUE}
86
 
{$setc OTCARBONAPPLICATION := TRUE}
87
 
{$setc OTKERNEL := FALSE}
88
 
{$setc PM_USE_SESSION_APIS := TRUE}
89
 
{$setc TARGET_API_MAC_CARBON := TRUE}
90
 
{$setc TARGET_API_MAC_OS8 := FALSE}
91
 
{$setc TARGET_API_MAC_OSX := TRUE}
92
 
{$setc TARGET_CARBON := TRUE}
93
 
{$setc TARGET_CPU_68K := FALSE}
94
 
{$setc TARGET_CPU_MIPS := FALSE}
95
 
{$setc TARGET_CPU_SPARC := FALSE}
96
 
{$setc TARGET_OS_MAC := TRUE}
97
 
{$setc TARGET_OS_UNIX := FALSE}
98
 
{$setc TARGET_OS_WIN32 := FALSE}
99
 
{$setc TARGET_RT_MAC_68881 := FALSE}
100
 
{$setc TARGET_RT_MAC_CFM := FALSE}
101
 
{$setc TARGET_RT_MAC_MACHO := TRUE}
102
 
{$setc TYPED_FUNCTION_POINTERS := TRUE}
103
 
{$setc TYPE_BOOL := FALSE}
104
 
{$setc TYPE_EXTENDED := FALSE}
105
 
{$setc TYPE_LONGLONG := TRUE}
106
 
uses MacTypes,NameRegistry,CodeFragments;
107
 
 
108
 
 
109
 
{$ALIGN MAC68K}
110
 
 
111
 
{
112
 
  ##############################################
113
 
   Well known properties in the Name Registry
114
 
  ##############################################
115
 
}
116
 
{ CPassThru }
117
 
{
118
 
  #########################################################
119
 
   Descriptor for Drivers and NDRVs
120
 
  #########################################################
121
 
}
122
 
123
 
    QuickTime 3.0: "DriverType" has a name collision with cross-platform code.
124
 
    Use Mac prefix to avoid collision 
125
 
}
126
 
{ Driver Typing Information Used to Match Drivers With Devices }
127
 
 
128
 
type
129
 
        MacDriverTypePtr = ^MacDriverType;
130
 
        MacDriverType = record
131
 
                nameInfoStr:                    Str31;                                                                  {  Driver Name/Info String }
132
 
                version:                                NumVersion;                                                             {  Driver Version Number }
133
 
        end;
134
 
 
135
 
{$ifc TARGET_OS_MAC}
136
 
        DriverType                                                      = MacDriverType;
137
 
        DriverTypePtr                                           = ^DriverType;
138
 
{$endc}  {TARGET_OS_MAC}
139
 
 
140
 
        {        OS Runtime Information Used to Setup and Maintain a Driver's Runtime Environment       }
141
 
        RuntimeOptions                                          = OptionBits;
142
 
 
143
 
const
144
 
        kDriverIsLoadedUponDiscovery = $00000001;                                       {  auto-load driver when discovered }
145
 
        kDriverIsOpenedUponLoad         = $00000002;                                    {  auto-open driver when loaded }
146
 
        kDriverIsUnderExpertControl     = $00000004;                                    {  I/O expert handles loads/opens }
147
 
        kDriverIsConcurrent                     = $00000008;                                    {  supports concurrent requests }
148
 
        kDriverQueuesIOPB                       = $00000010;                                    {  device manager doesn't queue IOPB }
149
 
        kDriverIsLoadedAtBoot           = $00000020;                                    {  Driver is loaded at the boot time  }
150
 
        kDriverIsForVirtualDevice       = $00000040;                                    {  Driver is for a virtual Device  }
151
 
        kDriverSupportDMSuspendAndResume = $00000080;                           {  Driver supports Device Manager Suspend and Resume command  }
152
 
 
153
 
 
154
 
type
155
 
        DriverOSRuntimePtr = ^DriverOSRuntime;
156
 
        DriverOSRuntime = record
157
 
                driverRuntime:                  RuntimeOptions;                                                 {  Options for OS Runtime }
158
 
                driverName:                             Str31;                                                                  {  Driver's name to the OS }
159
 
                driverDescReserved:             array [0..7] of UInt32;                                 {  Reserved area }
160
 
        end;
161
 
 
162
 
        {        OS Service Information Used To Declare What APIs a Driver Supports     }
163
 
        ServiceCount                                            = UInt32;
164
 
        DriverServiceInfoPtr = ^DriverServiceInfo;
165
 
        DriverServiceInfo = record
166
 
                serviceCategory:                OSType;                                                                 {  Service Category Name }
167
 
                serviceType:                    OSType;                                                                 {  Type within Category }
168
 
                serviceVersion:                 NumVersion;                                                             {  Version of service }
169
 
        end;
170
 
 
171
 
        DriverOSServicePtr = ^DriverOSService;
172
 
        DriverOSService = record
173
 
                nServices:                              ServiceCount;                                                   {  Number of Services Supported }
174
 
                service:                                array [0..0] of DriverServiceInfo;              {  The List of Services (at least one) }
175
 
        end;
176
 
 
177
 
        {        Categories     }
178
 
 
179
 
const
180
 
        kServiceCategoryDisplay         = $64697370 (* 'disp' *);                                               {  Display Manager }
181
 
        kServiceCategoryOpenTransport = $6F74616E (* 'otan' *);                                         {  Open Transport }
182
 
        kServiceCategoryBlockStorage = $626C6F6B (* 'blok' *);                                          {  Block Storage }
183
 
        kServiceCategoryNdrvDriver      = $6E647276 (* 'ndrv' *);                                               {  Generic Native Driver }
184
 
        kServiceCategoryScsiSIM         = $73637369 (* 'scsi' *);                                               {  SCSI  }
185
 
        kServiceCategoryFileManager     = $66696C65 (* 'file' *);                                               {  File Manager  }
186
 
        kServiceCategoryIDE                     = $6964652D (* 'ide-' *);                                               {  ide  }
187
 
        kServiceCategoryADB                     = $6164622D (* 'adb-' *);                                               {  adb  }
188
 
        kServiceCategoryPCI                     = $7063692D (* 'pci-' *);                                               {  pci bus  }
189
 
                                                                                                                                {  Nu Bus  }
190
 
        kServiceCategoryDFM                     = $64666D2D (* 'dfm-' *);                                               {  DFM  }
191
 
        kServiceCategoryMotherBoard     = $6D726264 (* 'mrbd' *);                                               {  mother Board  }
192
 
        kServiceCategoryKeyboard        = $6B796264 (* 'kybd' *);                                               {  Keyboard  }
193
 
        kServiceCategoryPointing        = $706F6974 (* 'poit' *);                                               {  Pointing  }
194
 
        kServiceCategoryRTC                     = $7274632D (* 'rtc-' *);                                               {  RTC  }
195
 
        kServiceCategoryNVRAM           = $6E72616D (* 'nram' *);                                               {  NVRAM  }
196
 
        kServiceCategorySound           = $736F6E64 (* 'sond' *);                                               {  Sound (1/3/96 MCS)  }
197
 
        kServiceCategoryPowerMgt        = $70676D74 (* 'pgmt' *);                                               {  Power Management  }
198
 
        kServiceCategoryGeneric         = $67656E72 (* 'genr' *);                                               {  Generic Service Category to receive general Events  }
199
 
 
200
 
        {        Ndrv ServiceCategory Types     }
201
 
        kNdrvTypeIsGeneric                      = $67656E72 (* 'genr' *);                                               {  generic }
202
 
        kNdrvTypeIsVideo                        = $7669646F (* 'vido' *);                                               {  video }
203
 
        kNdrvTypeIsBlockStorage         = $626C6F6B (* 'blok' *);                                               {  block storage }
204
 
        kNdrvTypeIsNetworking           = $6E657477 (* 'netw' *);                                               {  networking }
205
 
        kNdrvTypeIsSerial                       = $7365726C (* 'serl' *);                                               {  serial }
206
 
        kNdrvTypeIsParallel                     = $7061726C (* 'parl' *);                                               {  parallel  }
207
 
        kNdrvTypeIsSound                        = $736F6E64 (* 'sond' *);                                               {  sound }
208
 
        kNdrvTypeIsBusBridge            = $62726467 (* 'brdg' *);
209
 
        kNdrvTypeIsFWConference         = $63727368 (* 'crsh' *);                                               {  FireWire conference camera  }
210
 
        kNdrvTypeIsAVC                          = $61766320 (* 'avc ' *);                                               {  FireWire AVC devices (DV cameras)  }
211
 
 
212
 
 
213
 
type
214
 
        DriverDescVersion                                       = UInt32;
215
 
        DriverDescVersion_GAP_Private_field_type_fix = DriverDescVersion; { used as field type when a record declaration contains a DriverDescVersion field identifier }
216
 
        {         The Driver Description        }
217
 
 
218
 
const
219
 
        kTheDescriptionSignature        = $6D74656A (* 'mtej' *);
220
 
        kDriverDescriptionSignature     = $70646573 (* 'pdes' *);
221
 
 
222
 
        kInitialDriverDescriptor        = 0;
223
 
        kVersionOneDriverDescriptor     = 1;
224
 
 
225
 
 
226
 
type
227
 
        DriverDescriptionPtr = ^DriverDescription;
228
 
        DriverDescription = record
229
 
                driverDescSignature:    OSType;                                                                 {  Signature field of this structure }
230
 
                driverDescVersion:              DriverDescVersion_GAP_Private_field_type_fix; {  Version of this data structure }
231
 
                driverType:                             MacDriverType;                                                  {  Type of Driver }
232
 
                driverOSRuntimeInfo:    DriverOSRuntime;                                                {  OS Runtime Requirements of Driver }
233
 
                driverServices:                 DriverOSService;                                                {  Apple Service API Membership }
234
 
        end;
235
 
 
236
 
 
237
 
{$ALIGN MAC68K}
238
 
 
239
 
 
240
 
end.