aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-04-10 15:39:41 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-04-10 15:42:04 +0300
commit8aa17b12f29536ea9c8b6ca22c7f153e8d90fa3b (patch)
treee7dba9b6b9cdcd1d04cba639c8f76e9685ac549f
parent4760462d9b3bf2aba8664c57be85f4adbfa164a2 (diff)
downloadkmi-8aa17b12f29536ea9c8b6ca22c7f153e8d90fa3b.tar.gz
kmi-8aa17b12f29536ea9c8b6ca22c7f153e8d90fa3b.zip
add clang format and run it
-rw-r--r--.clang-format563
-rw-r--r--Makefile6
-rw-r--r--arch/riscv64/config.h36
-rw-r--r--arch/riscv64/include/csr.h69
-rw-r--r--arch/riscv64/include/pages.h8
-rw-r--r--arch/riscv64/include/sbi.h7
-rw-r--r--arch/riscv64/init/init.c28
-rw-r--r--arch/riscv64/kernel/irq.c5
-rw-r--r--arch/riscv64/kernel/pmem.c5
-rw-r--r--arch/riscv64/kernel/proc.c4
-rw-r--r--arch/riscv64/kernel/vmem.c83
-rw-r--r--common/bits.c22
-rw-r--r--common/debug.c433
-rw-r--r--common/dmem.c39
-rw-r--r--common/elf.c33
-rw-r--r--common/fdt.c12
-rw-r--r--common/initrd.c20
-rw-r--r--common/mem.c4
-rw-r--r--common/mem_nodes.c51
-rw-r--r--common/mem_regions.c145
-rw-r--r--common/pmem.c136
-rw-r--r--common/proc.c15
-rw-r--r--common/sp_tree.c81
-rw-r--r--common/string.c25
-rw-r--r--common/tcb.c19
-rw-r--r--common/uapi/conf.c7
-rw-r--r--common/uapi/ipc.c9
-rw-r--r--common/uapi/mem.c9
-rw-r--r--common/uapi/proc.c14
-rw-r--r--common/vmem.c15
-rw-r--r--include/apos/atomic.h83
-rw-r--r--include/apos/attrs.h18
-rw-r--r--include/apos/bits.h10
-rw-r--r--include/apos/debug.h7
-rw-r--r--include/apos/dmem.h6
-rw-r--r--include/apos/elf.h145
-rw-r--r--include/apos/mem.h50
-rw-r--r--include/apos/mem_regions.h18
-rw-r--r--include/apos/sizes.h200
-rw-r--r--include/apos/sp_tree.h22
-rw-r--r--include/apos/string.h38
-rw-r--r--include/apos/types.h284
-rw-r--r--include/apos/utils.h41
-rw-r--r--include/apos/vmem.h12
-rw-r--r--include/arch/pmem.h4
-rw-r--r--include/arch/vmem.h9
-rw-r--r--include/libfdt.h5
-rw-r--r--lib/fdt_dbg.c30
48 files changed, 1764 insertions, 1121 deletions
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..48d0867
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,563 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# clang-format configuration file. Intended for clang-format >= 4.
+#
+# For more information, see:
+#
+# Documentation/process/clang-format.rst
+# https://clang.llvm.org/docs/ClangFormat.html
+# https://clang.llvm.org/docs/ClangFormatStyleOptions.html
+#
+---
+AccessModifierOffset: -4
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignConsecutiveMacros: AcrossEmptyLinesAndComments
+
+#AlignEscapedNewlines: Left # Unknown to clang-format-4.0
+AlignOperands: true
+AlignTrailingComments: false
+AllowAllParametersOfDeclarationOnNextLine: false
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: false
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+ AfterClass: false
+ AfterControlStatement: false
+ AfterEnum: false
+ AfterFunction: true
+ AfterNamespace: true
+ AfterObjCDeclaration: false
+ AfterStruct: false
+ AfterUnion: false
+ #AfterExternBlock: false # Unknown to clang-format-5.0
+ BeforeCatch: false
+ BeforeElse: false
+ IndentBraces: false
+ #SplitEmptyFunction: true # Unknown to clang-format-4.0
+ #SplitEmptyRecord: true # Unknown to clang-format-4.0
+ #SplitEmptyNamespace: true # Unknown to clang-format-4.0
+BreakBeforeBinaryOperators: None
+BreakBeforeBraces: Custom
+#BreakBeforeInheritanceComma: false # Unknown to clang-format-4.0
+BreakBeforeTernaryOperators: false
+BreakConstructorInitializersBeforeComma: false
+#BreakConstructorInitializers: BeforeComma # Unknown to clang-format-4.0
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: false
+ColumnLimit: 80
+CommentPragmas: '^ IWYU pragma:'
+#CompactNamespaces: false # Unknown to clang-format-4.0
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth: 8
+ContinuationIndentWidth: 8
+Cpp11BracedListStyle: false
+DerivePointerAlignment: false
+DisableFormat: false
+ExperimentalAutoDetectBinPacking: false
+#FixNamespaceComments: false # Unknown to clang-format-4.0
+
+# Taken from:
+# git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ \
+# | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$, - '\1'," \
+# | sort | uniq
+ForEachMacros:
+ - 'apei_estatus_for_each_section'
+ - 'ata_for_each_dev'
+ - 'ata_for_each_link'
+ - '__ata_qc_for_each'
+ - 'ata_qc_for_each'
+ - 'ata_qc_for_each_raw'
+ - 'ata_qc_for_each_with_internal'
+ - 'ax25_for_each'
+ - 'ax25_uid_for_each'
+ - '__bio_for_each_bvec'
+ - 'bio_for_each_bvec'
+ - 'bio_for_each_bvec_all'
+ - 'bio_for_each_integrity_vec'
+ - '__bio_for_each_segment'
+ - 'bio_for_each_segment'
+ - 'bio_for_each_segment_all'
+ - 'bio_list_for_each'
+ - 'bip_for_each_vec'
+ - 'bitmap_for_each_clear_region'
+ - 'bitmap_for_each_set_region'
+ - 'blkg_for_each_descendant_post'
+ - 'blkg_for_each_descendant_pre'
+ - 'blk_queue_for_each_rl'
+ - 'bond_for_each_slave'
+ - 'bond_for_each_slave_rcu'
+ - 'bpf_for_each_spilled_reg'
+ - 'btree_for_each_safe128'
+ - 'btree_for_each_safe32'
+ - 'btree_for_each_safe64'
+ - 'btree_for_each_safel'
+ - 'card_for_each_dev'
+ - 'cgroup_taskset_for_each'
+ - 'cgroup_taskset_for_each_leader'
+ - 'cpufreq_for_each_entry'
+ - 'cpufreq_for_each_entry_idx'
+ - 'cpufreq_for_each_valid_entry'
+ - 'cpufreq_for_each_valid_entry_idx'
+ - 'css_for_each_child'
+ - 'css_for_each_descendant_post'
+ - 'css_for_each_descendant_pre'
+ - 'device_for_each_child_node'
+ - 'displayid_iter_for_each'
+ - 'dma_fence_chain_for_each'
+ - 'do_for_each_ftrace_op'
+ - 'drm_atomic_crtc_for_each_plane'
+ - 'drm_atomic_crtc_state_for_each_plane'
+ - 'drm_atomic_crtc_state_for_each_plane_state'
+ - 'drm_atomic_for_each_plane_damage'
+ - 'drm_client_for_each_connector_iter'
+ - 'drm_client_for_each_modeset'
+ - 'drm_connector_for_each_possible_encoder'
+ - 'drm_for_each_bridge_in_chain'
+ - 'drm_for_each_connector_iter'
+ - 'drm_for_each_crtc'
+ - 'drm_for_each_crtc_reverse'
+ - 'drm_for_each_encoder'
+ - 'drm_for_each_encoder_mask'
+ - 'drm_for_each_fb'
+ - 'drm_for_each_legacy_plane'
+ - 'drm_for_each_plane'
+ - 'drm_for_each_plane_mask'
+ - 'drm_for_each_privobj'
+ - 'drm_mm_for_each_hole'
+ - 'drm_mm_for_each_node'
+ - 'drm_mm_for_each_node_in_range'
+ - 'drm_mm_for_each_node_safe'
+ - 'flow_action_for_each'
+ - 'for_each_acpi_dev_match'
+ - 'for_each_active_dev_scope'
+ - 'for_each_active_drhd_unit'
+ - 'for_each_active_iommu'
+ - 'for_each_aggr_pgid'
+ - 'for_each_available_child_of_node'
+ - 'for_each_bio'
+ - 'for_each_board_func_rsrc'
+ - 'for_each_bvec'
+ - 'for_each_card_auxs'
+ - 'for_each_card_auxs_safe'
+ - 'for_each_card_components'
+ - 'for_each_card_dapms'
+ - 'for_each_card_pre_auxs'
+ - 'for_each_card_prelinks'
+ - 'for_each_card_rtds'
+ - 'for_each_card_rtds_safe'
+ - 'for_each_card_widgets'
+ - 'for_each_card_widgets_safe'
+ - 'for_each_cgroup_storage_type'
+ - 'for_each_child_of_node'
+ - 'for_each_clear_bit'
+ - 'for_each_clear_bit_from'
+ - 'for_each_cmsghdr'
+ - 'for_each_compatible_node'
+ - 'for_each_component_dais'
+ - 'for_each_component_dais_safe'
+ - 'for_each_comp_order'
+ - 'for_each_console'
+ - 'for_each_cpu'
+ - 'for_each_cpu_and'
+ - 'for_each_cpu_not'
+ - 'for_each_cpu_wrap'
+ - 'for_each_dapm_widgets'
+ - 'for_each_dev_addr'
+ - 'for_each_dev_scope'
+ - 'for_each_dma_cap_mask'
+ - 'for_each_dpcm_be'
+ - 'for_each_dpcm_be_rollback'
+ - 'for_each_dpcm_be_safe'
+ - 'for_each_dpcm_fe'
+ - 'for_each_drhd_unit'
+ - 'for_each_dss_dev'
+ - 'for_each_dtpm_table'
+ - 'for_each_efi_memory_desc'
+ - 'for_each_efi_memory_desc_in_map'
+ - 'for_each_element'
+ - 'for_each_element_extid'
+ - 'for_each_element_id'
+ - 'for_each_endpoint_of_node'
+ - 'for_each_evictable_lru'
+ - 'for_each_fib6_node_rt_rcu'
+ - 'for_each_fib6_walker_rt'
+ - 'for_each_free_mem_pfn_range_in_zone'
+ - 'for_each_free_mem_pfn_range_in_zone_from'
+ - 'for_each_free_mem_range'
+ - 'for_each_free_mem_range_reverse'
+ - 'for_each_func_rsrc'
+ - 'for_each_hstate'
+ - 'for_each_if'
+ - 'for_each_iommu'
+ - 'for_each_ip_tunnel_rcu'
+ - 'for_each_irq_nr'
+ - 'for_each_link_codecs'
+ - 'for_each_link_cpus'
+ - 'for_each_link_platforms'
+ - 'for_each_lru'
+ - 'for_each_matching_node'
+ - 'for_each_matching_node_and_match'
+ - 'for_each_member'
+ - 'for_each_memcg_cache_index'
+ - 'for_each_mem_pfn_range'
+ - '__for_each_mem_range'
+ - 'for_each_mem_range'
+ - '__for_each_mem_range_rev'
+ - 'for_each_mem_range_rev'
+ - 'for_each_mem_region'
+ - 'for_each_migratetype_order'
+ - 'for_each_msi_entry'
+ - 'for_each_msi_entry_safe'
+ - 'for_each_msi_vector'
+ - 'for_each_net'
+ - 'for_each_net_continue_reverse'
+ - 'for_each_netdev'
+ - 'for_each_netdev_continue'
+ - 'for_each_netdev_continue_rcu'
+ - 'for_each_netdev_continue_reverse'
+ - 'for_each_netdev_feature'
+ - 'for_each_netdev_in_bond_rcu'
+ - 'for_each_netdev_rcu'
+ - 'for_each_netdev_reverse'
+ - 'for_each_netdev_safe'
+ - 'for_each_net_rcu'
+ - 'for_each_new_connector_in_state'
+ - 'for_each_new_crtc_in_state'
+ - 'for_each_new_mst_mgr_in_state'
+ - 'for_each_new_plane_in_state'
+ - 'for_each_new_private_obj_in_state'
+ - 'for_each_node'
+ - 'for_each_node_by_name'
+ - 'for_each_node_by_type'
+ - 'for_each_node_mask'
+ - 'for_each_node_state'
+ - 'for_each_node_with_cpus'
+ - 'for_each_node_with_property'
+ - 'for_each_nonreserved_multicast_dest_pgid'
+ - 'for_each_of_allnodes'
+ - 'for_each_of_allnodes_from'
+ - 'for_each_of_cpu_node'
+ - 'for_each_of_pci_range'
+ - 'for_each_old_connector_in_state'
+ - 'for_each_old_crtc_in_state'
+ - 'for_each_old_mst_mgr_in_state'
+ - 'for_each_oldnew_connector_in_state'
+ - 'for_each_oldnew_crtc_in_state'
+ - 'for_each_oldnew_mst_mgr_in_state'
+ - 'for_each_oldnew_plane_in_state'
+ - 'for_each_oldnew_plane_in_state_reverse'
+ - 'for_each_oldnew_private_obj_in_state'
+ - 'for_each_old_plane_in_state'
+ - 'for_each_old_private_obj_in_state'
+ - 'for_each_online_cpu'
+ - 'for_each_online_node'
+ - 'for_each_online_pgdat'
+ - 'for_each_pci_bridge'
+ - 'for_each_pci_dev'
+ - 'for_each_pci_msi_entry'
+ - 'for_each_pcm_streams'
+ - 'for_each_physmem_range'
+ - 'for_each_populated_zone'
+ - 'for_each_possible_cpu'
+ - 'for_each_present_cpu'
+ - 'for_each_prime_number'
+ - 'for_each_prime_number_from'
+ - 'for_each_process'
+ - 'for_each_process_thread'
+ - 'for_each_prop_codec_conf'
+ - 'for_each_prop_dai_codec'
+ - 'for_each_prop_dai_cpu'
+ - 'for_each_prop_dlc_codecs'
+ - 'for_each_prop_dlc_cpus'
+ - 'for_each_prop_dlc_platforms'
+ - 'for_each_property_of_node'
+ - 'for_each_registered_fb'
+ - 'for_each_requested_gpio'
+ - 'for_each_requested_gpio_in_range'
+ - 'for_each_reserved_mem_range'
+ - 'for_each_reserved_mem_region'
+ - 'for_each_rtd_codec_dais'
+ - 'for_each_rtd_components'
+ - 'for_each_rtd_cpu_dais'
+ - 'for_each_rtd_dais'
+ - 'for_each_set_bit'
+ - 'for_each_set_bit_from'
+ - 'for_each_set_clump8'
+ - 'for_each_sg'
+ - 'for_each_sg_dma_page'
+ - 'for_each_sg_page'
+ - 'for_each_sgtable_dma_page'
+ - 'for_each_sgtable_dma_sg'
+ - 'for_each_sgtable_page'
+ - 'for_each_sgtable_sg'
+ - 'for_each_sibling_event'
+ - 'for_each_subelement'
+ - 'for_each_subelement_extid'
+ - 'for_each_subelement_id'
+ - '__for_each_thread'
+ - 'for_each_thread'
+ - 'for_each_unicast_dest_pgid'
+ - 'for_each_vsi'
+ - 'for_each_wakeup_source'
+ - 'for_each_zone'
+ - 'for_each_zone_zonelist'
+ - 'for_each_zone_zonelist_nodemask'
+ - 'fwnode_for_each_available_child_node'
+ - 'fwnode_for_each_child_node'
+ - 'fwnode_graph_for_each_endpoint'
+ - 'gadget_for_each_ep'
+ - 'genradix_for_each'
+ - 'genradix_for_each_from'
+ - 'hash_for_each'
+ - 'hash_for_each_possible'
+ - 'hash_for_each_possible_rcu'
+ - 'hash_for_each_possible_rcu_notrace'
+ - 'hash_for_each_possible_safe'
+ - 'hash_for_each_rcu'
+ - 'hash_for_each_safe'
+ - 'hctx_for_each_ctx'
+ - 'hlist_bl_for_each_entry'
+ - 'hlist_bl_for_each_entry_rcu'
+ - 'hlist_bl_for_each_entry_safe'
+ - 'hlist_for_each'
+ - 'hlist_for_each_entry'
+ - 'hlist_for_each_entry_continue'
+ - 'hlist_for_each_entry_continue_rcu'
+ - 'hlist_for_each_entry_continue_rcu_bh'
+ - 'hlist_for_each_entry_from'
+ - 'hlist_for_each_entry_from_rcu'
+ - 'hlist_for_each_entry_rcu'
+ - 'hlist_for_each_entry_rcu_bh'
+ - 'hlist_for_each_entry_rcu_notrace'
+ - 'hlist_for_each_entry_safe'
+ - 'hlist_for_each_entry_srcu'
+ - '__hlist_for_each_rcu'
+ - 'hlist_for_each_safe'
+ - 'hlist_nulls_for_each_entry'
+ - 'hlist_nulls_for_each_entry_from'
+ - 'hlist_nulls_for_each_entry_rcu'
+ - 'hlist_nulls_for_each_entry_safe'
+ - 'i3c_bus_for_each_i2cdev'
+ - 'i3c_bus_for_each_i3cdev'
+ - 'ide_host_for_each_port'
+ - 'ide_port_for_each_dev'
+ - 'ide_port_for_each_present_dev'
+ - 'idr_for_each_entry'
+ - 'idr_for_each_entry_continue'
+ - 'idr_for_each_entry_continue_ul'
+ - 'idr_for_each_entry_ul'
+ - 'in_dev_for_each_ifa_rcu'
+ - 'in_dev_for_each_ifa_rtnl'
+ - 'inet_bind_bucket_for_each'
+ - 'inet_lhash2_for_each_icsk_rcu'
+ - 'key_for_each'
+ - 'key_for_each_safe'
+ - 'klp_for_each_func'
+ - 'klp_for_each_func_safe'
+ - 'klp_for_each_func_static'
+ - 'klp_for_each_object'
+ - 'klp_for_each_object_safe'
+ - 'klp_for_each_object_static'
+ - 'kunit_suite_for_each_test_case'
+ - 'kvm_for_each_memslot'
+ - 'kvm_for_each_vcpu'
+ - 'list_for_each'
+ - 'list_for_each_codec'
+ - 'list_for_each_codec_safe'
+ - 'list_for_each_continue'
+ - 'list_for_each_entry'
+ - 'list_for_each_entry_continue'
+ - 'list_for_each_entry_continue_rcu'
+ - 'list_for_each_entry_continue_reverse'
+ - 'list_for_each_entry_from'
+ - 'list_for_each_entry_from_rcu'
+ - 'list_for_each_entry_from_reverse'
+ - 'list_for_each_entry_lockless'
+ - 'list_for_each_entry_rcu'
+ - 'list_for_each_entry_reverse'
+ - 'list_for_each_entry_safe'
+ - 'list_for_each_entry_safe_continue'
+ - 'list_for_each_entry_safe_from'
+ - 'list_for_each_entry_safe_reverse'
+ - 'list_for_each_entry_srcu'
+ - 'list_for_each_prev'
+ - 'list_for_each_prev_safe'
+ - 'list_for_each_safe'
+ - 'llist_for_each'
+ - 'llist_for_each_entry'
+ - 'llist_for_each_entry_safe'
+ - 'llist_for_each_safe'
+ - 'mci_for_each_dimm'
+ - 'media_device_for_each_entity'
+ - 'media_device_for_each_intf'
+ - 'media_device_for_each_link'
+ - 'media_device_for_each_pad'
+ - 'nanddev_io_for_each_page'
+ - 'netdev_for_each_lower_dev'
+ - 'netdev_for_each_lower_private'
+ - 'netdev_for_each_lower_private_rcu'
+ - 'netdev_for_each_mc_addr'
+ - 'netdev_for_each_uc_addr'
+ - 'netdev_for_each_upper_dev_rcu'
+ - 'netdev_hw_addr_list_for_each'
+ - 'nft_rule_for_each_expr'
+ - 'nla_for_each_attr'
+ - 'nla_for_each_nested'
+ - 'nlmsg_for_each_attr'
+ - 'nlmsg_for_each_msg'
+ - 'nr_neigh_for_each'
+ - 'nr_neigh_for_each_safe'
+ - 'nr_node_for_each'
+ - 'nr_node_for_each_safe'
+ - 'of_for_each_phandle'
+ - 'of_property_for_each_string'
+ - 'of_property_for_each_u32'
+ - 'pci_bus_for_each_resource'
+ - 'pcl_for_each_chunk'
+ - 'pcl_for_each_segment'
+ - 'pcm_for_each_format'
+ - 'ping_portaddr_for_each_entry'
+ - 'plist_for_each'
+ - 'plist_for_each_continue'
+ - 'plist_for_each_entry'
+ - 'plist_for_each_entry_continue'
+ - 'plist_for_each_entry_safe'
+ - 'plist_for_each_safe'
+ - 'pnp_for_each_card'
+ - 'pnp_for_each_dev'
+ - 'protocol_for_each_card'
+ - 'protocol_for_each_dev'
+ - 'queue_for_each_hw_ctx'
+ - 'radix_tree_for_each_slot'
+ - 'radix_tree_for_each_tagged'
+ - 'rb_for_each'
+ - 'rbtree_postorder_for_each_entry_safe'
+ - 'rdma_for_each_block'
+ - 'rdma_for_each_port'
+ - 'rdma_umem_for_each_dma_block'
+ - 'resource_list_for_each_entry'
+ - 'resource_list_for_each_entry_safe'
+ - 'rhl_for_each_entry_rcu'
+ - 'rhl_for_each_rcu'
+ - 'rht_for_each'
+ - 'rht_for_each_entry'
+ - 'rht_for_each_entry_from'
+ - 'rht_for_each_entry_rcu'
+ - 'rht_for_each_entry_rcu_from'
+ - 'rht_for_each_entry_safe'
+ - 'rht_for_each_from'
+ - 'rht_for_each_rcu'
+ - 'rht_for_each_rcu_from'
+ - '__rq_for_each_bio'
+ - 'rq_for_each_bvec'
+ - 'rq_for_each_segment'
+ - 'scsi_for_each_prot_sg'
+ - 'scsi_for_each_sg'
+ - 'sctp_for_each_hentry'
+ - 'sctp_skb_for_each'
+ - 'shdma_for_each_chan'
+ - '__shost_for_each_device'
+ - 'shost_for_each_device'
+ - 'sk_for_each'
+ - 'sk_for_each_bound'
+ - 'sk_for_each_entry_offset_rcu'
+ - 'sk_for_each_from'
+ - 'sk_for_each_rcu'
+ - 'sk_for_each_safe'
+ - 'sk_nulls_for_each'
+ - 'sk_nulls_for_each_from'
+ - 'sk_nulls_for_each_rcu'
+ - 'snd_array_for_each'
+ - 'snd_pcm_group_for_each_entry'
+ - 'snd_soc_dapm_widget_for_each_path'
+ - 'snd_soc_dapm_widget_for_each_path_safe'
+ - 'snd_soc_dapm_widget_for_each_sink_path'
+ - 'snd_soc_dapm_widget_for_each_source_path'
+ - 'tb_property_for_each'
+ - 'tcf_exts_for_each_action'
+ - 'udp_portaddr_for_each_entry'
+ - 'udp_portaddr_for_each_entry_rcu'
+ - 'usb_hub_for_each_child'
+ - 'v4l2_device_for_each_subdev'
+ - 'v4l2_m2m_for_each_dst_buf'
+ - 'v4l2_m2m_for_each_dst_buf_safe'
+ - 'v4l2_m2m_for_each_src_buf'
+ - 'v4l2_m2m_for_each_src_buf_safe'
+ - 'virtio_device_for_each_vq'
+ - 'while_for_each_ftrace_op'
+ - 'xa_for_each'
+ - 'xa_for_each_marked'
+ - 'xa_for_each_range'
+ - 'xa_for_each_start'
+ - 'xas_for_each'
+ - 'xas_for_each_conflict'
+ - 'xas_for_each_marked'
+ - 'xbc_array_for_each_value'
+ - 'xbc_for_each_key_value'
+ - 'xbc_node_for_each_array_value'
+ - 'xbc_node_for_each_child'
+ - 'xbc_node_for_each_key_value'
+ - 'zorro_for_each_dev'
+
+#IncludeBlocks: Preserve # Unknown to clang-format-5.0
+IncludeCategories:
+ - Regex: '.*'
+ Priority: 1
+IncludeIsMainRegex: '(Test)?$'
+IndentCaseLabels: false
+#IndentPPDirectives: None # Unknown to clang-format-5.0
+IndentWidth: 8
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
+ObjCBlockIndentWidth: 8
+ObjCSpaceAfterProperty: true
+ObjCSpaceBeforeProtocolList: true
+
+# Taken from git's rules
+#PenaltyBreakAssignment: 10 # Unknown to clang-format-4.0
+PenaltyBreakBeforeFirstCallParameter: 30
+PenaltyBreakComment: 10
+PenaltyBreakFirstLessLess: 0
+PenaltyBreakString: 10
+PenaltyExcessCharacter: 100
+PenaltyReturnTypeOnItsOwnLine: 60
+
+PointerAlignment: Right
+ReflowComments: false
+SortIncludes: false
+#SortUsingDeclarations: false # Unknown to clang-format-4.0
+SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
+SpaceBeforeAssignmentOperators: true
+#SpaceBeforeCtorInitializerColon: true # Unknown to clang-format-5.0
+#SpaceBeforeInheritanceColon: true # Unknown to clang-format-5.0
+SpaceBeforeParens: ControlStatements
+#SpaceBeforeRangeBasedForLoopColon: true # Unknown to clang-format-5.0
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInContainerLiterals: false
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Latest
+TabWidth: 8
+UseTab: AlignWithSpaces
+...
diff --git a/Makefile b/Makefile
index 182e97d..0ef7a60 100644
--- a/Makefile
+++ b/Makefile
@@ -19,7 +19,7 @@ CROSS_COMPILE ?= $(ARCH)-unknown-elf
OBJCOPY != [ $(LLVM) ] \
&& echo llvm-objcopy \
- || echo $(CROSS_COMPILE)-objcopy
+ || echo $(CROSS_COMPILE)-objcopy
COMPILER != [ $(LLVM) ] \
&& echo clang --target="$(CROSS_COMPILE)" \
@@ -82,6 +82,10 @@ kernel.bin: kernel.elf
apos.bin: init.bin kernel.bin
cat init.bin kernel.bin > apos.bin
+format:
+ find arch lib common include -iname '*.[ch]' \
+ -exec clang-format -i -style=file {} \;
+
clean:
$(RM) -r $(CLEANUP)
diff --git a/arch/riscv64/config.h b/arch/riscv64/config.h
index 0ef22fa..707c0b9 100644
--- a/arch/riscv64/config.h
+++ b/arch/riscv64/config.h
@@ -2,33 +2,33 @@
/* --- START ARCH USER CONFIG VALUES --- */
/* physical address to which the kernel will be loaded */
-#define RAM_BASE 0x80000000
-#define PM_KERN_BASE (RAM_BASE + SZ_512K)
-#define PM_KERN_SIZE (SZ_256K)
-#define PM_KERN_TOP (PM_KERN_BASE + PM_KERN_SIZE)
+#define RAM_BASE 0x80000000
+#define PM_KERN_BASE (RAM_BASE + SZ_512K)
+#define PM_KERN_SIZE (SZ_256K)
+#define PM_KERN_TOP (PM_KERN_BASE + PM_KERN_SIZE)
/* --- END ARCH USER CONFIG VALUES --- */
/* don't touch >:( */
-#define PM_STACK_BASE (PM_KERN_BASE + SZ_256K)
-#define PM_STACK_SIZE (SZ_256K)
-#define PM_STACK_TOP (PM_STACK_BASE + PM_STACK_SIZE)
+#define PM_STACK_BASE (PM_KERN_BASE + SZ_256K)
+#define PM_STACK_SIZE (SZ_256K)
+#define PM_STACK_TOP (PM_STACK_BASE + PM_STACK_SIZE)
-#define VM_DMAP (0xffffffc000000000) /* testing for now */
-#define VM_KERN (VM_DMAP + SZ_256K)
-#define TMP_PTE (-SZ_2G)
-#define ROOT_PTE (0)
-#define ROOT_REGION (SZ_4K)
+#define VM_DMAP (0xffffffc000000000) /* testing for now */
+#define VM_KERN (VM_DMAP + SZ_256K)
+#define TMP_PTE (-SZ_2G)
+#define ROOT_PTE (0)
+#define ROOT_REGION (SZ_4K)
-#define IO_PAGE 511
-#define KSTART_PAGE 256
-#define CSTACK_PAGE 255
+#define IO_PAGE 511
+#define KSTART_PAGE 256
+#define CSTACK_PAGE 255
/* assume Sv39, probably wouldn't be too difficult to use runtime parameters
* instead. First 4K is reserved for NULL, but I suppose it could be mapped
* later if *absolutely* necessary. */
-#define UVMEM_START (SZ_4K)
-#define UVMEM_END (SZ_256G - SZ_1G)
+#define UVMEM_START (SZ_4K)
+#define UVMEM_END (SZ_256G - SZ_1G)
-#define PROC_STACK_TOP (SZ_256G)
+#define PROC_STACK_TOP (SZ_256G)
#define PROC_STACK_BASE (SZ_256G - SZ_1G)
diff --git a/arch/riscv64/include/csr.h b/arch/riscv64/include/csr.h
index 43c365b..7f9fc1f 100644
--- a/arch/riscv64/include/csr.h
+++ b/arch/riscv64/include/csr.h
@@ -3,43 +3,42 @@
#include <apos/utils.h>
-#define SATP_MODE_Sv32 0x80000000
-#define SATP_MODE_Sv39 0x8000000000000000
-#define SATP_MODE_Sv48 0x9000000000000000
-
+#define SATP_MODE_Sv32 0x80000000
+#define SATP_MODE_Sv39 0x8000000000000000
+#define SATP_MODE_Sv48 0x9000000000000000
/* supervisor CSR registers */
-#define CSR_SSTATUS 0x100
-#define CSR_SIE 0x104
-#define CSR_STVEC 0x105
-#define CSR_SCOUNTEREN 0x106
+#define CSR_SSTATUS 0x100
+#define CSR_SIE 0x104
+#define CSR_STVEC 0x105
+#define CSR_SCOUNTEREN 0x106
-#define CSR_SENVCFG 0x10A
+#define CSR_SENVCFG 0x10A
-#define CSR_SSCRATCH 0x140
-#define CSR_SEPC 0x141
-#define CSR_SCAUSE 0x142
-#define CSR_STVAL 0x143
-#define CSR_SIP 0x144
+#define CSR_SSCRATCH 0x140
+#define CSR_SEPC 0x141
+#define CSR_SCAUSE 0x142
+#define CSR_STVAL 0x143
+#define CSR_SIP 0x144
-#define CSR_SATP 0x180
+#define CSR_SATP 0x180
-#define CSR_SCONTEXT 0x5A8
+#define CSR_SCONTEXT 0x5A8
/* Exception causes */
-#define EXC_INST_MISALIGNED 0
-#define EXC_INST_ACCESS 1
-#define EXC_BREAKPOINT 3
-#define EXC_LOAD_ACCESS 5
-#define EXC_STORE_ACCESS 7
-#define EXC_SYSCALL 8
-#define EXC_INST_PAGE_FAULT 12
-#define EXC_LOAD_PAGE_FAULT 13
-#define EXC_STORE_PAGE_FAULT 15
+#define EXC_INST_MISALIGNED 0
+#define EXC_INST_ACCESS 1
+#define EXC_BREAKPOINT 3
+#define EXC_LOAD_ACCESS 5
+#define EXC_STORE_ACCESS 7
+#define EXC_SYSCALL 8
+#define EXC_INST_PAGE_FAULT 12
+#define EXC_LOAD_PAGE_FAULT 13
+#define EXC_STORE_PAGE_FAULT 15
/* status CSR bits */
-#define SSTATUS_SUM (1 << 18)
-#define SSTATUS_SPP (1 << 8)
+#define SSTATUS_SUM (1 << 18)
+#define SSTATUS_SPP (1 << 8)
/* directly lifted from Linux:/arch/riscv/include/asm/asm.h:9-13 */
#if defined(__ASSEMBLY__)
@@ -48,16 +47,16 @@
#define __ASM_STR(x) #x
#endif
-#define csr_read(csr, res)\
- __asm__ volatile ("csrr %0, " __ASM_STR(csr) : "=r" (res) : : "memory")
+#define csr_read(csr, res) \
+ __asm__ volatile("csrr %0, " __ASM_STR(csr) : "=r"(res) : : "memory")
-#define csr_write(csr, val)\
- __asm__ volatile ("csrw " __ASM_STR(csr) ", %0" : : "r" (val) : "memory")
+#define csr_write(csr, val) \
+ __asm__ volatile("csrw " __ASM_STR(csr) ", %0" : : "r"(val) : "memory")
-#define csr_set(csr, val)\
- __asm__ volatile ("csrs " __ASM_STR(csr) ", %0" : : "r" (val) : "memory")
+#define csr_set(csr, val) \
+ __asm__ volatile("csrs " __ASM_STR(csr) ", %0" : : "r"(val) : "memory")
-#define csr_clear(csr, val)\
- __asm__ volatile ("csrc " __ASM_STR(csr) ", %0" : : "r" (val) : "memory")
+#define csr_clear(csr, val) \
+ __asm__ volatile("csrc " __ASM_STR(csr) ", %0" : : "r"(val) : "memory")
#endif /* APOS_CSR_H */
diff --git a/arch/riscv64/include/pages.h b/arch/riscv64/include/pages.h
index 643d3b4..20dab3d 100644
--- a/arch/riscv64/include/pages.h
+++ b/arch/riscv64/include/pages.h
@@ -1,10 +1,10 @@
#ifndef APOS_RISCV_PAGES_H
#define APOS_RISCV_PAGES_H
-#define MM_KPAGE MM_O0
-#define MM_MPAGE MM_O1
-#define MM_GPAGE MM_O2
-#define MM_TPAGE MM_O3
+#define MM_KPAGE MM_O0
+#define MM_MPAGE MM_O1
+#define MM_GPAGE MM_O2
+#define MM_TPAGE MM_O3
#define MM_KPAGE_SIZE SZ_4K
#define MM_MPAGE_SIZE SZ_2M
diff --git a/arch/riscv64/include/sbi.h b/arch/riscv64/include/sbi.h
index 609849d..e6ceb92 100644
--- a/arch/riscv64/include/sbi.h
+++ b/arch/riscv64/include/sbi.h
@@ -5,8 +5,9 @@ struct sbiret {
long value;
};
-struct sbiret sbi_ecall(int ext, int fid,
- unsigned long arg0, unsigned long arg1, unsigned long arg2,
- unsigned long arg3, unsigned long arg4, unsigned long arg5);
+struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0,
+ unsigned long arg1, unsigned long arg2,
+ unsigned long arg3, unsigned long arg4,
+ unsigned long arg5);
#endif /* APOS_RISCV_SBI_H */
diff --git a/arch/riscv64/init/init.c b/arch/riscv64/init/init.c
index 94f9777..f844dbb 100644
--- a/arch/riscv64/init/init.c
+++ b/arch/riscv64/init/init.c
@@ -20,16 +20,18 @@ void init_bootmem()
size_t flags = VM_V | VM_X | VM_R | VM_W;
extern char *__init_start;
- root_branch = (struct init_vmem *)align_down((size_t)&__init_start - SZ_4K, SZ_4K);
+ root_branch = (struct init_vmem *)align_down(
+ (size_t)&__init_start - SZ_4K, SZ_4K);
/* direct mapping (temp) */
- for(size_t i = 0; i < CSTACK_PAGE; ++i)
- root_branch->leaf[i] = (int*)to_pte(SZ_1G * i, flags);
+ for (size_t i = 0; i < CSTACK_PAGE; ++i)
+ root_branch->leaf[i] = (int *)to_pte(SZ_1G * i, flags);
/* kernel (also sort of direct mapping) */
flags |= VM_G;
- for(size_t i = KSTART_PAGE; i < IO_PAGE; ++i)
- root_branch->leaf[i] = (int *)to_pte(RAM_BASE + SZ_1G * (i - 256), flags);
+ for (size_t i = KSTART_PAGE; i < IO_PAGE; ++i)
+ root_branch->leaf[i] =
+ (int *)to_pte(RAM_BASE + SZ_1G * (i - 256), flags);
/* kernel IO, map to 0 for now, will be updated in the future */
root_branch->leaf[IO_PAGE] = (int *)to_pte(0, flags);
@@ -45,17 +47,17 @@ void move_kernel()
size_t sz = (size_t)&__kernel_size;
char *src = (char *)&__init_end;
char *dst = (char *)VM_KERN;
- for(size_t i = 0; i < sz; ++i)
+ for (size_t i = 0; i < sz; ++i)
dst[i] = src[i];
}
-#define __va_reg(reg)\
-{\
- vm_t reg = 0;\
- __asm__("mv %0, " QUOTE(reg) : "=r" (reg) :: );\
- reg = (vm_t)__va(reg);\
- __asm__("mv " QUOTE(reg) ", %0" :: "rK" (reg) : );\
-}
+#define __va_reg(reg) \
+ { \
+ vm_t reg = 0; \
+ __asm__("mv %0, " QUOTE(reg) : "=r"(reg)::); \
+ reg = (vm_t)__va(reg); \
+ __asm__("mv " QUOTE(reg) ", %0" ::"rK"(reg) :); \
+ }
void init(void *fdt)
{
diff --git a/arch/riscv64/kernel/irq.c b/arch/riscv64/kernel/irq.c
index a88288f..27e0bd0 100644
--- a/arch/riscv64/kernel/irq.c
+++ b/arch/riscv64/kernel/irq.c
@@ -7,7 +7,7 @@ void init_irq(void *fdt)
{
UNUSED(fdt);
csr_write(CSR_STVEC, &handle_irq);
-
+
long s = 0;
csr_read(CSR_SIE, s);
info("CSR_SIE: %lx\n", s);
@@ -15,7 +15,8 @@ void init_irq(void *fdt)
__aligned(4) void handle_irq()
{
- while(1);
+ while (1)
+ ;
}
/* very simple for now */
diff --git a/arch/riscv64/kernel/pmem.c b/arch/riscv64/kernel/pmem.c
index 404329c..fc3fa40 100644
--- a/arch/riscv64/kernel/pmem.c
+++ b/arch/riscv64/kernel/pmem.c
@@ -1,6 +1,7 @@
#include <arch/pmem.h>
-stat_t stat_pmem_conf(void *fdt, size_t *max_order, size_t *base_bits, size_t bits[NUM_ORDERS])
+stat_t stat_pmem_conf(void *fdt, size_t *max_order, size_t *base_bits,
+ size_t bits[NUM_ORDERS])
{
UNUSED(fdt);
@@ -8,7 +9,7 @@ stat_t stat_pmem_conf(void *fdt, size_t *max_order, size_t *base_bits, size_t bi
*max_order = 2;
*base_bits = 12;
/* we can assume bits[] is zeroed out beforehand */
- for(size_t i = 0; i <= *max_order; ++i)
+ for (size_t i = 0; i <= *max_order; ++i)
bits[i] = 9;
return OK;
diff --git a/arch/riscv64/kernel/proc.c b/arch/riscv64/kernel/proc.c
index e2cbcea..ef8f24e 100644
--- a/arch/riscv64/kernel/proc.c
+++ b/arch/riscv64/kernel/proc.c
@@ -5,8 +5,8 @@
stat_t jump_to_userspace(struct tcb *t, int argc, char **argv)
{
csr_write(CSR_SEPC, t->entry);
- __asm__ volatile ("mv sp, %0\n" : "=r" (t->proc_stack) :: "memory");
- __asm__ volatile ("sret\n" ::: "memory");
+ __asm__ volatile("mv sp, %0\n" : "=r"(t->proc_stack)::"memory");
+ __asm__ volatile("sret\n" ::: "memory");
/* we should never reach this */
return ERR_ADDR;
}
diff --git a/arch/riscv64/kernel/vmem.c b/arch/riscv64/kernel/vmem.c
index cd822ae..46ddf29 100644
--- a/arch/riscv64/kernel/vmem.c
+++ b/arch/riscv64/kernel/vmem.c
@@ -7,30 +7,30 @@
#include <pages.h>
#include <csr.h>
-#define pte_ppn(pte) (((pm_t)(pte)) >> 10)
-#define pte_flags(pte) (((pm_t)(pte)) & 0xff)
-#define to_pte(p, f) ((pm_to_pnum(p) << 10) | (f))
-#define pte_addr(pte) __va(pnum_to_paddr(pte_ppn(pte)))
-#define pte_paddr(pte) (pnum_to_paddr(pte_ppn(pte)))
+#define pte_ppn(pte) (((pm_t)(pte)) >> 10)
+#define pte_flags(pte) (((pm_t)(pte)) & 0xff)
+#define to_pte(p, f) ((pm_to_pnum(p) << 10) | (f))
+#define pte_addr(pte) __va(pnum_to_paddr(pte_ppn(pte)))
+#define pte_paddr(pte) (pnum_to_paddr(pte_ppn(pte)))
#define vm_to_index(a, o) (pm_to_index(a, o))
-#define is_active(pte) (pte_flags(pte) & VM_V)
-#define is_leaf(pte) (is_active(pte) && (pte_flags(pte) & ~VM_V))
-#define is_branch(pte) (is_active(pte) && !(pte_flags(pte) & ~VM_V))
+#define is_active(pte) (pte_flags(pte) & VM_V)
+#define is_leaf(pte) (is_active(pte) && (pte_flags(pte) & ~VM_V))
+#define is_branch(pte) (is_active(pte) && !(pte_flags(pte) & ~VM_V))
static pm_t *__find_vmem(struct vm_branch *b, vm_t v, enum mm_order *o)
{
enum mm_order top = __mm_max_order;
- if(o)
+ if (o)
*o = MM_O0;
do {
size_t idx = vm_to_index(v, top);
pm_t pte = (pm_t)b->leaf[idx];
- if(!pte)
+ if (!pte)
return 0;
- if(is_leaf(pte)){
- if(o)
+ if (is_leaf(pte)) {
+ if (o)
*o = top;
return (pm_t *)&b->leaf[idx];
@@ -42,10 +42,11 @@ static pm_t *__find_vmem(struct vm_branch *b, vm_t v, enum mm_order *o)
return 0;
}
-stat_t mod_vpage(struct vm_branch *branch, vm_t vaddr, pm_t paddr, vmflags_t flags)
+stat_t mod_vpage(struct vm_branch *branch, vm_t vaddr, pm_t paddr,
+ vmflags_t flags)
{
pm_t *pte = __find_vmem(branch, vaddr, 0);
- if(pte){
+ if (pte) {
*pte = to_pte((pm_t)__pa(paddr), vp_flags(flags));
return OK;
}
@@ -56,14 +57,14 @@ stat_t mod_vpage(struct vm_branch *branch, vm_t vaddr, pm_t paddr, vmflags_t fla
/* huh, should probably add status flags etc. to all my API functions. Damn, I'm
* lazy. */
stat_t stat_vpage(struct vm_branch *branch, vm_t vaddr, pm_t *paddr,
- enum mm_order *order, vmflags_t *flags)
+ enum mm_order *order, vmflags_t *flags)
{
pm_t *pte = __find_vmem(branch, vaddr, order);
- if(pte){
- if(paddr)
+ if (pte) {
+ if (paddr)
*paddr = (pm_t)pte_addr(*pte);
- if(flags)
+ if (flags)
*flags = pte_flags(*pte);
return OK;
@@ -81,19 +82,20 @@ static struct vm_branch *__create_leaf()
static void __destroy_branch(struct vm_branch *b)
{
- if(!b)
+ if (!b)
return;
- for(size_t i = 0; i < BASE_PAGE_SIZE / sizeof(pm_t); ++i){
- if(is_branch(b->leaf[i]))
- __destroy_branch((struct vm_branch *)pte_addr(b->leaf[i]));
+ for (size_t i = 0; i < BASE_PAGE_SIZE / sizeof(pm_t); ++i) {
+ if (is_branch(b->leaf[i]))
+ __destroy_branch(
+ (struct vm_branch *)pte_addr(b->leaf[i]));
free_page(MM_KPAGE, (pm_t)pte_addr(b->leaf[i]));
}
}
-stat_t map_vpage(struct vm_branch *branch,
- pm_t paddr, vm_t vaddr, vmflags_t flags, enum mm_order order)
+stat_t map_vpage(struct vm_branch *branch, pm_t paddr, vm_t vaddr,
+ vmflags_t flags, enum mm_order order)
{
enum mm_order top = __mm_max_order;
while (top != order) {
@@ -102,24 +104,24 @@ stat_t map_vpage(struct vm_branch *branch,
if (!branch->leaf[idx])
branch->leaf[idx] = __create_leaf();
-
branch = (struct vm_branch *)pte_addr(branch->leaf[idx]);
top--;
}
size_t idx = vm_to_index(vaddr, top);
- if (is_branch(branch->leaf[idx])) /* something has gone terribly wrong? */
+ if (is_branch(
+ branch->leaf[idx])) /* something has gone terribly wrong? */
__destroy_branch(branch->leaf[idx]);
- branch->leaf[idx] = (struct vm_branch *)to_pte((pm_t)__pa(paddr), vp_flags(flags));
+ branch->leaf[idx] =
+ (struct vm_branch *)to_pte((pm_t)__pa(paddr), vp_flags(flags));
return OK;
}
stat_t unmap_vpage(struct vm_branch *branch, vm_t vaddr)
{
-
pm_t *pte = __find_vmem(branch, vaddr, 0);
- if(pte){
+ if (pte) {
*pte = 0;
return OK;
}
@@ -129,24 +131,27 @@ stat_t unmap_vpage(struct vm_branch *branch, vm_t vaddr)
void flush_tlb()
{
- __asm__ volatile ("sfence.vma %0\n" :: "r" (cpu_id()) : "memory");
+ __asm__ volatile("sfence.vma %0\n" ::"r"(cpu_id()) : "memory");
}
void flush_tlb_all()
{
- __asm__ volatile ("sfence.vma\n" ::: "memory");
+ __asm__ volatile("sfence.vma\n" ::: "memory");
}
static void __start_vmem(struct vm_branch *branch, enum mm_mode m)
{
branch = (struct vm_branch *)__pa(branch);
- if(m == Sv32)
- csr_write(CSR_SATP, SATP_MODE_Sv32 | pm_to_pnum((pm_t)(branch)));
+ if (m == Sv32)
+ csr_write(CSR_SATP,
+ SATP_MODE_Sv32 | pm_to_pnum((pm_t)(branch)));
else if (m == Sv39)
- csr_write(CSR_SATP, SATP_MODE_Sv39 | pm_to_pnum((pm_t)(branch)));
+ csr_write(CSR_SATP,
+ SATP_MODE_Sv39 | pm_to_pnum((pm_t)(branch)));
else
- csr_write(CSR_SATP, SATP_MODE_Sv48 | pm_to_pnum((pm_t)(branch)));
+ csr_write(CSR_SATP,
+ SATP_MODE_Sv48 | pm_to_pnum((pm_t)(branch)));
flush_tlb_all();
/* Sv57 && Sv64 in the future? */
@@ -167,8 +172,9 @@ struct vm_branch *init_vmem(void *fdt)
void populate_root_branch(struct vm_branch *b)
{
size_t flags = VM_V | VM_R | VM_W | VM_X | VM_G;
- for(size_t i = KSTART_PAGE; i < IO_PAGE; ++i)
- b->leaf[i] = (struct vm_branch *)to_pte(RAM_BASE + SZ_1G * (i - KSTART_PAGE), flags);
+ for (size_t i = KSTART_PAGE; i < IO_PAGE; ++i)
+ b->leaf[i] = (struct vm_branch *)to_pte(
+ RAM_BASE + SZ_1G * (i - KSTART_PAGE), flags);
/* map kernel IO to zero for now, this will be overridden later
* (if at all) */
@@ -180,7 +186,8 @@ vm_t setup_kernel_io(struct vm_branch *b, vm_t paddr)
{
/* assume Sv39 for now */
pm_t gigapage = paddr / MM_GPAGE_SIZE;
- b->leaf[IO_PAGE] = (struct vm_branch *)to_pte(gigapage, VM_V | VM_R | VM_W);
+ b->leaf[IO_PAGE] =
+ (struct vm_branch *)to_pte(gigapage, VM_V | VM_R | VM_W);
return -SZ_1G + paddr - (gigapage * MM_GPAGE_SIZE);
}
#endif
diff --git a/common/bits.c b/common/bits.c
index b9814f6..698c082 100644
--- a/common/bits.c
+++ b/common/bits.c
@@ -12,21 +12,19 @@ __weak uint16_t __bswap16(const uint16_t u)
#undef __bswap32
__weak uint32_t __bswap32(const uint32_t u)
{
- return (u & 0xff000000) >> 24 |
- (u & 0x00ff0000) >> 8 |
- (u & 0x0000ff00) << 8 |
- (u & 0x000000ff) << 24;
+ return (u & 0xff000000) >> 24 | (u & 0x00ff0000) >> 8 |
+ (u & 0x0000ff00) << 8 | (u & 0x000000ff) << 24;
}
#undef __bswap64
__weak uint64_t __bswap64(const uint64_t u)
{
- return (u & 0xff00000000000000ULL) >> 56 |
- (u & 0x00ff000000000000ULL) >> 40 |
- (u & 0x0000ff0000000000ULL) >> 24 |
- (u & 0x000000ff00000000ULL) >> 8 |
- (u & 0x00000000ff000000ULL) << 8 |
- (u & 0x0000000000ff0000ULL) << 24 |
- (u & 0x000000000000ff00ULL) << 40 |
- (u & 0x00000000000000ffULL) << 56;
+ return (u & 0xff00000000000000ULL) >> 56 |
+ (u & 0x00ff000000000000ULL) >> 40 |
+ (u & 0x0000ff0000000000ULL) >> 24 |
+ (u & 0x000000ff00000000ULL) >> 8 |
+ (u & 0x00000000ff000000ULL) << 8 |
+ (u & 0x0000000000ff0000ULL) << 24 |
+ (u & 0x000000000000ff00ULL) << 40 |
+ (u & 0x00000000000000ffULL) << 56;
}
diff --git a/common/debug.c b/common/debug.c
index 330a3ed..43c9ae5 100644
--- a/common/debug.c
+++ b/common/debug.c
@@ -11,7 +11,7 @@
static struct dbg_info {
pm_t dbg_ptr;
enum serial_dev dev;
-} dbg_info = (struct dbg_info){0};
+} dbg_info = (struct dbg_info){ 0 };
void init_dbg(const void *fdt)
{
@@ -75,7 +75,8 @@ static void __putchar(char c)
if (!port)
return;
- while(__serial_tx_empty() == 0);
+ while (__serial_tx_empty() == 0)
+ ;
port->data = c;
}
@@ -91,13 +92,14 @@ static enum serial_dev __serial_dev_enum(const char *dev_name)
struct dbg_info dbg_from_fdt(const void *fdt)
{
int chosen_offset = fdt_path_offset(fdt, "/chosen");
- const char *stdout = fdt_getprop(fdt, chosen_offset, "stdout-path", NULL);
+ const char *stdout =
+ fdt_getprop(fdt, chosen_offset, "stdout-path", NULL);
int stdout_offset = fdt_path_offset(fdt, stdout);
/* get serial device type */
const char *dev_name = (const char *)fdt_getprop(fdt, stdout_offset,
- "compatible", NULL);
+ "compatible", NULL);
enum serial_dev dev = __serial_dev_enum(dev_name);
@@ -107,38 +109,38 @@ struct dbg_info dbg_from_fdt(const void *fdt)
pm_t dbg_ptr = (pm_t)fdt_load_int_ptr(ci.addr_cells, reg_ptr);
- return (struct dbg_info){dbg_ptr, dev};
+ return (struct dbg_info){ dbg_ptr, dev };
}
void setup_dbg(vm_t pt, enum serial_dev dev)
{
switch (dev) {
- case NS16550A:
- port = (struct ns16550a *)pt;
- break;
+ case NS16550A:
+ port = (struct ns16550a *)pt;
+ break;
}
/* in the future possibly configure the serial connection, though the
* defaults (set by U-boot) seem to work alright */
}
-#define LEFT_FLAG (1 << 0)
-#define SIGN_FLAG (1 << 1)
-#define HASH_FLAG (1 << 2)
-#define ZERO_FLAG (1 << 3)
-#define FMT_FLAG (1 << 4)
-#define SPACE_FLAG (1 << 5)
-#define LONG_FLAG (1 << 6)
-#define LLONG_FLAG (1 << 7)
-#define SHORT_FLAG (1 << 8)
-#define CHAR_FLAG (1 << 9)
-#define PRECS_FLAG (1 << 11)
+#define LEFT_FLAG (1 << 0)
+#define SIGN_FLAG (1 << 1)
+#define HASH_FLAG (1 << 2)
+#define ZERO_FLAG (1 << 3)
+#define FMT_FLAG (1 << 4)
+#define SPACE_FLAG (1 << 5)
+#define LONG_FLAG (1 << 6)
+#define LLONG_FLAG (1 << 7)
+#define SHORT_FLAG (1 << 8)
+#define CHAR_FLAG (1 << 9)
+#define PRECS_FLAG (1 << 11)
#define UNSIGN_FLAG (1 << 12)
#define WIDTH_FLAG (1 << 13)
-#define PAD_FLAG (1 << 14)
+#define PAD_FLAG (1 << 14)
-#define CONT 1
-#define STOP 0
+#define CONT 1
+#define STOP 0
static bool __is_digit(char c)
{
@@ -148,38 +150,35 @@ static bool __is_digit(char c)
static int __atoi(const char *s)
{
unsigned int i = 0;
- while(__is_digit(*s)){
+ while (__is_digit(*s)) {
i = i * 10 + (unsigned int)(*(s++) - '0');
}
return i;
}
-static size_t __integral_val(ssize_t value, size_t base, size_t flags, bool print)
+static size_t __integral_val(ssize_t value, size_t base, size_t flags,
+ bool print)
{
/* assume ascii numbers, which is why 'signed char' is probably fine */
size_t ret = 0;
signed char c = 0;
-#define handle_type(x)\
- c = (x)value % (x)base;\
+#define handle_type(x) \
+ c = (x)value % (x)base; \
value = (x)value / (x)base;
- if(!__is_set(flags, UNSIGN_FLAG)){
+ if (!__is_set(flags, UNSIGN_FLAG)) {
/* signed values, only with i format */
- if(__is_set(flags, LLONG_FLAG)){
+ if (__is_set(flags, LLONG_FLAG)) {
handle_type(signed long long);
- }
- else if(__is_set(flags, LONG_FLAG)){
+ } else if (__is_set(flags, LONG_FLAG)) {
handle_type(signed long);
- }
- else if(__is_set(flags, SHORT_FLAG)){
+ } else if (__is_set(flags, SHORT_FLAG)) {
handle_type(signed short);
- }
- else if(__is_set(flags, CHAR_FLAG)){
+ } else if (__is_set(flags, CHAR_FLAG)) {
handle_type(signed char);
- }
- else {
+ } else {
handle_type(signed int);
}
@@ -188,34 +187,30 @@ static size_t __integral_val(ssize_t value, size_t base, size_t flags, bool prin
} else {
/* unsigned values, everything else */
- if(__is_set(flags, LLONG_FLAG)){
+ if (__is_set(flags, LLONG_FLAG)) {
handle_type(unsigned long long);
- }
- else if(__is_set(flags, LONG_FLAG)){
+ } else if (__is_set(flags, LONG_FLAG)) {
handle_type(unsigned long);
- }
- else if(__is_set(flags, SHORT_FLAG)){
+ } else if (__is_set(flags, SHORT_FLAG)) {
handle_type(unsigned short);
- }
- else if(__is_set(flags, CHAR_FLAG)){
+ } else if (__is_set(flags, CHAR_FLAG)) {
handle_type(unsigned char);
- }
- else {
+ } else {
handle_type(unsigned int);
}
}
#undef handle_type
- if(base == 16)
+ if (base == 16)
c += c > 9 ? 'a' - 10 : '0';
else
c += '0';
- if(value != 0)
+ if (value != 0)
ret = __integral_val(value, base, flags, print);
- if(print)
+ if (print)
__putchar(c);
return ret + 1;
@@ -232,16 +227,16 @@ static size_t __print_prefix(size_t base)
const char *prefix;
- if(base == 16)
+ if (base == 16)
prefix = hex;
- else if(base == 8)
+ else if (base == 8)
prefix = oct;
- else if(base == 2)
+ else if (base == 2)
prefix = bin;
else
prefix = empty;
- for(; *prefix ; ++i)
+ for (; *prefix; ++i)
__putchar(*prefix++);
return i;
@@ -250,7 +245,7 @@ static size_t __print_prefix(size_t base)
static size_t __print_padding(size_t pad, char pad_char)
{
size_t i = 0;
- for(; i < pad; ++i){
+ for (; i < pad; ++i) {
__putchar(pad_char);
}
@@ -259,22 +254,21 @@ static size_t __print_padding(size_t pad, char pad_char)
static size_t __print_sign(ssize_t value, size_t flags)
{
- if(__is_set(flags, LLONG_FLAG))
+ if (__is_set(flags, LLONG_FLAG))
value = (signed long long)value;
- else if(__is_set(flags, LONG_FLAG))
+ else if (__is_set(flags, LONG_FLAG))
value = (signed long)value;
- else if(__is_set(flags, SHORT_FLAG))
+ else if (__is_set(flags, SHORT_FLAG))
value = (signed short)value;
- else if(__is_set(flags, CHAR_FLAG))
+ else if (__is_set(flags, CHAR_FLAG))
value = (signed char)value;
else
value = (signed int)value;
- if(value < 0){
+ if (value < 0) {
__putchar('-');
return 1;
- }
- else if(flags & SIGN_FLAG) {
+ } else if (flags & SIGN_FLAG) {
__putchar('+');
return 1;
}
@@ -282,10 +276,10 @@ static size_t __print_sign(ssize_t value, size_t flags)
return 0;
}
-static size_t __print_integral(ssize_t value, size_t base,
- size_t flags, size_t width)
+static size_t __print_integral(ssize_t value, size_t base, size_t flags,
+ size_t width)
{
-#define __integral_len(a, b, c) __integral_val((a), (b), (c), false)
+#define __integral_len(a, b, c) __integral_val((a), (b), (c), false)
#define __integral_print(a, b, c) __integral_val((a), (b), (c), true)
size_t ret = 0;
@@ -294,30 +288,30 @@ static size_t __print_integral(ssize_t value, size_t base,
/* depending on which flags are set, the prefix, sign and right justify has to
* be ordereder differently. */
- if(__is_set(flags, ZERO_FLAG)){
- if(!__is_set(flags, UNSIGN_FLAG))
+ if (__is_set(flags, ZERO_FLAG)) {
+ if (!__is_set(flags, UNSIGN_FLAG))
ret += __print_sign(value, flags);
- if(__is_set(flags, HASH_FLAG))
+ if (__is_set(flags, HASH_FLAG))
ret += __print_prefix(base);
- if(pad > 0 && !__is_set(flags, LEFT_FLAG))
+ if (pad > 0 && !__is_set(flags, LEFT_FLAG))
ret += __print_padding(pad, '0');
- } else if (__is_set(flags, SPACE_FLAG)){
- if(pad > 0 && !__is_set(flags, LEFT_FLAG))
+ } else if (__is_set(flags, SPACE_FLAG)) {
+ if (pad > 0 && !__is_set(flags, LEFT_FLAG))
ret += __print_padding(pad, ' ');
- if(!__is_set(flags, UNSIGN_FLAG))
+ if (!__is_set(flags, UNSIGN_FLAG))
ret += __print_sign(value, flags);
- if(__is_set(flags, HASH_FLAG))
+ if (__is_set(flags, HASH_FLAG))
ret += __print_prefix(base);
} else {
- if(!__is_set(flags, UNSIGN_FLAG))
+ if (!__is_set(flags, UNSIGN_FLAG))
ret += __print_sign(value, flags);
- if(__is_set(flags, HASH_FLAG))
+ if (__is_set(flags, HASH_FLAG))
ret += __print_prefix(base);
}
@@ -325,11 +319,11 @@ static size_t __print_integral(ssize_t value, size_t base,
ret += __integral_print(value, base, flags);
/* left-justify */
- if(__is_set(flags, ZERO_FLAG)){
- if(pad > 0 && __is_set(flags, LEFT_FLAG))
+ if (__is_set(flags, ZERO_FLAG)) {
+ if (pad > 0 && __is_set(flags, LEFT_FLAG))
ret += __print_padding(pad, '0');
- } else if(__is_set(flags, SPACE_FLAG)) {
- if(pad > 0 && __is_set(flags, LEFT_FLAG))
+ } else if (__is_set(flags, SPACE_FLAG)) {
+ if (pad > 0 && __is_set(flags, LEFT_FLAG))
ret += __print_padding(pad, ' ');
}
@@ -352,16 +346,15 @@ void dbg(const char *fmt, ...)
size_t chars_written = 0;
- while(*fmt){
-
- if (*fmt != '%'){
+ while (*fmt) {
+ if (*fmt != '%') {
__putchar(*fmt++);
chars_written++;
continue;
}
fmt++;
- if(*fmt == '%'){
+ if (*fmt == '%') {
/* literal percent sign */
__putchar('%');
chars_written++;
@@ -373,44 +366,57 @@ void dbg(const char *fmt, ...)
size_t flags = 0;
int a = STOP;
do {
- switch(*fmt){
- case ' ':
- __set_bit(flags, SPACE_FLAG); fmt++; a = CONT;
- break;
+ switch (*fmt) {
+ case ' ':
+ __set_bit(flags, SPACE_FLAG);
+ fmt++;
+ a = CONT;
+ break;
- case '-':
- __set_bit(flags, LEFT_FLAG); fmt++; a = CONT;
- break;
+ case '-':
+ __set_bit(flags, LEFT_FLAG);
+ fmt++;
+ a = CONT;
+ break;
- case '+':
- __set_bit(flags, SIGN_FLAG); fmt++; a = CONT;
- break;
+ case '+':
+ __set_bit(flags, SIGN_FLAG);
+ fmt++;
+ a = CONT;
+ break;
- case '#':
- __set_bit(flags, HASH_FLAG); fmt++; a = CONT;
- break;
+ case '#':
+ __set_bit(flags, HASH_FLAG);
+ fmt++;
+ a = CONT;
+ break;
- case '0': __set_bit(flags, ZERO_FLAG); fmt++; a = CONT;
- break;
+ case '0':
+ __set_bit(flags, ZERO_FLAG);
+ fmt++;
+ a = CONT;
+ break;
- case '\'':
- __set_bit(flags, FMT_FLAG); fmt++; a = CONT;
- break;
+ case '\'':
+ __set_bit(flags, FMT_FLAG);
+ fmt++;
+ a = CONT;
+ break;
- default:
- a = STOP;
- break;
+ default:
+ a = STOP;
+ break;
}
} while (a != STOP);
/* check width */
size_t width = 0;
- if(__is_digit(*fmt)){
+ if (__is_digit(*fmt)) {
width = __atoi(fmt++);
__set_bit(flags, WIDTH_FLAG | PAD_FLAG | SPACE_FLAG);
} else if (*fmt == '*') {
int w = va_arg(vl, int);
- if(w < 0) {
+ if (w < 0) {
width = -w;
__set_bit(flags, LEFT_FLAG);
} else {
@@ -422,63 +428,62 @@ void dbg(const char *fmt, ...)
/* check precision */
size_t precision = 0;
- if(*fmt == '.'){
+ if (*fmt == '.') {
fmt++;
__set_bit(flags, PRECS_FLAG | PAD_FLAG | ZERO_FLAG);
- if(__is_digit(*fmt)){
+ if (__is_digit(*fmt)) {
precision = __atoi(fmt++);
- } else if(*fmt == '*'){
+ } else if (*fmt == '*') {
precision = va_arg(vl, int);
fmt++;
}
}
/* check length */
- switch(*fmt){
- case 'l':
+ switch (*fmt) {
+ case 'l':
+ fmt++;
+ if (*fmt == 'l') {
+ __set_bit(flags, LLONG_FLAG);
fmt++;
- if (*fmt == 'l'){
- __set_bit(flags, LLONG_FLAG);
- fmt++;
- } else {
- __set_bit(flags, LONG_FLAG);
- }
- break;
+ } else {
+ __set_bit(flags, LONG_FLAG);
+ }
+ break;
- case 'h':
+ case 'h':
+ fmt++;
+ if (*fmt == 'h') {
+ __set_bit(flags, CHAR_FLAG);
fmt++;
- if(*fmt == 'h') {
- __set_bit(flags, CHAR_FLAG);
- fmt++;
- }
- else {
- __set_bit(flags, SHORT_FLAG);
- }
- break;
+ } else {
+ __set_bit(flags, SHORT_FLAG);
+ }
+ break;
- case 'j':
- fmt++;
- if(sizeof(intmax_t) == sizeof(long))
- __set_bit(flags, LONG_FLAG);
- else
- __set_bit(flags, LLONG_FLAG);
- break;
+ case 'j':
+ fmt++;
+ if (sizeof(intmax_t) == sizeof(long))
+ __set_bit(flags, LONG_FLAG);
+ else
+ __set_bit(flags, LLONG_FLAG);
+ break;
- case 'z':
- fmt++;
- if(sizeof(size_t) == sizeof(long))
- __set_bit(flags, LONG_FLAG);
- else
- __set_bit(flags, LLONG_FLAG);
- break;
+ case 'z':
+ fmt++;
+ if (sizeof(size_t) == sizeof(long))
+ __set_bit(flags, LONG_FLAG);
+ else
+ __set_bit(flags, LLONG_FLAG);
+ break;
- case 't':
- fmt++;
- if(sizeof(ptrdiff_t) == sizeof(long))
- __set_bit(flags, LONG_FLAG);
- else
- __set_bit(flags, LLONG_FLAG);
- break;
+ case 't':
+ fmt++;
+ if (sizeof(ptrdiff_t) == sizeof(long))
+ __set_bit(flags, LONG_FLAG);
+ else
+ __set_bit(flags, LLONG_FLAG);
+ break;
}
/* read actual specifier */
@@ -490,87 +495,95 @@ void dbg(const char *fmt, ...)
int *n = 0;
char c = 0;
- switch(*fmt){
- case 'd':
- case 'i':
- case 'u':
+ switch (*fmt) {
+ case 'd':
+ case 'i':
+ case 'u':
+ case 'x':
+ case 'X':
+ case 'o':
+ case 'b':
+ /* integer handling */
+ switch (*fmt) {
case 'x':
+ base = 16;
+ break;
case 'X':
+ base = 2;
+ break;
case 'o':
- case 'b':
- /* integer handling */
- switch(*fmt){
- case 'x': base = 16; break;
- case 'X': base = 2; break;
- case 'o': base = 8; break;
- default : base = 10; break;
- }
+ base = 8;
+ break;
+ default:
+ base = 10;
+ break;
+ }
- if(base == 10)
- __clear_bit(flags, HASH_FLAG);
+ if (base == 10)
+ __clear_bit(flags, HASH_FLAG);
- /* precision takes precedence */
- if(__is_set(flags, PRECS_FLAG))
- width = precision;
+ /* precision takes precedence */
+ if (__is_set(flags, PRECS_FLAG))
+ width = precision;
- /* formatting doesn't apply to decimal integers
+ /* formatting doesn't apply to decimal integers
* */
- if(*fmt != 'i' && *fmt != 'd'){
- __clear_bit(flags, SIGN_FLAG);
- __set_bit(flags, UNSIGN_FLAG);
- }
+ if (*fmt != 'i' && *fmt != 'd') {
+ __clear_bit(flags, SIGN_FLAG);
+ __set_bit(flags, UNSIGN_FLAG);
+ }
- if(__is_set(flags, LLONG_FLAG))
- value = va_arg(vl, long long);
- else if(__is_set(flags, LONG_FLAG))
- value = va_arg(vl, long);
- else
- value = va_arg(vl, int);
+ if (__is_set(flags, LLONG_FLAG))
+ value = va_arg(vl, long long);
+ else if (__is_set(flags, LONG_FLAG))
+ value = va_arg(vl, long);
+ else
+ value = va_arg(vl, int);
- chars_written += __print_integral(value, base,
- flags, width);
- fmt++;
- break;
+ chars_written +=
+ __print_integral(value, base, flags, width);
+ fmt++;
+ break;
- case 'c':
- c = va_arg(vl, int);
- __putchar(c);
- chars_written++;
- fmt++;
- break;
+ case 'c':
+ c = va_arg(vl, int);
+ __putchar(c);
+ chars_written++;
+ fmt++;
+ break;
- case 's':
- s = va_arg(vl, const char *);
+ case 's':
+ s = va_arg(vl, const char *);
- if(__is_set(flags, PRECS_FLAG))
- i = precision;
+ if (__is_set(flags, PRECS_FLAG))
+ i = precision;
- for(; *s && i--;){
- __putchar(*s++);
- chars_written++;
- }
- fmt++;
- break;
+ for (; *s && i--;) {
+ __putchar(*s++);
+ chars_written++;
+ }
+ fmt++;
+ break;
- case 'p':
- p = va_arg(vl, void *);
- __set_bit(flags, UNSIGN_FLAG | HASH_FLAG);
+ case 'p':
+ p = va_arg(vl, void *);
+ __set_bit(flags, UNSIGN_FLAG | HASH_FLAG);
- if(sizeof(void *) == sizeof(long))
- __set_bit(flags, LONG_FLAG);
- else
- __set_bit(flags, LLONG_FLAG);
+ if (sizeof(void *) == sizeof(long))
+ __set_bit(flags, LONG_FLAG);
+ else
+ __set_bit(flags, LLONG_FLAG);
- chars_written += __print_integral((ssize_t)p, 16,
- flags, width);
- fmt++;
- break;
+ chars_written +=
+ __print_integral((ssize_t)p, 16, flags, width);
+ fmt++;
+ break;
- case 'n':
- n = va_arg(vl, int *);
- *n = chars_written;
- fmt++;
- break;
+ case 'n':
+ n = va_arg(vl, int *);
+ *n = chars_written;
+ fmt++;
+ break;
}
}
diff --git a/common/dmem.c b/common/dmem.c
index 48bcefd..226b3f9 100644
--- a/common/dmem.c
+++ b/common/dmem.c
@@ -1,7 +1,7 @@
#include <apos/dmem.h>
-static struct mem_region_root pre_ram = {0};
-static struct mem_region_root post_ram = {0};
+static struct mem_region_root pre_ram = { 0 };
+static struct mem_region_root post_ram = { 0 };
pm_t __pre_base = 0;
pm_t __pre_top = 0;
pm_t __post_base = 0;
@@ -26,20 +26,23 @@ stat_t init_devmem(pm_t ram_base, pm_t ram_top)
return OK;
}
-stat_t dev_alloc_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order)
+stat_t dev_alloc_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order order)
{
map_vpage(b, *offset, vaddr, flags, order);
*offset += __o_size(order);
return OK;
}
-stat_t dev_free_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order)
+stat_t dev_free_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order order)
{
- UNUSED(offset); UNUSED(flags);
+ UNUSED(offset);
+ UNUSED(flags);
pm_t paddr = 0;
enum mm_order v_order = 0;
stat_vpage(b, vaddr, &paddr, &v_order, 0);
- if(order != v_order)
+ if (order != v_order)
return REGION_TRY_AGAIN;
unmap_vpage(b, vaddr);
@@ -49,16 +52,17 @@ stat_t dev_free_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t
vm_t alloc_devmem(struct tcb *t, pm_t dev_start, size_t bytes, vmflags_t flags)
{
vm_t region = 0;
- if(dev_start < __pre_top)
+ if (dev_start < __pre_top)
region = alloc_region(&pre_ram, bytes, 0);
- if(dev_start > __post_base)
+ if (dev_start > __post_base)
region = alloc_region(&post_ram, bytes, 0);
- if(!region)
+ if (!region)
return 0;
- return map_fill_region(t->b_r, &dev_alloc_wrapper, dev_start, region, bytes, flags);
+ return map_fill_region(t->b_r, &dev_alloc_wrapper, dev_start, region,
+ bytes, flags);
}
stat_t free_devmem(struct tcb *t, vm_t dev_start)
@@ -66,26 +70,27 @@ stat_t free_devmem(struct tcb *t, vm_t dev_start)
pm_t dev_paddr = 0;
stat_vpage(t->b_r, dev_start, &dev_paddr, 0, 0);
- if(dev_paddr >= __pre_top && dev_paddr <= __post_base)
+ if (dev_paddr >= __pre_top && dev_paddr <= __post_base)
return ERR_ADDR;
struct mem_region *m = 0;
- if(dev_paddr < __pre_top)
+ if (dev_paddr < __pre_top)
m = find_used_region(&pre_ram, dev_paddr);
- if(dev_paddr > __post_base)
+ if (dev_paddr > __post_base)
m = find_used_region(&post_ram, dev_paddr);
- if(!m)
+ if (!m)
return ERR_NF;
size_t region_size = __addr(m->end - m->start);
- map_fill_region(t->b_r, &dev_free_wrapper, dev_paddr, dev_start, region_size, 0);
+ map_fill_region(t->b_r, &dev_free_wrapper, dev_paddr, dev_start,
+ region_size, 0);
- if(dev_paddr < __pre_top)
+ if (dev_paddr < __pre_top)
free_region(&pre_ram, dev_paddr);
- if(dev_paddr > __post_base)
+ if (dev_paddr > __post_base)
free_region(&post_ram, dev_paddr);
return OK;
diff --git a/common/elf.c b/common/elf.c
index 9ce357d..ddf61c9 100644
--- a/common/elf.c
+++ b/common/elf.c
@@ -6,20 +6,21 @@
static uint8_t __elf_to_uvflags(uint8_t elf_flags)
{
uint8_t uvflags = VM_V | VM_U;
- if(elf_flags & PF_X)
+ if (elf_flags & PF_X)
uvflags |= VM_X;
- if(elf_flags & PF_W)
+ if (elf_flags & PF_W)
uvflags |= VM_W;
- if(elf_flags & PF_R)
+ if (elf_flags & PF_R)
uvflags |= VM_R;
return uvflags;
}
/* useful bit of info: all segments are sorted in ascending order of p_vaddr */
-static void __map_exec(struct tcb *t, vm_t bin, uint8_t ei_c, vm_t phstart, size_t phnum, size_t phsize)
+static void __map_exec(struct tcb *t, vm_t bin, uint8_t ei_c, vm_t phstart,
+ size_t phnum, size_t phsize)
{
/* TODO: take alignment into consideration? */
/* TODO: take overlapping memory regions into account, probably mostly
@@ -29,21 +30,22 @@ static void __map_exec(struct tcb *t, vm_t bin, uint8_t ei_c, vm_t phstart, size
* filled with zeroes. */
/* TODO: in general, make this a low more clean. */
vm_t runner = phstart;
- for(size_t i = 0; i < phnum; ++i, runner += phsize){
- if(program_header_prop(ei_c, runner, p_type) != PT_LOAD)
+ for (size_t i = 0; i < phnum; ++i, runner += phsize) {
+ if (program_header_prop(ei_c, runner, p_type) != PT_LOAD)
continue;
vm_t va = program_header_prop(ei_c, runner, p_vaddr);
size_t vsz = program_header_prop(ei_c, runner, p_memsz);
vm_t start = alloc_fixed_region(&t->sp_r, va, vsz, &vsz);
- if(!start)
- return; /* out of memory or something */
+ if (!start)
+ return; /* out of memory or something */
uint8_t elf_flags = program_header_prop(ei_c, runner, p_flags);
uint8_t uvflags = __elf_to_uvflags(elf_flags);
- map_allocd_region(t->b_r, start, vsz, VM_V | VM_X | VM_R | VM_W | VM_U);
+ map_allocd_region(t->b_r, start, vsz,
+ VM_V | VM_X | VM_R | VM_W | VM_U);
vm_t vo = bin + program_header_prop(ei_c, runner, p_offset);
vm_t vfz = program_header_prop(ei_c, runner, p_filesz);
@@ -60,7 +62,8 @@ static void __map_exec(struct tcb *t, vm_t bin, uint8_t ei_c, vm_t phstart, size
}
}
-static vm_t __map_dyn(struct tcb *t, vm_t bin, uint8_t ei_c, vm_t phstart, size_t phnum, size_t phsize)
+static vm_t __map_dyn(struct tcb *t, vm_t bin, uint8_t ei_c, vm_t phstart,
+ size_t phnum, size_t phsize)
{
/* TODO: this path should only be taken when no PT_INTERP is defined, as
* making sure ld is loaded should be done in userspace. Maybe a bit
@@ -70,7 +73,7 @@ static vm_t __map_dyn(struct tcb *t, vm_t bin, uint8_t ei_c, vm_t phstart, size_
static vm_t __prepare_proc(struct tcb *t, uint8_t ei_c, vm_t elf)
{
short e_type = elf_header_prop(ei_c, elf, e_type);
- if(e_type != ET_DYN && e_type != ET_EXEC)
+ if (e_type != ET_DYN && e_type != ET_EXEC)
return 0;
vm_t phstart = ptradd(elf, elf_header_prop(ei_c, elf, e_phoff));
@@ -78,7 +81,7 @@ static vm_t __prepare_proc(struct tcb *t, uint8_t ei_c, vm_t elf)
size_t phsize = elf_header_prop(ei_c, elf, e_phentsize);
vm_t entry = elf_header_prop(ei_c, elf, e_entry);
- if(e_type == ET_EXEC){
+ if (e_type == ET_EXEC) {
__map_exec(t, elf, ei_c, phstart, phnum, phsize);
return entry;
} else {
@@ -91,11 +94,11 @@ static vm_t __prepare_proc(struct tcb *t, uint8_t ei_c, vm_t elf)
vm_t load_elf(struct tcb *t, vm_t b)
{
struct elf_ident *i = (struct elf_ident *)b;
- if(i->ei_magic != cpu_to_be32(EI_MAGIC))
+ if (i->ei_magic != cpu_to_be32(EI_MAGIC))
return 0;
- if(i->ei_class != ELFCLASS32 && i->ei_class != ELFCLASS64)
- return 0;
+ if (i->ei_class != ELFCLASS32 && i->ei_class != ELFCLASS64)
+ return 0;
/* more sanity checks? */
return __prepare_proc(t, i->ei_class, b);
diff --git a/common/fdt.c b/common/fdt.c
index 7cec3a4..56b9d04 100644
--- a/common/fdt.c
+++ b/common/fdt.c
@@ -2,21 +2,19 @@
struct cell_info get_cellinfo(const void *fdt, const int offset)
{
- return (struct cell_info){
- fdt_size_cells(fdt, offset),
- fdt_address_cells(fdt, offset)
- };
+ return (struct cell_info){ fdt_size_cells(fdt, offset),
+ fdt_address_cells(fdt, offset) };
}
/* how "reg" is interpreted depends on the parent node */
struct cell_info get_reginfo(const void *fdt, const char *path)
{
const char *i = strrchr(path, '/');
- if(!i)
- return (struct cell_info){0, 0};
+ if (!i)
+ return (struct cell_info){ 0, 0 };
size_t baselen = i - path;
- if(i == 0)
+ if (i == 0)
/* root node */
baselen = 1;
diff --git a/common/initrd.c b/common/initrd.c
index 7b5fa6c..28ddaec 100644
--- a/common/initrd.c
+++ b/common/initrd.c
@@ -25,28 +25,30 @@ struct __packed cpio_header {
static struct cpio_header *__next_entry(struct cpio_header *cp)
{
- size_t blen = align_up(sizeof(struct cpio_header) + convnum(cp->c_namesize, 8, 16), 4);
+ size_t blen = align_up(
+ sizeof(struct cpio_header) + convnum(cp->c_namesize, 8, 16), 4);
size_t tlen = align_up(convnum(cp->c_filesize, 8, 16), 4);
return (struct cpio_header *)(((char *)cp) + blen + tlen);
}
-static struct cpio_header *__find_file(const char *c, const char* fname, size_t fname_len)
+static struct cpio_header *__find_file(const char *c, const char *fname,
+ size_t fname_len)
{
struct cpio_header *cp = (struct cpio_header *)c;
- for(; cp; cp = __next_entry(cp)){
+ for (; cp; cp = __next_entry(cp)) {
size_t namelen = convnum(cp->c_namesize, 8, 16);
- if(namelen == 0)
+ if (namelen == 0)
return 0;
- if(namelen < fname_len)
+ if (namelen < fname_len)
continue;
char *name = (char *)(cp + 1);
- if(fname[0] != '/')
+ if (fname[0] != '/')
name += namelen - (fname_len + 1); /* match ending */
- if(strncmp(name, fname, fname_len) == 0)
+ if (strncmp(name, fname, fname_len) == 0)
return cp;
}
@@ -59,7 +61,7 @@ pm_t get_initrdtop(const void *fdt)
struct cell_info ci = get_cellinfo(fdt, chosen_offset);
void *initrd_end_ptr = (void *)fdt_getprop(fdt, chosen_offset,
- "linux,initrd-end", NULL);
+ "linux,initrd-end", NULL);
/* fdt is only aware of physical memory pointers */
return (pm_t)__va(fdt_load_int_ptr(ci.addr_cells, initrd_end_ptr));
@@ -71,7 +73,7 @@ pm_t get_initrdbase(const void *fdt)
const struct cell_info ci = get_cellinfo(fdt, chosen_offset);
void *initrd_base_ptr = (void *)fdt_getprop(fdt, chosen_offset,
- "linux,initrd-start", NULL);
+ "linux,initrd-start", NULL);
return (pm_t)__va(fdt_load_int_ptr(ci.addr_cells, initrd_base_ptr));
}
diff --git a/common/mem.c b/common/mem.c
index 7a7eff6..a824c26 100644
--- a/common/mem.c
+++ b/common/mem.c
@@ -16,9 +16,9 @@ void init_mem(size_t max_order, size_t bits[10], size_t page_shift)
__mm_shifts[0] = 0;
__mm_widths[0] = 1 << bits[0];
- __mm_sizes[0] = 1 << __mm_page_shift;
+ __mm_sizes[0] = 1 << __mm_page_shift;
- for(size_t i = 1; i <= __mm_max_order; ++i){
+ for (size_t i = 1; i <= __mm_max_order; ++i) {
__mm_widths[i] = 1 << bits[i];
__mm_shifts[i] = __mm_shifts[i - 1] + bits[i - 1];
__mm_sizes[i] = 1UL << __mm_shifts[i] << __mm_page_shift;
diff --git a/common/mem_nodes.c b/common/mem_nodes.c
index 099d578..2ab6978 100644
--- a/common/mem_nodes.c
+++ b/common/mem_nodes.c
@@ -4,9 +4,7 @@
#include <apos/string.h>
#include <apos/mem_nodes.h>
-enum block_status {
- FREE = 0, USED = 1
-};
+enum block_status { FREE = 0, USED = 1 };
struct block_wrapper {
enum block_status status;
@@ -23,16 +21,16 @@ struct block_region {
struct block_region *prev;
};
-#define MAX_BLOCKS \
- ((BASE_PAGE_SIZE - sizeof(struct block_region)) / sizeof(struct block_wrapper))
+#define MAX_BLOCKS \
+ ((BASE_PAGE_SIZE - sizeof(struct block_region)) / \
+ sizeof(struct block_wrapper))
-#define block_region(b) \
+#define block_region(b) \
((struct block_region *)((size_t)(b) & ~(BASE_PAGE_SIZE - 1)))
-#define block_container(b) \
- container_of(b, struct block_wrapper, n)
+#define block_container(b) container_of(b, struct block_wrapper, n)
-#define region_to_array(r) \
+#define region_to_array(r) \
((struct block_wrapper *)((char *)(r) + sizeof(struct block_region)))
static struct block_region *head = 0;
@@ -40,7 +38,8 @@ static struct block_region *av_head = 0;
static struct block_region *__create_region()
{
- struct block_region *r = (struct block_region *)alloc_page(BASE_PAGE, 0);
+ struct block_region *r =
+ (struct block_region *)alloc_page(BASE_PAGE, 0);
memset(r, FREE, BASE_PAGE_SIZE);
return r;
}
@@ -54,7 +53,7 @@ void init_mem_blocks()
void destroy_mem_blocks()
{
struct block_region *r = head;
- while(r){
+ while (r) {
struct block_region *d = r;
r = r->prev;
free_page(MM_O0, (pm_t)d);
@@ -64,8 +63,8 @@ void destroy_mem_blocks()
static struct mem_region *__find_free_block(struct block_region *h)
{
struct block_wrapper *w = region_to_array(h);
- for(size_t i = 0; i < MAX_BLOCKS; ++i){
- if(w[i].status != FREE)
+ for (size_t i = 0; i < MAX_BLOCKS; ++i) {
+ if (w[i].status != FREE)
continue;
w[i].status = USED;
@@ -79,7 +78,7 @@ static void __pop_av_head()
{
struct block_region *t = av_head;
av_head = av_head->av_next;
- if(av_head)
+ if (av_head)
av_head->av_prev = 0;
t->av_next = 0;
@@ -88,7 +87,7 @@ static void __pop_av_head()
struct mem_region *get_mem_node()
{
- if(!av_head){
+ if (!av_head) {
av_head = __create_region();
av_head->prev = head;
@@ -99,7 +98,7 @@ struct mem_region *get_mem_node()
struct mem_region *ret = __find_free_block(av_head);
- if(++av_head->used_blocks == MAX_BLOCKS)
+ if (++av_head->used_blocks == MAX_BLOCKS)
__pop_av_head();
return ret;
@@ -109,7 +108,7 @@ static void __push_av_head(struct block_region *r)
{
r->av_prev = 0;
r->av_next = av_head;
- if(av_head)
+ if (av_head)
av_head->av_prev = r;
av_head = r;
@@ -120,26 +119,26 @@ static void __free_block(struct block_region *r)
struct block_region *av_n = r->av_next;
struct block_region *av_p = r->av_prev;
- if(av_n)
+ if (av_n)
av_n->av_prev = av_p;
- if(av_p)
+ if (av_p)
av_p->av_next = av_n;
- if(r == av_head)
+ if (r == av_head)
__pop_av_head();
struct block_region *n = r->next;
struct block_region *p = r->prev;
- if(n)
+ if (n)
n->prev = p;
- if(p)
+ if (p)
p->next = n;
- if(r == head){
- if(head->prev){
+ if (r == head) {
+ if (head->prev) {
head->next = 0;
head = head->prev;
} else
@@ -156,11 +155,11 @@ void free_mem_node(struct mem_region *m)
struct block_region *r = block_region(w);
- if(--r->used_blocks == 0){
+ if (--r->used_blocks == 0) {
__free_block(r);
return;
}
- else if(!r->av_next && !r->av_prev)
+ else if (!r->av_next && !r->av_prev)
__push_av_head(r);
}
diff --git a/common/mem_regions.c b/common/mem_regions.c
index 7b9b629..975b6b5 100644
--- a/common/mem_regions.c
+++ b/common/mem_regions.c
@@ -3,9 +3,9 @@
#include <apos/pmem.h>
#include <apos/mem.h>
-#define mark_region_used(r) ((r) = 1)
+#define mark_region_used(r) ((r) = 1)
#define mark_region_unused(r) ((r) = 0)
-#define region_used(r) (r)
+#define region_used(r) (r)
/* pretty major slowdown when we get to some really massive numbers, not
* entirely sure why. Will need to check up on this at some point, have I
@@ -23,31 +23,32 @@
* maybe not even anything with sp_trees but more a weakness of binary trees in
* general?
*/
-static struct mem_region *__insert_free_region(struct mem_region_root *r, struct mem_region *m)
+static struct mem_region *__insert_free_region(struct mem_region_root *r,
+ struct mem_region *m)
{
struct sp_node *n = sp_root(r->free_regions), *p = NULL;
size_t start = m->start;
size_t size = m->end - m->start;
enum sp_dir d = LEFT;
- m->sp_n = (struct sp_node){0};
+ m->sp_n = (struct sp_node){ 0 };
- while(n){
+ while (n) {
struct mem_region *t = mem_container(n);
size_t nsize = t->end - t->start;
p = n;
- if(size < nsize){
+ if (size < nsize) {
n = sp_left(n);
d = LEFT;
}
- else if(size > nsize) {
+ else if (size > nsize) {
n = sp_right(n);
d = RIGHT;
}
- else if (start < t->start){
+ else if (start < t->start) {
n = sp_left(n);
d = LEFT;
}
@@ -58,7 +59,7 @@ static struct mem_region *__insert_free_region(struct mem_region_root *r, struct
}
}
- if(sp_root(r->free_regions))
+ if (sp_root(r->free_regions))
sp_insert(&sp_root(r->free_regions), p, &m->sp_n, d);
else
sp_root(r->free_regions) = &m->sp_n;
@@ -66,20 +67,21 @@ static struct mem_region *__insert_free_region(struct mem_region_root *r, struct
return m;
}
-static struct mem_region *__insert_used_region(struct mem_region_root *r, struct mem_region *m)
+static struct mem_region *__insert_used_region(struct mem_region_root *r,
+ struct mem_region *m)
{
struct sp_node *n = sp_root(r->used_regions), *p = NULL;
vm_t start = m->start;
enum sp_dir d = LEFT;
- m->sp_n = (struct sp_node){0};
+ m->sp_n = (struct sp_node){ 0 };
- while(n){
+ while (n) {
struct mem_region *t = mem_container(n);
p = n;
- if(start < t->start){
+ if (start < t->start) {
n = sp_left(n);
d = LEFT;
}
@@ -92,7 +94,7 @@ static struct mem_region *__insert_used_region(struct mem_region_root *r, struct
}
}
- if(sp_root(r->used_regions))
+ if (sp_root(r->used_regions))
sp_insert(&sp_root(r->used_regions), p, &m->sp_n, d);
else
sp_root(r->used_regions) = &m->sp_n;
@@ -115,7 +117,7 @@ stat_t init_region(struct mem_region_root *r, vm_t start, size_t arena_size)
static void __destroy_region(struct sp_node *n)
{
- if(!n)
+ if (!n)
return;
__destroy_region(sp_left(n));
@@ -139,12 +141,12 @@ void destroy_region(struct mem_region_root *r)
struct mem_region *find_used_region(struct mem_region_root *r, vm_t start)
{
struct sp_node *n = sp_root(r->used_regions);
- while(n){
+ while (n) {
struct mem_region *t = mem_container(n);
- if(start == t->start)
+ if (start == t->start)
return t;
- if(start < t->start)
+ if (start < t->start)
n = sp_left(n);
else
n = sp_right(n);
@@ -154,7 +156,8 @@ struct mem_region *find_used_region(struct mem_region_root *r, vm_t start)
}
static struct mem_region *create_region(vm_t start, vm_t end,
- struct mem_region *prev, struct mem_region *next)
+ struct mem_region *prev,
+ struct mem_region *next)
{
struct mem_region *m = get_mem_node();
m->start = start;
@@ -168,35 +171,36 @@ static struct mem_region *create_region(vm_t start, vm_t end,
* just from really quick checking */
static size_t po_align(size_t s)
{
- for(size_t o = __mm_max_order; o > 0; --o){
- if(s >= __o_size(o))
+ for (size_t o = __mm_max_order; o > 0; --o) {
+ if (s >= __o_size(o))
return __o_size(o);
}
return 0;
}
-struct mem_region *find_closest_used_region(struct mem_region_root *r, vm_t start)
+struct mem_region *find_closest_used_region(struct mem_region_root *r,
+ vm_t start)
{
struct mem_region *closest = 0;
size_t md = (size_t)(-1);
struct sp_node *n = sp_root(r->used_regions);
- if(!n)
+ if (!n)
return mem_container(sp_root(r->free_regions));
- while(n){
+ while (n) {
struct mem_region *t = mem_container(n);
size_t d = ABS((ssize_t)start - (ssize_t)t->start);
- if(d == 0) /* exact match */
+ if (d == 0) /* exact match */
return t;
- if(d < md){ /* closest so far */
+ if (d < md) { /* closest so far */
closest = t;
md = d;
}
- if(start < t->start)
+ if (start < t->start)
n = sp_left(n);
else
n = sp_right(n);
@@ -212,23 +216,24 @@ struct mem_region *find_closest_used_region(struct mem_region_root *r, vm_t star
* still fits in, unaligned. If none of these criteria are met, a NULL is
* returned. Note that this does not check *all* possible memory blocks, only
* going up in increasing size so as to save time. */
-struct mem_region *find_free_region(struct mem_region_root *r, size_t size, size_t *align)
+struct mem_region *find_free_region(struct mem_region_root *r, size_t size,
+ size_t *align)
{
*align = 0;
size_t offset = __page(po_align(__addr(size)));
struct mem_region *quick_best = 0;
struct sp_node *n = sp_root(r->free_regions);
- while(n){
+ while (n) {
struct mem_region *t = mem_container(n);
vm_t start = align_up(t->start, offset);
size_t qsize = t->end - t->start;
size_t bsize = t->end - start;
- if(!quick_best && size <= qsize)
+ if (!quick_best && size <= qsize)
quick_best = t;
- if(size <= bsize){
+ if (size <= bsize) {
*align = start - t->start;
return t;
}
@@ -240,32 +245,34 @@ struct mem_region *find_free_region(struct mem_region_root *r, size_t size, size
}
static vm_t __partition_region(struct mem_region_root *r, struct mem_region *m,
- size_t pages, size_t align)
+ size_t pages, size_t align)
{
sp_remove(&sp_root(r->free_regions), &m->sp_n);
vm_t pre_start = m->start;
vm_t pre_end = pre_start + align;
-
+
vm_t start = pre_end;
vm_t end = start + pages;
vm_t post_start = end;
vm_t post_end = m->end;
- if(pre_start != pre_end){
- struct mem_region *n = create_region(pre_start, pre_end, m->prev, m);
+ if (pre_start != pre_end) {
+ struct mem_region *n =
+ create_region(pre_start, pre_end, m->prev, m);
m->prev = n;
- if(n->prev)
+ if (n->prev)
n->prev->next = n;
__insert_free_region(r, n);
}
- if(post_start != post_end){
- struct mem_region *n = create_region(post_start, post_end, m, m->next);
+ if (post_start != post_end) {
+ struct mem_region *n =
+ create_region(post_start, post_end, m, m->next);
m->next = n;
- if(n->next)
+ if (n->next)
n->next->prev = n;
__insert_free_region(r, n);
@@ -282,8 +289,7 @@ static vm_t __partition_region(struct mem_region_root *r, struct mem_region *m,
* just ignore them for now. Note that alloc_region should only be used when
* mmap is called with MAP_ANON, all other situations should be handled in some
* fs server */
-vm_t alloc_region(struct mem_region_root *r,
- size_t size, size_t *actual_size)
+vm_t alloc_region(struct mem_region_root *r, size_t size, size_t *actual_size)
{
*actual_size = align_up(size, BASE_PAGE_SIZE);
size_t pages = __page(*actual_size);
@@ -291,41 +297,40 @@ vm_t alloc_region(struct mem_region_root *r,
/* find best fitting, alignment etc. */
size_t align = 0;
struct mem_region *m = find_free_region(r, pages, &align);
- if(!m)
+ if (!m)
return 0;
return __partition_region(r, m, pages, align);
}
-
-vm_t alloc_fixed_region(struct mem_region_root *r,
- vm_t start, size_t size, size_t *actual_size)
+vm_t alloc_fixed_region(struct mem_region_root *r, vm_t start, size_t size,
+ size_t *actual_size)
{
size_t asize = align_up(size, BASE_PAGE_SIZE);
- if(actual_size)
+ if (actual_size)
*actual_size = asize;
size_t pages = __page(asize);
start = __page(start);
struct mem_region *m = find_closest_used_region(r, start);
- if(!m)
+ if (!m)
return 0;
/* locate actual region where start is between the region start and end */
- while(!((m->start <= start) && (start <= m->end))){
- if(start > m->start)
+ while (!((m->start <= start) && (start <= m->end))) {
+ if (start > m->start)
m = m->next;
else
m = m->prev;
}
/* if region is already in use, forget it */
- if(region_used(m->flags))
+ if (region_used(m->flags))
return 0;
/* region is too small */
- if(start + pages > m->end)
+ if (start + pages > m->end)
return 0;
/* actually start marking region used */
@@ -334,18 +339,18 @@ vm_t alloc_fixed_region(struct mem_region_root *r,
static void __try_coalesce_prev(struct mem_region_root *r, struct mem_region *m)
{
- while(m){
- if(!m || region_used(m->flags))
+ while (m) {
+ if (!m || region_used(m->flags))
return;
struct mem_region *p = m->prev;
- if(!p || region_used(p->flags))
+ if (!p || region_used(p->flags))
return;
m->start = p->start;
m->prev = p->prev;
- if(m->prev)
+ if (m->prev)
m->prev->next = m;
sp_remove(&sp_root(r->free_regions), &p->sp_n);
@@ -357,18 +362,18 @@ static void __try_coalesce_prev(struct mem_region_root *r, struct mem_region *m)
static void __try_coalesce_next(struct mem_region_root *r, struct mem_region *m)
{
- while(m){
- if(!m || region_used(m->flags))
+ while (m) {
+ if (!m || region_used(m->flags))
return;
struct mem_region *n = m->next;
- if(!n || region_used(n->flags))
+ if (!n || region_used(n->flags))
return;
m->end = n->end;
m->next = n->next;
- if(m->next)
+ if (m->next)
m->next->prev = m;
sp_remove(&sp_root(r->free_regions), &n->sp_n);
@@ -378,7 +383,8 @@ static void __try_coalesce_next(struct mem_region_root *r, struct mem_region *m)
}
}
-static void __try_coalesce_regions(struct mem_region_root *r, struct mem_region *m)
+static void __try_coalesce_regions(struct mem_region_root *r,
+ struct mem_region *m)
{
__try_coalesce_prev(r, m);
__try_coalesce_next(r, m);
@@ -387,11 +393,11 @@ static void __try_coalesce_regions(struct mem_region_root *r, struct mem_region
stat_t free_region(struct mem_region_root *r, vm_t start)
{
/* addr not aligned to page boundary, corrupted or incorrect pointer */
- if(!aligned(start, BASE_PAGE_SIZE))
+ if (!aligned(start, BASE_PAGE_SIZE))
return ERR_ALIGN;
struct mem_region *m = find_used_region(r, __page(start));
- if(!m)
+ if (!m)
return ERR_NF;
sp_remove(&sp_root(r->used_regions), &m->sp_n);
@@ -409,7 +415,7 @@ stat_t free_region(struct mem_region_root *r, vm_t start)
* permutations etc. which would be slow and I don't want to implement it.
*/
vm_t map_fill_region(struct vm_branch *b, region_callback_t *mem_handler,
- pm_t offset, vm_t start, size_t bytes, vmflags_t flags)
+ pm_t offset, vm_t start, size_t bytes, vmflags_t flags)
{
pm_t runner = __page(start);
size_t pages = __pages(bytes);
@@ -418,22 +424,23 @@ vm_t map_fill_region(struct vm_branch *b, region_callback_t *mem_handler,
/* actual start might not be the same as the user specified start */
start = __addr(runner);
- for(; pages; top--){
+ for (; pages; top--) {
size_t o_size = __o_size(top);
size_t o_pages = __pages(o_size);
/* NULL does pass this check, so technically all NULL pages are
* aligned, but they're caught in the while expr so this should
* work even if someone tries to map NULL */
- if(!aligned(runner, o_pages))
+ if (!aligned(runner, o_pages))
continue;
- while(pages >= o_pages){
- stat_t res = mem_handler(b, &offset, __addr(runner), flags, top);
- if(res > 0)
+ while (pages >= o_pages) {
+ stat_t res = mem_handler(b, &offset, __addr(runner),
+ flags, top);
+ if (res > 0)
break;
- if(res < 0)
+ if (res < 0)
return 0;
pages -= o_pages;
diff --git a/common/pmem.c b/common/pmem.c
index 4c965cf..6ef89bc 100644
--- a/common/pmem.c
+++ b/common/pmem.c
@@ -8,25 +8,28 @@
#include <libfdt.h>
/* NOTE: these are all for pnum_t, i.e. O0_SHIFT is from 0 */
-#define __foreach_page(var, start, end, attr, neg)\
- for(size_t i = num_indexes(start); i < num_elems(end); ++i)\
- if(var->attr[i] == (mm_info_t)(-1)) continue;\
- else for(pnum_t page = i * MM_OINFO_WIDTH, j = 0;\
- j < (pnum_t)MIN((end) - i * MM_OINFO_WIDTH, MM_OINFO_WIDTH);\
- ++j, ++page)\
- if(neg(__is_nset(var->attr[i], j)))
+#define __foreach_page(var, start, end, attr, neg) \
+ for (size_t i = num_indexes(start); i < num_elems(end); ++i) \
+ if (var->attr[i] == (mm_info_t)(-1)) \
+ continue; \
+ else \
+ for (pnum_t page = i * MM_OINFO_WIDTH, j = 0; \
+ j < (pnum_t)MIN((end)-i * MM_OINFO_WIDTH, \
+ MM_OINFO_WIDTH); \
+ ++j, ++page) \
+ if (neg(__is_nset(var->attr[i], j)))
#define NEG !
-#define foreach_full_page(var, start, order)\
+#define foreach_full_page(var, start, order) \
__foreach_page(var, start, var->entries, full, )
-#define foreach_not_full_page(var, start, order)\
+#define foreach_not_full_page(var, start, order) \
__foreach_page(var, start, var->entries, full, NEG)
-#define foreach_used_page(var, start, order)\
+#define foreach_used_page(var, start, order) \
__foreach_page(var, start, var->entries, used, )
-#define foreach_not_used_page(var, start, order)\
+#define foreach_not_used_page(var, start, order) \
__foreach_page(var, start, var->entries, used, NEG)
typedef uint32_t mm_info_t;
@@ -55,8 +58,8 @@ struct mm_pmap_t {
static struct mm_pmap_t *pmap = 0;
-static void __mark_free(mm_node_t * op, pnum_t pnum, enum mm_order tgt,
- enum mm_order src, enum mm_order dst)
+static void __mark_free(mm_node_t *op, pnum_t pnum, enum mm_order tgt,
+ enum mm_order src, enum mm_order dst)
{
size_t idx = pnum_to_index(pnum, src);
@@ -67,7 +70,7 @@ static void __mark_free(mm_node_t * op, pnum_t pnum, enum mm_order tgt,
}
struct mm_branch_t *o = (struct mm_branch_t *)op;
- if(src != tgt)
+ if (src != tgt)
__mark_free(o->next[idx], pnum, tgt, src - 1, dst);
/* freeing a page results in always clearing a full bit? */
@@ -87,15 +90,15 @@ void free_page(enum mm_order order, pm_t paddr)
for (size_t j = 0; j < omap->order; ++j)
__mark_free(omap->orders[j],
- pm_to_pnum(paddr - omap->base),
- order, omap->order, j);
+ pm_to_pnum(paddr - omap->base), order,
+ omap->order, j);
return;
}
}
-static bool __mark_used(mm_node_t * op, pnum_t pnum, enum mm_order tgt,
- enum mm_order src, enum mm_order dst)
+static bool __mark_used(mm_node_t *op, pnum_t pnum, enum mm_order tgt,
+ enum mm_order src, enum mm_order dst)
{
size_t idx = pnum_to_index(pnum, src);
@@ -141,21 +144,22 @@ void mark_used(enum mm_order order, pm_t paddr)
for (size_t j = 0; j <= omap->order; ++j)
__mark_used(omap->orders[j],
- pm_to_pnum(paddr - omap->base),
- order, omap->order, j);
+ pm_to_pnum(paddr - omap->base), order,
+ omap->order, j);
return;
}
}
-static pnum_t __enum_order(mm_node_t * op, pnum_t offset,
- enum mm_order src, enum mm_order dst)
+static pnum_t __enum_order(mm_node_t *op, pnum_t offset, enum mm_order src,
+ enum mm_order dst)
{
size_t idx = pnum_to_index(offset, src);
if (src == dst) {
struct mm_leaf_t *o = (struct mm_leaf_t *)op;
- foreach_not_used_page(o, idx, src) {
+ foreach_not_used_page(o, idx, src)
+ {
return page << __o_offset(src);
}
@@ -163,11 +167,12 @@ static pnum_t __enum_order(mm_node_t * op, pnum_t offset,
}
struct mm_branch_t *o = (struct mm_branch_t *)op;
- foreach_not_full_page(o, idx, src) {
+ foreach_not_full_page(o, idx, src)
+ {
/* if the suggested search index is full, the following level
* would get an incorrect offset if trying to follow the original
* suggestion. */
- if (page != (pnum_t) idx)
+ if (page != (pnum_t)idx)
offset = 0;
pnum_t ret = __enum_order(o->next[page], offset, src - 1, dst);
@@ -195,8 +200,8 @@ pm_t alloc_page(enum mm_order order, pm_t offset)
if (offset != 0)
base = offset - omap->base;
- pnum = __enum_order(omap->orders[order],
- pm_to_pnum(base), omap->order, order);
+ pnum = __enum_order(omap->orders[order], pm_to_pnum(base),
+ omap->order, order);
if (!(pnum < 0))
break;
@@ -211,43 +216,43 @@ pm_t alloc_page(enum mm_order order, pm_t offset)
}
/* unfortunate that populating the mm info is so complicated */
-static pm_t __populate_order(mm_node_t ** op, pm_t cont,
- enum mm_order src, enum mm_order dst, size_t num)
+static pm_t __populate_order(mm_node_t **op, pm_t cont, enum mm_order src,
+ enum mm_order dst, size_t num)
{
if (src == dst) {
- struct mm_leaf_t *o = (struct mm_leaf_t *)
- move_forward(cont, sizeof(struct mm_leaf_t));
+ struct mm_leaf_t *o = (struct mm_leaf_t *)move_forward(
+ cont, sizeof(struct mm_leaf_t));
o->entries = num;
- o->used = (mm_info_t *) move_forward(cont, state_elems(num));
+ o->used = (mm_info_t *)move_forward(cont, state_elems(num));
memset(o->used, 0, state_elems(num));
- *op = (mm_node_t *) o;
+ *op = (mm_node_t *)o;
return cont;
}
- struct mm_branch_t *o = (struct mm_branch_t *)
- move_forward(cont, sizeof(struct mm_branch_t));
+ struct mm_branch_t *o = (struct mm_branch_t *)move_forward(
+ cont, sizeof(struct mm_branch_t));
o->entries = num;
- o->full = (mm_info_t *) move_forward(cont, state_elems(num));
- o->next = (mm_node_t **) move_forward(cont, next_elems(num));
+ o->full = (mm_info_t *)move_forward(cont, state_elems(num));
+ o->next = (mm_node_t **)move_forward(cont, next_elems(num));
memset(o->full, 0, state_elems(num));
memset(o->next, 0, next_elems(num));
for (size_t i = 0; i < num; ++i) {
- cont = __populate_order(&o->next[i], cont,
- src - 1, dst, __o_width(src - 1));
+ cont = __populate_order(&o->next[i], cont, src - 1, dst,
+ __o_width(src - 1));
}
- *op = (mm_node_t *) o;
+ *op = (mm_node_t *)o;
return cont;
}
static pm_t __probe_order(pm_t cont, enum mm_order src, enum mm_order dst,
- size_t num)
+ size_t num)
{
- if(src == dst){
+ if (src == dst) {
cont += sizeof(struct mm_leaf_t);
cont += state_elems(num);
return cont;
@@ -257,29 +262,29 @@ static pm_t __probe_order(pm_t cont, enum mm_order src, enum mm_order dst,
cont += state_elems(num);
cont += next_elems(num);
- for(size_t i = 0; i < num; ++i)
+ for (size_t i = 0; i < num; ++i)
cont = __probe_order(cont, src - 1, dst, __o_width(src - 1));
return cont;
}
-static pm_t __populate_omap(struct mm_omap_t **omap, pm_t cont,
- pm_t base, size_t entries, enum mm_order order)
+static pm_t __populate_omap(struct mm_omap_t **omap, pm_t cont, pm_t base,
+ size_t entries, enum mm_order order)
{
- struct mm_omap_t *lomap = (struct mm_omap_t *)
- move_forward(cont, sizeof(struct mm_omap_t));
+ struct mm_omap_t *lomap = (struct mm_omap_t *)move_forward(
+ cont, sizeof(struct mm_omap_t));
memset(lomap, 0, sizeof(struct mm_omap_t));
- lomap->orders = (mm_node_t **) move_forward(cont,
- (order + 1) * sizeof(mm_node_t **));
+ lomap->orders = (mm_node_t **)move_forward(
+ cont, (order + 1) * sizeof(mm_node_t **));
memset(lomap->orders, 0, (order + 1) * sizeof(mm_node_t **));
lomap->order = order;
lomap->base = base;
for (size_t i = 0; i <= order; ++i)
- cont = __populate_order(&lomap->orders[i], cont,
- order, i, entries);
+ cont = __populate_order(&lomap->orders[i], cont, order, i,
+ entries);
*omap = lomap;
return cont;
@@ -290,7 +295,7 @@ static pm_t __probe_omap(pm_t cont, size_t entries, enum mm_order order)
cont += sizeof(struct mm_omap_t);
cont += (order + 1) * sizeof(mm_node_t **);
- for(size_t i = 0; i <= order; ++i)
+ for (size_t i = 0; i <= order; ++i)
cont = __probe_order(cont, order, i, entries);
return cont;
@@ -310,8 +315,8 @@ pm_t populate_pmap(pm_t ram_base, size_t ram_size, pm_t cont)
if (entries == 0)
continue;
- cont = __populate_omap(&pmap->omap[i], cont,
- ram_region, entries, i);
+ cont = __populate_omap(&pmap->omap[i], cont, ram_region,
+ entries, i);
ram_left -= __mm_sizes[i] * entries;
ram_region += (__mm_sizes[i] * entries);
@@ -332,9 +337,9 @@ pm_t probe_pmap(pm_t ram_base, size_t ram_size)
pm_t ram_region = ram_base;
size_t ram_left = ram_size;
- for(ssize_t i = __mm_max_order; i >= MM_O0; --i){
+ for (ssize_t i = __mm_max_order; i >= MM_O0; --i) {
size_t entries = ram_left / __mm_sizes[i];
- if(entries == 0)
+ if (entries == 0)
continue;
cont = __probe_omap(cont, entries, i);
@@ -350,13 +355,13 @@ static void __mark_area_used(pm_t base, pm_t top)
{
size_t area_left = top - base;
pm_t runner = base;
- while(area_left >= BASE_PAGE_SIZE){
+ while (area_left >= BASE_PAGE_SIZE) {
mark_used(BASE_PAGE, runner);
runner += BASE_PAGE_SIZE;
area_left -= BASE_PAGE_SIZE;
}
- if(area_left != 0)
+ if (area_left != 0)
mark_used(BASE_PAGE, runner);
}
@@ -364,11 +369,12 @@ static void __mark_reserved_mem(void *fdt)
{
int rmem_offset = fdt_path_offset(fdt, "/reserved-memory/mmode_resv0");
struct cell_info ci = get_reginfo(fdt, "/reserved-memory/mmode_resv0");
- uint8_t *rmem_reg = (uint8_t *)fdt_getprop(fdt, rmem_offset, "reg", NULL);
+ uint8_t *rmem_reg =
+ (uint8_t *)fdt_getprop(fdt, rmem_offset, "reg", NULL);
pm_t base = (pm_t)fdt_load_int_ptr(ci.addr_cells, rmem_reg);
- if(ci.addr_cells == 2)
+ if (ci.addr_cells == 2)
rmem_reg += sizeof(fdt64_t);
else
rmem_reg += sizeof(fdt32_t);
@@ -385,7 +391,7 @@ static pm_t __get_ramtop(void *fdt)
pm_t base = (pm_t)fdt_load_int_ptr(ci.addr_cells, mem_reg);
- if(ci.addr_cells == 2)
+ if (ci.addr_cells == 2)
mem_reg += sizeof(fdt64_t);
else
mem_reg += sizeof(fdt32_t);
@@ -409,7 +415,7 @@ void init_pmem(void *fdt)
{
size_t max_order = 0;
size_t base_bits = 0;
- size_t bits[NUM_ORDERS] = {0};
+ size_t bits[NUM_ORDERS] = { 0 };
stat_pmem_conf(fdt, &max_order, &base_bits, bits);
init_mem(max_order, bits, base_bits);
@@ -426,9 +432,9 @@ void init_pmem(void *fdt)
size_t probe_size = probe_pmap(ram_base, ram_size);
size_t actual_size = populate_pmap(ram_base, ram_size, pmap_base);
- if(probe_size != actual_size)
- bug("probe_size (%#lx) != actual_size (%#lx)\n",
- probe_size, actual_size);
+ if (probe_size != actual_size)
+ bug("probe_size (%#lx) != actual_size (%#lx)\n", probe_size,
+ actual_size);
/* mark init stack, this should be unmapped once we get to executing
* processes */
diff --git a/common/proc.c b/common/proc.c
index 13d3750..9f89b7f 100644
--- a/common/proc.c
+++ b/common/proc.c
@@ -11,10 +11,10 @@ static vm_t setup_call_stack(struct tcb *t, size_t bytes)
pm_t offset = 0;
size_t pages = __pages(bytes);
vmflags_t flags = VM_V | VM_R | VM_W | VM_U;
- for(size_t i = 1; i <= pages; ++i)
- {
+ for (size_t i = 1; i <= pages; ++i) {
offset = alloc_page(BASE_PAGE, offset);
- map_vpage(t->b_r, offset, PROC_STACK_TOP - BASE_PAGE_SIZE * i, flags, BASE_PAGE);
+ map_vpage(t->b_r, offset, PROC_STACK_TOP - BASE_PAGE_SIZE * i,
+ flags, BASE_PAGE);
}
return PROC_STACK_TOP - BASE_PAGE_SIZE * pages;
@@ -29,7 +29,7 @@ stat_t init_proc(void *fdt, struct vm_branch *b)
{
/* todo: cleanup or something */
struct tcb *t = (struct tcb *)alloc_page(BASE_PAGE, 0);
- if(!t)
+ if (!t)
return ERR_OOMEM;
memset(t, 0, sizeof(struct tcb));
@@ -43,18 +43,17 @@ stat_t init_proc(void *fdt, struct vm_branch *b)
/* the binary gets to choose first what memory regions it requires */
t->entry = load_elf(t, get_init_base(fdt));
- if(!t->entry)
+ if (!t->entry)
return ERR_ADDR;
t->proc_stack = setup_proc_stack(t, __proc_stack_size);
- if(!t->proc_stack)
+ if (!t->proc_stack)
return ERR_ADDR;
t->call_stack = setup_call_stack(t, __call_stack_size);
- if(!t->call_stack)
+ if (!t->call_stack)
return ERR_ADDR;
-
flush_tlb();
/* TODO: move fdt into process space */
diff --git a/common/sp_tree.c b/common/sp_tree.c
index 495b843..5097757 100644
--- a/common/sp_tree.c
+++ b/common/sp_tree.c
@@ -10,12 +10,12 @@ static void __sp_turn_left(struct sp_node *n)
sp_paren(n) = l;
sp_right(l) = n;
- if(p && sp_left(p) == n)
+ if (p && sp_left(p) == n)
sp_left(p) = l;
else if (p)
sp_right(p) = l;
- if(sp_left(n))
+ if (sp_left(n))
sp_lparen(n) = n;
}
@@ -29,12 +29,12 @@ static void __sp_turn_right(struct sp_node *n)
sp_paren(n) = r;
sp_left(r) = n;
- if(p && sp_left(p) == n)
+ if (p && sp_left(p) == n)
sp_left(p) = r;
else if (p)
sp_right(p) = r;
- if(sp_right(n))
+ if (sp_right(n))
sp_rparen(n) = n;
}
@@ -43,10 +43,10 @@ static int __sp_balance(struct sp_node *n)
int l = 0;
int r = 0;
- if(sp_left(n))
+ if (sp_left(n))
l = sp_left(n)->hint + 1;
- if(sp_right(n))
+ if (sp_right(n))
r = sp_right(n)->hint + 1;
return l - r;
@@ -57,13 +57,13 @@ static int __sp_max_hint(struct sp_node *n)
int l = 0;
int r = 0;
- if(sp_left(n))
+ if (sp_left(n))
l = sp_left(n)->hint + 1;
- if(sp_right(n))
+ if (sp_right(n))
r = sp_right(n)->hint + 1;
- if(l > r)
+ if (l > r)
return l;
else
return r;
@@ -71,45 +71,44 @@ static int __sp_max_hint(struct sp_node *n)
static void __sp_update(struct sp_node **root, struct sp_node *n)
{
- while(n){
-
+ while (n) {
int b = __sp_balance(n);
int prev_hint = n->hint;
struct sp_node *p = sp_paren(n);
- if(b < -1) {
+ if (b < -1) {
/* leaning to the right */
- if(n == *root)
+ if (n == *root)
*root = sp_right(n);
__sp_turn_right(n);
}
- else if(b > 1){
+ else if (b > 1) {
/* leaning to the left */
- if(n == *root)
+ if (n == *root)
*root = sp_left(n);
__sp_turn_left(n);
}
n->hint = __sp_max_hint(n);
- if(n->hint == 0 || n->hint != prev_hint)
+ if (n->hint == 0 || n->hint != prev_hint)
n = p;
else
return;
}
}
-void sp_insert(struct sp_node **root, struct sp_node *p,
- struct sp_node *n, enum sp_dir d)
+void sp_insert(struct sp_node **root, struct sp_node *p, struct sp_node *n,
+ enum sp_dir d)
{
- if(!*root){
+ if (!*root) {
*root = n;
return;
}
- if(d == LEFT)
+ if (d == LEFT)
sp_left(p) = n;
else
sp_right(p) = n;
@@ -123,29 +122,29 @@ static void __sp_replace_right(struct sp_node *n, struct sp_node *r)
struct sp_node *p = sp_paren(n);
struct sp_node *rp = sp_paren(r);
- if(sp_left(rp) == r){
+ if (sp_left(rp) == r) {
sp_left(rp) = sp_right(r);
- if(sp_right(r))
+ if (sp_right(r))
sp_rparen(r) = rp;
}
- if(sp_paren(rp) == n)
+ if (sp_paren(rp) == n)
sp_paren(rp) = r;
sp_paren(r) = p;
sp_left(r) = sp_left(n);
- if(sp_right(n) != r){
+ if (sp_right(n) != r) {
sp_right(r) = sp_right(n);
sp_rparen(n) = r;
}
- if(p && sp_left(p) == n)
+ if (p && sp_left(p) == n)
sp_left(p) = r;
else if (p)
sp_right(p) = r;
- if(sp_left(n))
+ if (sp_left(n))
sp_lparen(n) = r;
}
@@ -154,39 +153,39 @@ static void __sp_replace_left(struct sp_node *n, struct sp_node *l)
struct sp_node *p = sp_paren(n);
struct sp_node *lp = sp_paren(l);
- if(sp_right(lp) == l){
+ if (sp_right(lp) == l) {
sp_right(lp) = sp_left(l);
- if(sp_left(l))
+ if (sp_left(l))
sp_lparen(l) = lp;
}
- if(sp_paren(lp) == n)
+ if (sp_paren(lp) == n)
sp_paren(lp) = l;
sp_paren(l) = p;
sp_right(l) = sp_right(n);
- if(sp_left(n) != l){
+ if (sp_left(n) != l) {
sp_left(l) = sp_left(n);
sp_lparen(n) = l;
}
- if(p && sp_left(p) == n)
+ if (p && sp_left(p) == n)
sp_left(p) = l;
else if (p)
sp_right(p) = l;
- if(sp_right(n))
+ if (sp_right(n))
sp_rparen(n) = l;
}
/* TODO: handle root better */
void sp_remove(struct sp_node **root, struct sp_node *del)
{
- if(sp_right(del)){
+ if (sp_right(del)) {
struct sp_node *least = sp_first(sp_right(del));
- if(del == *root)
+ if (del == *root)
*root = least;
__sp_replace_right(del, least);
@@ -194,10 +193,10 @@ void sp_remove(struct sp_node **root, struct sp_node *del)
return;
}
- if(sp_left(del)){
+ if (sp_left(del)) {
struct sp_node *most = sp_last(sp_left(del));
- if(del == *root)
+ if (del == *root)
*root = most;
__sp_replace_left(del, most);
@@ -205,7 +204,7 @@ void sp_remove(struct sp_node **root, struct sp_node *del)
return;
}
- if(del == *root){
+ if (del == *root) {
*root = 0;
return;
}
@@ -213,7 +212,7 @@ void sp_remove(struct sp_node **root, struct sp_node *del)
/* empty node */
struct sp_node *paren = sp_paren(del);
- if(sp_left(paren) == del)
+ if (sp_left(paren) == del)
sp_left(paren) = 0;
else
sp_right(paren) = 0;
@@ -223,14 +222,16 @@ void sp_remove(struct sp_node **root, struct sp_node *del)
struct sp_node *sp_first(struct sp_node *n)
{
- if(!sp_left(n)) return n;
+ if (!sp_left(n))
+ return n;
return sp_first(sp_left(n));
}
struct sp_node *sp_last(struct sp_node *n)
{
- if(!sp_right(n)) return n;
+ if (!sp_right(n))
+ return n;
return sp_last(sp_right(n));
}
diff --git a/common/string.c b/common/string.c
index 810a703..15416af 100644
--- a/common/string.c
+++ b/common/string.c
@@ -73,7 +73,8 @@ __weak int strcmp(const char *str1, const char *str2)
const char *s1 = (const char *)str1;
const char *s2 = (const char *)str2;
- while ((*(s1++) == *(s2++)) && *s1 && *s2) ;
+ while ((*(s1++) == *(s2++)) && *s1 && *s2)
+ ;
return (int)(s1[-1] - s2[-1]);
}
@@ -84,7 +85,8 @@ __weak int strncmp(const char *str1, const char *str2, size_t num)
const char *s1 = (const char *)str1;
const char *s2 = (const char *)str2;
- while ((*(s1++) == *(s2++)) && *s1 && *s2 && --num) ;
+ while ((*(s1++) == *(s2++)) && *s1 && *s2 && --num)
+ ;
return (int)(s1[-1] - s2[-1]);
}
@@ -95,7 +97,8 @@ __weak char *strchr(const char *str, int chr)
const char *s1 = str;
ssize_t num = strlen(s1);
- while (num-- && *(s1--) != chr) ;
+ while (num-- && *(s1--) != chr)
+ ;
if (num < 0)
return 0;
@@ -164,7 +167,8 @@ __weak char *strrchr(const char *str, int chr)
ssize_t num = strlen(str);
const char *s1 = (str + num) - 1;
- while (num-- && *(s1--) != chr) ;
+ while (num-- && *(s1--) != chr)
+ ;
if (num < 0)
return 0;
@@ -229,7 +233,8 @@ __weak size_t strspn(const char *str1, const char *str2)
__weak size_t strlen(const char *str)
{
const char *s1 = str;
- while (*(s1++)) ;
+ while (*(s1++))
+ ;
/* the loop overshoots by one */
return (size_t)(s1 - str) - 1;
@@ -239,7 +244,8 @@ __weak size_t strlen(const char *str)
__weak size_t strnlen(const char *str, size_t num)
{
const char *s1 = str;
- while (num-- && *(s1++)) ;
+ while (num-- && *(s1++))
+ ;
return (size_t)(s1 - str) - 1;
}
@@ -263,7 +269,8 @@ __weak void *memchr(const void *ptr, int val, size_t num)
ssize_t n = num;
char c = (char)val;
- while (n-- && *(p1++) != c) ;
+ while (n-- && *(p1++) != c)
+ ;
if (n < 0)
return 0;
@@ -304,8 +311,8 @@ __weak int memcmp(const void *ptr1, const void *ptr2, size_t num)
const char *p1 = (const char *)ptr1;
const char *p2 = (const char *)ptr2;
- while ((*(p1++) == *(p2++)) && --num) ;
+ while ((*(p1++) == *(p2++)) && --num)
+ ;
return (int)(p1[-1] - p2[-1]);
}
-
diff --git a/common/tcb.c b/common/tcb.c
index 8fea188..cd946bd 100644
--- a/common/tcb.c
+++ b/common/tcb.c
@@ -3,15 +3,14 @@
#include <apos/sp_tree.h>
#include <arch/cpu.h>
-static struct sp_root t_root = (struct sp_root){0};
-static struct tcb *__tcb_cache[MAX_CPUS] = {0};
+static struct sp_root t_root = (struct sp_root){ 0 };
+static struct tcb *__tcb_cache[MAX_CPUS] = { 0 };
-#define tcb_container(x) \
- container_of(x, struct tcb, sp_n)
+#define tcb_container(x) container_of(x, struct tcb, sp_n)
stat_t threads_insert(struct tcb *t)
{
- if(!sp_root(t_root)){
+ if (!sp_root(t_root)) {
sp_root(t_root) = &t->sp_n;
return OK;
}
@@ -19,11 +18,11 @@ stat_t threads_insert(struct tcb *t)
struct sp_node *n = sp_root(t_root), *p = NULL;
enum sp_dir d = LEFT;
- while(n){
+ while (n) {
struct tcb *tc = tcb_container(n);
p = n;
- if(t->tid < tc->tid){
+ if (t->tid < tc->tid) {
n = sp_left(n);
d = LEFT;
}
@@ -42,13 +41,13 @@ struct tcb *threads_find(id_t tid)
{
struct sp_node *n = sp_root(t_root);
- while(n){
+ while (n) {
struct tcb *t = tcb_container(n);
- if(t->tid == tid)
+ if (t->tid == tid)
return t;
- if(t->tid < tid)
+ if (t->tid < tid)
n = sp_left(n);
else
n = sp_right(n);
diff --git a/common/uapi/conf.c b/common/uapi/conf.c
index 6f4faff..56e07a1 100644
--- a/common/uapi/conf.c
+++ b/common/uapi/conf.c
@@ -6,14 +6,17 @@ size_t __call_stack_size = SZ_2M;
vm_t sys_conf(vm_t param, vm_t val, vm_t u0, vm_t u1)
{
- UNUSED(u0); UNUSED(u1);
+ UNUSED(u0);
+ UNUSED(u1);
/* no parameters supported atm */
return 0;
}
vm_t sys_poweroff(vm_t type, vm_t u0, vm_t u1, vm_t u2)
{
- UNUSED(u0); UNUSED(u1); UNUSED(u2);
+ UNUSED(u0);
+ UNUSED(u1);
+ UNUSED(u2);
/* powering off not supported yet, you're stuck here >:D */
return 0;
}
diff --git a/common/uapi/ipc.c b/common/uapi/ipc.c
index 5abbaeb..a3b29f8 100644
--- a/common/uapi/ipc.c
+++ b/common/uapi/ipc.c
@@ -3,9 +3,11 @@
vm_t sys_ipc_server(vm_t callback, vm_t u0, vm_t u1, vm_t u2)
{
- UNUSED(u0); UNUSED(u1); UNUSED(u2);
+ UNUSED(u0);
+ UNUSED(u1);
+ UNUSED(u2);
struct tcb *r = cur_tcb();
- if(r->callback) /* server can't be reinitialized */
+ if (r->callback) /* server can't be reinitialized */
return 1;
r->callback = callback;
@@ -21,7 +23,8 @@ vm_t sys_ipc_req(vm_t pid, vm_t d0, vm_t d1, vm_t d2)
vm_t sys_ipc_resp(vm_t pid, vm_t ret, vm_t u0, vm_t u1)
{
- UNUSED(u0); UNUSED(u1);
+ UNUSED(u0);
+ UNUSED(u1);
struct tcb *r = get_tcb(pid);
/* something like return_from_callback(t, r) */
return 0; /* oh yeah probably unreachable? */
diff --git a/common/uapi/mem.c b/common/uapi/mem.c
index 0a88eda..f54131f 100644
--- a/common/uapi/mem.c
+++ b/common/uapi/mem.c
@@ -5,7 +5,8 @@
vm_t sys_req_mem(vm_t size, vm_t flags, vm_t u0, vm_t u1)
{
- UNUSED(u0); UNUSED(u1);
+ UNUSED(u0);
+ UNUSED(u1);
/* proc_tcb should give the tcb of the TID currently running */
struct tcb *r = cur_tcb();
return alloc_uvmem(r, size, flags);
@@ -20,9 +21,11 @@ vm_t sys_req_fixmem(vm_t start, vm_t size, vm_t flags, vm_t u0)
vm_t sys_free_mem(vm_t start, vm_t u0, vm_t u1, vm_t u2)
{
- UNUSED(u0); UNUSED(u1); UNUSED(u2);
+ UNUSED(u0);
+ UNUSED(u1);
+ UNUSED(u2);
struct tcb *r = cur_tcb();
- if(start > __pre_top && start < __post_base)
+ if (start > __pre_top && start < __post_base)
free_uvmem(r, start);
else
free_devmem(r, start);
diff --git a/common/uapi/proc.c b/common/uapi/proc.c
index dd05bad..e4673b5 100644
--- a/common/uapi/proc.c
+++ b/common/uapi/proc.c
@@ -12,7 +12,9 @@
*/
vm_t sys_fork(vm_t pid, vm_t u0, vm_t u1, vm_t u2)
{
- UNUSED(u0); UNUSED(u1); UNUSED(u2);
+ UNUSED(u0);
+ UNUSED(u1);
+ UNUSED(u2);
/* TODO: create new thread in the same process family */
return 0;
}
@@ -25,21 +27,25 @@ vm_t sys_exec(vm_t pid, vm_t bin, vm_t argc, vm_t argv)
vm_t sys_signal(vm_t pid, vm_t signal, vm_t u0, vm_t u1)
{
- UNUSED(u0); UNUSED(u1);
+ UNUSED(u0);
+ UNUSED(u1);
/* TODO: signals? */
return 0;
}
vm_t sys_switch(vm_t pid, vm_t u0, vm_t u1, vm_t u2)
{
- UNUSED(u0); UNUSED(u1); UNUSED(u2);
+ UNUSED(u0);
+ UNUSED(u1);
+ UNUSED(u2);
/* TODO: switch to process */
return 0;
}
vm_t sys_sync(vm_t buf, vm_t size, vm_t u0, vm_t u1)
{
- UNUSED(u0); UNUSED(u1);
+ UNUSED(u0);
+ UNUSED(u1);
/* check that only the process manager can use this syscall, otherwise
* just dump process info into the buffer (I guess, not sure if this
* will be quite required */
diff --git a/common/vmem.c b/common/vmem.c
index fe77634..d0d40ec 100644
--- a/common/vmem.c
+++ b/common/vmem.c
@@ -22,7 +22,7 @@ vm_t alloc_fixed_uvmem(struct tcb *t, vm_t start, size_t size, vmflags_t flags)
stat_t free_uvmem(struct tcb *t, vm_t va)
{
struct mem_region *m = find_used_region(&t->sp_r, va);
- if(!m)
+ if (!m)
return -1;
pm_t pa = __addr(m->end - m->start);
@@ -32,24 +32,27 @@ stat_t free_uvmem(struct tcb *t, vm_t va)
return 0;
}
-stat_t alloc_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order)
+stat_t alloc_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order order)
{
*offset = alloc_page(order, *offset);
- if(!*offset)
+ if (!*offset)
return REGION_TRY_AGAIN; /* try again */
map_vpage(b, *offset, vaddr, flags, order);
return OK;
}
-stat_t free_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order)
+stat_t free_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order order)
{
- UNUSED(flags); UNUSED(offset);
+ UNUSED(flags);
+ UNUSED(offset);
pm_t paddr = 0;
enum mm_order v_order = 0;
stat_vpage(b, vaddr, &paddr, &v_order, 0);
- if(order != v_order)
+ if (order != v_order)
return REGION_TRY_AGAIN;
unmap_vpage(b, vaddr);
diff --git a/include/apos/atomic.h b/include/apos/atomic.h
index 1b92100..e6dafc8 100644
--- a/include/apos/atomic.h
+++ b/include/apos/atomic.h
@@ -3,8 +3,7 @@
#include <apos/utils.h> /* GLUE */
-typedef enum
-{
+typedef enum {
memory_order_relaxed = __ATOMIC_RELAXED,
memory_order_consume = __ATOMIC_CONSUME,
memory_order_acquire = __ATOMIC_ACQUIRE,
@@ -52,10 +51,9 @@ typedef _Atomic __INTMAX_TYPE__ atomic_intmax_t;
typedef _Atomic __UINTMAX_TYPE__ atomic_uintmax_t;
#define ATOMIC_VAR_INIT(VALUE) (VALUE)
-#define atomic_init(PTR, VAL)\
- atomic_store_explicit(PTR, VAL, __ATOMIC_RELAXED)
+#define atomic_init(PTR, VAL) atomic_store_explicit(PTR, VAL, __ATOMIC_RELAXED)
-#define kill_dependency(y) (y)
+#define kill_dependency(y) (y)
#if defined(__GNUC__)
#define CMPLR_LOCK_FREE(x) GLUE(__GCC_ATOMIC_, x)##_LOCK_FREE
@@ -63,16 +61,16 @@ typedef _Atomic __UINTMAX_TYPE__ atomic_uintmax_t;
#define CMPLR_LOCK_FREE(x) GLUE(__CLANG_ATOMIC_, x)##_LOCK_FREE
#endif
-#define ATOMIC_BOOL_LOCK_FREE CMPLR_LOCK_FREE(BOOL)
-#define ATOMIC_CHAR_LOCK_FREE CMPLR_LOCK_FREE(CHAR)
+#define ATOMIC_BOOL_LOCK_FREE CMPLR_LOCK_FREE(BOOL)
+#define ATOMIC_CHAR_LOCK_FREE CMPLR_LOCK_FREE(CHAR)
#define ATOMIC_CHAR16_T_LOCK_FREE CMPLR_LOCK_FREE(CHAR16_T)
#define ATOMIC_CHAR32_T_LOCK_FREE CMPLR_LOCK_FREE(CHAR32_T)
-#define ATOMIC_WCHAR_T_LOCK_FREE CMPLR_LOCK_FREE(WCHAR32_T)
-#define ATOMIC_SHORT_LOCK_FREE CMPLR_LOCK_FREE(SHORT)
-#define ATOMIC_INT_LOCK_FREE CMPLR_LOCK_FREE(INT)
-#define ATOMIC_LONG_LOCK_FREE CMPLR_LOCK_FREE(LONG)
-#define ATOMIC_LLONG_LOCK_FREE CMPLR_LOCK_FREE(LLONG)
-#define ATOMIC_POINTER_LOCK_FREE CMPLR_LOCK_FREE(POINTER)
+#define ATOMIC_WCHAR_T_LOCK_FREE CMPLR_LOCK_FREE(WCHAR32_T)
+#define ATOMIC_SHORT_LOCK_FREE CMPLR_LOCK_FREE(SHORT)
+#define ATOMIC_INT_LOCK_FREE CMPLR_LOCK_FREE(INT)
+#define ATOMIC_LONG_LOCK_FREE CMPLR_LOCK_FREE(LONG)
+#define ATOMIC_LLONG_LOCK_FREE CMPLR_LOCK_FREE(LLONG)
+#define ATOMIC_POINTER_LOCK_FREE CMPLR_LOCK_FREE(POINTER)
#if defined(__GNUC__)
#define C11_ATOMIC(x) GLUE(__atomic_, x)
@@ -102,82 +100,79 @@ typedef _Atomic __UINTMAX_TYPE__ atomic_uintmax_t;
#define N_ATOMIC(x) C11_ATOMIC(x)
#endif
-#define atomic_store_explicit(obj, val, mode)\
- N_ATOMIC(store)(obj, val, mode)
+#define atomic_store_explicit(obj, val, mode) N_ATOMIC(store)(obj, val, mode)
-#define atomic_store(obj, val)\
+#define atomic_store(obj, val) \
atomic_store_explicit(obj, val, __ATOMIC_SEQ_CST);
-#define atomic_load_explicit(obj, mode)\
- N_ATOMIC(load)(obj, mode)
+#define atomic_load_explicit(obj, mode) N_ATOMIC(load)(obj, mode)
-#define atomic_load(obj)\
- atomic_load_explicit(obj, ATOMIC_SEQ_CST)
+#define atomic_load(obj) atomic_load_explicit(obj, ATOMIC_SEQ_CST)
-#define atomic_exchange_explicit(obj, val, mode)\
+#define atomic_exchange_explicit(obj, val, mode) \
N_ATOMIC(exchange)(obj, val, mode)
-#define atomic_exchange(obj, val)\
+#define atomic_exchange(obj, val) \
atomic_exchange_explicit(obj, val, __ATOMIC_SEQ_CST)
#if defined(__GNUC__)
-#define atomic_compare_exchange_strong_explicit(obj, val, des, suc, fail)\
+#define atomic_compare_exchange_strong_explicit(obj, val, des, suc, fail) \
N_ATOMIC(compare_exchange)(obj, val, des, 0, suc, fail)
#elif defined(__clang__)
-#define atomic_compare_exchange_strong_explicit(obj, val, des, suc, fail)\
+#define atomic_compare_exchange_strong_explicit(obj, val, des, suc, fail) \
N_ATOMIC(compare_exchange_strong)(obj, val, des, suc, fail)
#endif
-#define atomic_compare_exchange_strong(obj, val, des)\
- atomic_compare_exchange_strong_explicit\
- (obj, val, des, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
+#define atomic_compare_exchange_strong(obj, val, des) \
+ atomic_compare_exchange_strong_explicit( \
+ obj, val, des, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
#if defined(__GNUC__)
-#define atomic_compare_exchange_weak_explicit(obj, val, des, suc, fail)\
+#define atomic_compare_exchange_weak_explicit(obj, val, des, suc, fail) \
N_ATOMIC(compare_exchange)(obj, val, des, 1, suc, fail)
#elif defined(__clang__)
-#define atomic_compare_exchange_weak_explicit(obj, val, des, suc, fail)\
+#define atomic_compare_exchange_weak_explicit(obj, val, des, suc, fail) \
N_ATOMIC(compare_exchange_weak)(obj, val, des, suc, fail)
#endif
-#define atomic_compare_exchange_weak(obj, val, des)\
- atomic_compare_exchange_weak_explicit\
- (obj, val, des, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
+#define atomic_compare_exchange_weak(obj, val, des) \
+ atomic_compare_exchange_weak_explicit(obj, val, des, __ATOMIC_SEQ_CST, \
+ __ATOMIC_SEQ_CST)
-#define atomic_fetch_add_explicit(obj, val, mode)\
+#define atomic_fetch_add_explicit(obj, val, mode) \
C11_ATOMIC(fetch_add)(obj, val, mode)
-#define atomic_fetch_add(obj, val)\
+#define atomic_fetch_add(obj, val) \
atomic_fetch_add_explicit(obj, val, __ATOMIC_SEQ_CST)
-#define atomic_fetch_sub_explicit(obj, val, mode)\
+#define atomic_fetch_sub_explicit(obj, val, mode) \
C11_ATOMIC(fetch_sub)(obj, val, mode)
-#define atomic_fetch_sub(obj, val)\
+#define atomic_fetch_sub(obj, val) \
atomic_fetch_sub_explicit(obj, val, __ATOMIC_SEQ_CST)
-#define atomic_fetch_and_explicit(obj, val, mode)\
+#define atomic_fetch_and_explicit(obj, val, mode) \
C11_ATOMIC(fetch_and)(obj, val, mode)
-#define atomic_fetch_and(obj, val)\
+#define atomic_fetch_and(obj, val) \
atomic_fetch_and_explicit(obj, val, __ATOMIC_SEQ_CST)
-#define atomic_fetch_xor_explicit(obj, val, mode)\
+#define atomic_fetch_xor_explicit(obj, val, mode) \
C11_ATOMIC(fetch_xor)(obj, val, mode)
-#define atomic_fetch_xor(obj, val)\
+#define atomic_fetch_xor(obj, val) \
atomic_fetch_xor_explicit(obj, val, __ATOMIC_SEQ_CST)
-#define atomic_fetch_or_explicit(obj, val, mode)\
+#define atomic_fetch_or_explicit(obj, val, mode) \
C11_ATOMIC(fetch_or)(obj, val, mode)
-#define atomic_fetch_or(obj, val)\
+#define atomic_fetch_or(obj, val) \
atomic_fetch_or_explicit(obj, val, __ATOMIC_SEQ_CST)
-#define atomic_fetch_nand_explicit(obj, val, mode)\
+#define atomic_fetch_nand_explicit(obj, val, mode) \
C11_ATOMIC(fetch_nand)(obj, val, mode)
-#define atomic_fetch_nand(obj, val)\
+#define atomic_fetch_nand(obj, val) \
atomic_fetch_nand_explicit(obj, val, __ATOMIC_SEQ_CST)
/* skip atomic flags, probably not needed */
diff --git a/include/apos/attrs.h b/include/apos/attrs.h
index 0a731cc..094ae54 100644
--- a/include/apos/attrs.h
+++ b/include/apos/attrs.h
@@ -1,14 +1,14 @@
#ifndef APOS_COMPILER_ATTRIBUTES_H
-#define __section(section) __attribute__((__section__(section)))
-#define __fmt(x, y) __attribute__((format (__printf__, x, y)))
-#define __aligned(a) __attribute__((aligned(a)))
-#define __noinline __attribute__((noinline))
-#define __noreturn __attribute__((noreturn))
-#define __packed __attribute__((packed))
-#define __weak __attribute__((weak))
+#define __section(section) __attribute__((__section__(section)))
+#define __fmt(x, y) __attribute__((format(__printf__, x, y)))
+#define __aligned(a) __attribute__((aligned(a)))
+#define __noinline __attribute__((noinline))
+#define __noreturn __attribute__((noreturn))
+#define __packed __attribute__((packed))
+#define __weak __attribute__((weak))
-#define __main __section(".kernel.start") __noinline
-#define __init __section(".init.start") __noinline
+#define __main __section(".kernel.start") __noinline
+#define __init __section(".init.start") __noinline
#endif /* APOS_COMPILER_ATTRIBUTES_H */
diff --git a/include/apos/bits.h b/include/apos/bits.h
index 1e1106a..cc3cd00 100644
--- a/include/apos/bits.h
+++ b/include/apos/bits.h
@@ -4,12 +4,12 @@
#include <apos/types.h>
#include <apos/builtin.h>
-#define __is_set(x, y) ((x) & (y))
-#define __set_bit(x, y) ((x) |= (y))
-#define __clear_bit(x, y) ((x) &= ~(y))
+#define __is_set(x, y) ((x) & (y))
+#define __set_bit(x, y) ((x) |= (y))
+#define __clear_bit(x, y) ((x) &= ~(y))
-#define __is_nset(x, y) (__is_set((x), 1 << (y)))
-#define __set_nbit(x, y) (__set_bit((x), 1 << (y)))
+#define __is_nset(x, y) (__is_set((x), 1 << (y)))
+#define __set_nbit(x, y) (__set_bit((x), 1 << (y)))
#define __clear_nbit(x, y) (__clear_bit((x), 1 << (y)))
uint16_t __bswap16(uint16_t u);
diff --git a/include/apos/debug.h b/include/apos/debug.h
index ec591ef..d9d668c 100644
--- a/include/apos/debug.h
+++ b/include/apos/debug.h
@@ -21,12 +21,13 @@ void setup_dbg(pm_t pt, enum serial_dev dev);
struct dbg_info dbg_from_fdt(const void *fdt);
-#define COMMON_FORMAT "[%s] %s:%d\n\t"
+#define COMMON_FORMAT "[%s] %s:%d\n\t"
#define COMMON_ARGS(s) s, __FILE__, __LINE__
-#define bug(fmt, ...) dbg(COMMON_FORMAT fmt, COMMON_ARGS("BUG"), __VA_ARGS__)
+#define bug(fmt, ...) dbg(COMMON_FORMAT fmt, COMMON_ARGS("BUG"), __VA_ARGS__)
#define warn(fmt, ...) dbg(COMMON_FORMAT fmt, COMMON_ARGS("WARN"), __VA_ARGS__)
#define info(fmt, ...) dbg(COMMON_FORMAT fmt, COMMON_ARGS("INFO"), __VA_ARGS__)
-#define error(fmt, ...) dbg(COMMON_FORMAT fmt, COMMON_ARGS("ERROR"), __VA_ARGS__)
+#define error(fmt, ...) \
+ dbg(COMMON_FORMAT fmt, COMMON_ARGS("ERROR"), __VA_ARGS__)
#else
diff --git a/include/apos/dmem.h b/include/apos/dmem.h
index 811f56d..d337e61 100644
--- a/include/apos/dmem.h
+++ b/include/apos/dmem.h
@@ -13,7 +13,9 @@ stat_t init_devmem(pm_t ram_base, pm_t ram_top);
vm_t alloc_devmem(struct tcb *t, pm_t dev_start, size_t bytes, vmflags_t flags);
stat_t free_devmem(struct tcb *t, vm_t dev_start);
-stat_t dev_free_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order t);
-stat_t dev_alloc_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order t);
+stat_t dev_free_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order t);
+stat_t dev_alloc_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order t);
#endif /* APOS_DEV_H */
diff --git a/include/apos/elf.h b/include/apos/elf.h
index c0de62e..7d0004a 100644
--- a/include/apos/elf.h
+++ b/include/apos/elf.h
@@ -5,31 +5,31 @@
#include <apos/types.h>
#include <apos/vmem.h>
-#define EI_MAGIC 0x7f454c46
+#define EI_MAGIC 0x7f454c46
-#define ELFCLASSNONE 0x0
-#define ELFCLASS32 0x1
-#define ELFCLASS64 0x2
+#define ELFCLASSNONE 0x0
+#define ELFCLASS32 0x1
+#define ELFCLASS64 0x2
-#define ELFDATANONE 0x0
-#define ELFDATA2LSB 0x1
-#define ELFDATA2MSB 0x2
+#define ELFDATANONE 0x0
+#define ELFDATA2LSB 0x1
+#define ELFDATA2MSB 0x2
-#define ELFOSABI_NONE 0x0
-#define ELFOSABI_SYSV 0x0
-#define ELFOSABI_NETBSD 0x2
-#define ELFOSABI_LINUX 0x3
-#define ELFOSABI_HURD 0x4
-#define ELFOSABI_FREEBSD 0x9
-#define ELFOSABI_OPENBSD 0xc
+#define ELFOSABI_NONE 0x0
+#define ELFOSABI_SYSV 0x0
+#define ELFOSABI_NETBSD 0x2
+#define ELFOSABI_LINUX 0x3
+#define ELFOSABI_HURD 0x4
+#define ELFOSABI_FREEBSD 0x9
+#define ELFOSABI_OPENBSD 0xc
-#define ET_NONE 0x0
-#define ET_REL 0x1
-#define ET_EXEC 0x2
-#define ET_DYN 0x3
-#define ET_CORE 0x4
+#define ET_NONE 0x0
+#define ET_REL 0x1
+#define ET_EXEC 0x2
+#define ET_DYN 0x3
+#define ET_CORE 0x4
-#define EM_RISCV 0xf3
+#define EM_RISCV 0xf3
struct __packed elf_ident {
uint32_t ei_magic;
@@ -75,22 +75,22 @@ struct __packed elf64_header {
uint16_t e_shstrndx;
};
-#define PT_NULL 0x0
-#define PT_LOAD 0x1
-#define PT_DYNAMIC 0x2
-#define PT_INTERP 0x3
-#define PT_NOTE 0x4
-#define PT_SHLIB 0x5
-#define PT_PHDR 0x6
-#define PT_TLS 0x7
-#define PT_LOOS 0x60000000
-#define PT_HIOS 0x6fffffff
-#define PT_LOPROC 0x70000000
-#define PT_HIPROC 0x7fffffff
+#define PT_NULL 0x0
+#define PT_LOAD 0x1
+#define PT_DYNAMIC 0x2
+#define PT_INTERP 0x3
+#define PT_NOTE 0x4
+#define PT_SHLIB 0x5
+#define PT_PHDR 0x6
+#define PT_TLS 0x7
+#define PT_LOOS 0x60000000
+#define PT_HIOS 0x6fffffff
+#define PT_LOPROC 0x70000000
+#define PT_HIPROC 0x7fffffff
-#define PF_X (1 << 0)
-#define PF_W (1 << 1)
-#define PF_R (1 << 2)
+#define PF_X (1 << 0)
+#define PF_W (1 << 1)
+#define PF_R (1 << 2)
struct __packed program32_header {
uint32_t p_type;
@@ -114,37 +114,37 @@ struct __packed program64_header {
uint64_t p_align;
};
-#define SHT_NULL 0x0
-#define SH_PROGBITS 0x1
-#define SHT_SYMTAB 0x2
-#define SHT_STRTAB 0x3
-#define SHT_RELA 0x4
-#define SHT_HASH 0x5
-#define SHT_DYNAMIC 0x6
-#define SHT_NOTE 0x7
-#define SHT_NOBITS 0x8
-#define SHT_REL 0x9
-#define SHT_SHLIB 0x0a
-#define SHT_DYNSYM 0x0b
-#define SHT_INIT_ARRAY 0x0e
-#define SHT_FINI_ARRAY 0x0f
-#define SHT_PREINIT_ARRAY 0x10
-#define SHT_GROUP 0x11
-#define SHT_SYMTAB_SHNDX 0x12
-#define SHT_NUM 0x13
+#define SHT_NULL 0x0
+#define SH_PROGBITS 0x1
+#define SHT_SYMTAB 0x2
+#define SHT_STRTAB 0x3
+#define SHT_RELA 0x4
+#define SHT_HASH 0x5
+#define SHT_DYNAMIC 0x6
+#define SHT_NOTE 0x7
+#define SHT_NOBITS 0x8
+#define SHT_REL 0x9
+#define SHT_SHLIB 0x0a
+#define SHT_DYNSYM 0x0b
+#define SHT_INIT_ARRAY 0x0e
+#define SHT_FINI_ARRAY 0x0f
+#define SHT_PREINIT_ARRAY 0x10
+#define SHT_GROUP 0x11
+#define SHT_SYMTAB_SHNDX 0x12
+#define SHT_NUM 0x13
-#define SHF_WRITE 0x1
-#define SHF_ALLOC 0x2
-#define SHF_EXECINSTR 0x4
-#define SHF_MERGE 0x10
-#define SHF_STRINGS 0x20
-#define SHF_INFO_LINK 0x40
-#define SHF_LINK_ODER 0x80
-#define SHF_OS_NONCONFORMING 0x100
-#define SHF_GROUP 0x200
-#define SHF_TLS 0x400
-#define SHF_MASKOS 0x0ff00000
-#define SHF_MASKPROC 0xf0000000
+#define SHF_WRITE 0x1
+#define SHF_ALLOC 0x2
+#define SHF_EXECINSTR 0x4
+#define SHF_MERGE 0x10
+#define SHF_STRINGS 0x20
+#define SHF_INFO_LINK 0x40
+#define SHF_LINK_ODER 0x80
+#define SHF_OS_NONCONFORMING 0x100
+#define SHF_GROUP 0x200
+#define SHF_TLS 0x400
+#define SHF_MASKOS 0x0ff00000
+#define SHF_MASKPROC 0xf0000000
struct __packed section32_header {
uint32_t sh_name;
@@ -172,17 +172,20 @@ struct __packed section64_header {
uint64_t s_entsize;
};
-#define elf_indent(e) ((struct elf_ident *)e)
-#define elf64_header(e) ((struct elf64_header *)e)
-#define elf32_header(e) ((struct elf32_header *)e)
+#define elf_indent(e) ((struct elf_ident *)e)
+#define elf64_header(e) ((struct elf64_header *)e)
+#define elf32_header(e) ((struct elf32_header *)e)
#define program64_header(p) ((struct program64_header *)p)
#define program32_header(p) ((struct program32_header *)p)
#define section64_header(s) ((struct section64_header *)s)
#define section32_header(s) ((struct section32_header *)s)
-#define elf_header_prop(c, e, p) (c == ELFCLASS64 ? elf64_header(e)->p : elf32_header(e)->p)
-#define program_header_prop(c, e, p) (c == ELFCLASS64 ? program64_header(e)->p : program32_header(e)->p)
-#define section_header_prop(c, e, p) (c == ELFCLASS64 ? section64_header(e)->p : section32_header(e)->p)
+#define elf_header_prop(c, e, p) \
+ (c == ELFCLASS64 ? elf64_header(e)->p : elf32_header(e)->p)
+#define program_header_prop(c, e, p) \
+ (c == ELFCLASS64 ? program64_header(e)->p : program32_header(e)->p)
+#define section_header_prop(c, e, p) \
+ (c == ELFCLASS64 ? section64_header(e)->p : section32_header(e)->p)
vm_t load_elf(struct tcb *t, vm_t b);
diff --git a/include/apos/mem.h b/include/apos/mem.h
index d995b04..7c0fde1 100644
--- a/include/apos/mem.h
+++ b/include/apos/mem.h
@@ -6,37 +6,39 @@
#define MM_OINFO_WIDTH (sizeof(mm_info_t) * 8)
-#define pnum_to_index(pnum, order) (((pnum) >> __o_offset(order)) & (__o_width(order) - 1))
-#define pm_to_index(paddr, order) (pnum_to_index(pm_to_pnum(paddr), (order)))
-#define pm_to_pnum(paddr) ((paddr) >> __mm_page_shift)
-#define pnum_to_paddr(pnum) ((pnum) << __mm_page_shift)
+#define pnum_to_index(pnum, order) \
+ (((pnum) >> __o_offset(order)) & (__o_width(order) - 1))
+#define pm_to_index(paddr, order) (pnum_to_index(pm_to_pnum(paddr), (order)))
+#define pm_to_pnum(paddr) ((paddr) >> __mm_page_shift)
+#define pnum_to_paddr(pnum) ((pnum) << __mm_page_shift)
-#define move_forward(var, num) (((var) += (num)) - (num))
+#define move_forward(var, num) (((var) += (num)) - (num))
#define move_paddr(paddr, base, offset) ((((pm_t)(paddr)) - (base)) + (offset))
-#define num_elems(num) (((num) + MM_OINFO_WIDTH - 1) / MM_OINFO_WIDTH)
-#define num_indexes(num) ((num) / MM_OINFO_WIDTH)
-#define index_elems(num) ((num) / MM_OINFO_WIDTH)
-#define state_elems(num) (sizeof(mm_info_t) * (num_elems(num)))
-#define next_elems(num) (sizeof(void *) * (num))
-#define max_index(order) (__o_width(order) - 1)
+#define num_elems(num) (((num) + MM_OINFO_WIDTH - 1) / MM_OINFO_WIDTH)
+#define num_indexes(num) ((num) / MM_OINFO_WIDTH)
+#define index_elems(num) ((num) / MM_OINFO_WIDTH)
+#define state_elems(num) (sizeof(mm_info_t) * (num_elems(num)))
+#define next_elems(num) (sizeof(void *) * (num))
+#define max_index(order) (__o_width(order) - 1)
-#define __o_offset(order) (__mm_shifts[order])
-#define __o_width(order) (__mm_widths[order])
-#define __o_size(order) (__mm_sizes[order])
-#define __o_elems(order) (__mm_widths[order] / MM_OINFO_WIDTH)
+#define __o_offset(order) (__mm_shifts[order])
+#define __o_width(order) (__mm_widths[order])
+#define __o_size(order) (__mm_sizes[order])
+#define __o_elems(order) (__mm_widths[order] / MM_OINFO_WIDTH)
-#define __o_container(idx) ((idx) / MM_OINFO_WIDTH)
-#define __o_bit(idx) ((idx) & (MM_OINFO_WIDTH - 1))
+#define __o_container(idx) ((idx) / MM_OINFO_WIDTH)
+#define __o_bit(idx) ((idx) & (MM_OINFO_WIDTH - 1))
-#define __va(x) (((char *)(x)) + VM_DMAP - RAM_BASE)
-#define __pa(x) (((char *)(x)) + RAM_BASE - VM_DMAP)
-#define __page(x) ((x) / BASE_PAGE_SIZE)
-#define __addr(x) ((x) * BASE_PAGE_SIZE)
-#define __pages(x) (aligned((x), BASE_PAGE_SIZE) ? __page((x)) : __page((x) + BASE_PAGE_SIZE))
+#define __va(x) (((char *)(x)) + VM_DMAP - RAM_BASE)
+#define __pa(x) (((char *)(x)) + RAM_BASE - VM_DMAP)
+#define __page(x) ((x) / BASE_PAGE_SIZE)
+#define __addr(x) ((x)*BASE_PAGE_SIZE)
+#define __pages(x) \
+ (aligned((x), BASE_PAGE_SIZE) ? __page((x)) : \
+ __page((x) + BASE_PAGE_SIZE))
#define __bytes(x) (__addr(x))
-
extern size_t __mm_shifts[10];
extern size_t __mm_widths[10];
extern size_t __mm_sizes[10];
@@ -63,6 +65,6 @@ void init_mem(size_t max_order, size_t shifts[10], size_t page_shift);
enum mm_mode get_mmode(void *fdt);
#define BASE_PAGE_SIZE (__o_size(BASE_PAGE))
-#define BASE_PAGE (MM_O0)
+#define BASE_PAGE (MM_O0)
#endif /* APOS_MEM_H */
diff --git a/include/apos/mem_regions.h b/include/apos/mem_regions.h
index a843141..e2ab64b 100644
--- a/include/apos/mem_regions.h
+++ b/include/apos/mem_regions.h
@@ -6,8 +6,7 @@
#include <apos/sp_tree.h>
#include <arch/vmem.h>
-#define mem_container(ptr)\
- container_of(ptr, struct mem_region, sp_n)
+#define mem_container(ptr) container_of(ptr, struct mem_region, sp_n)
struct mem_region_root {
struct sp_root free_regions;
@@ -30,18 +29,21 @@ stat_t init_region(struct mem_region_root *r, vm_t start, size_t arena_size);
void destroy_region(struct mem_region_root *r);
vm_t alloc_region(struct mem_region_root *r, size_t size, size_t *actual_size);
-vm_t alloc_fixed_region(struct mem_region_root *r, vm_t start, size_t size, size_t *actual_size);
+vm_t alloc_fixed_region(struct mem_region_root *r, vm_t start, size_t size,
+ size_t *actual_size);
stat_t free_region(struct mem_region_root *r, vm_t start);
struct mem_region *find_used_region(struct mem_region_root *r, vm_t start);
-struct mem_region *find_closest_used_region(struct mem_region_root *r, vm_t start);
-struct mem_region *find_free_region(struct mem_region_root *r, size_t size, size_t *align);
+struct mem_region *find_closest_used_region(struct mem_region_root *r,
+ vm_t start);
+struct mem_region *find_free_region(struct mem_region_root *r, size_t size,
+ size_t *align);
#define REGION_TRY_AGAIN 1
-typedef stat_t region_callback_t(struct vm_branch *b,
- pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order);
+typedef stat_t region_callback_t(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order order);
vm_t map_fill_region(struct vm_branch *b, region_callback_t *mem_handler,
- pm_t offset, vm_t start, size_t bytes, vmflags_t flags);
+ pm_t offset, vm_t start, size_t bytes, vmflags_t flags);
#endif /* APOS_MEM_REGIONS_H */
diff --git a/include/apos/sizes.h b/include/apos/sizes.h
index 392e122..1a34d48 100644
--- a/include/apos/sizes.h
+++ b/include/apos/sizes.h
@@ -3,117 +3,117 @@
#if defined(__ASSEMBLER__)
-#define SZ_1 0x000000000001
-#define SZ_2 0x000000000002
-#define SZ_4 0x000000000004
-#define SZ_8 0x000000000008
-#define SZ_16 0x000000000010
-#define SZ_32 0x000000000020
-#define SZ_64 0x000000000040
-#define SZ_128 0x000000000080
-#define SZ_256 0x000000000100
-#define SZ_512 0x000000000200
+#define SZ_1 0x000000000001
+#define SZ_2 0x000000000002
+#define SZ_4 0x000000000004
+#define SZ_8 0x000000000008
+#define SZ_16 0x000000000010
+#define SZ_32 0x000000000020
+#define SZ_64 0x000000000040
+#define SZ_128 0x000000000080
+#define SZ_256 0x000000000100
+#define SZ_512 0x000000000200
-#define SZ_1K 0x000000000400
-#define SZ_2K 0x000000000800
-#define SZ_4K 0x000000001000
-#define SZ_8K 0x000000002000
-#define SZ_16K 0x000000004000
-#define SZ_32K 0x000000008000
-#define SZ_64K 0x000000010000
-#define SZ_128K 0x000000020000
-#define SZ_256K 0x000000040000
-#define SZ_512K 0x000000080000
+#define SZ_1K 0x000000000400
+#define SZ_2K 0x000000000800
+#define SZ_4K 0x000000001000
+#define SZ_8K 0x000000002000
+#define SZ_16K 0x000000004000
+#define SZ_32K 0x000000008000
+#define SZ_64K 0x000000010000
+#define SZ_128K 0x000000020000
+#define SZ_256K 0x000000040000
+#define SZ_512K 0x000000080000
-#define SZ_1M 0x000000100000
-#define SZ_2M 0x000000200000
-#define SZ_4M 0x000000400000
-#define SZ_8M 0x000000800000
-#define SZ_16M 0x000001000000
-#define SZ_32M 0x000002000000
-#define SZ_64M 0x000004000000
-#define SZ_128M 0x000008000000
-#define SZ_256M 0x000010000000
-#define SZ_512M 0x000020000000
+#define SZ_1M 0x000000100000
+#define SZ_2M 0x000000200000
+#define SZ_4M 0x000000400000
+#define SZ_8M 0x000000800000
+#define SZ_16M 0x000001000000
+#define SZ_32M 0x000002000000
+#define SZ_64M 0x000004000000
+#define SZ_128M 0x000008000000
+#define SZ_256M 0x000010000000
+#define SZ_512M 0x000020000000
-#define SZ_1G 0x000040000000
-#define SZ_2G 0x000080000000
-#define SZ_4G 0x000100000000
-#define SZ_8G 0x000200000000
-#define SZ_16G 0x000400000000
-#define SZ_32G 0x000800000000
-#define SZ_64G 0x000400000000
-#define SZ_128G 0x000800000000
-#define SZ_256G 0x001000000000
-#define SZ_512G 0x002000000000
+#define SZ_1G 0x000040000000
+#define SZ_2G 0x000080000000
+#define SZ_4G 0x000100000000
+#define SZ_8G 0x000200000000
+#define SZ_16G 0x000400000000
+#define SZ_32G 0x000800000000
+#define SZ_64G 0x000400000000
+#define SZ_128G 0x000800000000
+#define SZ_256G 0x001000000000
+#define SZ_512G 0x002000000000
-#define SZ_1T 0x004000000000
-#define SZ_2T 0x008000000000
-#define SZ_4T 0x010000000000
-#define SZ_8T 0x020000000000
-#define SZ_16T 0x040000000000
-#define SZ_32T 0x080000000000
-#define SZ_64T 0x100000000000
-#define SZ_128T 0x200000000000
-#define SZ_256T 0x400000000000
-#define SZ_512T 0x800000000000
+#define SZ_1T 0x004000000000
+#define SZ_2T 0x008000000000
+#define SZ_4T 0x010000000000
+#define SZ_8T 0x020000000000
+#define SZ_16T 0x040000000000
+#define SZ_32T 0x080000000000
+#define SZ_64T 0x100000000000
+#define SZ_128T 0x200000000000
+#define SZ_256T 0x400000000000
+#define SZ_512T 0x800000000000
#else
-#define SZ_1 0x000000000001UL
-#define SZ_2 0x000000000002UL
-#define SZ_4 0x000000000004UL
-#define SZ_8 0x000000000008UL
-#define SZ_16 0x000000000010UL
-#define SZ_32 0x000000000020UL
-#define SZ_64 0x000000000040UL
-#define SZ_128 0x000000000080UL
-#define SZ_256 0x000000000100UL
-#define SZ_512 0x000000000200UL
+#define SZ_1 0x000000000001UL
+#define SZ_2 0x000000000002UL
+#define SZ_4 0x000000000004UL
+#define SZ_8 0x000000000008UL
+#define SZ_16 0x000000000010UL
+#define SZ_32 0x000000000020UL
+#define SZ_64 0x000000000040UL
+#define SZ_128 0x000000000080UL
+#define SZ_256 0x000000000100UL
+#define SZ_512 0x000000000200UL
-#define SZ_1K 0x000000000400UL
-#define SZ_2K 0x000000000800UL
-#define SZ_4K 0x000000001000UL
-#define SZ_8K 0x000000002000UL
-#define SZ_16K 0x000000004000UL
-#define SZ_32K 0x000000008000UL
-#define SZ_64K 0x000000010000UL
-#define SZ_128K 0x000000020000UL
-#define SZ_256K 0x000000040000UL
-#define SZ_512K 0x000000080000UL
+#define SZ_1K 0x000000000400UL
+#define SZ_2K 0x000000000800UL
+#define SZ_4K 0x000000001000UL
+#define SZ_8K 0x000000002000UL
+#define SZ_16K 0x000000004000UL
+#define SZ_32K 0x000000008000UL
+#define SZ_64K 0x000000010000UL
+#define SZ_128K 0x000000020000UL
+#define SZ_256K 0x000000040000UL
+#define SZ_512K 0x000000080000UL
-#define SZ_1M 0x000000100000UL
-#define SZ_2M 0x000000200000UL
-#define SZ_4M 0x000000400000UL
-#define SZ_8M 0x000000800000UL
-#define SZ_16M 0x000001000000UL
-#define SZ_32M 0x000002000000UL
-#define SZ_64M 0x000004000000UL
-#define SZ_128M 0x000008000000UL
-#define SZ_256M 0x000010000000UL
-#define SZ_512M 0x000020000000UL
+#define SZ_1M 0x000000100000UL
+#define SZ_2M 0x000000200000UL
+#define SZ_4M 0x000000400000UL
+#define SZ_8M 0x000000800000UL
+#define SZ_16M 0x000001000000UL
+#define SZ_32M 0x000002000000UL
+#define SZ_64M 0x000004000000UL
+#define SZ_128M 0x000008000000UL
+#define SZ_256M 0x000010000000UL
+#define SZ_512M 0x000020000000UL
-#define SZ_1G 0x000040000000UL
-#define SZ_2G 0x000080000000UL
-#define SZ_4G 0x000100000000UL
-#define SZ_8G 0x000200000000UL
-#define SZ_16G 0x000400000000UL
-#define SZ_32G 0x000800000000UL
-#define SZ_64G 0x000400000000UL
-#define SZ_128G 0x000800000000UL
-#define SZ_256G 0x001000000000UL
-#define SZ_512G 0x002000000000UL
+#define SZ_1G 0x000040000000UL
+#define SZ_2G 0x000080000000UL
+#define SZ_4G 0x000100000000UL
+#define SZ_8G 0x000200000000UL
+#define SZ_16G 0x000400000000UL
+#define SZ_32G 0x000800000000UL
+#define SZ_64G 0x000400000000UL
+#define SZ_128G 0x000800000000UL
+#define SZ_256G 0x001000000000UL
+#define SZ_512G 0x002000000000UL
-#define SZ_1T 0x004000000000UL
-#define SZ_2T 0x008000000000UL
-#define SZ_4T 0x010000000000UL
-#define SZ_8T 0x020000000000UL
-#define SZ_16T 0x040000000000UL
-#define SZ_32T 0x080000000000UL
-#define SZ_64T 0x100000000000UL
-#define SZ_128T 0x200000000000UL
-#define SZ_256T 0x400000000000UL
-#define SZ_512T 0x800000000000UL
+#define SZ_1T 0x004000000000UL
+#define SZ_2T 0x008000000000UL
+#define SZ_4T 0x010000000000UL
+#define SZ_8T 0x020000000000UL
+#define SZ_16T 0x040000000000UL
+#define SZ_32T 0x080000000000UL
+#define SZ_64T 0x100000000000UL
+#define SZ_128T 0x200000000000UL
+#define SZ_256T 0x400000000000UL
+#define SZ_512T 0x800000000000UL
#endif
diff --git a/include/apos/sp_tree.h b/include/apos/sp_tree.h
index bbf9f9f..1c1525f 100644
--- a/include/apos/sp_tree.h
+++ b/include/apos/sp_tree.h
@@ -1,13 +1,13 @@
#ifndef SP_TREE_H
#define SP_TREE_H
-#define sp_root(r) (r.sp_r)
-#define sp_left(n) (n->left)
-#define sp_right(n) (n->right)
-#define sp_rparen(n) (sp_right(n)->parent)
-#define sp_lparen(n) (sp_left(n)->parent)
-#define sp_paren(n) (n->parent)
-#define sp_gparen(n) (n->parent->parent)
+#define sp_root(r) (r.sp_r)
+#define sp_left(n) (n->left)
+#define sp_right(n) (n->right)
+#define sp_rparen(n) (sp_right(n)->parent)
+#define sp_lparen(n) (sp_left(n)->parent)
+#define sp_paren(n) (n->parent)
+#define sp_gparen(n) (n->parent->parent)
#define sp_has_gparen(n) (sp_paren(n) && sp_gparen(n))
struct sp_node {
@@ -21,15 +21,13 @@ struct sp_root {
struct sp_node *sp_r;
};
-enum sp_dir {
- LEFT, RIGHT
-};
+enum sp_dir { LEFT, RIGHT };
struct sp_node *sp_first(struct sp_node *n);
struct sp_node *sp_last(struct sp_node *n);
-void sp_insert(struct sp_node **root, struct sp_node *p,
- struct sp_node *n, enum sp_dir d);
+void sp_insert(struct sp_node **root, struct sp_node *p, struct sp_node *n,
+ enum sp_dir d);
void sp_remove(struct sp_node **root, struct sp_node *n);
diff --git a/include/apos/string.h b/include/apos/string.h
index 67cdae8..8a3c737 100644
--- a/include/apos/string.h
+++ b/include/apos/string.h
@@ -53,79 +53,79 @@ int memcmp(const void *ptr1, const void *ptr2, size_t num);
*/
#if __has_builtin(__builtin_memcpy)
-#define memcpy(dst, src, num) __builtin_memcpy(dst, src, num)
+#define memcpy(dst, src, num) __builtin_memcpy(dst, src, num)
#endif
#if __has_builtin(__builtin_memmove)
-#define memmove(dst, src, num) __builtin_memmove(dst, src, num)
+#define memmove(dst, src, num) __builtin_memmove(dst, src, num)
#endif
#if __has_builtin(__builtin_strcpy)
-#define strcpy(dst, src) __builtin_strcpy(dst, src)
+#define strcpy(dst, src) __builtin_strcpy(dst, src)
#endif
#if __has_builtin(__builtin_strncpy)
-#define strncpy(dst, src, num) __builtin_strncpy(dst, src, num)
+#define strncpy(dst, src, num) __builtin_strncpy(dst, src, num)
#endif
#if __has_builtin(__builtin_strcat)
-#define strcat(dst, src) __builtin_strcat(dst, src)
+#define strcat(dst, src) __builtin_strcat(dst, src)
#endif
#if __has_builtin(__builtin_strncat)
-#define strncat(dst, src, num) __builtin_strncat(dst, src, num)
+#define strncat(dst, src, num) __builtin_strncat(dst, src, num)
#endif
#if __has_builtin(__builtin_memcmp)
-#define memcmp(p1, p2, num) __builtin_memcmp(p1, p2, num)
+#define memcmp(p1, p2, num) __builtin_memcmp(p1, p2, num)
#endif
#if __has_builtin(__builtin_strcmp)
-#define strcmp(s1, s2) __builtin_strcmp(s1, s2)
+#define strcmp(s1, s2) __builtin_strcmp(s1, s2)
#endif
#if __has_builtin(__builtin_strncmp)
-#define strncmp(s1, s2, num) __builtin_strncmp(s1, s2, num)
+#define strncmp(s1, s2, num) __builtin_strncmp(s1, s2, num)
#endif
#if __has_builtin(__builtin_strncmp)
-#define memchr(ptr, val, num) __builtin_memchr(ptr, val, num)
+#define memchr(ptr, val, num) __builtin_memchr(ptr, val, num)
#endif
#if __has_builtin(__builtin_strchr)
-#define strchr(str, chr) __builtin_strchr(str, chr)
+#define strchr(str, chr) __builtin_strchr(str, chr)
#endif
#if __has_builtin(__builtin_strcspn)
-#define strcspn(s1, s2) __builtin_strcspn(s1, s2)
+#define strcspn(s1, s2) __builtin_strcspn(s1, s2)
#endif
#if __has_builtin(__builtin_strpbrk)
-#define strpbrk(s1, s2) __builtin_strpbrk(s1, s2)
+#define strpbrk(s1, s2) __builtin_strpbrk(s1, s2)
#endif
#if __has_builtin(__builtin_strchr)
-#define strrchr(s1, s2) __builtin_strrchr(s1, s2)
+#define strrchr(s1, s2) __builtin_strrchr(s1, s2)
#endif
#if __has_builtin(__builtin_strspn)
-#define strspn(s1, s2) __builtin_strspn(s1, s2)
+#define strspn(s1, s2) __builtin_strspn(s1, s2)
#endif
#if __has_builtin(__builtin_strstr)
-#define strstr(s1, s2) __builtin_strstr(s1, s2)
+#define strstr(s1, s2) __builtin_strstr(s1, s2)
#endif
#if __has_builtin(__builtin_strtok)
-#define strtok(s1, s2) __builtin_strtok(s1, s2)
+#define strtok(s1, s2) __builtin_strtok(s1, s2)
#endif
#if __has_builtin(__builtin_memset)
-#define memset(p, v, n) __builtin_memset(p, v, n)
+#define memset(p, v, n) __builtin_memset(p, v, n)
#endif
#if __has_builtin(__builtin_strlen)
-#define strlen(s) __builtin_strlen(s)
+#define strlen(s) __builtin_strlen(s)
#endif
#endif /* APOS_STRING_H */
diff --git a/include/apos/types.h b/include/apos/types.h
index fea71ae..48972da 100644
--- a/include/apos/types.h
+++ b/include/apos/types.h
@@ -1,179 +1,179 @@
#ifndef APOS_TYPES_H
#define APOS_TYPES_H
-typedef _Bool bool;
-#define true 1
-#define false 0
+typedef _Bool bool;
+#define true 1
+#define false 0
-typedef __PTRDIFF_TYPE__ ptrdiff_t;
-typedef __WCHAR_TYPE__ wchar_t;
-typedef __WINT_TYPE__ wint_t;
-typedef __INTMAX_TYPE__ intmax_t;
-typedef __UINTMAX_TYPE__ uintmax_t;
-typedef __INT8_TYPE__ int8_t;
-typedef __INT16_TYPE__ int16_t;
-typedef __INT32_TYPE__ int32_t;
-typedef __INT64_TYPE__ int64_t;
-typedef __UINT8_TYPE__ uint8_t;
-typedef __UINT16_TYPE__ uint16_t;
-typedef __UINT32_TYPE__ uint32_t;
-typedef __UINT64_TYPE__ uint64_t;
-typedef __INT_LEAST8_TYPE__ int_least8_t;
-typedef __INT_LEAST16_TYPE__ int_least16_t;
-typedef __INT_LEAST32_TYPE__ int_least32_t;
-typedef __INT_LEAST64_TYPE__ int_least64_t;
-typedef __UINT_LEAST8_TYPE__ uint_least8_t;
-typedef __UINT_LEAST16_TYPE__ uint_least16_t;
-typedef __UINT_LEAST32_TYPE__ uint_least32_t;
-typedef __UINT_LEAST64_TYPE__ uint_least64_t;
-typedef __INT_FAST8_TYPE__ int_fast8_t;
-typedef __INT_FAST16_TYPE__ int_fast16_t;
-typedef __INT_FAST32_TYPE__ int_fast32_t;
-typedef __INT_FAST64_TYPE__ int_fast64_t;
-typedef __UINT_FAST8_TYPE__ uint_fast8_t;
-typedef __UINT_FAST16_TYPE__ uint_fast16_t;
-typedef __UINT_FAST32_TYPE__ uint_fast32_t;
-typedef __UINT_FAST64_TYPE__ uint_fast64_t;
-typedef __INTPTR_TYPE__ intptr_t;
-typedef __UINTPTR_TYPE__ uintptr_t;
+typedef __PTRDIFF_TYPE__ ptrdiff_t;
+typedef __WCHAR_TYPE__ wchar_t;
+typedef __WINT_TYPE__ wint_t;
+typedef __INTMAX_TYPE__ intmax_t;
+typedef __UINTMAX_TYPE__ uintmax_t;
+typedef __INT8_TYPE__ int8_t;
+typedef __INT16_TYPE__ int16_t;
+typedef __INT32_TYPE__ int32_t;
+typedef __INT64_TYPE__ int64_t;
+typedef __UINT8_TYPE__ uint8_t;
+typedef __UINT16_TYPE__ uint16_t;
+typedef __UINT32_TYPE__ uint32_t;
+typedef __UINT64_TYPE__ uint64_t;
+typedef __INT_LEAST8_TYPE__ int_least8_t;
+typedef __INT_LEAST16_TYPE__ int_least16_t;
+typedef __INT_LEAST32_TYPE__ int_least32_t;
+typedef __INT_LEAST64_TYPE__ int_least64_t;
+typedef __UINT_LEAST8_TYPE__ uint_least8_t;
+typedef __UINT_LEAST16_TYPE__ uint_least16_t;
+typedef __UINT_LEAST32_TYPE__ uint_least32_t;
+typedef __UINT_LEAST64_TYPE__ uint_least64_t;
+typedef __INT_FAST8_TYPE__ int_fast8_t;
+typedef __INT_FAST16_TYPE__ int_fast16_t;
+typedef __INT_FAST32_TYPE__ int_fast32_t;
+typedef __INT_FAST64_TYPE__ int_fast64_t;
+typedef __UINT_FAST8_TYPE__ uint_fast8_t;
+typedef __UINT_FAST16_TYPE__ uint_fast16_t;
+typedef __UINT_FAST32_TYPE__ uint_fast32_t;
+typedef __UINT_FAST64_TYPE__ uint_fast64_t;
+typedef __INTPTR_TYPE__ intptr_t;
+typedef __UINTPTR_TYPE__ uintptr_t;
/* sort of unconventional, but should be fine */
typedef uintmax_t size_t;
typedef intmax_t ssize_t;
-#define INT8_C __INT8_C
-#define INT16_C __INT16_C
-#define INT32_C __INT32_C
-#define INT64_C __INT64_C
-#define UINT8_C __UINT8_C
-#define UINT16_C __UINT16_C
-#define UINT32_C __UINT32_C
-#define UINT64_C __UINT64_C
-#define INTMAX_C __INTMAX_C
-#define UINTMAX_C __UINTMAX_C
+#define INT8_C __INT8_C
+#define INT16_C __INT16_C
+#define INT32_C __INT32_C
+#define INT64_C __INT64_C
+#define UINT8_C __UINT8_C
+#define UINT16_C __UINT16_C
+#define UINT32_C __UINT32_C
+#define UINT64_C __UINT64_C
+#define INTMAX_C __INTMAX_C
+#define UINTMAX_C __UINTMAX_C
-#define CHAR_BIT __CHAR_BIT__
+#define CHAR_BIT __CHAR_BIT__
-#define SCHAR_MAX __SCHAR_MAX__
-#define SCHAR_MIN (-__SCHAR_MAX - 1)
-#define UCHAR_MAX (2 * __SCHAR_MAX__ - 1)
+#define SCHAR_MAX __SCHAR_MAX__
+#define SCHAR_MIN (-__SCHAR_MAX - 1)
+#define UCHAR_MAX (2 * __SCHAR_MAX__ - 1)
#if defined(__CHAR_UNSIGNED__)
-#define CHAR_MIN 0
-#define CHAR_MAX UCHAR_MAX
+#define CHAR_MIN 0
+#define CHAR_MAX UCHAR_MAX
#else
-#define CHAR_MIN SCHAR_MIN
-#define CHAR_MAX SCHAR_MAX
+#define CHAR_MIN SCHAR_MIN
+#define CHAR_MAX SCHAR_MAX
#endif
/* probably not necessary? */
-#define MB_LEN_MAX 16
+#define MB_LEN_MAX 16
-#define SHRT_MAX __SHRT_MAX__
-#define SHRT_MIN (-__SHRT_MAX - 1)
-#define USHRT_MAX (2 * __SHRT_MAX + 1)
+#define SHRT_MAX __SHRT_MAX__
+#define SHRT_MIN (-__SHRT_MAX - 1)
+#define USHRT_MAX (2 * __SHRT_MAX + 1)
-#define INT_MAX __INT_MAX__
-#define INT_MIN (-__INT_MAX__ - 1)
-#define UINT_MAX (2 * __INT_MAX__ + 1)
+#define INT_MAX __INT_MAX__
+#define INT_MIN (-__INT_MAX__ - 1)
+#define UINT_MAX (2 * __INT_MAX__ + 1)
-#define LONG_MAX __LONG__MAX__
-#define LONG_MIN (-__LONG_MAX__ - 1)
-#define ULONG_MAX (2 * __INT_MAX__ + 1)
+#define LONG_MAX __LONG__MAX__
+#define LONG_MIN (-__LONG_MAX__ - 1)
+#define ULONG_MAX (2 * __INT_MAX__ + 1)
-#define LLONG_MAX __LONG_LONG_MAX__
-#define LLONG_MIN (-__LONG_LONG_MAX__ - 1)
-#define ULLONG_MAX (2 * __LONG_LONG_MAX__ + 1)
+#define LLONG_MAX __LONG_LONG_MAX__
+#define LLONG_MIN (-__LONG_LONG_MAX__ - 1)
+#define ULLONG_MAX (2 * __LONG_LONG_MAX__ + 1)
-#define INT8_MAX __INT8_MAX__
-#define INT8_MIN (-__INT8_MAX__ - 1)
-#define UINT8_MAX __UINT8_MAX__
+#define INT8_MAX __INT8_MAX__
+#define INT8_MIN (-__INT8_MAX__ - 1)
+#define UINT8_MAX __UINT8_MAX__
-#define INT16_MAX __INT16_MAX__
-#define INT16_MIN (-__INT16_MAX__ - 1)
-#define UINT16_MAX __UINT16_MAX__
+#define INT16_MAX __INT16_MAX__
+#define INT16_MIN (-__INT16_MAX__ - 1)
+#define UINT16_MAX __UINT16_MAX__
-#define INT32_MAX __INT32_MAX__
-#define INT32_MIN (-__INT32_MAX__ - 1)
-#define UINT32_MAX __UINT32_MAX__
+#define INT32_MAX __INT32_MAX__
+#define INT32_MIN (-__INT32_MAX__ - 1)
+#define UINT32_MAX __UINT32_MAX__
-#define INT64_MAX __INT64_MAX__
-#define INT64_MIN (-__INT64_MAX__ - 1)
-#define UINT64_MAX __UINT64_MAX__
+#define INT64_MAX __INT64_MAX__
+#define INT64_MIN (-__INT64_MAX__ - 1)
+#define UINT64_MAX __UINT64_MAX__
-#define INT_LEAST8_MAX __INT_LEAST8_MAX__
-#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)
-#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
+#define INT_LEAST8_MAX __INT_LEAST8_MAX__
+#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)
+#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
-#define INT_LEAST16_MAX __INT_LEAST16_MAX__
-#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)
-#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
+#define INT_LEAST16_MAX __INT_LEAST16_MAX__
+#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)
+#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
-#define INT_LEAST32_MAX __INT_LEAST32_MAX__
-#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)
-#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
+#define INT_LEAST32_MAX __INT_LEAST32_MAX__
+#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)
+#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
-#define INT_LEAST64_MAX __INT_LEAST64_MAX__
-#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)
-#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
+#define INT_LEAST64_MAX __INT_LEAST64_MAX__
+#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)
+#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
-#define INT_FAST8_MAX __INT_FAST8_MAX__
-#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)
-#define UINT_FAST8_MAX __UINT_FAST8_MAX__
+#define INT_FAST8_MAX __INT_FAST8_MAX__
+#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)
+#define UINT_FAST8_MAX __UINT_FAST8_MAX__
-#define INT_FAST16_MAX __INT_FAST16_MAX__
-#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)
-#define UINT_FAST16_MAX __UINT_FAST16_MAX__
+#define INT_FAST16_MAX __INT_FAST16_MAX__
+#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)
+#define UINT_FAST16_MAX __UINT_FAST16_MAX__
-#define INT_FAST32_MAX __INT_FAST32_MAX__
-#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)
-#define UINT_FAST32_MAX __UINT_FAST32_MAX__
+#define INT_FAST32_MAX __INT_FAST32_MAX__
+#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)
+#define UINT_FAST32_MAX __UINT_FAST32_MAX__
-#define INT_FAST64_MAX __INT_FAST64_MAX__
-#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)
-#define UINT_FAST64_MAX __UINT_FAST64_MAX__
+#define INT_FAST64_MAX __INT_FAST64_MAX__
+#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)
+#define UINT_FAST64_MAX __UINT_FAST64_MAX__
-#define INTPTR_MAX __INTPTR_MAX__
-#define INTPTR_MIN (-__INTPTR_MAX__ - 1)
-#define UINTPTR_MAX __UINTPTR_MAX__
+#define INTPTR_MAX __INTPTR_MAX__
+#define INTPTR_MIN (-__INTPTR_MAX__ - 1)
+#define UINTPTR_MAX __UINTPTR_MAX__
-#define INTMAX_MAX __INTMAX_MAX__
-#define INTMAX_MIN (-__INTMAX_MAX__ - 1)
-#define UINTMAX_MAX __UINTMAX_MAX__
+#define INTMAX_MAX __INTMAX_MAX__
+#define INTMAX_MIN (-__INTMAX_MAX__ - 1)
+#define UINTMAX_MAX __UINTMAX_MAX__
-#define INT8_WIDTH 8
-#define INT16_WIDTH 16
-#define INT32_WIDTH 32
-#define INT64_WIDTH 64
-#define UINT8_WIDTH 8
-#define UINT16_WIDTH 16
-#define UINT32_WIDTH 32
-#define UINT64_WIDTH 64
+#define INT8_WIDTH 8
+#define INT16_WIDTH 16
+#define INT32_WIDTH 32
+#define INT64_WIDTH 64
+#define UINT8_WIDTH 8
+#define UINT16_WIDTH 16
+#define UINT32_WIDTH 32
+#define UINT64_WIDTH 64
-#define INT_FAST8_WIDTH __INT_FAST8_WIDTH__
-#define INT_FAST16_WIDTH __INT_FAST16_WIDTH__
-#define INT_FAST32_WIDTH __INT_FAST32_WIDTH__
-#define INT_FAST64_WIDTH __INT_FAST64_WIDTH__
-#define UINT_FAST8_WIDTH __INT_FAST8_WIDTH__
-#define UINT_FAST16_WIDTH __INT_FAST16_WIDTH__
-#define UINT_FAST32_WIDTH __INT_FAST32_WIDTH__
-#define UINT_FAST64_WIDTH __INT_FAST64_WIDTH__
+#define INT_FAST8_WIDTH __INT_FAST8_WIDTH__
+#define INT_FAST16_WIDTH __INT_FAST16_WIDTH__
+#define INT_FAST32_WIDTH __INT_FAST32_WIDTH__
+#define INT_FAST64_WIDTH __INT_FAST64_WIDTH__
+#define UINT_FAST8_WIDTH __INT_FAST8_WIDTH__
+#define UINT_FAST16_WIDTH __INT_FAST16_WIDTH__
+#define UINT_FAST32_WIDTH __INT_FAST32_WIDTH__
+#define UINT_FAST64_WIDTH __INT_FAST64_WIDTH__
-#define INT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
-#define INT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
-#define INT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
-#define INT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
-#define UINT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
-#define UINT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
-#define UINT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
-#define UINT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
+#define INT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
+#define INT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
+#define INT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
+#define INT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
+#define UINT_LEAST8_WIDTH __INT_LEAST8_WIDTH__
+#define UINT_LEAST16_WIDTH __INT_LEAST16_WIDTH__
+#define UINT_LEAST32_WIDTH __INT_LEAST32_WIDTH__
+#define UINT_LEAST64_WIDTH __INT_LEAST64_WIDTH__
-#define INTPTR_WIDTH __INTPTR_WIDTH__
-#define INTMAX_WIDTH __INTMAX_WIDTH__
-#define UINTPTR_WIDTH __INTPTR_WIDTH__
-#define UINTMAX_WIDTH __INTMAX_WIDTH__
+#define INTPTR_WIDTH __INTPTR_WIDTH__
+#define INTMAX_WIDTH __INTMAX_WIDTH__
+#define UINTPTR_WIDTH __INTPTR_WIDTH__
+#define UINTMAX_WIDTH __INTMAX_WIDTH__
-#define NULL 0
+#define NULL 0
/* some common types used throughout the kernel */
typedef int_fast8_t stat_t;
@@ -184,12 +184,12 @@ typedef uint_fast16_t vmflags_t;
/* negative error codes are reserved for general usage, positive error codes are
* allowed to be function-specific. */
enum {
- ERR_EXT = -5, /* already exists */
- ERR_OOMEM = -4, /* out of memory */
- ERR_ADDR = -3, /* illegal address */
- ERR_ALIGN = -2, /* wrong alignment */
- ERR_NF = -1, /* not found */
- OK = 0, /* OK */
+ ERR_EXT = -5, /* already exists */
+ ERR_OOMEM = -4, /* out of memory */
+ ERR_ADDR = -3, /* illegal address */
+ ERR_ALIGN = -2, /* wrong alignment */
+ ERR_NF = -1, /* not found */
+ OK = 0, /* OK */
};
#include <types.h> /* arch-specific type definitions (pm_t/vm_t etc) */
diff --git a/include/apos/utils.h b/include/apos/utils.h
index c2cff2c..e060c44 100644
--- a/include/apos/utils.h
+++ b/include/apos/utils.h
@@ -1,47 +1,49 @@
#ifndef APOS_UTILS_H
#define APOS_UTILS_H
-#define ABS(a) (a < 0 ? -a : a)
+#define ABS(a) (a < 0 ? -a : a)
-#define MAX(a, b) ((a) >= (b) ? (a) : (b))
+#define MAX(a, b) ((a) >= (b) ? (a) : (b))
#define MAX3(a, b, c) (MAX(a, b) >= MAX(b, c) ? MAX(a, b) : MAX(b, c))
-#define MAX4(a, b, c, d) (MAX3(a, b, c) >= MAX3(b, c, d) ? MAX3(a, b, c) : MAX3(b, c, d))
+#define MAX4(a, b, c, d) \
+ (MAX3(a, b, c) >= MAX3(b, c, d) ? MAX3(a, b, c) : MAX3(b, c, d))
/* etc... */
-#define MIN(a, b) ((a) <= (b) ? (a) : (b))
+#define MIN(a, b) ((a) <= (b) ? (a) : (b))
#define MIN3(a, b, c) (MIN(a, b) <= MIN(b, c) ? MIN(a, b) : MIN(b, c))
-#define MIN4(a, b, c, d) (MIN3(a, b, c) <= MIN3(b, c, d) ? MIN3(a, b, c) : MIN3(b, c, d))
+#define MIN4(a, b, c, d) \
+ (MIN3(a, b, c) <= MIN3(b, c, d) ? MIN3(a, b, c) : MIN3(b, c, d))
/* etc... */
#define GLUE2(x, y) x##y
-#define GLUE(x, y) GLUE2(x, y)
+#define GLUE(x, y) GLUE2(x, y)
-#define QUOTE2(x) #x
-#define QUOTE(x) QUOTE2(x)
+#define QUOTE2(x) #x
+#define QUOTE(x) QUOTE2(x)
-#define UNUSED(x) ((void)(x))
+#define UNUSED(x) ((void)(x))
#include <apos/builtin.h>
#if __has_builtin(__builtin_offsetof)
#define offsetof(type, member) __builtin_offsetof(type, member)
#else
-#define offsetof(type, member) ((size_t)&((type *)0)->member)
+#define offsetof(type, member) ((size_t) & ((type *)0)->member)
#endif
-#define container_of(ptr, type, member) \
- ((type *)((char *)(ptr) - offsetof(type, member)))
+#define container_of(ptr, type, member) \
+ ((type *)((char *)(ptr)-offsetof(type, member)))
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#define ALIGNED(x, a) ((x) % a == 0)
-#define ptradd(x, y) (((vm_t)(x)) + ((vm_t)(y)))
+#define ptradd(x, y) (((vm_t)(x)) + ((vm_t)(y)))
#include <apos/types.h>
static inline size_t align_up(size_t val, size_t a)
{
- if(!a)
+ if (!a)
return val;
size_t rem = val % a;
@@ -54,7 +56,7 @@ static inline size_t align_up(size_t val, size_t a)
static inline size_t align_down(size_t val, size_t a)
{
- if(!a)
+ if (!a)
return val;
return val - (val % a);
@@ -70,11 +72,11 @@ static inline bool aligned(size_t val, size_t a)
static inline size_t asciinum(char c)
{
- if(c >= '0' && c <= '9')
+ if (c >= '0' && c <= '9')
return c - '0';
- else if(c >= 'A' && c <= 'F')
+ else if (c >= 'A' && c <= 'F')
return c - 'A' + 10;
- else if(c >= 'a' && c <= 'f')
+ else if (c >= 'a' && c <= 'f')
return c - 'a' + 10;
else
return 0;
@@ -84,7 +86,7 @@ static inline size_t convnum(const char *c, size_t len, size_t base)
{
size_t multiplier = 1;
size_t sum = 0;
- for(size_t i = 0; i < len; ++i){
+ for (size_t i = 0; i < len; ++i) {
sum += asciinum(c[len - 1 - i]) * multiplier;
multiplier *= base;
}
@@ -92,5 +94,4 @@ static inline size_t convnum(const char *c, size_t len, size_t base)
return sum;
}
-
#endif /* APOS_UTILS_H */
diff --git a/include/apos/vmem.h b/include/apos/vmem.h
index cbdef2e..571b906 100644
--- a/include/apos/vmem.h
+++ b/include/apos/vmem.h
@@ -12,16 +12,18 @@ vm_t alloc_fixed_uvmem(struct tcb *r, vm_t start, size_t size, vmflags_t flags);
stat_t free_uvmem(struct tcb *r, vm_t a);
stat_t init_uvmem(struct tcb *r, vm_t base, vm_t top);
-stat_t alloc_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order);
-stat_t free_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr, vmflags_t flags, enum mm_order order);
+stat_t alloc_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order order);
+stat_t free_uvmem_wrapper(struct vm_branch *b, pm_t *offset, vm_t vaddr,
+ vmflags_t flags, enum mm_order order);
-#define map_allocd_region(b, start, bytes, flags)\
+#define map_allocd_region(b, start, bytes, flags) \
map_fill_region(b, &alloc_uvmem_wrapper, 0, start, bytes, flags)
-#define unmap_freed_region(b, start, bytes)\
+#define unmap_freed_region(b, start, bytes) \
map_fill_region(b, &free_uvmem_wrapper, 0, start, bytes, 0)
#define vm_flags(x) ((x) & ~0xff)
-#define vp_flags(x) ((x) & 0xff)
+#define vp_flags(x) ((x)&0xff)
#endif /* APOS_VMEM_H */
diff --git a/include/arch/pmem.h b/include/arch/pmem.h
index 1772b36..08a38ed 100644
--- a/include/arch/pmem.h
+++ b/include/arch/pmem.h
@@ -5,7 +5,7 @@
#include <apos/types.h>
#include <pmem.h>
-stat_t stat_pmem_conf(void *fdt, size_t *max_order,
- size_t *base_bits, size_t bits[NUM_ORDERS]);
+stat_t stat_pmem_conf(void *fdt, size_t *max_order, size_t *base_bits,
+ size_t bits[NUM_ORDERS]);
#endif /* APOS_ARCH_PMEM_H */
diff --git a/include/arch/vmem.h b/include/arch/vmem.h
index ddb0e54..182af11 100644
--- a/include/arch/vmem.h
+++ b/include/arch/vmem.h
@@ -3,14 +3,15 @@
#include <vmem.h>
-stat_t map_vpage(struct vm_branch *branch,
- pm_t paddr, vm_t vaddr, vmflags_t flags, enum mm_order order);
+stat_t map_vpage(struct vm_branch *branch, pm_t paddr, vm_t vaddr,
+ vmflags_t flags, enum mm_order order);
stat_t unmap_vpage(struct vm_branch *branch, vm_t vaddr);
-stat_t mod_vpage(struct vm_branch *branch, vm_t vaddr, pm_t paddr, vmflags_t flags);
+stat_t mod_vpage(struct vm_branch *branch, vm_t vaddr, pm_t paddr,
+ vmflags_t flags);
stat_t stat_vpage(struct vm_branch *branch, vm_t vaddr, pm_t *paddr,
- enum mm_order *order, vmflags_t *flags);
+ enum mm_order *order, vmflags_t *flags);
void flush_tlb();
void flush_tlb_all();
diff --git a/include/libfdt.h b/include/libfdt.h
index 602cdcb..b59d6e4 100644
--- a/include/libfdt.h
+++ b/include/libfdt.h
@@ -19,7 +19,8 @@ void __dbg_fdt(const void *fdt, int node_offset, int depth);
#define dbg_fdt(...)
#endif
-#define fdt_load_int_ptr(c, p)\
- ((c) == 2 ? fdt64_to_cpu(*(fdt64_t *)(p)) : fdt32_to_cpu(*(fdt32_t *)(p)))
+#define fdt_load_int_ptr(c, p) \
+ ((c) == 2 ? fdt64_to_cpu(*(fdt64_t *)(p)) : \
+ fdt32_to_cpu(*(fdt32_t *)(p)))
#endif
diff --git a/lib/fdt_dbg.c b/lib/fdt_dbg.c
index aa4f1fe..296a8de 100644
--- a/lib/fdt_dbg.c
+++ b/lib/fdt_dbg.c
@@ -5,7 +5,7 @@
static void __print_char(char c, int depth)
{
/* lol, ugly but good enough for now */
- for(int i = 0; i < depth; ++i)
+ for (int i = 0; i < depth; ++i)
dbg("%c", c);
}
@@ -53,17 +53,17 @@ static int __is_string(const void *data, int len)
static void __print_prop_value(const void *data, int len)
{
- if(len == 0)
+ if (len == 0)
return;
dbg(" = ");
/* heavily inspired by u-boot's fdt print */
- if(__is_string(data, len)){
+ if (__is_string(data, len)) {
dbg("\"");
int i = 0;
- while(i < len){
- if(i > 0)
+ while (i < len) {
+ if (i > 0)
dbg("\", \"");
dbg("%s", (const char *)data);
@@ -75,15 +75,17 @@ static void __print_prop_value(const void *data, int len)
} else if ((len % 4) == 0) {
const int32_t *p = (const int32_t *)data;
dbg("<");
- for(int i = 0; i < len / 4; ++i)
- dbg("%#08x%s", fdt32_to_cpu(p[i]), i < (len / 4 - 1) ? " " : "");
+ for (int i = 0; i < len / 4; ++i)
+ dbg("%#08x%s", fdt32_to_cpu(p[i]),
+ i < (len / 4 - 1) ? " " : "");
dbg(">");
} else {
const int32_t *p = (const int32_t *)data;
dbg("[");
- for(int i = 0; i < len / 4; ++i)
- dbg("%#02x%s", fdt32_to_cpu(p[i]), i < (len / 4 - 1) ? " " : "");
+ for (int i = 0; i < len / 4; ++i)
+ dbg("%#02x%s", fdt32_to_cpu(p[i]),
+ i < (len / 4 - 1) ? " " : "");
dbg("]");
}
@@ -92,17 +94,18 @@ static void __print_prop_value(const void *data, int len)
void __dbg_fdt(const void *fdt, int node_offset, int depth)
{
int node = 0;
- fdt_for_each_subnode(node, fdt, node_offset){
+ fdt_for_each_subnode(node, fdt, node_offset)
+ {
__print_char('\t', depth);
dbg("%s: {\n", fdt_get_name(fdt, node, 0));
int property = 0;
- fdt_for_each_property_offset(property, fdt, node){
-
+ fdt_for_each_property_offset(property, fdt, node)
+ {
int len;
const char *name;
const void *data = fdt_getprop_by_offset(fdt, property,
- &name, &len);
+ &name, &len);
__print_char('\t', depth + 1);
dbg("%s", name);
@@ -111,7 +114,6 @@ void __dbg_fdt(const void *fdt, int node_offset, int depth)
dbg(";\n");
}
-
__dbg_fdt(fdt, node, depth + 1);
__print_char('\t', depth);