| # Symbols defined in the library which aren't specifically bound to a |
| # version node are effectively bound to an unspecified base version of |
| # the library. It is possible to bind all otherwise unspecified symbols |
| # to a given version node using `global: *' somewhere in the version script. |
| # |
| # The interfaces at the "v1" level. |
| # At this level we present these functions to the linker (and thus to an |
| # application). |
| # Any functions not defined in the global list (i.e. "local") will be internal |
| # to the library (i.e. not exported but used within the library). |
| # Thus the real function names, "numa_bind_v1" etc, are local and won't |
| # be known to the linker. |
| |
| # the first 16 have v1 aliases |
| # 3 of the 5 system calls that libnuma provides are common to all versions: |
| libnuma_1.1 { |
| global: |
| set_mempolicy; |
| get_mempolicy; |
| mbind; |
| numa_all_nodes; |
| numa_alloc; |
| numa_alloc_interleaved; |
| numa_alloc_interleaved_subset; |
| numa_alloc_local; |
| numa_alloc_onnode; |
| numa_available; |
| numa_bind; |
| numa_distance; |
| numa_error; |
| numa_exit_on_error; |
| numa_free; |
| numa_get_interleave_mask; |
| numa_get_interleave_node; |
| numa_get_membind; |
| numa_get_run_node_mask; |
| numa_interleave_memory; |
| numa_max_node; |
| numa_migrate_pages; |
| numa_no_nodes; |
| numa_node_size64; |
| numa_node_size; |
| numa_node_to_cpus; |
| numa_pagesize; |
| numa_parse_bitmap; |
| numa_police_memory; |
| numa_preferred; |
| numa_run_on_node; |
| numa_run_on_node_mask; |
| numa_sched_getaffinity; |
| numa_sched_setaffinity; |
| numa_set_bind_policy; |
| numa_set_interleave_mask; |
| numa_set_localalloc; |
| numa_set_membind; |
| numa_set_preferred; |
| numa_set_strict; |
| numa_setlocal_memory; |
| numa_tonode_memory; |
| numa_tonodemask_memory; |
| numa_warn; |
| numa_exit_on_warn; |
| local: |
| *; |
| }; |
| |
| # The interfaces at the "v2" level. |
| # The first 17 have v2 aliases |
| # We add the bitmask_ functions |
| # and the move_pages and migrate_pages system calls |
| # 1.2 depends on 1.1 |
| |
| libnuma_1.2 { |
| global: |
| copy_bitmask_to_nodemask; |
| copy_nodemask_to_bitmask; |
| copy_bitmask_to_bitmask; |
| set_mempolicy; |
| get_mempolicy; |
| mbind; |
| move_pages; |
| migrate_pages; |
| numa_all_cpus_ptr; |
| numa_all_nodes_ptr; |
| numa_alloc; |
| numa_alloc_interleaved; |
| numa_alloc_interleaved_subset; |
| numa_alloc_local; |
| numa_alloc_onnode; |
| numa_realloc; |
| numa_allocate_cpumask; |
| numa_allocate_nodemask; |
| numa_available; |
| numa_bind; |
| numa_bitmask_alloc; |
| numa_bitmask_clearall; |
| numa_bitmask_clearbit; |
| numa_bitmask_equal; |
| numa_bitmask_free; |
| numa_bitmask_isbitset; |
| numa_bitmask_nbytes; |
| numa_bitmask_setall; |
| numa_bitmask_setbit; |
| numa_bitmask_weight; |
| numa_distance; |
| numa_error; |
| numa_exit_on_error; |
| numa_free; |
| numa_get_interleave_mask; |
| numa_get_interleave_node; |
| numa_get_membind; |
| numa_get_mems_allowed; |
| numa_get_run_node_mask; |
| numa_interleave_memory; |
| numa_max_node; |
| numa_max_possible_node; |
| numa_migrate_pages; |
| numa_move_pages; |
| numa_no_nodes_ptr; |
| numa_node_size64; |
| numa_node_size; |
| numa_node_to_cpus; |
| numa_node_of_cpu; |
| numa_nodes_ptr; |
| numa_num_configured_cpus; |
| numa_num_configured_nodes; |
| numa_num_possible_nodes; |
| numa_num_task_cpus; |
| numa_num_task_nodes; |
| numa_num_thread_cpus; |
| numa_num_thread_nodes; |
| numa_pagesize; |
| numa_parse_bitmap; |
| numa_parse_cpustring; |
| numa_parse_nodestring; |
| numa_police_memory; |
| numa_preferred; |
| numa_run_on_node; |
| numa_run_on_node_mask; |
| numa_sched_getaffinity; |
| numa_sched_setaffinity; |
| numa_set_bind_policy; |
| numa_set_interleave_mask; |
| numa_set_localalloc; |
| numa_set_membind; |
| numa_set_preferred; |
| numa_set_strict; |
| numa_setlocal_memory; |
| numa_tonode_memory; |
| numa_tonodemask_memory; |
| numa_warn; |
| local: |
| *; |
| } libnuma_1.1; |
| |
| # New parsing interface for cpu/numastrings |
| # was added into version 1.3 |
| |
| libnuma_1.3 { |
| global: |
| numa_parse_cpustring_all; |
| numa_parse_nodestring_all; |
| numa_num_possible_cpus; |
| local: |
| *; |
| } libnuma_1.2; |
| |
| # New interface with customizable cpuset awareness |
| # was added into version 1.4 |
| libnuma_1.4 { |
| global: |
| numa_run_on_node_mask_all; |
| local: |
| *; |
| } libnuma_1.3; |