| |
Preface | xi |
1. PC Cards and Drivers | 1 |
| ...What Is PCMCIA? | 1 |
| ......Terminology: PCMCIA or PC Card | 1 |
| ......PCMCIA Background | 2 |
| ...PCMCIA in the Solaris Environment | 3 |
| ......Card Services Interface | 3 |
| ......Card Services Binding | 3 |
| ...PC Card Device Drivers | 4 |
| ...Loading a PC Card Driver | 5 |
| ...Sample PC Card Drivers in Solaris | 5 |
2. PCMCIA System Architecture | 7 |
| ...Solaris PCMCIA System Architecture | 7 |
| ......PC Card Driver | 7 |
| ......Card Services | 9 |
| |
| ......PCMCIA Bus Nexus Adapter Drivers and Socket Services | 9 |
| ......PCMCIA Event Management (User) Daemon | 12 |
3. Solaris Card Services | 13 |
| ...Solaris Card Services Interface Overview | 13 |
| ...Card Services Functionality | 15 |
| ......Driver Registration | 15 |
| ......PC Card Identification and Configuration | 15 |
| ......Event Notification | 16 |
| ......Resource Allocation | 16 |
| ...Solaris Modifications to the Card Services Interface | 17 |
| ...Solaris Card Services Interfaces | 18 |
| ......PC Card Registration and Information Interfaces | 19 |
| ......PC Card Configuration Interfaces | 19 |
| ......System Resource Interfaces | 20 |
| ......Additional Card Services Functions Provided in the Solaris |
| ........System | 21 |
4. Card Information Structure (CIS) | 23 |
| ...Card Information Structure Overview | 23 |
| ......Self-Identifying PC Cards | 24 |
| ......PC Card Attribute and Common Memory | 24 |
| ......Metaformat | 25 |
| ...Tuple Parsing | 26 |
| ......Solaris Card Services CIS Parser | 26 |
| ......Tuple Parsing Functions | 27 |
| |
| ......Example Driver Alias Construction | 29 |
| ......General Rules for PC Card-Driver Bindings | 32 |
| ......Tuple Utility Functions | 34 |
5. PC Card Driver Autoconfiguration | 37 |
| ...PC Card Driver Autoconfiguration Overview | 37 |
| ...Autoconfiguration Entry Points | 38 |
| ......attach(9E) | 38 |
| ......getinfo(9E) | 44 |
| ......detach(9E) | 45 |
| ...PC Card Power Management Suspend and Resume | 47 |
6. PC Card Event Management | 49 |
| ...PC Card Event Management Overview | 49 |
| ......Event Types | 50 |
| ......Event Priorities | 51 |
| ...Event Handler Entry Point | 52 |
| ......csx_event_handler(9E) | 52 |
| ...Event Handling Examples | 54 |
| ......Card Insertion | 54 |
| ......Card Ready | 55 |
| ......Card-Ready Timeout | 56 |
| ......Card Removal | 57 |
7. PC Card Configuration | 63 |
| ...PC Card Configuration Overview | 63 |
| ...Selecting a Configuration Option | 64 |
| |
| ......Processing the CIS Tuples | 65 |
| ...Card Configuration for I/O Cards | 66 |
| ......Requesting I/O Resources | 67 |
| ......Installing an Interrupt Handler | 68 |
| ......Configuring the PC Card and Socket | 73 |
| ......Releasing I/O and IRQ Resources | 74 |
| ......I/O Card Configuration Example | 74 |
| ...Card Configuration for Memory Cards | 77 |
| ......Requesting System Address Space | 77 |
| ......Mapping PC Card Memory to System Address Space | 79 |
| ......Modifying a Memory Address Window | 80 |
| ......Releasing Memory Resources | 80 |
| ......Memory Card Configuration Example | 80 |
8. Portable PC Card Drivers | 83 |
| ...Portability Issues | 83 |
| ......Byte Ordering | 84 |
| ......Memory Alignment | 84 |
| ......Accessing Memory Windows | 84 |
| ......Accessing I/O Space | 85 |
| ......Constraints on Use of I/O and Memory Windows | 86 |
| ......Interrupts | 86 |
9. PCMCIA Parallel Port Driver | 87 |
| ...Include Files and Header Files for Solaris Parallel Port Driver | 88 |
| ...Local Driver Data and System Routines and Variables | 89 |
| |
| ...STREAMS Structures | 90 |
| ...Autoconfiguration and Modlinkage Structures | 91 |
| ...Module Initialization Functions | 93 |
| ......_init() | 93 |
| ......_info() | 94 |
| ......_fini() | 94 |
| ...Autoconfiguration Routines | 95 |
| ......pcepp_getinfo() | 95 |
| ......pcepp_attach() | 96 |
| ......pcepp_detach | 101 |
| ...Card Services Routines | 104 |
| ......pcepp_event() | 104 |
| ......pcepp_card_ready | 108 |
| ......pcepp_card_insertion | 110 |
| ......pcepp_card_configuration | 111 |
| ......pcepp_card_ready_timeout() | 119 |
| ......pcepp_card_removal() | 119 |
| ...CIS Configuration Information Routines | 125 |
| ......pcepp_parse_cis() | 125 |
| ......pcepp_display_cftable_list() | 137 |
| ......pcepp_display_card_config() | 138 |
| ......pcepp_destroy_cftable_list() | 139 |
| ......pcepp_set_cftable_desireability() | 139 |
| ......pcepp_sort_cftable_list() | 140 |