Specifications

CONTENTS ii
4 Design and Architecture 21
4.1 Event Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Modular Input Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4 Abstract Output Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5 Implementation 27
5.1 Common Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
D-BUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Programming Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Logging System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Data Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Input Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.4 Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Module Loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Configuration File Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Command Line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
D-BUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Module Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Event Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.5 Event Interface Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.6 ACPI Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.7 Toshiba Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6 Requirements Verification 56
6.1 Functional Achievements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.3 Quality and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7 Open Source Development Methodology 63
7.1 Licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.2 Tools and Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.3 Collaborative Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8 Conclusion 68
8.1 Achievements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A Utilized Free and Open Source Software 70
A.1 Typesetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A.2 Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A.3 Statistical Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A.4 Survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71