Function Report

Linux Kernel (v4.4)

Source File:include\linux\list.h Create Date:2016-01-14 09:03:28
Last Modify:2016-01-11 07:01:32 Copyright©Brick
home page Tree
Annotate the kernelChinese

Function Name:INIT_LIST_HEAD

Function:static inline void INIT_LIST_HEAD(struct list_head *list)

Return Type:static inline void

Parameter:

Type Parameter NameRemarks
struct list_head * list

Function description:Initialization list head

27  next = list
28  prev = list
Caller
Function NameFunction description
list_replace_init
list_del_init deletes entry from list and reinitialize it.
list_cut_position cut a list into two
list_splice_init join two lists and reinitialise the emptied list.
list_splice_tail_init join two lists and reinitialise the emptied list
init_sigpendingInitialization signal transmission
plist_head_init dynamic struct plist_head initializer
plist_node_init Dynamic struct plist_node initializer
rcu_copy_processProcess RCU lock initialization
ptrace_init_task initialize ptrace state for a new child
radix_tree_node_ctor
kobject_init_internal
kset_init initialize a kset for use
klist_init Initialize a klist structure.
klist_node_init
bucket_table_alloc
gen_pool_create create a new special memory pool
rs_init Initialize a Reed-Solomon codec
lc_create prepares to track objects in an active set
lc_reset does a full reset for@lc and the hash table slots.
dma_debug_initLet the architectures decide how many entries should be preallocated.
rapl_cpu_prepare
uncore_alloc_box
uncore_type_init
allocate_threshold_blocks
mp_irqdomain_alloc
simple_xattrs_initinitialize the simple_xattrs structure
dir_add
dup_mmap
mm_init
posix_cpu_timers_init_groupInitialize POSIX timer handling for a thread group.
copy_signal
posix_cpu_timers_initInitialize POSIX timer handling for a single task.
copy_processCreate a new process
resource_list_create_entry
__sigqueue_allocallocate a new signal queue record- this may be called without locks if and only if t== current, otherwise an appropriate lock must be held to stop the target task from exiting
alloc_worker
init_worker_pool initialize a newly zalloc'd worker_pool
init_pwqinitialize newly alloced@pwq which is associated with@wq and@pool
__alloc_workqueue_key
__init_kthread_worker
__async_schedule
__sched_forkPerform scheduler related setup for a newly forked process p. p is forked by current.
sched_init
sched_online_group
init_rt_rq
__init_waitqueue_head
__mutex_init
debug_mutex_lock_commonMust be called with lock->wait_lock held.
register_lock_classRegister a lock's class in the hash-table, if the class is not present yet. Otherwise we look it up. We cache the result in the lock object itself, so actual lookup of the hash should be once per lock object.
lockdep_resetUsed by the testsuite, sanitize the validator state after a simulated failure:
lockdep_init
__init_rwseminitialise the semaphore
__init_rwsemInitialize an rwsem:
pm_qos_update_flags Update a set of PM QoS flags.
create_zone_bm_rtree create a radix tree for one zone
create_mem_extents create a list of memory extents representing contiguous ranges of PFNs
memory_bm_create allocate memory for a memory bitmap
memory_bm_free free memory occupied by the memory bitmap@bm
alloc_msi_entry
rcu_sync_torture_init
rcu_torture_init
rcu_init_oneHelper function for rcu_init() that initializes one rcu_state structure.
klp_enable_func
klp_init_func
posix_cpu_timer_createValidate the clockid_t for a new CPU-clock timer, and initialize the timer. This is called from sys_timer_create() and do_cpu_nanosleep() with the new timer already all-zeros initialized.
refill_pi_state_cache* PI code:
do_kimage_alloc_init
kimage_alloc_normal_control_pages
allocate_cgrp_cset_links allocate cgrp_cset_links
find_css_set return a new css_set with one cgroup updated
init_cgroup_housekeeping
init_cgroup_root
init_and_link_css
cgroup_init_subsys
cgroup_forkinitialize cgroup related fields during copy_process
cpu_stop_init
audit_initInitialize audit support at boot time.
audit_alloc_context
audit_init_parentInitialize a parent watch entry.
audit_init_watchInitialize a watch entry.
alloc_tree
alloc_chunk
audit_tree_init
init_nodeBasic initialization of a new node.
__get_insn_slot Find a slot on an executable page for an instruction. We allocate an executable page if there's no room on existing ones.
alloc_aggr_kprobeAllocate new optimized_kprobe and try to prepare optimized instructions
init_aggr_kprobeFill in the required fields of the"manager kprobe". Replace the earlier kprobe in the hlist with the manager kprobe
register_kprobe
populate_kprobe_blacklistLookup and populate the kprobe_blacklist.
taskstats_init_earlyNeeded early in initialization
rb_allocate_cpu_buffer
rb_insert_pages
ring_buffer_resize resize the ring buffer
rb_reset_cpu
instance_mkdir
tracer_alloc_buffers
register_trace_event register output for an event type
register_stat_tracer
do_blk_trace_setupSetup everything required to start tracing
trace_create_new_event
parse_init
event_trigger_callback Generic event_command@func implementation
event_enable_trigger_func
alloc_trace_kprobeAllocate new trace_probe and initialize it(including kprobes).
register_kprobe_event
init_usb_anchor
init_trace_uprobe_filter
alloc_trace_uprobeAllocate new trace_uprobe and initialize it(including uprobes).
register_uprobe_event
__unregister_ftrace_function_probe
__perf_event_init_contextInitialize the perf_event context in a task_struct:
perf_event_allocAllocate and initialize a event structure
perf_event_init_taskInitialize the perf_event context in task_struct
perf_event_init_all_cpus
ring_buffer_init
build_probe_listFor a given range in vma, build a list of probes that need to be inserted.
__padata_list_init
__init_single_page
reserve_bootmem_regionInitialised pages do not have PageReserved set. This function is called for each range allocated by the bootmem allocator and marks the pages PageReserved. The remaining valid pages are later sent to the buddy page allocator.
zone_init_free_lists
pageset_init
alloc_contig_range tries to allocate given range of pages
balloon_devinfo_init
lruvec_init
wb_init
bdi_init
pcpu_alloc_chunk
pcpu_setup_first_chunk initialize the first percpu chunk
init_one_lru
do_mmaphandle mapping creation for uClinux
mmap_region
__split_vmabypasses sysctl_max_map_count checking. We use this on the munmap path where it doesn't make sense to fail.
do_brkthis is really a simplified"do_mmap". it only handles anonymous maps. eventually we may be able to do some brk-specific accounting here.
copy_vmaCopy the vma structure to a new location in the same mm, prior to moving page table entries, to effect an mremap move.
__install_special_mapping
new_vmap_block allocates new vmap_block and occupies 2^order pages in this block. Of course pages number can't exceed VMAP_BBMAP_BITS
vmalloc_init
pgtable_trans_huge_deposit
alloc_swap_info
add_swap_count_continuation called when a swap count is duplicated
zswap_pool_create
dma_pool_create Creates a pool of consistent memory blocks, for dma.
region_chgExamine the existing reserve map and determine how many huge pages in the specified range[f, t) are NOT currently represented
region_delDelete the specified range[f, t) from the reserve map. If the t parameter is LONG_MAX, this indicates that ALL regions after f should be deleted. Locate the regions which intersect[f, t) and either trim, delete or split the existing regions.
resv_map_alloc
prep_new_huge_page
__alloc_buddy_huge_pageThere are two ways to allocate a huge page: 1. When you have a VMA and an address(like a fault) 2. When you have no VMA(like when setting/proc/.../nr_hugepages)
gather_surplus_pagesIncrease the hugetlb pool such that it can accommodate a reservation of size'delta'.
hugetlb_add_hstateShould be called on processing a hugepagesz=... option
slob_alloc entry point into the slob allocator.
kmem_cache_node_init
init_kmem_cache_node
__kmem_cache_shrinkkmem_cache_shrink discards empty slabs and promotes the slabs filled up most to the head of the partial lists. New allocations will then fill those up and thus they can be removed from the partial lists.
mem_cgroup_oom_synchronize complete memcg OOM handling
memcg_write_event_controlDO NOT USE IN NEW FILES.
mem_cgroup_css_alloc
mem_cgroup_uncharge uncharge a page
vmpressure_init Initialize vmpressure control structure
create_objectCreate the metadata(struct kmemleak_object) corresponding to an allocated memory block and add it to the object_list and object_tree_root.
kmemleak_test_initSome very simple testing. This function needs to be extended for proper testing.
init_zbud_pageInitializes the zbud header of a newly allocated zbud page
zbud_create_pool create a new zbud pool
alloc_zspageAllocate a zspage for the given size class
newque Create a new msg queue
unmerge_queues unmerge queues, if possible.
newary Create a new semaphore set
freearyFree a semaphore set. freeary() is called with sem_ids.rwsem locked as a writer and the spinlock for this semaphore set hold. sem_ids.rwsem remains locked on exit.
semctl_setval
semctl_main
get_undo_listIf the task doesn't already have a undo_list, then allocate one here. We guarantee there is only one thread using this undo list, and current is THE ONE
SYSC_semtimedop
exit_semadd semadj values to semaphores, free undo structures.
msg_insertAuxiliary functions to manipulate messages' list
mqueue_get_inode
SYSC_mq_timedsend
SYSC_mq_timedreceive
elevator_init
blk_rq_init
blk_alloc_queue_node
blk_start_plug initialize blk_plug and track it inside the task_struct
blk_queue_init_tags initialize the queue tag info
blk_insert_flush insert a new FLUSH/FUA request
blk_alloc_flush_queue
ioc_create_icq create and link io_cq
blk_softirq_init
blk_iopoll_init Initialize this@iop
blk_iopoll_setup
blk_mq_rq_ctx_init
blk_mq_init_rq_map
blk_mq_init_hctx
blk_mq_init_cpu_queues
blk_mq_init_allocated_queue
blk_mq_alloc_tag_setAlloc a tag set to be associated with one or more request queues. May fail with EINVAL for various error conditions. May adjust the requested depth down, if if it too large. In that case, the set value will be stored in set->queue_depth.
disk_alloc_eventsdisk_{alloc|add|del|release}_events- initialize and destroy disk_events.
ldm_partition Find out whether a device is a dynamic disk and handle it
bsg_alloc_command
bsg_alloc_device
blkg_alloc allocate a blkg
throtl_qnode_init
throtl_service_queue_initinit a service_queue, assumes the caller zeroed it
noop_init_queue
deadline_init_queueinitialize elevator private data(deadline_data).
cfq_init_cfqq
avc_xperms_alloc
avc_compute_avSlow-path helper function for avc_has_perm_noaudit, when the avc_node lookup fails. We get called with the RCU read lock held, and need to return with it still held, but drop if for the security compute.
inode_alloc_securityAllocate and free functions for each kind of security blob.
superblock_alloc_security
sel_netif_init
sel_netnode_init
sel_netport_init
new_task_smack allocate a task security blob
smk_copy_rules copy a rule set
smk_copy_relabel copy smk_relabel labels list
smack_cred_transfer Transfer the old credentials to the new credentials
init_smack_known_list
smk_import_entry import a label, return the list entry
smk_destroy_label_list destroy a list of smack_known_list_elem
policy_init initialize a policy structure
alloc_namespace allocate, initialize and return a new namespace
aa_load_ent_alloc
ima_add_digest_entryima_add_template_entry helper function:- Add template entry to measurement list and hash table.
ima_parse_add_rule add a rule to ima_policy_rules
eventpoll_init_fileUsed to initialize the epoll bits inside the"struct file"
alloc_super create new superblock
cdev_alloc allocate a cdev structure
cdev_init initialize a cdev structure
__bprm_mm_init
shrink_dcache_parent prune dcache
d_invalidate detach submounts, prune dcache, and drop
__d_alloc allocate a dcache entry
address_space_init_once
inode_init_onceThese are initializations that only need to be done once, because the fields are idempotent across use of the inode, so let the slab aware of that.
new_inode_pseudo obtain an inode
alloc_vfsmnt
alloc_mnt_ns
do_make_slave
fsync_buffers_listWrite out and wait upon a list of buffers.
alloc_buffer_head
init_once
bd_link_disk_holder create symlinks between holding disk and slave bdev
fsnotify_init_eventfsnotify_create_event- Allocate a new event which will be sent to each group's handle_event function if the group was interested in this particular event.
fsnotify_alloc_groupCreate a new fsnotify_group and hold a reference for the group returned.
ep_nested_calls_initInitialize the poll safe wake up structure
ep_alloc
ep_insertMust be called with"mtx" held.
clear_tfile_check_list
ioctx_alloc Allocates and initializes an ioctx. Returns an ERR_PTR if it failed.
locks_get_lock_context
locks_init_lock_heads
mb_cache_entry_alloc Allocates a new cache entry
grace_init_net
get_empty_dquot
vfs_load_quota_inodeHelper function to turn quotas on when we already have the inode of quota file and no quota information is loaded.
__proc_create
kernfs_create_root create a new kernfs hierarchy
kernfs_get_open_node get or create kernfs_open_node
configfs_new_direntAllocates a new configfs_dirent and links it to the parent configfs_dirent
config_item_init initialize item.
config_group_init initialize a group for use
dcookie_init