l4re source

Upload: petar-stupar

Post on 20-Feb-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/24/2019 l4re Source

    1/1141

    L4Re L4 Runtime Environment

  • 7/24/2019 l4re Source

    2/1141

  • 7/24/2019 l4re Source

    3/1141

    Contents

    1 Fiasco.OC & L4 Runtime Environment (L4Re) 1

    1.1 Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 General System Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 The Fiasco.OC Microkernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.3.1 Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.3.2 Kernel Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 L4 Runtime Environment (L4Re). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.5 Introduction to L4Res concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6 Memory management - Data Spaces and the Region Map . . . . . . . . . . . . . . . . . . 4

    1.6.1 User-level paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6.2 Data spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6.3 Virtual Memory Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6.4 Memory Allocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.7 Capabilities and Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.8 Initial Environment and Application Bootstrapping . . . . . . . . . . . . . . . . . . . . . 6

    1.8.1 Configuring an application before startup . . . . . . . . . . . . . . . . . . . . . . 71.8.2 Connecting clients and servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    1.9 Program Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.10 Initial Memory Allocator and Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.11 Application and Server Building Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    1.11.1 Creating Additional Application Threads . . . . . . . . . . . . . . . . . . . . . . 91.11.2 Providing a Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2 Getting Started 11

    3 L4Re Servers 13

    3.1 Sigma0, the Root Pager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Moe, the Root Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.3 Ned, the Default Init Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.4 Io, the Platform and Device Resource Manager . . . . . . . . . . . . . . . . . . . . . . . 14

    3.5 Mag, the GUI Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.6 fb-drv, the Low-Level Graphics Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.7 Rtc, the Real-Time Clock Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.8 Moe, the Root-Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    3.8.1 Memory Allocator, Generic Factory . . . . . . . . . . . . . . . . . . . . . . . . . 153.8.2 Name-Space Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.8.3 Boot FS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.8.4 Log Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.8.5 Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    3.8.5.1 --debug= . . . . . . . . . . . . . . . . . . . . . . . . . . 163.8.5.2 --init= . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.8.5.3 --l4re-dbg= . . . . . . . . . . . . . . . . . . . . . . . . 16

    3.8.5.4 --ldr-flags= . . . . . . . . . . . . . . . . . . . . . . . . 16

  • 7/24/2019 l4re Source

    4/1141

    ii CONTENTS

    3.9 Ned, the Init Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.9.1 Lua Bindings for L4Re . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3.9.1.1 Capabilities in Lua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3.9.1.2 Access to L4Re::Env Capabilities . . . . . . . . . . . . . . . . . . . . . 173.9.1.3 Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.9.1.4 Application Startup Details . . . . . . . . . . . . . . . . . . . . . . . . 18

    3.10 Io, the Io Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    4 Pthread Support 23

    5 Module Index 25

    5.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    6 Namespace Index 29

    6.1 Namespace List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    7 Data Structure Index 317.1 Class Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    8 Data Structure Index 37

    8.1 Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    9 Module Documentation 45

    9.1 C++ Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    9.2 Small C++ Template Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479.2.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489.2.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    9.2.2.1 min . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489.2.2.2 max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489.2.2.3 operator new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    9.3 Client/Server IPC Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    9.4 IPC Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509.4.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509.4.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    9.4.2.1 operator>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509.4.2.2 operator>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519.4.2.3 operator>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519.4.2.4 operator>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529.4.2.5 operator>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    9.4.2.6 operator

  • 7/24/2019 l4re Source

    5/1141

    CONTENTS iii

    9.7 L4Re Util C++ Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    9.8 Dataspace interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    9.8.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629.8.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.8.2.1 l4re_ds_clear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.8.2.2 l4re_ds_allocate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.8.2.3 l4re_ds_copy_in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.8.2.4 l4re_ds_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.8.2.5 l4re_ds_flags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639.8.2.6 l4re_ds_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649.8.2.7 l4re_ds_phys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    9.9 Debug interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659.9.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    9.9.2.1 l4re_debug_obj_debug . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    9.10 Event interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669.10.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669.10.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

    9.10.2.1 l4re_event_get_buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . 669.10.2.2 l4re_event_get_num_streams . . . . . . . . . . . . . . . . . . . . . . . 679.10.2.3 l4re_event_get_stream_info . . . . . . . . . . . . . . . . . . . . . . . . 679.10.2.4 l4re_event_get_stream_info_for_id . . . . . . . . . . . . . . . . . . . . 679.10.2.5 l4re_event_get_axis_info . . . . . . . . . . . . . . . . . . . . . . . . . 68

    9.11 Log interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699.11.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    9.11.2.1 l4re_log_print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    9.11.2.2 l4re_log_printn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709.11.2.3 l4re_log_print_srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709.11.2.4 l4re_log_printn_srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    9.12 Memory allocator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.12.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.12.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    9.12.2.1 l4re_ma_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.12.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    9.12.3.1 l4re_ma_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749.12.3.2 l4re_ma_alloc_align . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759.12.3.3 l4re_ma_free. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759.12.3.4 l4re_ma_alloc_align_srv . . . . . . . . . . . . . . . . . . . . . . . . . 769.12.3.5 l4re_ma_free_srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    9.13 Namespace interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789.13.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789.13.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    9.13.2.1 l4re_ns_register_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . 789.13.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    9.13.3.1 l4re_ns_query_to_srv . . . . . . . . . . . . . . . . . . . . . . . . . . . 789.13.3.2 l4re_ns_register_obj_srv . . . . . . . . . . . . . . . . . . . . . . . . . 79

    9.14 Region map interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809.14.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819.14.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    9.14.2.1 l4re_rm_flags_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819.14.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    9.14.3.1 l4re_rm_reserve_area . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    6/1141

    iv CONTENTS

    9.14.3.2 l4re_rm_free_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829.14.3.3 l4re_rm_attach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829.14.3.4 l4re_rm_detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    9.14.3.5 l4re_rm_detach_ds . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849.14.3.6 l4re_rm_detach_unmap . . . . . . . . . . . . . . . . . . . . . . . . . . 859.14.3.7 l4re_rm_detach_ds_unmap . . . . . . . . . . . . . . . . . . . . . . . . 869.14.3.8 l4re_rm_find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879.14.3.9 l4re_rm_show_lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879.14.3.10 l4re_rm_reserve_area_srv . . . . . . . . . . . . . . . . . . . . . . . . . 889.14.3.11 l4re_rm_free_area_srv. . . . . . . . . . . . . . . . . . . . . . . . . . . 889.14.3.12 l4re_rm_attach_srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899.14.3.13 l4re_rm_detach_srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899.14.3.14 l4re_rm_find_srv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    9.15 Capability allocator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.15.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.15.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    9.15.2.1 l4re_util_cap_last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.16 Kumem allocator utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    9.16.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929.16.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    9.16.2.1 l4re_util_kumem_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . 929.17 Video API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    9.17.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959.17.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    9.17.2.1 l4re_video_view_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959.17.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    9.17.3.1 l4re_video_goos_info_flags_t . . . . . . . . . . . . . . . . . . . . . . . 959.17.3.2 l4re_video_view_info_flags_t . . . . . . . . . . . . . . . . . . . . . . . 95

    9.17.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969.17.4.1 l4re_video_goos_info . . . . . . . . . . . . . . . . . . . . . . . . . . . 969.17.4.2 l4re_video_goos_refresh . . . . . . . . . . . . . . . . . . . . . . . . . 969.17.4.3 l4re_video_goos_create_buffer . . . . . . . . . . . . . . . . . . . . . . 969.17.4.4 l4re_video_goos_delete_buffer . . . . . . . . . . . . . . . . . . . . . . 979.17.4.5 l4re_video_goos_get_static_buffer . . . . . . . . . . . . . . . . . . . . 979.17.4.6 l4re_video_goos_create_view . . . . . . . . . . . . . . . . . . . . . . . 979.17.4.7 l4re_video_goos_delete_view . . . . . . . . . . . . . . . . . . . . . . . 979.17.4.8 l4re_video_goos_get_view . . . . . . . . . . . . . . . . . . . . . . . . 989.17.4.9 l4re_video_view_refresh . . . . . . . . . . . . . . . . . . . . . . . . . 989.17.4.10 l4re_video_view_get_info. . . . . . . . . . . . . . . . . . . . . . . . . 989.17.4.11 l4re_video_view_set_info . . . . . . . . . . . . . . . . . . . . . . . . . 989.17.4.12 l4re_video_view_set_viewport . . . . . . . . . . . . . . . . . . . . . . 999.17.4.13 l4re_video_view_stack . . . . . . . . . . . . . . . . . . . . . . . . . . 99

    9.18 Console API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009.18.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

    9.19 Data-Space API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019.19.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    9.20 Debugging API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029.20.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    9.21 L4Re ELF Auxiliary Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039.21.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049.21.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 104

    9.21.2.1 L4RE_ELF_AUX_ELEM. . . . . . . . . . . . . . . . . . . . . . . . . 1049.21.2.2 L4RE_ELF_AUX_ELEM_T . . . . . . . . . . . . . . . . . . . . . . . 104

    9.21.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 104

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    7/1141

    CONTENTS v

    9.21.3.1 anonymous enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049.22 Initial Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    9.22.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

    9.22.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079.22.2.1 l4re_env_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079.22.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

    9.22.3.1 l4re_env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079.22.3.2 l4re_kip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089.22.3.3 l4re_env_get_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089.22.3.4 l4re_env_get_cap_e . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099.22.3.5 l4re_env_get_cap_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

    9.23 Event API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129.23.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    9.24 Auxiliary data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139.24.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    9.25 Logging interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

    9.25.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149.26 Memory allocator API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

    9.26.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159.27 Name-space API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    9.27.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169.28 Parent API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    9.28.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1179.29 L4Re Protocol identifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    9.29.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189.29.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    9.29.2.1 Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199.30 Region map API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    9.30.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209.31 L4Re Capability API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219.31.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219.31.2 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

    9.31.2.1 cap_alloc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219.32 Kumem utiltities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    9.32.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239.32.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    9.32.2.1 kumem_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239.33 Goos video API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    9.33.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249.34 L4Re C Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

    9.34.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269.35 L4Re Util C Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279.36 Base API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

    9.36.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309.37 IPC-Gate API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

    9.37.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.37.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    9.37.2.1 L4_ipc_gate_ops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329.37.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    9.37.3.1 l4_ipc_gate_bind_thread . . . . . . . . . . . . . . . . . . . . . . . . . 1329.37.3.2 l4_ipc_gate_get_infos . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

    9.38 Basic Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349.38.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    9.38.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    8/1141

    vi CONTENTS

    9.38.2.1 L4_DECLARE_CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . 1359.38.2.2 L4_NOTHROW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359.38.2.3 L4_EXPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

    9.38.2.4 L4_HIDDEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369.39 Fiasco extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379.39.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399.39.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    9.39.2.1 fiasco_tbuf_get_status . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399.39.2.2 fiasco_tbuf_get_status_phys . . . . . . . . . . . . . . . . . . . . . . . . 1399.39.2.3 fiasco_tbuf_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409.39.2.4 fiasco_tbuf_log_3val. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409.39.2.5 fiasco_tbuf_log_binary . . . . . . . . . . . . . . . . . . . . . . . . . . 1419.39.2.6 fiasco_tbuf_clear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429.39.2.7 fiasco_tbuf_dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429.39.2.8 fiasco_watchdog_takeover. . . . . . . . . . . . . . . . . . . . . . . . . 1429.39.2.9 fiasco_watchdog_touch . . . . . . . . . . . . . . . . . . . . . . . . . . 142

    9.39.2.10 fiasco_ldt_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439.39.2.11 fiasco_gdt_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439.39.2.12 fiasco_gdt_get_entry_offset . . . . . . . . . . . . . . . . . . . . . . . . 144

    9.40 Fiasco real time scheduling extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459.40.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459.40.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

    9.40.2.1 slice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1469.40.2.2 slice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1469.40.2.3 l4_rt_begin_strictly_periodic . . . . . . . . . . . . . . . . . . . . . . . 1479.40.2.4 l4_rt_begin_minimal_periodic . . . . . . . . . . . . . . . . . . . . . . 1479.40.2.5 l4_rt_end_periodic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489.40.2.6 l4_rt_remove. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

    9.40.2.7 l4_rt_set_period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.40.2.8 l4_rt_next_reservation . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.40.2.9 l4_rt_next_period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.40.2.10 l4_preemption_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.40.2.11 l4_next_period_id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.40.2.12 l4_rt_generic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

    9.41 Flex pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.41.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.41.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 156

    9.41.2.1 l4_fpage_consts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.41.2.2 anonymous enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.41.2.3 L4_fpage_rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.41.2.4 L4_cap_fpage_rights . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.41.2.5 l4_fpage_cacheability_opt_t. . . . . . . . . . . . . . . . . . . . . . . . 1579.41.2.6 anonymous enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

    9.41.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579.41.3.1 l4_fpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579.41.3.2 l4_fpage_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579.41.3.3 l4_fpage_invalid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589.41.3.4 l4_iofpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589.41.3.5 l4_obj_fpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589.41.3.6 l4_is_fpage_writable . . . . . . . . . . . . . . . . . . . . . . . . . . . 1599.41.3.7 l4_fpage_rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1599.41.3.8 l4_fpage_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1609.41.3.9 l4_fpage_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

    9.41.3.10 l4_fpage_page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    9/1141

    CONTENTS vii

    9.41.3.11 l4_fpage_set_rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619.41.3.12 l4_fpage_contains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619.41.3.13 l4_fpage_max_order. . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

    9.42 Message Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649.42.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649.42.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 164

    9.42.2.1 l4_msg_item_consts_t . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649.42.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

    9.42.3.1 l4_map_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659.42.3.2 l4_map_obj_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

    9.43 Timeouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1679.43.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689.43.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 168

    9.43.2.1 L4_IPC_TIMEOUT_0 . . . . . . . . . . . . . . . . . . . . . . . . . . 1689.43.3 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    9.43.3.1 l4_timeout_s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    9.43.3.2 l4_timeout_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699.43.4 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    9.43.4.1 l4_timeout_abs_validity . . . . . . . . . . . . . . . . . . . . . . . . . . 1699.43.5 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    9.43.5.1 l4_timeout_rel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699.43.5.2 l4_ipc_timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699.43.5.3 l4_timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709.43.5.4 l4_snd_timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709.43.5.5 l4_rcv_timeout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709.43.5.6 l4_timeout_rel_get. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719.43.5.7 l4_timeout_is_absolute . . . . . . . . . . . . . . . . . . . . . . . . . . 1719.43.5.8 l4_timeout_get. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

    9.43.5.9 l4_timeout_abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1739.43.5.10 l4_utcb_mr64_idx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1739.44 VM API for SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

    9.44.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1749.45 VM API for VMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

    9.45.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1769.45.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 176

    9.45.2.1 L4_vm_vmx_caps_regs . . . . . . . . . . . . . . . . . . . . . . . . . . 1769.45.2.2 L4_vm_vmx_dfl1_regs . . . . . . . . . . . . . . . . . . . . . . . . . . 1779.45.2.3 anonymous enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

    9.45.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1779.45.3.1 l4_vm_vmx_get_caps . . . . . . . . . . . . . . . . . . . . . . . . . . . 1779.45.3.2 l4_vm_vmx_get_caps_default1 . . . . . . . . . . . . . . . . . . . . . . 1789.45.3.3 l4_vm_vmx_field_len . . . . . . . . . . . . . . . . . . . . . . . . . . . 1789.45.3.4 l4_vm_vmx_field_order . . . . . . . . . . . . . . . . . . . . . . . . . . 1799.45.3.5 l4_vm_vmx_clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1799.45.3.6 l4_vm_vmx_ptr_load . . . . . . . . . . . . . . . . . . . . . . . . . . . 1809.45.3.7 l4_vm_vmx_get_cr2_index . . . . . . . . . . . . . . . . . . . . . . . . 1809.45.3.8 l4_vm_vmx_read_nat . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819.45.3.9 l4_vm_vmx_read_16 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819.45.3.10 l4_vm_vmx_read_32 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1829.45.3.11 l4_vm_vmx_read_64 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1829.45.3.12 L4_vm_vmx_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1839.45.3.13 l4_vm_vmx_write_nat. . . . . . . . . . . . . . . . . . . . . . . . . . . 1849.45.3.14 l4_vm_vmx_write_16 . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

    9.45.3.15 l4_vm_vmx_write_32 . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    10/1141

    viii CONTENTS

    9.45.3.16 l4_vm_vmx_write_64 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1859.45.3.17 l4_vm_vmx_write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

    9.46 Cache Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

    9.46.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1889.46.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1889.46.2.1 l4_cache_clean_data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1889.46.2.2 l4_cache_flush_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1899.46.2.3 l4_cache_inv_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1899.46.2.4 l4_cache_coherent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1899.46.2.5 l4_cache_dma_coherent . . . . . . . . . . . . . . . . . . . . . . . . . . 189

    9.47 Memory related . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1909.47.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1919.47.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    9.47.2.1 L4_PAGEMASK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1919.47.2.2 L4_LOG2_PAGESIZE . . . . . . . . . . . . . . . . . . . . . . . . . . 1919.47.2.3 L4_SUPERPAGESIZE . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    9.47.2.4 L4_SUPERPAGEMASK . . . . . . . . . . . . . . . . . . . . . . . . . 1919.47.2.5 L4_LOG2_SUPERPAGESIZE . . . . . . . . . . . . . . . . . . . . . . 192

    9.47.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 1929.47.3.1 l4_addr_consts_t. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

    9.47.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1929.47.4.1 l4_trunc_page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1929.47.4.2 l4_trunc_size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.47.4.3 l4_round_page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.47.4.4 l4_round_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

    9.48 Kernel Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1959.48.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1969.48.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 196

    9.48.2.1 enter_kdebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1969.48.2.2 asm_enter_kdebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1979.48.2.3 kd_display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1979.48.2.4 ko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1979.48.2.5 enter_kdebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1989.48.2.6 asm_enter_kdebug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1989.48.2.7 kd_display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1989.48.2.8 ko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

    9.48.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1999.48.3.1 l4_debugger_set_object_name . . . . . . . . . . . . . . . . . . . . . . 1999.48.3.2 l4_debugger_global_id . . . . . . . . . . . . . . . . . . . . . . . . . . 2009.48.3.3 l4_debugger_kobj_to_id. . . . . . . . . . . . . . . . . . . . . . . . . . 2009.48.3.4 outchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2019.48.3.5 outstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2019.48.3.6 outnstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2019.48.3.7 outhex32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.48.3.8 outhex20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.48.3.9 outhex16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.48.3.10 outhex12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.48.3.11 outhex8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.48.3.12 outdec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.48.3.13 l4kd_inchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

    9.49 Error codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2049.49.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2049.49.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 204

    9.49.2.1 l4_error_code_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    11/1141

    CONTENTS ix

    9.50 Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2069.50.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2069.50.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

    9.50.2.1 l4_factory_create_task. . . . . . . . . . . . . . . . . . . . . . . . . . . 2079.50.2.2 l4_factory_create_thread . . . . . . . . . . . . . . . . . . . . . . . . . 2079.50.2.3 l4_factory_create_factory . . . . . . . . . . . . . . . . . . . . . . . . . 2089.50.2.4 l4_factory_create_gate. . . . . . . . . . . . . . . . . . . . . . . . . . . 2099.50.2.5 l4_factory_create_irq . . . . . . . . . . . . . . . . . . . . . . . . . . . 2109.50.2.6 l4_factory_create_vm . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

    9.51 Virtual Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2129.51.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

    9.52 Interrupt controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2139.52.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2149.52.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

    9.52.2.1 l4_icu_info_t. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2149.52.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 214

    9.52.3.1 L4_icu_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2149.52.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

    9.52.4.1 l4_icu_bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2149.52.4.2 l4_icu_unbind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2159.52.4.3 l4_icu_set_mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2169.52.4.4 l4_icu_info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2169.52.4.5 l4_icu_msi_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2179.52.4.6 l4_icu_unmask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2189.52.4.7 l4_icu_mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

    9.53 Object Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2209.53.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2219.53.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 222

    9.53.2.1 l4_syscall_flags_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229.53.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229.53.3.1 l4_ipc_send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229.53.3.2 l4_ipc_wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2239.53.3.3 l4_ipc_receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2259.53.3.4 l4_ipc_call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2269.53.3.5 l4_ipc_reply_and_wait . . . . . . . . . . . . . . . . . . . . . . . . . . 2279.53.3.6 l4_ipc_send_and_wait . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299.53.3.7 l4_ipc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2299.53.3.8 l4_ipc_sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2319.53.3.9 l4_sndfpage_add. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

    9.54 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339.54.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2339.54.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 234

    9.54.2.1 l4_ipc_tcr_error_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349.54.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

    9.54.3.1 l4_ipc_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349.54.3.2 l4_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359.54.3.3 l4_ipc_is_snd_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2379.54.3.4 l4_ipc_is_rcv_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2389.54.3.5 l4_ipc_error_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

    9.55 Realtime API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2399.56 IRQs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

    9.56.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2419.56.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 241

    9.56.2.1 L4_irq_flow_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    12/1141

    x CONTENTS

    9.56.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2419.56.3.1 l4_irq_attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2419.56.3.2 l4_irq_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

    9.56.3.3 l4_irq_detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439.56.3.4 l4_irq_trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449.56.3.5 l4_irq_receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2449.56.3.6 l4_irq_wait. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2459.56.3.7 l4_irq_unmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

    9.57 Kernel Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479.57.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489.57.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 248

    9.57.2.1 L4_DISABLE_COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489.57.2.2 L4_KOBJECT_DISABLE_COPY . . . . . . . . . . . . . . . . . . . . 2499.57.2.3 L4_KOBJECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

    9.58 Kernel Interface Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2509.58.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

    9.58.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519.58.2.1 l4_kip_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519.58.2.2 l4_kip_version_string . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519.58.2.3 l4_kernel_info_version_offset. . . . . . . . . . . . . . . . . . . . . . . 252

    9.59 Memory descriptors (C version) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2539.59.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549.59.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

    9.59.2.1 l4_kernel_info_mem_desc_t . . . . . . . . . . . . . . . . . . . . . . . 2549.59.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 254

    9.59.3.1 l4_mem_type_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549.59.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

    9.59.4.1 l4_kernel_info_get_num_mem_descs . . . . . . . . . . . . . . . . . . . 255

    9.59.4.2 l4_kernel_info_set_mem_desc . . . . . . . . . . . . . . . . . . . . . . 2559.59.4.3 l4_kernel_info_get_mem_desc_start . . . . . . . . . . . . . . . . . . . 2559.59.4.4 l4_kernel_info_get_mem_desc_end. . . . . . . . . . . . . . . . . . . . 2559.59.4.5 l4_kernel_info_get_mem_desc_type . . . . . . . . . . . . . . . . . . . 2569.59.4.6 l4_kernel_info_get_mem_desc_subtype . . . . . . . . . . . . . . . . . 2569.59.4.7 l4_kernel_info_get_mem_desc_is_virtual . . . . . . . . . . . . . . . . 256

    9.60 Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579.60.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2589.60.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 258

    9.60.2.1 L4_scheduler_ops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2589.60.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

    9.60.3.1 l4_sched_cpu_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2589.60.3.2 l4_scheduler_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2589.60.3.3 l4_scheduler_run_thread . . . . . . . . . . . . . . . . . . . . . . . . . 2599.60.3.4 l4_scheduler_idle_time . . . . . . . . . . . . . . . . . . . . . . . . . . 2609.60.3.5 l4_scheduler_is_online . . . . . . . . . . . . . . . . . . . . . . . . . . 261

    9.61 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629.61.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2639.61.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 263

    9.61.2.1 l4_unmap_flags_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2639.61.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

    9.61.3.1 l4_task_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2639.61.3.2 l4_task_unmap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649.61.3.3 l4_task_unmap_batch . . . . . . . . . . . . . . . . . . . . . . . . . . . 2659.61.3.4 l4_task_delete_obj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

    9.61.3.5 l4_task_release_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    13/1141

    CONTENTS xi

    9.61.3.6 l4_task_cap_valid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2689.61.3.7 l4_task_cap_has_child. . . . . . . . . . . . . . . . . . . . . . . . . . . 2689.61.3.8 l4_task_cap_equal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

    9.61.3.9 l4_task_add_ku_mem . . . . . . . . . . . . . . . . . . . . . . . . . . . 2709.62 Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2719.62.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2739.62.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 273

    9.62.2.1 L4_thread_ops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2739.62.2.2 L4_thread_control_flags. . . . . . . . . . . . . . . . . . . . . . . . . . 2749.62.2.3 L4_thread_control_mr_indices . . . . . . . . . . . . . . . . . . . . . . 2749.62.2.4 L4_thread_ex_regs_flags . . . . . . . . . . . . . . . . . . . . . . . . . 274

    9.62.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2759.62.3.1 l4_thread_ex_regs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2759.62.3.2 l4_thread_ex_regs_ret . . . . . . . . . . . . . . . . . . . . . . . . . . . 2759.62.3.3 l4_thread_yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2769.62.3.4 l4_thread_switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

    9.62.3.5 l4_thread_stats_time. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2789.62.3.6 l4_thread_vcpu_resume_start . . . . . . . . . . . . . . . . . . . . . . . 2789.62.3.7 l4_thread_vcpu_resume_commit . . . . . . . . . . . . . . . . . . . . . 2799.62.3.8 l4_thread_vcpu_control . . . . . . . . . . . . . . . . . . . . . . . . . . 2799.62.3.9 l4_thread_vcpu_control_ext . . . . . . . . . . . . . . . . . . . . . . . . 2809.62.3.10 l4_thread_register_del_irq. . . . . . . . . . . . . . . . . . . . . . . . . 2819.62.3.11 l4_thread_modify_sender_start . . . . . . . . . . . . . . . . . . . . . . 2819.62.3.12 l4_thread_modify_sender_add . . . . . . . . . . . . . . . . . . . . . . 2829.62.3.13 l4_thread_modify_sender_commit . . . . . . . . . . . . . . . . . . . . 283

    9.63 Thread control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2849.63.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2849.63.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

    9.63.2.1 l4_thread_control_start . . . . . . . . . . . . . . . . . . . . . . . . . . 2859.63.2.2 l4_thread_control_pager. . . . . . . . . . . . . . . . . . . . . . . . . . 2859.63.2.3 l4_thread_control_exc_handler . . . . . . . . . . . . . . . . . . . . . . 2869.63.2.4 l4_thread_control_bind . . . . . . . . . . . . . . . . . . . . . . . . . . 2879.63.2.5 l4_thread_control_alien . . . . . . . . . . . . . . . . . . . . . . . . . . 2889.63.2.6 l4_thread_control_ux_host_syscall . . . . . . . . . . . . . . . . . . . . 2899.63.2.7 l4_thread_control_commit . . . . . . . . . . . . . . . . . . . . . . . . 289

    9.64 Message Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2919.64.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2929.64.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    9.64.2.1 l4_msgtag_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2929.64.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    9.64.3.1 l4_msgtag_protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2929.64.3.2 l4_msgtag_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    9.64.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2949.64.4.1 l4_msgtag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2949.64.4.2 l4_msgtag_label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2959.64.4.3 l4_msgtag_words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2969.64.4.4 l4_msgtag_items. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2969.64.4.5 l4_msgtag_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2979.64.4.6 l4_msgtag_has_error . . . . . . . . . . . . . . . . . . . . . . . . . . . 2979.64.4.7 l4_msgtag_is_page_fault . . . . . . . . . . . . . . . . . . . . . . . . . 2989.64.4.8 l4_msgtag_is_preemption . . . . . . . . . . . . . . . . . . . . . . . . . 2989.64.4.9 l4_msgtag_is_sys_exception . . . . . . . . . . . . . . . . . . . . . . . 2999.64.4.10 l4_msgtag_is_exception . . . . . . . . . . . . . . . . . . . . . . . . . . 299

    9.64.4.11 l4_msgtag_is_sigma0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    14/1141

    xii CONTENTS

    9.64.4.12 l4_msgtag_is_io_page_fault. . . . . . . . . . . . . . . . . . . . . . . . 3019.65 Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

    9.65.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

    9.65.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3039.65.2.1 l4_cap_idx_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3039.65.3 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 303

    9.65.3.1 l4_cap_consts_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3039.65.3.2 l4_default_caps_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

    9.65.4 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3049.65.4.1 cap_cast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3049.65.4.2 cap_reinterpret_cast . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3059.65.4.3 cap_dynamic_cast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3069.65.4.4 l4_is_invalid_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3069.65.4.5 l4_is_valid_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3079.65.4.6 l4_capability_equal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

    9.66 Virtual Registers (UTCBs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

    9.66.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3099.66.2 Typedef Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

    9.66.2.1 l4_utcb_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3099.66.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309

    9.66.3.1 l4_utcb_mr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3099.66.3.2 l4_utcb_br . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3109.66.3.3 l4_utcb_tcr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

    9.67 Message Registers (MRs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3129.67.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

    9.68 Buffer Registers (BRs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3139.68.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3139.68.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 313

    9.68.2.1 l4_buffer_desc_consts_t . . . . . . . . . . . . . . . . . . . . . . . . . . 3139.69 Thread Control Registers (TCRs). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3159.69.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

    9.70 Exception registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3169.70.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3169.70.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

    9.70.2.1 l4_utcb_exc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3169.70.2.2 l4_utcb_exc_pc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3179.70.2.3 l4_utcb_exc_pc_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3179.70.2.4 l4_utcb_exc_is_pf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

    9.71 Virtual Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3199.71.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3209.71.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 320

    9.71.2.1 L4_vcon_write_consts. . . . . . . . . . . . . . . . . . . . . . . . . . . 3209.71.2.2 L4_vcon_i_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3209.71.2.3 L4_vcon_o_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3209.71.2.4 L4_vcon_l_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3219.71.2.5 L4_vcon_ops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

    9.71.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3219.71.3.1 l4_vcon_send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3219.71.3.2 l4_vcon_write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3229.71.3.3 l4_vcon_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3229.71.3.4 l4_vcon_set_attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3239.71.3.5 l4_vcon_get_attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

    9.72 vCPU API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

    9.72.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    15/1141

    CONTENTS xiii

    9.72.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 3269.72.2.1 L4_vcpu_state_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3269.72.2.2 L4_vcpu_sticky_flags . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

    9.72.2.3 L4_vcpu_state_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . 3269.73 Fiasco-UX Virtual devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3279.73.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3279.73.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 327

    9.73.2.1 l4_vhw_entry_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3279.74 Memory operations.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

    9.74.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3289.74.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 328

    9.74.2.1 L4_mem_op_widths . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3289.74.3 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

    9.74.3.1 l4_mem_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3299.74.3.2 l4_mem_write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

    9.75 ARM Virtual Registers (UTCB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

    9.75.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3309.76 VM API for TZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

    9.76.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3319.77 amd64 Virtual Registers (UTCB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

    9.77.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3329.78 x86 Virtual Registers (UTCB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333

    9.78.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3339.78.2 Enumeration Type Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 333

    9.78.2.1 L4_utcb_consts_x86. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3339.79 CPU related functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

    9.79.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3359.79.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

    9.79.2.1 l4util_cpu_has_cpuid . . . . . . . . . . . . . . . . . . . . . . . . . . . 3359.79.2.2 l4util_cpu_capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . 3369.79.2.3 l4util_cpu_capabilities_nocheck . . . . . . . . . . . . . . . . . . . . . 336

    9.80 Functions to manipulate the local IDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3389.80.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

    9.81 Timestamp Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3399.81.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3409.81.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

    9.81.2.1 l4_rdtsc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3409.81.2.2 l4_rdtsc_32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3419.81.2.3 l4_rdpmc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3419.81.2.4 l4_rdpmc_32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3419.81.2.5 l4_tsc_to_ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3419.81.2.6 l4_tsc_to_us . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3419.81.2.7 l4_tsc_to_s_and_ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3429.81.2.8 l4_ns_to_tsc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3429.81.2.9 l4_busy_wait_ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3439.81.2.10 l4_busy_wait_us . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3439.81.2.11 l4_calibrate_tsc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3449.81.2.12 l4_tsc_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3459.81.2.13 l4_get_hz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

    9.82 Atomic Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3479.82.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3499.82.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

    9.82.2.1 l4util_cmpxchg64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

    9.82.2.2 l4util_cmpxchg32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

    Generated on Fri Jun 7 2013 18:34:42 for L4Re by Doxygen

  • 7/24/2019 l4re Source

    16/1141

    xiv CONTENTS

    9.82.2.3 l4util_cmpxchg16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3499.82.2.4 l4util_cmpxchg8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3509.82.2.5 l4util_cmpxchg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

    9.82.2.6 l4util_xchg32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3509.82.2.7 l4util_xchg16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3519.82.2.8 l4util_xchg8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3519.82.2.9 l4util_xchg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3519.82.2.10 l4util_add8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3519.82.2.11 l4util_add8_res . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3529.82.2.12 l4util_inc8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3529.82.2.13 l4util_inc8_res . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3529.82.2.14 l4util_atomic_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3529.82.2.15 l4util_atomic_inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

    9.83 Internal functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3539.83.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

    9.84 Bit Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

    9.84.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3559.84.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

    9.84.2.1 l4util_set_bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3559.84.2.2 l4util_clear_bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3559.84.2.3 l4util_complement_bit. . . . . . . . . . . . . . . . . . . . . . . . . . . 3559.84.2.4 l4util_test_bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3559.84.2.5 l4util_bts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3559.84.2.6 l4util_btr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3569.84.2.7 l4util_btc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3569.84.2.8 l4util_bsr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3569.84.2.9 l4util_bsf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3579.84.2.10 l4util_find_first_set_bit . . . . . . . . . . . . . . . . . . . . . . . . . . 357

    9.84.2.11 l4util_find_first_zero_bit . . . . . . . . . . . . . . . . . . . . . . . . . 3589.84.2.12 l4util_next_power2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3589.85 ELF binary format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

    9.85.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3719.85.2 Macro Definition Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . 371

    9.85.2.1 EI_CLASS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3719.85.2.2 EI_CLASS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3719.85.2.3 ELFCLASSNONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3719.85.2.4 ELFCLASSNONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3719.85.2.5 EI_DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3719.85.2.6 EI_DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3729.85.2.7 ELFDATANONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3729.85.2.8 ELFDATANONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3729.85.2.9 ELFDATA2LSB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3729.85.2.10 ELFDATA2LSB. . . . . . . .