EFI 1.10 Driver Writer’s Guide Draft for Review
xvi July 2004 Version 0.9
Example 4-27. Install Configuration Table........................................................................ 132
Example 4-28. Computing 32-bit CRC Values.................................................................. 132
Example 4-29. Validating 32-bit CRC Values ................................................................... 133
Example 4-30. Stall Loop.................................................................................................. 138
Example 4-31. Stall Service.............................................................................................. 139
Example 4-32. Starting a Periodic Timer .......................................................................... 140
Example 4-33. Arming a One-Shot Timer......................................................................... 141
Example 4-34. Stopping a Timer ...................................................................................... 141
Example 4-35. Time and Date Services ........................................................................... 142
Example 5-1. PCI Bus Walk Example ............................................................................ 154
Example 7-1. Generic Entry Point ..................................................................................177
Example 7-2. Driver Library Functions ...........................................................................178
Example 7-3. Simple EFI Driver Model Driver Entry Point.............................................. 179
Example 7-4. Complex EFI Driver Model Driver Entry Point .......................................... 180
Example 7-5. Multiple Driver Binding Protocols.............................................................. 182
Example 7-6. Add the Unload Feature ...........................................................................185
Example 7-7. Unload Function .......................................................................................186
Example 7-8. Adding the Exit Boot Services Feature..................................................... 188
Example 7-9. Add the Unload and Exit Boot Services Event Feature ............................ 189
Example 7-10. Initializing Driver Entry Point..................................................................... 190
Example 7-11. Service Driver Entry Point – Image Handle .............................................. 191
Example 7-12. Service Driver Entry Point – New Handle.................................................191
Example 7-13. Single PCI Root Bridge Driver Entry Point ............................................... 193
Example 7-14. Multiple PCI Root Bridge Driver Entry Point ............................................. 196
Example 7-15. Runtime Driver Entry Point ....................................................................... 198
Example 7-16. Runtime Driver Entry Point with Unload Feature......................................200
Example 8-1. Containing Record Macro Definitions ....................................................... 202
Example 8-2. Private Context Data Structure Template................................................. 205
Example 8-3. Simple Private Context Data Structure..................................................... 206
Example 8-4. Complex Private Context Data Structure.................................................. 207
Example 8-5. Allocation of a Private Context Data Structure ......................................... 207
Example 8-6. Library Allocation of Private Context Data Structure ................................ 208
Example 8-7. Disk I/O Allocation of Private Context Data Structure............................... 208
Example 8-8. Freeing a Private Context Data Structure................................................. 209
Example 8-9. Disk I/O Freeing of a Private Context Data Structure...............................210
Example 8-10. Retrieving the Private Context Data Structure.......................................... 211
Example 8-11. Retrieving the Disk I/O Private Context Data Structure............................ 211
Example 9-1. Driver Binding Protocol Declaration.......................................................... 214
Example 9-2. Driver Binding Protocol Template............................................................. 215
Example 10-1. Driver Name .............................................................................................220
Example 10-2. Device Driver with Static Controller Names.............................................. 221
Example 10-3. Private Context Data Structure with a Dynamic Controller Name Table .. 222
Example 10-4. Adding a Controller Name to a Dynamic Controller Name Table ............. 223
Example 10-5. Freeing a Dynamic Controller Name Table .............................................. 223
Example 10-6. Device Driver with Dynamic Controller Names......................................... 225
Example 10-7. Bus Driver with Static Controller and Child Names .................................. 227
Example 10-8. Bus Driver with Dynamic Child Names.....................................................229
Example 11-1. Driver Configuration Protocol Template ................................................... 233