├── LICENSE
├── README.md
└── book
├── AppPkg
├── AppPkg-2.4.inc
├── AppPkg.dec
└── AppPkg.dsc
├── CppPkg
├── CppPkg.dec
├── Library
│ ├── CppLib.cpp
│ ├── CppLib.inf
│ ├── CppMain.cpp
│ ├── GcppCrt.cpp
│ ├── UNewDelete.cpp
│ ├── VcppCrt.cpp
│ ├── crt0data.cpp
│ └── newdelete.cpp
├── StdInclude
│ ├── StdUefi.h
│ ├── cpp.h
│ └── stdfile.h
└── test
│ ├── testcpp.cpp
│ └── testcpp.inf
├── Event
├── TestEvent.c
└── TestEvent.inf
├── FileIo
├── FileIo.h
├── FileIo.inf
└── TestFileIo.c
├── GUIPkg
├── GUIPkg.dec
├── GUIPkg.dsc
├── Include
│ ├── UEvent.h
│ ├── UGui.h
│ ├── UGuiExt.h
│ ├── bmp.h
│ ├── fb.h
│ └── fbext.h
├── Library
│ ├── UGui.cpp
│ ├── UGui.inf
│ ├── UGuiExt.cpp
│ ├── Util.cpp
│ ├── bmp.cpp
│ ├── fb.cpp
│ ├── fbext.cpp
│ └── shellfile.h
└── test
│ ├── testcpp.cpp
│ ├── testcpp.inf
│ ├── testgui.cpp
│ └── testgui.inf
├── GUIbasics
├── String
│ ├── example.c
│ ├── example.inf
│ └── example.uni
└── font
│ ├── Font
│ ├── LaffStd.c
│ ├── createdata.html
│ ├── example.data
│ ├── font.c
│ ├── font.inf
│ ├── main.c
│ ├── make.IA32
│ └── make.x64
│ ├── SimpleFont
│ ├── createdata.html
│ ├── example.data
│ ├── font.c
│ ├── font.inf
│ └── main.c
│ ├── createdata.html
│ ├── testFont
│ ├── testfont.c
│ ├── testfont.cpp
│ └── testfont.inf
│ └── testSimpleFont
│ ├── make
│ ├── testfont.c
│ ├── testfont.cpp
│ └── testfont.inf
├── GcppPkg
├── GcppPkg.dec
├── Include
│ ├── algorithm
│ ├── array
│ ├── backward
│ │ ├── auto_ptr.h
│ │ ├── backward_warning.h
│ │ ├── binders.h
│ │ ├── hash_fun.h
│ │ ├── hash_map
│ │ ├── hash_set
│ │ ├── hashtable.h
│ │ └── strstream
│ ├── bits
│ │ ├── algorithmfwd.h
│ │ ├── allocator.h
│ │ ├── atomic_0.h
│ │ ├── atomic_2.h
│ │ ├── atomicfwd_c.h
│ │ ├── atomicfwd_cxx.h
│ │ ├── basic_ios.h
│ │ ├── basic_ios.tcc
│ │ ├── basic_string.h
│ │ ├── basic_string.tcc
│ │ ├── boost_concept_check.h
│ │ ├── char_traits.h
│ │ ├── cmath.tcc
│ │ ├── codecvt.h
│ │ ├── concept_check.h
│ │ ├── cpp_type_traits.h
│ │ ├── deque.tcc
│ │ ├── forward_list.h
│ │ ├── forward_list.tcc
│ │ ├── fstream.tcc
│ │ ├── functexcept.h
│ │ ├── functional_hash.h
│ │ ├── gslice.h
│ │ ├── gslice_array.h
│ │ ├── hashtable.h
│ │ ├── indirect_array.h
│ │ ├── ios_base.h
│ │ ├── istream.tcc
│ │ ├── list.tcc
│ │ ├── locale_classes.h
│ │ ├── locale_classes.tcc
│ │ ├── locale_facets.h
│ │ ├── locale_facets.tcc
│ │ ├── locale_facets_nonio.h
│ │ ├── locale_facets_nonio.tcc
│ │ ├── localefwd.h
│ │ ├── mask_array.h
│ │ ├── move.h
│ │ ├── ostream.tcc
│ │ ├── ostream_insert.h
│ │ ├── postypes.h
│ │ ├── shared_ptr.h
│ │ ├── slice_array.h
│ │ ├── sstream.tcc
│ │ ├── stl_algo.h
│ │ ├── stl_algobase.h
│ │ ├── stl_bvector.h
│ │ ├── stl_construct.h
│ │ ├── stl_deque.h
│ │ ├── stl_function.h
│ │ ├── stl_heap.h
│ │ ├── stl_iterator.h
│ │ ├── stl_iterator_base_funcs.h
│ │ ├── stl_iterator_base_types.h
│ │ ├── stl_list.h
│ │ ├── stl_map.h
│ │ ├── stl_multimap.h
│ │ ├── stl_multiset.h
│ │ ├── stl_numeric.h
│ │ ├── stl_pair.h
│ │ ├── stl_queue.h
│ │ ├── stl_raw_storage_iter.h
│ │ ├── stl_relops.h
│ │ ├── stl_set.h
│ │ ├── stl_stack.h
│ │ ├── stl_tempbuf.h
│ │ ├── stl_tree.h
│ │ ├── stl_uninitialized.h
│ │ ├── stl_vector.h
│ │ ├── stream_iterator.h
│ │ ├── streambuf.tcc
│ │ ├── streambuf_iterator.h
│ │ ├── stringfwd.h
│ │ ├── unique_ptr.h
│ │ ├── valarray_after.h
│ │ ├── valarray_array.h
│ │ ├── valarray_array.tcc
│ │ ├── valarray_before.h
│ │ └── vector.tcc
│ ├── bitset
│ ├── c++0x_warning.h
│ ├── cassert
│ ├── ccomplex
│ ├── cctype
│ ├── cerrno
│ ├── cfenv
│ ├── cfloat
│ ├── chrono
│ ├── cinttypes
│ ├── ciso646
│ ├── climits
│ ├── clocale
│ ├── cmath
│ ├── complex
│ ├── complex.h
│ ├── condition_variable
│ ├── csetjmp
│ ├── csignal
│ ├── cstdarg
│ ├── cstdatomic
│ ├── cstdbool
│ ├── cstddef
│ ├── cstdint
│ ├── cstdio
│ ├── cstdlib
│ ├── cstring
│ ├── ctgmath
│ ├── ctime
│ ├── cwchar
│ ├── cwctype
│ ├── cxxabi-forced.h
│ ├── cxxabi.h
│ ├── debug
│ │ ├── bitset
│ │ ├── debug.h
│ │ ├── deque
│ │ ├── formatter.h
│ │ ├── functions.h
│ │ ├── list
│ │ ├── macros.h
│ │ ├── map
│ │ ├── map.h
│ │ ├── multimap.h
│ │ ├── multiset.h
│ │ ├── safe_base.h
│ │ ├── safe_iterator.h
│ │ ├── safe_iterator.tcc
│ │ ├── safe_sequence.h
│ │ ├── set
│ │ ├── set.h
│ │ ├── string
│ │ ├── unordered_map
│ │ ├── unordered_set
│ │ └── vector
│ ├── deque
│ ├── exception
│ ├── exception_defines.h
│ ├── exception_ptr.h
│ ├── ext
│ │ ├── algorithm
│ │ ├── array_allocator.h
│ │ ├── atomicity.h
│ │ ├── bitmap_allocator.h
│ │ ├── cast.h
│ │ ├── codecvt_specializations.h
│ │ ├── concurrence.h
│ │ ├── debug_allocator.h
│ │ ├── enc_filebuf.h
│ │ ├── extptr_allocator.h
│ │ ├── functional
│ │ ├── hash_map
│ │ ├── hash_set
│ │ ├── iterator
│ │ ├── malloc_allocator.h
│ │ ├── memory
│ │ ├── mt_allocator.h
│ │ ├── new_allocator.h
│ │ ├── numeric
│ │ ├── numeric_traits.h
│ │ ├── pb_ds
│ │ │ ├── assoc_container.hpp
│ │ │ ├── detail
│ │ │ │ ├── basic_tree_policy
│ │ │ │ │ ├── basic_tree_policy_base.hpp
│ │ │ │ │ ├── null_node_metadata.hpp
│ │ │ │ │ └── traits.hpp
│ │ │ │ ├── basic_types.hpp
│ │ │ │ ├── bin_search_tree_
│ │ │ │ │ ├── bin_search_tree_.hpp
│ │ │ │ │ ├── cond_dtor_entry_dealtor.hpp
│ │ │ │ │ ├── cond_key_dtor_entry_dealtor.hpp
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── iterators_fn_imps.hpp
│ │ │ │ │ ├── node_iterators.hpp
│ │ │ │ │ ├── point_iterators.hpp
│ │ │ │ │ ├── policy_access_fn_imps.hpp
│ │ │ │ │ ├── r_erase_fn_imps.hpp
│ │ │ │ │ ├── rotate_fn_imps.hpp
│ │ │ │ │ ├── split_join_fn_imps.hpp
│ │ │ │ │ └── traits.hpp
│ │ │ │ ├── binary_heap_
│ │ │ │ │ ├── binary_heap_.hpp
│ │ │ │ │ ├── const_iterator.hpp
│ │ │ │ │ ├── const_point_iterator.hpp
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── entry_cmp.hpp
│ │ │ │ │ ├── entry_pred.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── iterators_fn_imps.hpp
│ │ │ │ │ ├── policy_access_fn_imps.hpp
│ │ │ │ │ ├── resize_policy.hpp
│ │ │ │ │ ├── split_join_fn_imps.hpp
│ │ │ │ │ └── trace_fn_imps.hpp
│ │ │ │ ├── binomial_heap_
│ │ │ │ │ ├── binomial_heap_.hpp
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ └── debug_fn_imps.hpp
│ │ │ │ ├── binomial_heap_base_
│ │ │ │ │ ├── binomial_heap_base_.hpp
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ └── split_join_fn_imps.hpp
│ │ │ │ ├── cc_hash_table_map_
│ │ │ │ │ ├── cc_ht_map_.hpp
│ │ │ │ │ ├── cmp_fn_imps.hpp
│ │ │ │ │ ├── cond_key_dtor_entry_dealtor.hpp
│ │ │ │ │ ├── constructor_destructor_fn_imps.hpp
│ │ │ │ │ ├── constructor_destructor_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── constructor_destructor_store_hash_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── debug_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── debug_store_hash_fn_imps.hpp
│ │ │ │ │ ├── entry_list_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── erase_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── erase_store_hash_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── find_store_hash_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── insert_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── insert_store_hash_fn_imps.hpp
│ │ │ │ │ ├── iterators_fn_imps.hpp
│ │ │ │ │ ├── policy_access_fn_imps.hpp
│ │ │ │ │ ├── resize_fn_imps.hpp
│ │ │ │ │ ├── resize_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── resize_store_hash_fn_imps.hpp
│ │ │ │ │ ├── size_fn_imps.hpp
│ │ │ │ │ ├── standard_policies.hpp
│ │ │ │ │ └── trace_fn_imps.hpp
│ │ │ │ ├── cond_dealtor.hpp
│ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ ├── container_base_dispatch.hpp
│ │ │ │ ├── debug_map_base.hpp
│ │ │ │ ├── eq_fn
│ │ │ │ │ ├── eq_by_less.hpp
│ │ │ │ │ └── hash_eq_fn.hpp
│ │ │ │ ├── gp_hash_table_map_
│ │ │ │ │ ├── constructor_destructor_fn_imps.hpp
│ │ │ │ │ ├── constructor_destructor_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── constructor_destructor_store_hash_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── debug_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── debug_store_hash_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── erase_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── erase_store_hash_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── find_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── find_store_hash_fn_imps.hpp
│ │ │ │ │ ├── gp_ht_map_.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── insert_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── insert_store_hash_fn_imps.hpp
│ │ │ │ │ ├── iterator_fn_imps.hpp
│ │ │ │ │ ├── policy_access_fn_imps.hpp
│ │ │ │ │ ├── resize_fn_imps.hpp
│ │ │ │ │ ├── resize_no_store_hash_fn_imps.hpp
│ │ │ │ │ ├── resize_store_hash_fn_imps.hpp
│ │ │ │ │ ├── standard_policies.hpp
│ │ │ │ │ └── trace_fn_imps.hpp
│ │ │ │ ├── hash_fn
│ │ │ │ │ ├── direct_mask_range_hashing_imp.hpp
│ │ │ │ │ ├── direct_mod_range_hashing_imp.hpp
│ │ │ │ │ ├── linear_probe_fn_imp.hpp
│ │ │ │ │ ├── mask_based_range_hashing.hpp
│ │ │ │ │ ├── mod_based_range_hashing.hpp
│ │ │ │ │ ├── probe_fn_base.hpp
│ │ │ │ │ ├── quadratic_probe_fn_imp.hpp
│ │ │ │ │ ├── ranged_hash_fn.hpp
│ │ │ │ │ ├── ranged_probe_fn.hpp
│ │ │ │ │ ├── sample_probe_fn.hpp
│ │ │ │ │ ├── sample_range_hashing.hpp
│ │ │ │ │ ├── sample_ranged_hash_fn.hpp
│ │ │ │ │ └── sample_ranged_probe_fn.hpp
│ │ │ │ ├── left_child_next_sibling_heap_
│ │ │ │ │ ├── const_iterator.hpp
│ │ │ │ │ ├── const_point_iterator.hpp
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── iterators_fn_imps.hpp
│ │ │ │ │ ├── left_child_next_sibling_heap_.hpp
│ │ │ │ │ ├── node.hpp
│ │ │ │ │ ├── null_metadata.hpp
│ │ │ │ │ ├── policy_access_fn_imps.hpp
│ │ │ │ │ └── trace_fn_imps.hpp
│ │ │ │ ├── list_update_map_
│ │ │ │ │ ├── constructor_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── entry_metadata_base.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── iterators_fn_imps.hpp
│ │ │ │ │ ├── lu_map_.hpp
│ │ │ │ │ └── trace_fn_imps.hpp
│ │ │ │ ├── list_update_policy
│ │ │ │ │ ├── counter_lu_metadata.hpp
│ │ │ │ │ ├── counter_lu_policy_imp.hpp
│ │ │ │ │ ├── mtf_lu_policy_imp.hpp
│ │ │ │ │ └── sample_update_policy.hpp
│ │ │ │ ├── ov_tree_map_
│ │ │ │ │ ├── cond_dtor.hpp
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── iterators_fn_imps.hpp
│ │ │ │ │ ├── node_iterators.hpp
│ │ │ │ │ ├── ov_tree_map_.hpp
│ │ │ │ │ ├── policy_access_fn_imps.hpp
│ │ │ │ │ ├── split_join_fn_imps.hpp
│ │ │ │ │ └── traits.hpp
│ │ │ │ ├── pairing_heap_
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── pairing_heap_.hpp
│ │ │ │ │ └── split_join_fn_imps.hpp
│ │ │ │ ├── pat_trie_
│ │ │ │ │ ├── child_iterator.hpp
│ │ │ │ │ ├── cond_dtor_entry_dealtor.hpp
│ │ │ │ │ ├── const_child_iterator.hpp
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── head.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_join_fn_imps.hpp
│ │ │ │ │ ├── internal_node.hpp
│ │ │ │ │ ├── iterators_fn_imps.hpp
│ │ │ │ │ ├── leaf.hpp
│ │ │ │ │ ├── node_base.hpp
│ │ │ │ │ ├── node_iterators.hpp
│ │ │ │ │ ├── node_metadata_base.hpp
│ │ │ │ │ ├── pat_trie_.hpp
│ │ │ │ │ ├── point_iterators.hpp
│ │ │ │ │ ├── policy_access_fn_imps.hpp
│ │ │ │ │ ├── r_erase_fn_imps.hpp
│ │ │ │ │ ├── rotate_fn_imps.hpp
│ │ │ │ │ ├── split_fn_imps.hpp
│ │ │ │ │ ├── split_join_branch_bag.hpp
│ │ │ │ │ ├── synth_e_access_traits.hpp
│ │ │ │ │ ├── trace_fn_imps.hpp
│ │ │ │ │ ├── traits.hpp
│ │ │ │ │ └── update_fn_imps.hpp
│ │ │ │ ├── priority_queue_base_dispatch.hpp
│ │ │ │ ├── rb_tree_map_
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── node.hpp
│ │ │ │ │ ├── rb_tree_.hpp
│ │ │ │ │ ├── split_join_fn_imps.hpp
│ │ │ │ │ └── traits.hpp
│ │ │ │ ├── rc_binomial_heap_
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── rc.hpp
│ │ │ │ │ ├── rc_binomial_heap_.hpp
│ │ │ │ │ ├── split_join_fn_imps.hpp
│ │ │ │ │ └── trace_fn_imps.hpp
│ │ │ │ ├── resize_policy
│ │ │ │ │ ├── cc_hash_max_collision_check_resize_trigger_imp.hpp
│ │ │ │ │ ├── hash_exponential_size_policy_imp.hpp
│ │ │ │ │ ├── hash_load_check_resize_trigger_imp.hpp
│ │ │ │ │ ├── hash_load_check_resize_trigger_size_base.hpp
│ │ │ │ │ ├── hash_prime_size_policy_imp.hpp
│ │ │ │ │ ├── hash_standard_resize_policy_imp.hpp
│ │ │ │ │ ├── sample_resize_policy.hpp
│ │ │ │ │ ├── sample_resize_trigger.hpp
│ │ │ │ │ └── sample_size_policy.hpp
│ │ │ │ ├── splay_tree_
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── info_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── node.hpp
│ │ │ │ │ ├── splay_fn_imps.hpp
│ │ │ │ │ ├── splay_tree_.hpp
│ │ │ │ │ ├── split_join_fn_imps.hpp
│ │ │ │ │ └── traits.hpp
│ │ │ │ ├── standard_policies.hpp
│ │ │ │ ├── thin_heap_
│ │ │ │ │ ├── constructors_destructor_fn_imps.hpp
│ │ │ │ │ ├── debug_fn_imps.hpp
│ │ │ │ │ ├── erase_fn_imps.hpp
│ │ │ │ │ ├── find_fn_imps.hpp
│ │ │ │ │ ├── insert_fn_imps.hpp
│ │ │ │ │ ├── split_join_fn_imps.hpp
│ │ │ │ │ ├── thin_heap_.hpp
│ │ │ │ │ └── trace_fn_imps.hpp
│ │ │ │ ├── tree_policy
│ │ │ │ │ ├── node_metadata_selector.hpp
│ │ │ │ │ ├── null_node_update_imp.hpp
│ │ │ │ │ ├── order_statistics_imp.hpp
│ │ │ │ │ └── sample_tree_node_update.hpp
│ │ │ │ ├── tree_trace_base.hpp
│ │ │ │ ├── trie_policy
│ │ │ │ │ ├── node_metadata_selector.hpp
│ │ │ │ │ ├── null_node_update_imp.hpp
│ │ │ │ │ ├── order_statistics_imp.hpp
│ │ │ │ │ ├── prefix_search_node_update_imp.hpp
│ │ │ │ │ ├── sample_trie_e_access_traits.hpp
│ │ │ │ │ ├── sample_trie_node_update.hpp
│ │ │ │ │ ├── string_trie_e_access_traits_imp.hpp
│ │ │ │ │ └── trie_policy_base.hpp
│ │ │ │ ├── type_utils.hpp
│ │ │ │ ├── types_traits.hpp
│ │ │ │ └── unordered_iterator
│ │ │ │ │ ├── const_iterator.hpp
│ │ │ │ │ ├── const_point_iterator.hpp
│ │ │ │ │ ├── iterator.hpp
│ │ │ │ │ └── point_iterator.hpp
│ │ │ ├── exception.hpp
│ │ │ ├── hash_policy.hpp
│ │ │ ├── list_update_policy.hpp
│ │ │ ├── priority_queue.hpp
│ │ │ ├── tag_and_trait.hpp
│ │ │ ├── tree_policy.hpp
│ │ │ └── trie_policy.hpp
│ │ ├── pod_char_traits.h
│ │ ├── pointer.h
│ │ ├── pool_allocator.h
│ │ ├── rb_tree
│ │ ├── rc_string_base.h
│ │ ├── rope
│ │ ├── ropeimpl.h
│ │ ├── slist
│ │ ├── sso_string_base.h
│ │ ├── stdio_filebuf.h
│ │ ├── stdio_sync_filebuf.h
│ │ ├── string_conversions.h
│ │ ├── throw_allocator.h
│ │ ├── type_traits.h
│ │ ├── typelist.h
│ │ ├── vstring.h
│ │ ├── vstring.tcc
│ │ ├── vstring_fwd.h
│ │ └── vstring_util.h
│ ├── fenv.h
│ ├── forward_list
│ ├── fstream
│ ├── functional
│ ├── i486-linux-gnu
│ │ ├── 64
│ │ │ └── bits
│ │ │ │ ├── atomic_word.h
│ │ │ │ ├── basic_file.h
│ │ │ │ ├── c++allocator.h
│ │ │ │ ├── c++config.h
│ │ │ │ ├── c++io.h
│ │ │ │ ├── c++locale.h
│ │ │ │ ├── cpu_defines.h
│ │ │ │ ├── ctype_base.h
│ │ │ │ ├── ctype_inline.h
│ │ │ │ ├── ctype_noninline.h
│ │ │ │ ├── cxxabi_tweaks.h
│ │ │ │ ├── error_constants.h
│ │ │ │ ├── extc++.h
│ │ │ │ ├── gthr-default.h
│ │ │ │ ├── gthr-posix.h
│ │ │ │ ├── gthr-single.h
│ │ │ │ ├── gthr-tpf.h
│ │ │ │ ├── gthr.h
│ │ │ │ ├── messages_members.h
│ │ │ │ ├── os_defines.h
│ │ │ │ ├── stdc++.h
│ │ │ │ ├── stdtr1c++.h
│ │ │ │ └── time_members.h
│ │ └── bits
│ │ │ ├── atomic_word.h
│ │ │ ├── basic_file.h
│ │ │ ├── c++allocator.h
│ │ │ ├── c++config.h
│ │ │ ├── c++io.h
│ │ │ ├── c++locale.h
│ │ │ ├── cpu_defines.h
│ │ │ ├── ctype_base.h
│ │ │ ├── ctype_inline.h
│ │ │ ├── ctype_noninline.h
│ │ │ ├── cxxabi_tweaks.h
│ │ │ ├── error_constants.h
│ │ │ ├── extc++.h
│ │ │ ├── gthr-default.h
│ │ │ ├── gthr-posix.h
│ │ │ ├── gthr-single.h
│ │ │ ├── gthr-tpf.h
│ │ │ ├── gthr.h
│ │ │ ├── messages_members.h
│ │ │ ├── os_defines.h
│ │ │ ├── stdc++.h
│ │ │ ├── stdtr1c++.h
│ │ │ └── time_members.h
│ ├── initializer_list
│ ├── iomanip
│ ├── ios
│ ├── iosfwd
│ ├── iostream
│ ├── istream
│ ├── iterator
│ ├── limits
│ ├── list
│ ├── locale
│ ├── map
│ ├── memory
│ ├── mutex
│ ├── new
│ ├── numeric
│ ├── ostream
│ ├── parallel
│ │ ├── algo.h
│ │ ├── algobase.h
│ │ ├── algorithm
│ │ ├── algorithmfwd.h
│ │ ├── balanced_quicksort.h
│ │ ├── base.h
│ │ ├── basic_iterator.h
│ │ ├── checkers.h
│ │ ├── compatibility.h
│ │ ├── compiletime_settings.h
│ │ ├── equally_split.h
│ │ ├── features.h
│ │ ├── find.h
│ │ ├── find_selectors.h
│ │ ├── for_each.h
│ │ ├── for_each_selectors.h
│ │ ├── iterator.h
│ │ ├── list_partition.h
│ │ ├── losertree.h
│ │ ├── merge.h
│ │ ├── multiseq_selection.h
│ │ ├── multiway_merge.h
│ │ ├── multiway_mergesort.h
│ │ ├── numeric
│ │ ├── numericfwd.h
│ │ ├── omp_loop.h
│ │ ├── omp_loop_static.h
│ │ ├── par_loop.h
│ │ ├── parallel.h
│ │ ├── partial_sum.h
│ │ ├── partition.h
│ │ ├── queue.h
│ │ ├── quicksort.h
│ │ ├── random_number.h
│ │ ├── random_shuffle.h
│ │ ├── search.h
│ │ ├── set_operations.h
│ │ ├── settings.h
│ │ ├── sort.h
│ │ ├── tags.h
│ │ ├── types.h
│ │ ├── unique_copy.h
│ │ └── workstealing.h
│ ├── queue
│ ├── random
│ ├── ratio
│ ├── regex
│ ├── set
│ ├── sstream
│ ├── stack
│ ├── stdatomic.h
│ ├── stdexcept
│ ├── streambuf
│ ├── string
│ ├── system_error
│ ├── tgmath.h
│ ├── thread
│ ├── tr1
│ │ ├── array
│ │ ├── bessel_function.tcc
│ │ ├── beta_function.tcc
│ │ ├── ccomplex
│ │ ├── cctype
│ │ ├── cfenv
│ │ ├── cfloat
│ │ ├── cinttypes
│ │ ├── climits
│ │ ├── cmath
│ │ ├── complex
│ │ ├── complex.h
│ │ ├── cstdarg
│ │ ├── cstdbool
│ │ ├── cstdint
│ │ ├── cstdio
│ │ ├── cstdlib
│ │ ├── ctgmath
│ │ ├── ctime
│ │ ├── ctype.h
│ │ ├── cwchar
│ │ ├── cwctype
│ │ ├── ell_integral.tcc
│ │ ├── exp_integral.tcc
│ │ ├── fenv.h
│ │ ├── float.h
│ │ ├── functional
│ │ ├── functional_hash.h
│ │ ├── gamma.tcc
│ │ ├── hashtable.h
│ │ ├── hypergeometric.tcc
│ │ ├── inttypes.h
│ │ ├── legendre_function.tcc
│ │ ├── limits.h
│ │ ├── math.h
│ │ ├── memory
│ │ ├── modified_bessel_func.tcc
│ │ ├── poly_hermite.tcc
│ │ ├── poly_laguerre.tcc
│ │ ├── random
│ │ ├── regex
│ │ ├── riemann_zeta.tcc
│ │ ├── shared_ptr.h
│ │ ├── special_function_util.h
│ │ ├── stdarg.h
│ │ ├── stdbool.h
│ │ ├── stdint.h
│ │ ├── stdio.h
│ │ ├── stdlib.h
│ │ ├── tgmath.h
│ │ ├── tuple
│ │ ├── type_traits
│ │ ├── unordered_map
│ │ ├── unordered_set
│ │ ├── utility
│ │ ├── wchar.h
│ │ └── wctype.h
│ ├── tr1_impl
│ │ ├── array
│ │ ├── boost_sp_counted_base.h
│ │ ├── cctype
│ │ ├── cfenv
│ │ ├── cinttypes
│ │ ├── cmath
│ │ ├── complex
│ │ ├── cstdint
│ │ ├── cstdio
│ │ ├── cstdlib
│ │ ├── cwchar
│ │ ├── cwctype
│ │ ├── functional
│ │ ├── functional_hash.h
│ │ ├── hashtable
│ │ ├── hashtable_policy.h
│ │ ├── random
│ │ ├── random.tcc
│ │ ├── regex
│ │ ├── type_traits
│ │ ├── unordered_map
│ │ ├── unordered_set
│ │ └── utility
│ ├── tuple
│ ├── type_traits
│ ├── typeinfo
│ ├── unordered_map
│ ├── unordered_set
│ ├── utility
│ ├── valarray
│ └── vector
├── Library
│ ├── GcppCrt.cpp
│ ├── GcppLib.cpp
│ ├── GcppLib.inf
│ ├── VcppCrt.cpp
│ └── book - Shortcut.lnk
├── gcc4.4-ld-script
└── test
│ ├── testcpp.cpp
│ └── testcpp.inf
├── Hob
├── Hob.c
└── Hob.inf
├── HotKey
├── HotKey.c
└── HotKey.inf
├── Network
├── Main.c
├── memcpy.c
├── socket.c
├── socket.h
└── tcpsocket.inf
├── Nt32Pkg
├── Nt32Pkg-2.4.inc
├── Nt32Pkg.dec
├── Nt32Pkg.dsc
├── Nt32Pkg.fdf
├── Nt32Pkg.inc
└── Nt32Pkg2.4.dsc
├── Shell
├── Execute
│ ├── Execute.c
│ └── Execute.inf
└── Execute2
│ ├── Execute.c
│ └── Execute.inf
├── UefiProgramming-edk2-stable202102.dec
├── UefiProgramming-edk2-stable202102.dsc
├── Uutil
├── Include
│ └── Uutil.h
└── Uutil.dec
├── audio
├── ComponentName.c
├── ac97.c
├── ac97config
├── ac97reg.h
├── accdriver.c
├── audio.c
├── audio.h
├── audio.inf
├── ichreg.h
├── sample.h
├── shellfile.h
├── testac97.c
├── testac97.inf
├── wav.h
└── wintype.h
├── disk
├── AtaPassThru
│ ├── TestPassThru.c
│ └── TestPassThru.inf
├── DevicePath
│ ├── TestDevicePath.c
│ └── TestDevicePath.inf
├── GPT
│ ├── TestGpt.c
│ ├── TestGpt.inf
│ └── TestGpt.inf~
├── devicepath.h
├── disk.cpp
├── disk.h
├── disk.inf
└── test.cpp
├── ffmpeg
├── conf.sh
├── config.h
├── ffdecoder
│ ├── InitShell.c
│ ├── StdLib.diff
│ ├── afplayer
│ │ └── afplayer.inf
│ ├── ffdecoder.c
│ ├── ffdecoder.h
│ ├── ffdecoder.inf
│ ├── ffdecoder.inf2
│ ├── ffmpeg.diff
│ └── math.c
├── ffmpeg.dec
├── ffplayer
│ ├── drop.avi
│ ├── fplayer.c
│ ├── fplayer.cpp
│ ├── fplayer.inf
│ ├── libGui.lib
│ ├── math.c
│ ├── off.bmp
│ ├── on.bmp
│ ├── rdtsc.h
│ └── readme.txt
├── fplayer
│ ├── fplayer.c
│ ├── fplayer.inf
│ ├── fplayer.inf2
│ └── math.c
├── libavcodec
│ └── libavcodec.inf
├── libavformat
│ └── libavformat.inf
├── libavutil
│ └── libavutil.inf
├── libswscale
│ ├── libswscale.diff
│ └── libswscale.inf
└── zlib
│ └── zlib.inf
├── infs
├── Debug
│ ├── Main.c
│ └── Main.inf
├── ShellAppMain
│ ├── Main.c
│ └── Main.inf
├── UefiMain
│ ├── UefiMain.c
│ └── UefiMain.inf
└── main
│ ├── main.c
│ └── main.inf
├── mouse
├── mouse.c
└── mouse.inf
├── multitask
└── processor
│ ├── process.c
│ └── process.inf
├── readme.txt
├── sstdPkg
├── Include
│ ├── sstd.h
│ ├── stdio.h
│ ├── stdlib.h
│ └── string.h
├── Library
│ ├── sstdLib.inf
│ ├── sstdall.cpp
│ └── test.c
├── Testsstd
│ ├── Testsstd.c
│ └── Testsstd.inf
└── sstd.dec
├── std
├── Main.c
├── main.inf
└── sstd
│ ├── Testsstd.c
│ └── Testsstd.inf
├── systemtable
├── BS
│ ├── BS.c
│ └── BS.inf
├── ST
│ ├── ST.c
│ └── ST.inf
├── gRT
│ ├── RT.c
│ └── RT.inf
├── gST
│ ├── ST.c
│ └── ST.inf
└── memory
│ ├── BSmem.c
│ └── BSmem.inf
└── thread
├── SimpleThread
├── SimpleThread.c
├── SimpleThread.h
├── SimpleThread.inf
├── dmthread.c
└── dmthread.h
├── TestSthread
├── SimpleThread.h
├── TestSimpleThread.c
└── TestSimpleThread.inf
└── setjmp
├── Main.c
└── Main.inf
/book/AppPkg/AppPkg-2.4.inc:
--------------------------------------------------------------------------------
1 | ###################################################################################################
2 | #
3 | # UEFI principles and programming
4 | #
5 | ###################################################################################################
6 | [defines]
7 | DEFINE UEFI_BOOK_DIR = uefi\book
8 |
9 | [LibraryClasses]
10 | LibGui|$(UEFI_BOOK_DIR)/GUIPkg/Library/UGui.inf
11 | LibCpp|$(UEFI_BOOK_DIR)/CppPkg/Library/CppLib.inf
12 |
13 | CppLib|$(UEFI_BOOK_DIR)/CppPkg/Library/CppLib.inf
14 | [Components]
15 | $(UEFI_BOOK_DIR)/ffmpeg/ffplayer/fplayer.inf
16 | #$(UEFI_BOOK_DIR)/GcppPkg/test/testcpp.inf
17 | $(UEFI_BOOK_DIR)/std/main.inf
18 | $(UEFI_BOOK_DIR)/infs/main/main.inf
19 | $(UEFI_BOOK_DIR)/disk/DevicePath/TestDevicePath.inf
20 | $(UEFI_BOOK_DIR)/disk/AtaPassThru/TestPassThru.inf
21 | $(UEFI_BOOK_DIR)/audio/audio.inf
22 | $(UEFI_BOOK_DIR)/systemtable/memory/BSmem.inf
23 | $(UEFI_BOOK_DIR)/mouse/mouse.inf
24 | $(UEFI_BOOK_DIR)/HotKey/HotKey.inf
25 | $(UEFI_BOOK_DIR)/FileIo/FileIo.inf #spec 2.4
26 | $(UEFI_BOOK_DIR)/infs/ShellAppMain/Main.inf
27 | $(UEFI_BOOK_DIR)/Shell/Execute/Execute.inf
28 | $(UEFI_BOOK_DIR)/GUIPkg/test/testgui.inf
29 |
30 | [Components.X64]
31 | $(UEFI_BOOK_DIR)/audio/testac97.inf
32 |
--------------------------------------------------------------------------------
/book/AppPkg/AppPkg.dec:
--------------------------------------------------------------------------------
1 | ## @file
2 | # Declarations for the UDK Standard Libraries.
3 | #
4 | # Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.
5 | #
6 | # This program and the accompanying materials are licensed and made available under
7 | # the terms and conditions of the BSD License which accompanies this distribution.
8 | # The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | ##
14 |
15 |
16 | [Defines]
17 | DEC_SPECIFICATION = 0x00010005
18 | PACKAGE_NAME = AppPkg
19 | PACKAGE_GUID = B3E3D3D5-D62B-4497-A175-264F489D127E
20 | PACKAGE_VERSION = 0.01
21 |
22 |
23 | [Guids]
24 | gAppPkgTokenSpaceGuid = { 0xe7e1efa6, 0x7607, 0x4a78, { 0xa7, 0xdd, 0x43, 0xe4, 0xbd, 0x72, 0xc0, 0x99 }}
25 |
26 |
27 | [PcdsFixedAtBuild]
28 | gAppPkgTokenSpaceGuid.DataSource_Port|1234|UINT16|0
29 | gAppPkgTokenSpaceGuid.Tftp_AckLogBase|4|UINT32|1
30 | gAppPkgTokenSpaceGuid.Tftp_AckMultiplier|4|UINT32|2
31 | gAppPkgTokenSpaceGuid.Tftp_Bandwidth|0|BOOLEAN|3
32 | gAppPkgTokenSpaceGuid.Tftp_HighSpeed|0|BOOLEAN|4
33 | gAppPkgTokenSpaceGuid.Tftp_MaxRetry|10|UINT32|5
34 | gAppPkgTokenSpaceGuid.Tftp_MaxTimeoutInSec|3|UINT32|6
35 | gAppPkgTokenSpaceGuid.WebServer_HttpPort|80|UINT16|7
36 |
37 |
--------------------------------------------------------------------------------
/book/CppPkg/CppPkg.dec:
--------------------------------------------------------------------------------
1 | ## @file
2 | #
3 | # This is the Unix Emulation Environment Platform
4 | #
5 | # Reference platform implementation using an emulator.
6 | # Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.
7 | #
8 | # This program and the accompanying materials are licensed and made available
9 | # under the terms and conditions of the BSD License which accompanies this distribution.
10 | # The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES
12 | # OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | #
14 | ##
15 |
16 | [Defines]
17 | DEC_SPECIFICATION = 0x00010005
18 | PACKAGE_NAME = EdkCppPkg
19 | PACKAGE_GUID = f2805c44-8985-11db-9e98-0040d0c0d0cc
20 | PACKAGE_VERSION = 1.0
21 |
22 | [Includes]
23 | Include
24 | StdInclude
25 |
26 | [LibraryClasses]
27 |
28 | [Guids]
29 | [Ppis]
30 |
31 | [Protocols]
32 |
33 | [PcdsFixedAtBuild]
34 | [PcdsFixedAtBuild, PcdsPatchableInModule]
35 |
36 | [PcdsDynamic, PcdsDynamicEx]
37 |
--------------------------------------------------------------------------------
/book/CppPkg/Library/CppLib.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * =====================================================================================
3 | *
4 | * Filename: GcppLib.cpp
5 | *
6 | * Description:
7 | *
8 | * Version: 1.0
9 | * Created: 04/13/2013 10:35:14 AM
10 | * Revision: none
11 | * Compiler: gcc
12 | *
13 | * Author: DAI ZHENGHUA (), djx.zhenghua@gmail.com
14 | * Company:
15 | *
16 | * =====================================================================================
17 | */
18 | extern"C"
19 | {
20 | #include
21 | #include
22 | #include
23 |
24 | }
25 |
26 | extern "C"
27 | void _Unwind_Resume(struct _Unwind_Exception *object)
28 | {
29 |
30 | }
31 |
32 | extern "C" int __cdecl sprintf_s(char * _DstBuf, size_t _SizeInBytes, const char * _Format, ...)
33 | {
34 | int ret;
35 | VA_LIST ap;
36 | VA_START(ap, _Format);
37 | ret = (int)AsciiVSPrint(_DstBuf, _SizeInBytes, _Format, ap);
38 | return (ret);
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/book/CppPkg/Library/CppLib.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # The DXE driver produces HII protocols defined in UEFI HII 2.1 specificatin.
3 | #
4 | # Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.
5 | #
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.php
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | #
14 | #
15 | ##
16 |
17 | [Defines]
18 | INF_VERSION = 0x00010005
19 | BASE_NAME = libcpp
20 | FILE_GUID = 348C4D62-BFBD-4882-9ECE-C80BB1C64336
21 | VERSION_STRING = 1.0
22 | MODULE_TYPE = BASE
23 | LIBRARY_CLASS = CppLib
24 | #MODULE_TYPE = DXE_DRIVER
25 | #ENTRY_POINT = InitializeAvCodec
26 | DEFINE UEFI_BOOK_DIR = uefi/book
27 |
28 | #
29 | # The following information is for reference only and not required by the build tools.
30 | #
31 | # VALID_ARCHITECTURES = IA32 X64 IPF EBC
32 | #
33 |
34 | [Sources]
35 | CppLib.cpp
36 | CppMain.cpp
37 | crt0data.cpp
38 | UNewDelete.cpp
39 | VcppCrt.cpp
40 | [Packages]
41 | MdePkg/MdePkg.dec
42 | MdeModulePkg/MdeModulePkg.dec
43 | StdLib/StdLib.dec
44 | $(UEFI_BOOK_DIR)/CppPkg/CppPkg.dec
45 |
46 |
47 | [LibraryClasses]
48 | UefiBootServicesTableLib
49 | UefiLib
50 |
51 | [Protocols]
52 |
53 | [FeaturePcd]
54 |
55 | [Pcd]
56 |
57 | [Guids]
58 |
59 | [Depex]
60 | TRUE
61 |
62 | [BuildOptions]
63 | MSFT:*_*_*_CC_FLAGS = /wd4804 /wd4164
64 |
--------------------------------------------------------------------------------
/book/CppPkg/Library/CppMain.cpp:
--------------------------------------------------------------------------------
1 |
2 | extern"C"
3 | {
4 | #include
5 | }
6 |
7 | int cppMain ( IN int Argc, IN char **Argv );
8 | void __do_global_dtors_aux();
9 | void __do_global_ctors_aux();
10 |
11 | int
12 | main (
13 | IN int Argc,
14 | IN char **Argv
15 | )
16 | {
17 |
18 | __do_global_ctors_aux();
19 |
20 | cppMain(Argc, Argv);
21 |
22 | __do_global_dtors_aux();
23 |
24 | return 0;
25 | }
26 |
--------------------------------------------------------------------------------
/book/CppPkg/Library/UNewDelete.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * =====================================================================================
3 | *
4 | * Filename: GcppLib.cpp
5 | *
6 | * Description:
7 | *
8 | * Version: 1.0
9 | * Created: 04/13/2013 10:35:14 AM
10 | * Revision: none
11 | * Compiler: gcc
12 | *
13 | * Author: DAI ZHENGHUA (), djx.zhenghua@gmail.com
14 | * Company:
15 | *
16 | * =====================================================================================
17 | */
18 | extern"C"
19 | {
20 | #include
21 | #include
22 | #include
23 |
24 | }
25 |
26 | typedef UINTN size_t;
27 | void * operator new( size_t Size )
28 | {
29 | void *RetVal;
30 | EFI_STATUS Status;
31 |
32 | if( Size == 0) {
33 | return NULL;
34 | }
35 |
36 | Status = gBS->AllocatePool( EfiLoaderData, (UINTN)Size, &RetVal);
37 | if( Status != EFI_SUCCESS) {
38 | RetVal = NULL;
39 | }
40 | return RetVal;
41 | }
42 |
43 |
44 | void * operator new[]( size_t cb )
45 | {
46 | void *res = operator new(cb);
47 | return res;
48 | }
49 |
50 |
51 |
52 | void operator delete( void * p )
53 | {
54 | if(p != NULL)
55 | (void) gBS->FreePool (p);
56 | }
57 |
58 | void operator delete[]( void * p )
59 | {
60 | operator delete(p);
61 | }
62 |
63 |
--------------------------------------------------------------------------------
/book/CppPkg/Library/VcppCrt.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * =====================================================================================
3 | *
4 | * Filename: VcppCrt.cpp
5 | *
6 | * Description:
7 | *
8 | * Version: 1.0
9 | * Created: 04/17/2013 07:54:10 PM
10 | * Revision: none
11 | * Compiler: gcc
12 | *
13 | * Author: DAI ZHENGHUA (), djx.zhenghua@gmail.com
14 | * Company:
15 | *
16 | * =====================================================================================
17 | */
18 | #include "cpp.h"
19 | /*
20 | #include
21 | _STD_BEGIN
22 | void _Throw(stdext::exception const &){}
23 | void _String_base::_Xran(){}
24 | void _String_base::_Xlen(){}
25 |
26 | void (__cdecl* std::_Raise_handler)(class stdext::exception const &);
27 | _STD_END
28 | */
29 | extern "C"{
30 |
31 | void _invalid_parameter_noinfo(){}
32 | } // extern "C"{
33 |
--------------------------------------------------------------------------------
/book/CppPkg/Library/newdelete.cpp:
--------------------------------------------------------------------------------
1 | #include "StdUefi.h"
2 |
3 | __inline__ void * operator new( size_t cb )
4 | {
5 | void *res;
6 | res = malloc(cb);
7 | return res;
8 | }
9 |
10 |
11 | __inline__ void * operator new[]( size_t cb )
12 | {
13 | void *res = operator new(cb);
14 | return res;
15 | }
16 |
17 | __inline__ void operator delete( void * p )
18 | {
19 | free( p );
20 | }
21 |
22 | __inline__ void operator delete[]( void * p )
23 | {
24 | operator delete(p);
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/book/CppPkg/StdInclude/cpp.h:
--------------------------------------------------------------------------------
1 | #ifndef __CPP_HEADER__
2 | #define __CPP_HEADER__
3 |
4 | #undef NULL
5 | #define NULL 0
6 | #define _SIZE_T_DEFINED
7 | #define _PTRDIFF_T_DEFINED
8 | #endif //__CPP_HEADER__
9 |
--------------------------------------------------------------------------------
/book/CppPkg/StdInclude/stdfile.h:
--------------------------------------------------------------------------------
1 | #ifndef __HEADER_STDFILE__
2 | #define __HEADER_STDFILE__
3 | #include
4 | #include
5 | #endif
6 |
7 |
--------------------------------------------------------------------------------
/book/CppPkg/test/testcpp.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # A simple, basic, application showing how the Hello application could be
3 | # built using the "Standard C Libraries" from StdLib.
4 | #
5 | # Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | ##
14 |
15 | [Defines]
16 | INF_VERSION = 0x00010006
17 | BASE_NAME = testcpp
18 | FILE_GUID = 4ea97c46-7491-4dfd-b442-74798713ce5f
19 | VERSION_STRING = 0.1
20 | MODULE_TYPE = UEFI_APPLICATION
21 | ENTRY_POINT = ShellCEntryLib
22 |
23 | DEFINE UEFI_BOOK_DIR = uefi/book
24 |
25 |
26 | [Sources]
27 | #crtend.c
28 | testcpp.cpp | GCC
29 |
30 | [Packages]
31 | MdePkg/MdePkg.dec
32 | MdeModulePkg/MdeModulePkg.dec
33 | $(UEFI_BOOK_DIR)/CppPkg/CppPkg.dec
34 | StdLib/StdLib.dec
35 |
36 | [LibraryClasses]
37 | CppLib
38 | ShellCEntryLib
39 | PrintLib
40 | #LibC
41 | #LibStdio
42 |
43 | [Protocols]
44 |
45 | [BuildOptions]
46 | GCC:*_*_IA32_CC_FLAGS =
47 | MSFT:*_*_*_CC_FLAGS = /wd4804 /wd4068 /wd4164
48 |
49 |
--------------------------------------------------------------------------------
/book/Event/TestEvent.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhenghuadai/uefi-programming/5db3df15577a90ee32ed063a41ab742f5411f9c4/book/Event/TestEvent.c
--------------------------------------------------------------------------------
/book/Event/TestEvent.inf:
--------------------------------------------------------------------------------
1 | ##
2 |
3 | [Defines]
4 | INF_VERSION = 0x00010005
5 | BASE_NAME = testEvent
6 | FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4ED2117
7 | MODULE_TYPE = UEFI_APPLICATION
8 | VERSION_STRING = 1.0
9 | ENTRY_POINT = UefiMain
10 |
11 | #
12 | # The following information is for reference only and not required by the build tools.
13 | #
14 | # VALID_ARCHITECTURES = IA32 X64 IPF EBC
15 | #
16 |
17 | [Sources]
18 | TestEvent.c
19 | [Packages]
20 | MdePkg/MdePkg.dec
21 | MdeModulePkg/MdeModulePkg.dec
22 |
23 |
24 | [LibraryClasses]
25 | UefiApplicationEntryPoint
26 | UefiLib
27 | PcdLib
28 | DebugLib
29 | UefiBootServicesTableLib
30 | UefiRuntimeServicesTableLib
31 | BaseMemoryLib
32 |
33 | [Protocols]
34 | gEfiUnicodeCollation2ProtocolGuid # ALWAYS_CONSUMED
35 | gEfiDevicePathProtocolGuid # ALWAYS_CONSUMED
36 | gEfiLoadedImageProtocolGuid # ALWAYS_CONSUMED
37 | gEfiSimpleFileSystemProtocolGuid # ALWAYS_CONSUMED
38 | gEfiDevicePathToTextProtocolGuid # ALWAYS_CONSUMED
39 | gEfiHiiConfigAccessProtocolGuid
40 | gEfiPlatformDriverOverrideProtocolGuid
41 | gEfiBlockIoProtocolGuid ## TO_START
42 | gEfiDriverBindingProtocolGuid
43 | gEfiComponentNameProtocolGuid
44 | gEfiDiskIoProtocolGuid
45 | gEfiPciIoProtocolGuid
46 | gEfiSimplePointerProtocolGuid
47 | gEfiSimpleTextInputExProtocolGuid
48 |
49 | [FeaturePcd]
50 |
51 | [Pcd.common]
52 | gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang
53 | gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes
54 |
55 | [Guids]
56 | gEfiFileSystemInfoGuid
57 | gEfiFileInfoGuid
58 |
59 | [BuildOptions]
60 |
--------------------------------------------------------------------------------
/book/FileIo/FileIo.h:
--------------------------------------------------------------------------------
1 | /** @file
2 | **/
3 | extern "C"{
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include
14 | }
15 |
16 |
17 | class UFile
18 | {
19 | public:
20 | typedef EFI_STATUS Ustatus;
21 | UFile(CHAR16* FileName, UINT64 attr = 0);
22 | UFile(UFile& root, CHAR16* FileName, UINT64 attr = 0);
23 | ~UFile();
24 | public:
25 | //interface
26 |
27 | Ustatus Open(CHAR16* FileName, UINT64 mode, UINT64 attr);
28 | private:
29 | EFI_FILE_PROTOCOL* m_file;
30 | static EFI_FILE_PROTOCOL* m_root;
31 | };
32 |
--------------------------------------------------------------------------------
/book/FileIo/FileIo.inf:
--------------------------------------------------------------------------------
1 | ##
2 |
3 | [Defines]
4 | INF_VERSION = 0x00010005
5 | BASE_NAME = TestFileIo
6 | FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4ED2117
7 | MODULE_TYPE = UEFI_APPLICATION
8 | VERSION_STRING = 1.0
9 | ENTRY_POINT = UefiMain
10 |
11 | #
12 | # The following information is for reference only and not required by the build tools.
13 | #
14 | # VALID_ARCHITECTURES = IA32 X64 IPF EBC
15 | #
16 |
17 | [Sources]
18 | TestFileIo.c
19 | [Packages]
20 | MdePkg/MdePkg.dec
21 | MdeModulePkg/MdeModulePkg.dec
22 | uefi/book/Uutil/Uutil.dec
23 | ShellPkg/ShellPkg.dec
24 |
25 |
26 | [LibraryClasses]
27 | UefiApplicationEntryPoint
28 | UefiLib
29 | PcdLib
30 | DebugLib
31 | UefiBootServicesTableLib
32 | UefiRuntimeServicesTableLib
33 | BaseMemoryLib
34 |
35 | [Protocols]
36 | gEfiUnicodeCollation2ProtocolGuid # ALWAYS_CONSUMED
37 | gEfiDevicePathProtocolGuid # ALWAYS_CONSUMED
38 | gEfiLoadedImageProtocolGuid # ALWAYS_CONSUMED
39 | gEfiSimpleFileSystemProtocolGuid # ALWAYS_CONSUMED
40 | gEfiDevicePathToTextProtocolGuid # ALWAYS_CONSUMED
41 | gEfiPlatformDriverOverrideProtocolGuid
42 | gEfiBlockIoProtocolGuid ## TO_START
43 | gEfiDriverBindingProtocolGuid
44 | gEfiComponentNameProtocolGuid
45 | gEfiDiskIoProtocolGuid
46 | gEfiPciIoProtocolGuid
47 | gEfiSimplePointerProtocolGuid
48 | gEfiSimpleTextInputExProtocolGuid
49 | gEfiShellProtocolGuid
50 |
51 | [FeaturePcd]
52 |
53 | [Pcd.common]
54 | gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang
55 | gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes
56 |
57 | [Guids]
58 | gEfiFileSystemInfoGuid
59 | gEfiFileInfoGuid
60 |
61 | [BuildOptions]
62 |
--------------------------------------------------------------------------------
/book/FileIo/TestFileIo.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhenghuadai/uefi-programming/5db3df15577a90ee32ed063a41ab742f5411f9c4/book/FileIo/TestFileIo.c
--------------------------------------------------------------------------------
/book/GUIPkg/GUIPkg.dec:
--------------------------------------------------------------------------------
1 | ## @file
2 | #
3 | # This is the Unix Emulation Environment Platform
4 | #
5 | # Reference platform implementation using an emulator.
6 | # Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.
7 | #
8 | # This program and the accompanying materials are licensed and made available
9 | # under the terms and conditions of the BSD License which accompanies this distribution.
10 | # The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES
12 | # OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | #
14 | ##
15 |
16 | [Defines]
17 | DEC_SPECIFICATION = 0x00010005
18 | PACKAGE_NAME = EdkGUIPkg
19 | PACKAGE_GUID = f4805c44-8985-11db-9e98-0040d0c0d0cc
20 | PACKAGE_VERSION = 1.0
21 |
22 | [Includes]
23 | Include
24 |
25 | [LibraryClasses]
26 |
27 | [Guids]
28 | [Ppis]
29 |
30 | [Protocols]
31 |
32 | [PcdsFixedAtBuild]
33 | [PcdsFixedAtBuild, PcdsPatchableInModule]
34 |
35 | [PcdsDynamic, PcdsDynamicEx]
36 |
--------------------------------------------------------------------------------
/book/GUIPkg/Include/fbext.h:
--------------------------------------------------------------------------------
1 | #ifndef _FRAMEBUFFER_EXT_HEADER
2 | #define _FRAMEBUFFER_EXT_HEADER
3 | #ifdef __cplusplus
4 | extern "C"{
5 | #endif
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 |
14 | #ifdef __cplusplus
15 | }//! extern C
16 | #endif
17 | #include
18 | namespace UGUI{
19 |
20 |
21 | class ManuelFrameBuffer: public UFrameBuffer
22 | {
23 | public:
24 | ManuelFrameBuffer():UFrameBuffer(),
25 | m_framebuffer_base(0),
26 | m_pixel_bits(0),
27 | m_VideoPciIo(0),
28 | m_Frambuffer(0)
29 | {
30 | AutoInit();
31 | }
32 | virtual ~ManuelFrameBuffer();
33 | private:
34 | BOOLEAN UseFrameBuffer(){ return (m_framebuffer_base != 0); }
35 | EFI_STATUS AutoInit();
36 | public:
37 | virtual EFI_STATUS UpdateScreen(EFI_GRAPHICS_OUTPUT_BLT_PIXEL* bitmap, RECT aRect = Brick::ClientRect);
38 | virtual EFI_STATUS Blt(
39 | IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
40 | IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL
41 | IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
42 | IN UINTN SourceX,
43 | IN UINTN SourceY,
44 | IN UINTN DestinationX,
45 | IN UINTN DestinationY,
46 | IN UINTN Width,
47 | IN UINTN Height,
48 | IN UINTN Delta OPTIONAL
49 | );
50 | private:
51 | UINT64 m_framebuffer_base;
52 | UINT32 m_pixel_bits;
53 | UINT32 m_line_pixels;
54 | EFI_PCI_IO_PROTOCOL *m_VideoPciIo;
55 | UINT8 *m_Frambuffer;
56 | };
57 |
58 | }
59 | #endif
60 |
--------------------------------------------------------------------------------
/book/GUIPkg/Library/UGui.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhenghuadai/uefi-programming/5db3df15577a90ee32ed063a41ab742f5411f9c4/book/GUIPkg/Library/UGui.cpp
--------------------------------------------------------------------------------
/book/GUIPkg/Library/UGui.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # The DXE driver produces HII protocols defined in UEFI HII 2.1 specificatin.
3 | #
4 | # Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.
5 | #
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.php
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | #
14 | #
15 | ##
16 |
17 | [Defines]
18 | INF_VERSION = 0x00010005
19 | BASE_NAME = libGui
20 | FILE_GUID = 348C4D62-BFBD-4882-9ECE-C80BB1C64336
21 | VERSION_STRING = 1.0
22 | MODULE_TYPE = BASE
23 | LIBRARY_CLASS = GUILib
24 |
25 | DEFINE UEFI_BOOK_DIR = uefi/book
26 |
27 | #
28 | # The following information is for reference only and not required by the build tools.
29 | #
30 | # VALID_ARCHITECTURES = IA32 X64 IPF EBC
31 | #
32 |
33 | [Sources]
34 | UGui.cpp
35 | fb.cpp
36 | bmp.cpp
37 | Util.cpp
38 | [Packages]
39 | StdLib/StdLib.dec
40 | MdePkg/MdePkg.dec
41 | MdeModulePkg/MdeModulePkg.dec
42 | ShellPkg/ShellPkg.dec
43 | $(UEFI_BOOK_DIR)/CppPkg/CppPkg.dec
44 | $(UEFI_BOOK_DIR)/GUIPkg/GUIPkg.dec
45 |
46 | [LibraryClasses]
47 | UefiBootServicesTableLib
48 | UefiLib
49 |
50 | [Protocols]
51 | gEfiSimpleTextInputExProtocolGuid
52 |
53 | [FeaturePcd]
54 |
55 | [Pcd]
56 |
57 | [Guids]
58 |
59 | [Depex]
60 | TRUE
61 |
62 | [BuildOptions]
63 | MSFT:*_*_*_CC_FLAGS = /wd4804 /wd4201 /wd4164
64 |
--------------------------------------------------------------------------------
/book/GUIPkg/Library/Util.cpp:
--------------------------------------------------------------------------------
1 | #include < UGui.h>
2 | extern "C"{
3 | #include < Protocol/HiiFont.h>
4 | #include < Library/HiiLib.h>
5 | #include < Library/UefiRuntimeServicesTableLib.h>
6 | #include < Protocol/BlockIo.h>
7 | #include < Library/MemoryAllocationLib.h>
8 | }
9 |
10 |
11 | namespace UGUI{
12 |
13 |
14 |
15 | }//namespace UGUI{
16 |
--------------------------------------------------------------------------------
/book/GUIPkg/test/testcpp.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # A simple, basic, application showing how the Hello application could be
3 | # built using the "Standard C Libraries" from StdLib.
4 | #
5 | # Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | ##
14 |
15 | [Defines]
16 | INF_VERSION = 0x00010006
17 | BASE_NAME = testgcpp
18 | FILE_GUID = 4ea97c46-7491-4dfd-b442-74798713ce5f
19 | VERSION_STRING = 0.1
20 | MODULE_TYPE = UEFI_APPLICATION
21 | ENTRY_POINT = ShellCEntryLib
22 |
23 | [Sources]
24 | #crtend.c
25 | testcpp.cpp
26 |
27 | [Packages]
28 | MdePkg/MdePkg.dec
29 | MdeModulePkg/MdeModulePkg.dec
30 | uefi/CppPkg/CppPkg.dec
31 | StdLib/StdLib.dec
32 |
33 | [LibraryClasses]
34 | CppLib
35 | ShellCEntryLib
36 | PrintLib
37 | LibC
38 | LibStdio
39 |
40 | [Protocols]
41 |
42 | [BuildOptions]
43 | GCC:*_*_IA32_CC_FLAGS =
44 | MSFT:*_*_*_CC_FLAGS = /wd4804 /wd4068
45 |
46 |
--------------------------------------------------------------------------------
/book/GUIbasics/String/example.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhenghuadai/uefi-programming/5db3df15577a90ee32ed063a41ab742f5411f9c4/book/GUIbasics/String/example.c
--------------------------------------------------------------------------------
/book/GUIbasics/String/example.inf:
--------------------------------------------------------------------------------
1 | [Defines]
2 | INF_VERSION = 0x00010006
3 | BASE_NAME = example
4 | FILE_GUID = 4ba97c46-7491-4dfd-b442-747010f3ce5f
5 | MODULE_TYPE = UEFI_APPLICATION
6 | VERSION_STRING = 0.1
7 | ENTRY_POINT = ShellCEntryLib
8 | #
9 | # VALID_ARCHITECTURES = IA32 X64 IPF
10 | #
11 | [Sources]
12 | example.c
13 | example.uni
14 |
15 | [Packages]
16 | MdePkg/MdePkg.dec
17 | MdeModulePkg/MdeModulePkg.dec
18 | ShellPkg/ShellPkg.dec
19 |
20 | [LibraryClasses]
21 | ShellCEntryLib
22 | UefiLib
23 | HiiLib
24 | ShellLib
25 | UefiHiiServicesLib
26 | MemoryAllocationLib
27 |
28 | [protocols]
29 | gEfiHiiStringProtocolGuid
30 | gEfiShellProtocolGuid
31 | gEfiShellParametersProtocolGuid
32 |
33 | [BuildOptions]
34 |
35 |
--------------------------------------------------------------------------------
/book/GUIbasics/String/example.uni:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhenghuadai/uefi-programming/5db3df15577a90ee32ed063a41ab742f5411f9c4/book/GUIbasics/String/example.uni
--------------------------------------------------------------------------------
/book/GUIbasics/font/Font/font.c:
--------------------------------------------------------------------------------
1 | /*
2 | * =====================================================================================
3 | *
4 | * Filename: font.c
5 | *
6 | * Description:
7 | *
8 | * Version: 1.0
9 | * Created: 02/20/2013 08:41:46 PM
10 | * Revision: none
11 | * Compiler: gcc
12 | *
13 | * Author: DAI ZHENGHUA (), djx.zhenghua@gmail.com
14 | * Company:
15 | *
16 | * =====================================================================================
17 | */
18 | #include
19 | #include "../example.data"
20 | #include "LaffStd.c"
21 |
--------------------------------------------------------------------------------
/book/GUIbasics/font/Font/font.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # A simple, basic, application showing how the Hello application could be
3 | # built using the "Standard C Libraries" from StdLib.
4 | #
5 | # Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | ##
14 |
15 | [Defines]
16 | INF_VERSION = 0x00010006
17 | BASE_NAME = dfont
18 | FILE_GUID = 4ea97c46-7491-4dfd-b442-74798713ce5f
19 | VERSION_STRING = 0.1
20 | #MODULE_TYPE = UEFI_DRIVER
21 | MODULE_TYPE = UEFI_APPLICATION
22 | ENTRY_POINT = LoadFont
23 | #
24 | # VALID_ARCHITECTURES = IA32 X64 IPF
25 | #
26 |
27 | [Sources]
28 | font.c
29 | main.c
30 |
31 | [Packages]
32 | MdePkg/MdePkg.dec
33 | MdeModulePkg/MdeModulePkg.dec
34 |
35 | [LibraryClasses]
36 | # UefiDriverEntryPoint
37 | UefiApplicationEntryPoint
38 | UefiLib
39 | HiiLib
40 | BaseMemoryLib
41 | UefiHiiServicesLib
42 |
43 | [Protocols]
44 | gEfiPciIoProtocolGuid
45 | gEfiGraphicsOutputProtocolGuid
46 | gEfiHiiDatabaseProtocolGuid
47 | gEfiHiiImageProtocolGuid
48 | gEfiHiiConfigRoutingProtocolGuid
49 | gEfiHiiStringProtocolGuid
50 | gEfiSimplePointerProtocolGuid
51 |
52 | [BuildOptions]
53 | GCC:*_*_IA32_CC_FLAGS = -O2
54 | MSFT:*_*_*_CC_FLAGS = -DNEFI_SHELL_FILE_PROTOCOL -DUSE_SIMPLE_STDIO /GL- /wd4804 /wd4201 /Oi- /FAs
55 |
56 |
--------------------------------------------------------------------------------
/book/GUIbasics/font/SimpleFont/font.c:
--------------------------------------------------------------------------------
1 | /*
2 | * =====================================================================================
3 | *
4 | * Filename: font.c
5 | *
6 | * Description:
7 | *
8 | * Version: 1.0
9 | * Created: 02/20/2013 08:41:46 PM
10 | * Revision: none
11 | * Compiler: gcc
12 | *
13 | * Author: DAI ZHENGHUA (), djx.zhenghua@gmail.com
14 | * Company:
15 | *
16 | * =====================================================================================
17 | */
18 | #include
19 | #include "example.data"
20 |
--------------------------------------------------------------------------------
/book/GUIbasics/font/SimpleFont/font.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # A simple, basic, application showing how the Hello application could be
3 | # built using the "Standard C Libraries" from StdLib.
4 | #
5 | # Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | ##
14 |
15 | [Defines]
16 | INF_VERSION = 0x00010006
17 | BASE_NAME = font
18 | FILE_GUID = 4ea97c46-7491-4dfd-b442-74798713ce5f
19 | VERSION_STRING = 0.1
20 | #MODULE_TYPE = UEFI_DRIVER
21 | MODULE_TYPE = UEFI_APPLICATION
22 | ENTRY_POINT = LoadFont
23 | #
24 | # VALID_ARCHITECTURES = IA32 X64 IPF
25 | #
26 |
27 | [Sources]
28 | font.c
29 | main.c
30 |
31 | [Packages]
32 | MdePkg/MdePkg.dec
33 | MdeModulePkg/MdeModulePkg.dec
34 |
35 | [LibraryClasses]
36 | # UefiDriverEntryPoint
37 | UefiApplicationEntryPoint
38 | UefiLib
39 | HiiLib
40 | BaseMemoryLib
41 | UefiHiiServicesLib
42 |
43 | [Protocols]
44 | gEfiPciIoProtocolGuid
45 | gEfiGraphicsOutputProtocolGuid
46 | gEfiHiiDatabaseProtocolGuid
47 | gEfiHiiImageProtocolGuid
48 | gEfiHiiConfigRoutingProtocolGuid
49 | gEfiHiiStringProtocolGuid
50 | gEfiSimplePointerProtocolGuid
51 |
52 | [BuildOptions]
53 | GCC:*_*_IA32_CC_FLAGS = -O2
54 | MSFT:*_*_*_CC_FLAGS = -DNEFI_SHELL_FILE_PROTOCOL -DUSE_SIMPLE_STDIO /GL- /wd4804 /wd4201 /Oi- /FAs
55 |
56 |
--------------------------------------------------------------------------------
/book/GUIbasics/font/testFont/testfont.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # A simple, basic, application showing how the Hello application could be
3 | # built using the "Standard C Libraries" from StdLib.
4 | #
5 | # Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | ##
14 |
15 | [Defines]
16 | INF_VERSION = 0x00010006
17 | BASE_NAME = testdfont
18 | FILE_GUID = 4ea97c46-7491-4dfd-b442-74798713ce5f
19 | VERSION_STRING = 0.1
20 | #MODULE_TYPE = UEFI_DRIVER
21 | MODULE_TYPE = UEFI_APPLICATION
22 | ENTRY_POINT = UefiMain
23 | #
24 | # VALID_ARCHITECTURES = IA32 X64 IPF
25 | #
26 |
27 | [Sources]
28 | testfont.cpp
29 |
30 | [Packages]
31 | MdePkg/MdePkg.dec
32 | MdeModulePkg/MdeModulePkg.dec
33 |
34 | [LibraryClasses]
35 | UefiApplicationEntryPoint
36 | PrintLib
37 | UefiLib
38 | HiiLib
39 | BaseMemoryLib
40 |
41 | [Protocols]
42 | gEfiPciIoProtocolGuid
43 | gEfiGraphicsOutputProtocolGuid
44 | gEfiHiiDatabaseProtocolGuid
45 | gEfiHiiImageProtocolGuid
46 | gEfiHiiConfigRoutingProtocolGuid
47 | gEfiHiiStringProtocolGuid
48 | gEfiSimplePointerProtocolGuid
49 | gEfiGraphicsOutputProtocolGuid
50 | gEfiHiiFontProtocolGuid
51 | [BuildOptions]
52 | GCC:*_*_IA32_CC_FLAGS = -O2
53 | MSFT:*_*_*_CC_FLAGS = -DNEFI_SHELL_FILE_PROTOCOL -DUSE_SIMPLE_STDIO /GL- /wd4804 /wd4201 /Oi- /FAs
54 |
55 |
--------------------------------------------------------------------------------
/book/GUIbasics/font/testSimpleFont/testfont.c:
--------------------------------------------------------------------------------
1 | /*
2 | * =====================================================================================
3 | *
4 | * Filename: main.c
5 | *
6 | * Description:
7 | *
8 | * Version: 1.0
9 | * Created: 02/19/2013 08:22:52 PM
10 | * Revision: none
11 | * Compiler: gcc
12 | *
13 | * Author: DAI ZHENGHUA (), djx.zhenghua@gmail.com
14 | * Company:
15 | *
16 | * =====================================================================================
17 | */
18 |
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 |
26 |
27 | EFI_STATUS
28 | EFIAPI
29 | UefiMain(
30 | IN EFI_HANDLE ImageHandle,
31 | IN EFI_SYSTEM_TABLE *SystemTable
32 | )
33 | {
34 | EFI_STATUS Status = 0;
35 | Print((const CHAR16*)L" 您好UEFI Font");
36 | return Status;
37 | }
38 |
--------------------------------------------------------------------------------
/book/GUIbasics/font/testSimpleFont/testfont.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * =====================================================================================
3 | *
4 | * Filename: main.c
5 | *
6 | * Description:
7 | *
8 | * Version: 1.0
9 | * Created: 02/19/2013 08:22:52 PM
10 | * Revision: none
11 | * Compiler: gcc
12 | *
13 | * Author: DAI ZHENGHUA (), djx.zhenghua@gmail.com
14 | * Company:
15 | *
16 | * =====================================================================================
17 | */
18 |
19 | extern "C"
20 | {
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 | }
29 |
30 | EFI_STATUS
31 | EFIAPI
32 | UefiMain(
33 | IN EFI_HANDLE ImageHandle,
34 | IN EFI_SYSTEM_TABLE *SystemTable
35 | )
36 | {
37 | EFI_STATUS Status = 0;
38 | Print((const CHAR16*)L" 您好UEFI Font");
39 | Print((const CHAR16*)L" offset %x\n", ((EFI_HII_FONT_PACKAGE_HDR*)0)->FontFamily);
40 | return Status;
41 | }
42 |
--------------------------------------------------------------------------------
/book/GUIbasics/font/testSimpleFont/testfont.inf:
--------------------------------------------------------------------------------
1 | ## @file
2 | # A simple, basic, application showing how the Hello application could be
3 | # built using the "Standard C Libraries" from StdLib.
4 | #
5 | # Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
6 | # This program and the accompanying materials
7 | # are licensed and made available under the terms and conditions of the BSD License
8 | # which accompanies this distribution. The full text of the license may be found at
9 | # http://opensource.org/licenses/bsd-license.
10 | #
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | ##
14 |
15 | [Defines]
16 | INF_VERSION = 0x00010006
17 | BASE_NAME = testfont
18 | FILE_GUID = 4ea97c46-7491-4dfd-b442-74798713ce5f
19 | VERSION_STRING = 0.1
20 | #MODULE_TYPE = UEFI_DRIVER
21 | MODULE_TYPE = UEFI_APPLICATION
22 | ENTRY_POINT = UefiMain
23 | #
24 | # VALID_ARCHITECTURES = IA32 X64 IPF
25 | #
26 |
27 | [Sources]
28 | testfont.cpp
29 |
30 | [Packages]
31 | MdePkg/MdePkg.dec
32 | MdeModulePkg/MdeModulePkg.dec
33 |
34 | [LibraryClasses]
35 | UefiApplicationEntryPoint
36 | PrintLib
37 | UefiLib
38 | HiiLib
39 | BaseMemoryLib
40 | UefiHiiServicesLib
41 |
42 | [Protocols]
43 | gEfiPciIoProtocolGuid
44 | gEfiGraphicsOutputProtocolGuid
45 | gEfiHiiDatabaseProtocolGuid
46 | gEfiHiiImageProtocolGuid
47 | gEfiHiiConfigRoutingProtocolGuid
48 | gEfiHiiStringProtocolGuid
49 | gEfiSimplePointerProtocolGuid
50 |
51 | [BuildOptions]
52 | GCC:*_*_IA32_CC_FLAGS = -O2
53 | MSFT:*_*_*_CC_FLAGS = -DNEFI_SHELL_FILE_PROTOCOL -DUSE_SIMPLE_STDIO /GL- /wd4804 /wd4201 /Oi- /FAs
54 |
55 |
--------------------------------------------------------------------------------
/book/GcppPkg/GcppPkg.dec:
--------------------------------------------------------------------------------
1 | ## @file
2 | #
3 | # This is the Unix Emulation Environment Platform
4 | #
5 | # Reference platform implementation using an emulator.
6 | # Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.
7 | #
8 | # This program and the accompanying materials are licensed and made available
9 | # under the terms and conditions of the BSD License which accompanies this distribution.
10 | # The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
11 | # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES
12 | # OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 | #
14 | ##
15 |
16 | [Defines]
17 | DEC_SPECIFICATION = 0x00010005
18 | PACKAGE_NAME = EdkGCppPkg
19 | PACKAGE_GUID = e2805c44-8985-11db-9e98-0040d0c0d0cc
20 | PACKAGE_VERSION = 1.0
21 |
22 | [Includes]
23 | Include
24 | Include/parallel
25 |
26 | [Includes.IA32]
27 | Include/i486-linux-gnu
28 | [LibraryClasses]
29 |
30 | [Guids]
31 | [Ppis]
32 |
33 | [Protocols]
34 |
35 | [PcdsFixedAtBuild]
36 | [PcdsFixedAtBuild, PcdsPatchableInModule]
37 |
38 | [PcdsDynamic, PcdsDynamicEx]
39 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/bits/cmath.tcc:
--------------------------------------------------------------------------------
1 | // -*- C++ -*- C math library.
2 |
3 | // Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
4 | // Free Software Foundation, Inc.
5 | //
6 | // This file is part of the GNU ISO C++ Library. This library is free
7 | // software; you can redistribute it and/or modify it under the
8 | // terms of the GNU General Public License as published by the
9 | // Free Software Foundation; either version 3, or (at your option)
10 | // any later version.
11 |
12 | // This library is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 |
17 | // Under Section 7 of GPL version 3, you are granted additional
18 | // permissions described in the GCC Runtime Library Exception, version
19 | // 3.1, as published by the Free Software Foundation.
20 |
21 | // You should have received a copy of the GNU General Public License and
22 | // a copy of the GCC Runtime Library Exception along with this program;
23 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 | // .
25 |
26 | // This file was written by Gabriel Dos Reis
27 |
28 | /** @file cmath.tcc
29 | * This is a Standard C++ Library file.
30 | */
31 |
32 | #ifndef _GLIBCXX_CMATH_TCC
33 | #define _GLIBCXX_CMATH_TCC 1
34 |
35 | _GLIBCXX_BEGIN_NAMESPACE(std)
36 |
37 | template
38 | inline _Tp
39 | __cmath_power(_Tp __x, unsigned int __n)
40 | {
41 | _Tp __y = __n % 2 ? __x : _Tp(1);
42 |
43 | while (__n >>= 1)
44 | {
45 | __x = __x * __x;
46 | if (__n % 2)
47 | __y = __y * __x;
48 | }
49 |
50 | return __y;
51 | }
52 |
53 | _GLIBCXX_END_NAMESPACE
54 |
55 | #endif
56 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/c++0x_warning.h:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
2 | //
3 | // This file is part of the GNU ISO C++ Library. This library is free
4 | // software; you can redistribute it and/or modify it under the
5 | // terms of the GNU General Public License as published by the
6 | // Free Software Foundation; either version 3, or (at your option)
7 | // any later version.
8 |
9 | // This library is distributed in the hope that it will be useful,
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | // GNU General Public License for more details.
13 |
14 | // Under Section 7 of GPL version 3, you are granted additional
15 | // permissions described in the GCC Runtime Library Exception, version
16 | // 3.1, as published by the Free Software Foundation.
17 |
18 | // You should have received a copy of the GNU General Public License and
19 | // a copy of the GCC Runtime Library Exception along with this program;
20 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
21 | // .
22 |
23 | /** @file include/c++0x_warning.h
24 | * This is a Standard C++ Library header.
25 | */
26 |
27 | #ifndef _CXX0X_WARNING_H
28 | #define _CXX0X_WARNING_H 1
29 |
30 | #ifndef __GXX_EXPERIMENTAL_CXX0X__
31 | #error This file requires compiler and library support for the upcoming \
32 | ISO C++ standard, C++0x. This support is currently experimental, and must be \
33 | enabled with the -std=c++0x or -std=gnu++0x compiler options.
34 | #endif
35 |
36 | #endif
37 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/cassert:
--------------------------------------------------------------------------------
1 | // -*- C++ -*- forwarding header.
2 |
3 | // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
4 | // 2006, 2007, 2008, 2009
5 | // Free Software Foundation, Inc.
6 | //
7 | // This file is part of the GNU ISO C++ Library. This library is free
8 | // software; you can redistribute it and/or modify it under the
9 | // terms of the GNU General Public License as published by the
10 | // Free Software Foundation; either version 3, or (at your option)
11 | // any later version.
12 |
13 | // This library is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 |
18 | // Under Section 7 of GPL version 3, you are granted additional
19 | // permissions described in the GCC Runtime Library Exception, version
20 | // 3.1, as published by the Free Software Foundation.
21 |
22 | // You should have received a copy of the GNU General Public License and
23 | // a copy of the GCC Runtime Library Exception along with this program;
24 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 | // .
26 |
27 | /** @file cassert
28 | * This is a Standard C++ Library file. You should @c #include this file
29 | * in your programs, rather than any of the "*.h" implementation files.
30 | *
31 | * This is the C++ version of the Standard C Library header @c assert.h,
32 | * and its contents are (mostly) the same as that header, but are all
33 | * contained in the namespace @c std (except for names which are defined
34 | * as macros in C).
35 | */
36 |
37 | //
38 | // ISO C++ 14882: 19.2 Assertions
39 | //
40 |
41 | // No include guards on this header...
42 |
43 | #pragma GCC system_header
44 |
45 | #include
46 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/ccomplex:
--------------------------------------------------------------------------------
1 | // -*- C++ -*-
2 |
3 | // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
4 | //
5 | // This file is part of the GNU ISO C++ Library. This library is free
6 | // software; you can redistribute it and/or modify it under the
7 | // terms of the GNU General Public License as published by the
8 | // Free Software Foundation; either version 3, or (at your option)
9 | // any later version.
10 |
11 | // This library is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // Under Section 7 of GPL version 3, you are granted additional
17 | // permissions described in the GCC Runtime Library Exception, version
18 | // 3.1, as published by the Free Software Foundation.
19 |
20 | // You should have received a copy of the GNU General Public License and
21 | // a copy of the GCC Runtime Library Exception along with this program;
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 | // .
24 |
25 | /** @file include/ccomplex
26 | * This is a Standard C++ Library header.
27 | */
28 |
29 | #pragma GCC system_header
30 |
31 | #ifndef _GLIBCXX_CCOMPLEX
32 | #define _GLIBCXX_CCOMPLEX 1
33 |
34 | #ifndef __GXX_EXPERIMENTAL_CXX0X__
35 | # include
36 | #endif
37 |
38 | #if defined(_GLIBCXX_INCLUDE_AS_TR1)
39 | # error C++0x header cannot be included from TR1 header
40 | #endif
41 |
42 | #include
43 |
44 | #endif
45 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/cerrno:
--------------------------------------------------------------------------------
1 | // The -*- C++ -*- forwarding header.
2 |
3 | // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
4 | // 2006, 2007, 2008, 2009
5 | // Free Software Foundation, Inc.
6 | //
7 | // This file is part of the GNU ISO C++ Library. This library is free
8 | // software; you can redistribute it and/or modify it under the
9 | // terms of the GNU General Public License as published by the
10 | // Free Software Foundation; either version 3, or (at your option)
11 | // any later version.
12 |
13 | // This library is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 |
18 | // Under Section 7 of GPL version 3, you are granted additional
19 | // permissions described in the GCC Runtime Library Exception, version
20 | // 3.1, as published by the Free Software Foundation.
21 |
22 | // You should have received a copy of the GNU General Public License and
23 | // a copy of the GCC Runtime Library Exception along with this program;
24 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
25 | // .
26 |
27 | /** @file cerrno
28 | * This is a Standard C++ Library file. You should @c #include this file
29 | * in your programs, rather than any of the "*.h" implementation files.
30 | *
31 | * This is the C++ version of the Standard C Library header @c errno.h,
32 | * and its contents are (mostly) the same as that header, but are all
33 | * contained in the namespace @c std (except for names which are defined
34 | * as macros in C).
35 | */
36 |
37 | //
38 | // ISO C++ 14882: 19.3 Error numbers
39 | //
40 |
41 | #pragma GCC system_header
42 |
43 | #include
44 |
45 | #ifndef _GLIBCXX_CERRNO
46 | #define _GLIBCXX_CERRNO 1
47 |
48 | // Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998
49 | #ifndef errno
50 | #define errno errno
51 | #endif
52 |
53 | #endif
54 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/ciso646:
--------------------------------------------------------------------------------
1 | // -*- C++ -*- forwarding header.
2 |
3 | // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
4 | //
5 | // This file is part of the GNU ISO C++ Library. This library is free
6 | // software; you can redistribute it and/or modify it under the
7 | // terms of the GNU General Public License as published by the
8 | // Free Software Foundation; either version 3, or (at your option)
9 | // any later version.
10 |
11 | // This library is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // Under Section 7 of GPL version 3, you are granted additional
17 | // permissions described in the GCC Runtime Library Exception, version
18 | // 3.1, as published by the Free Software Foundation.
19 |
20 | // You should have received a copy of the GNU General Public License and
21 | // a copy of the GCC Runtime Library Exception along with this program;
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 | // .
24 |
25 | /** @file ciso646
26 | * This is a Standard C++ Library file. You should @c #include this file
27 | * in your programs, rather than any of the "*.h" implementation files.
28 | *
29 | * This is the C++ version of the Standard C Library header @c iso646.h,
30 | * and its contents are (mostly) the same as that header, but are all
31 | * contained in the namespace @c std (except for names which are defined
32 | * as macros in C).
33 | */
34 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/complex.h:
--------------------------------------------------------------------------------
1 | // -*- C++ -*- compatibility header.
2 |
3 | // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
4 | //
5 | // This file is part of the GNU ISO C++ Library. This library is free
6 | // software; you can redistribute it and/or modify it under the
7 | // terms of the GNU General Public License as published by the
8 | // Free Software Foundation; either version 3, or (at your option)
9 | // any later version.
10 |
11 | // This library is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // Under Section 7 of GPL version 3, you are granted additional
17 | // permissions described in the GCC Runtime Library Exception, version
18 | // 3.1, as published by the Free Software Foundation.
19 |
20 | // You should have received a copy of the GNU General Public License and
21 | // a copy of the GCC Runtime Library Exception along with this program;
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 | // .
24 |
25 | /** @file complex.h
26 | * This is a Standard C++ Library header.
27 | */
28 |
29 | #include
30 |
31 | #ifdef __GXX_EXPERIMENTAL_CXX0X__
32 | # include
33 | #else
34 | # if _GLIBCXX_HAVE_COMPLEX_H
35 | # include_next
36 | # endif
37 | #endif
38 |
39 | #ifndef _GLIBCXX_COMPLEX_H
40 | #define _GLIBCXX_COMPLEX_H 1
41 |
42 | #endif
43 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/cstdbool:
--------------------------------------------------------------------------------
1 | // -*- C++ -*-
2 |
3 | // Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
4 | //
5 | // This file is part of the GNU ISO C++ Library. This library is free
6 | // software; you can redistribute it and/or modify it under the
7 | // terms of the GNU General Public License as published by the
8 | // Free Software Foundation; either version 3, or (at your option)
9 | // any later version.
10 |
11 | // This library is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // Under Section 7 of GPL version 3, you are granted additional
17 | // permissions described in the GCC Runtime Library Exception, version
18 | // 3.1, as published by the Free Software Foundation.
19 |
20 | // You should have received a copy of the GNU General Public License and
21 | // a copy of the GCC Runtime Library Exception along with this program;
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 | // .
24 |
25 | /** @file include/cstdbool
26 | * This is a Standard C++ Library header.
27 | */
28 |
29 | #pragma GCC system_header
30 |
31 | #ifndef _GLIBCXX_CSTDBOOL
32 | #define _GLIBCXX_CSTDBOOL 1
33 |
34 | #ifndef __GXX_EXPERIMENTAL_CXX0X__
35 | # include
36 | #else
37 | # include
38 | # if _GLIBCXX_HAVE_STDBOOL_H
39 | # include
40 | # endif
41 | #endif
42 |
43 | #endif
44 |
45 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/ctgmath:
--------------------------------------------------------------------------------
1 | // -*- C++ -*-
2 |
3 | // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
4 | //
5 | // This file is part of the GNU ISO C++ Library. This library is free
6 | // software; you can redistribute it and/or modify it under the
7 | // terms of the GNU General Public License as published by the
8 | // Free Software Foundation; either version 3, or (at your option)
9 | // any later version.
10 |
11 | // This library is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 |
16 | // Under Section 7 of GPL version 3, you are granted additional
17 | // permissions described in the GCC Runtime Library Exception, version
18 | // 3.1, as published by the Free Software Foundation.
19 |
20 | // You should have received a copy of the GNU General Public License and
21 | // a copy of the GCC Runtime Library Exception along with this program;
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 | // .
24 |
25 | /** @file include/ctgmath
26 | * This is a Standard C++ Library header.
27 | */
28 |
29 | #pragma GCC system_header
30 |
31 | #ifndef _GLIBCXX_CTGMATH
32 | #define _GLIBCXX_CTGMATH 1
33 |
34 | #ifndef __GXX_EXPERIMENTAL_CXX0X__
35 | # include
36 | #else
37 | # include
38 | #endif
39 |
40 | #endif
41 |
42 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/cxxabi-forced.h:
--------------------------------------------------------------------------------
1 | // cxxabi.h subset for inclusion by other library headers -*- C++ -*-
2 |
3 | // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
4 | //
5 | // This file is part of GCC.
6 | //
7 | // GCC is free software; you can redistribute it and/or modify
8 | // it under the terms of the GNU General Public License as published by
9 | // the Free Software Foundation; either version 3, or (at your option)
10 | // any later version.
11 | //
12 | // GCC is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // Under Section 7 of GPL version 3, you are granted additional
18 | // permissions described in the GCC Runtime Library Exception, version
19 | // 3.1, as published by the Free Software Foundation.
20 |
21 | // You should have received a copy of the GNU General Public License and
22 | // a copy of the GCC Runtime Library Exception along with this program;
23 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 | // .
25 |
26 | #ifndef _CXXABI_FORCED_H
27 | #define _CXXABI_FORCED_H 1
28 |
29 | #pragma GCC visibility push(default)
30 |
31 | #ifdef __cplusplus
32 | namespace __cxxabiv1
33 | {
34 | /**
35 | * @brief Thrown as part of forced unwinding.
36 | * @ingroup exceptions
37 | *
38 | * A magic placeholder class that can be caught by reference to
39 | * recognize forced unwinding.
40 | */
41 | class __forced_unwind
42 | {
43 | virtual ~__forced_unwind() throw();
44 | virtual void __pure_dummy() = 0; // prevent catch by value
45 | };
46 | }
47 | #endif // __cplusplus
48 |
49 | #pragma GCC visibility pop
50 |
51 | #endif // __CXXABI_FORCED_H
52 |
--------------------------------------------------------------------------------
/book/GcppPkg/Include/debug/map:
--------------------------------------------------------------------------------
1 | // Debugging map/multimap implementation -*- C++ -*-
2 |
3 | // Copyright (C) 2003, 2006, 2009
4 | // Free Software Foundation, Inc.
5 | //
6 | // This file is part of the GNU ISO C++ Library. This library is free
7 | // software; you can redistribute it and/or modify it under the
8 | // terms of the GNU General Public License as published by the
9 | // Free Software Foundation; either version 3, or (at your option)
10 | // any later version.
11 |
12 | // This library is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 |
17 | // Under Section 7 of GPL version 3, you are granted additional
18 | // permissions described in the GCC Runtime Library Exception, version
19 | // 3.1, as published by the Free Software Foundation.
20 |
21 | // You should have received a copy of the GNU General Public License and
22 | // a copy of the GCC Runtime Library Exception along with this program;
23 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 | // .
25 |
26 | /** @file debug/map
27 | * This file is a GNU debug extension to the Standard C++ Library.
28 | */
29 |
30 | #ifndef _GLIBCXX_DEBUG_MAP
31 | #define _GLIBCXX_DEBUG_MAP 1
32 |
33 | #include