函数逻辑报告 |
Source Code:kernel\locking\rwsem.c |
Create Date:2022-07-27 10:48:53 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:lease a write lock
函数原型:void up_write(struct rw_semaphore *sem)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct rw_semaphore * | sem |
1586 | rwsem_release( & dep_map, _RET_IP_) |
1587 | lock after writing |
名称 | 描述 |
---|---|
mark_screen_rdonly | |
dup_mmap | |
SYSCALL_DEFINE2 | |
SYSCALL_DEFINE2 | Only setdomainname; getdomainname can be implemented by calling* uname() |
SYSCALL_DEFINE5 | |
__usermodehelper_set_disable_depth | __usermodehelper_set_disable_depth - Modify usermodehelper_disabled.*@depth: New value to assign to usermodehelper_disabled.* Change the value of usermodehelper_disabled (under umhelper_sem locked for* writing) and wakeup tasks waiting for it to change. |
__usermodehelper_disable | __usermodehelper_disable - Prevent new helpers from being started.*@depth: New value to assign to usermodehelper_disabled.* Set usermodehelper_disabled to @depth and wait for running helpers to exit. |
blocking_notifier_chain_register | locking_notifier_chain_register - Add notifier to a blocking notifier chain*@nh: Pointer to head of the blocking notifier chain*@n: New entry in notifier chain* Adds a notifier to a blocking notifier chain.* Must be called in process context. |
blocking_notifier_chain_unregister | locking_notifier_chain_unregister - Remove notifier from a blocking notifier chain*@nh: Pointer to head of the blocking notifier chain*@n: Entry to remove from notifier chain* Removes a notifier from a blocking notifier chain. |
proc_sched_autogroup_set_nice | |
percpu_up_write | |
torture_rwsem_up_write | |
posix_clock_unregister | |
proc_do_uts_string | Special case of dostring for the UTS structure. This has locks* to observe. Should this be in kernel/sys.c ???? |
send_cpu_listeners | Send taskstats data in @skb to listeners registered for @cpu's exit data |
add_del_listener | |
register_trace_event | gister_trace_event - register output for an event type*@event: the event type to register* Event types are stored in a hash and this hash is used to* find a way to print an event |
unregister_trace_event | register_trace_event - remove a no longer used event*@event: the event to remove |
trace_event_eval_update | |
trace_remove_event_call | Remove an event_call |
trace_module_remove_events | |
event_trace_add_tracer | vent_trace_add_tracer - add a instance of a trace_array to events*@parent: The parent dentry to place the files/directories for events in*@tr: The trace array associated with these events* When a new instance is created, it needs to set up its events |
early_event_add_tracer | The top trace array already had its file descriptors created.* Now the files themselves need to be created. |
event_trace_del_tracer | Must be called with event_mutex held |
bpf_prog_offload_init | |
bpf_prog_offload_destroy | |
bpf_map_offload_map_alloc | |
bpf_map_offload_map_free | |
bpf_offload_dev_netdev_register | |
bpf_offload_dev_netdev_unregister | |
bpf_offload_dev_create | |
consumer_add | |
consumer_del | For uprobe @uprobe, delete the consumer @uc.* Return true if the @uc is deleted successfully* or return false. |
prepare_uprobe | |
register_for_each_vma | |
uprobe_unregister | probe_unregister - unregister an already registered probe.*@inode: the file in which the probe has to be removed.*@offset: offset from the start of the file.*@uc: identify which probe if multiple probes are colocated. |
__uprobe_register | __uprobe_register - register a probe*@inode: the file in which the probe has to be placed |
uprobe_apply | probe_apply - unregister an already registered probe.*@inode: the file in which the probe has to be removed.*@offset: offset from the start of the file.*@uc: consumer which wants to add more or remove some breakpoints*@add: add or remove the breakpoints |
xol_add_vma | Slot allocation for XOL |
unregister_memcg_shrinker | |
register_shrinker_prepared | |
unregister_shrinker | Remove one |
account_locked_vm | account_locked_vm - account locked pages to an mm's locked_vm*@mm: mm to account against, may be NULL*@pages: number of pages to account*@inc: %true if @pages should be considered positive, %false if not* Assumes a non-NULL @mm is valid (i |
vm_mmap_pgoff | |
__vmalloc_user_flags | |
__put_nommu_region | lease a reference to a region* - the caller must hold the region semaphore for writing, which this releases* - the region may not have been added to the tree yet, in which case vm_top* will equal vm_start |
do_mmap | handle mapping creation for uClinux |
split_vma | split a vma into two pieces at address 'addr', a new vma is allocated either* for the first part or the tail. |
shrink_vma | shrink a VMA by removing the specified chunk from either the beginning or* the end |
vm_munmap | |
SYSCALL_DEFINE5 | |
nommu_shrink_inode_mappings | mmu_shrink_inode_mappings - Shrink the shared mappings on an inode*@inode: The inode to check*@size: The current filesize of the inode*@newsize: The proposed filesize of the inode* Check the shared mappings on an inode on behalf of a shrinking truncate |
do_mlock | |
SYSCALL_DEFINE2 | |
SYSCALL_DEFINE1 | |
sys_munlockall | |
SYSCALL_DEFINE1 | |
__vm_munmap | |
SYSCALL_DEFINE5 | Emulation of deprecated remap_file_pages() syscall. |
vm_brk_flags | |
exit_mmap | Release all mmaps. |
do_mprotect_pkey | pkey==-1 when doing a legacy mprotect() |
SYSCALL_DEFINE5 | Expand (or shrink) an existing mapping, potentially moving it at the* same time (controlled by the MREMAP_MAYMOVE flag and available VM space)* MREMAP_FIXED option added 5-Dec-1999 by Benjamin LaHaise* This option implies MREMAP_MAYMOVE. |
lock_anon_vma_root | This is a useful helper function for locking the anon_vma root as* we traverse the vma->anon_vma_chain, looping over anon_vma's that* have the same vma.* Such anon_vma's should have the same root, so you'd expect to see |
unlock_anon_vma_root | |
SYSCALL_DEFINE3 | The madvise(2) system call |
mpol_rebind_mm | Rebind each vma in mm to new nodemask.* Call holding a reference to mm. Takes mm->mmap_sem during call. |
do_mbind | |
mmu_notifier_register | mmu_notifier_register - Register a notifier on a mm*@mn: The notifier to attach*@mm: The mm to attach the notifier to* Must not hold mmap_sem nor any other VM related lock when calling* this registration function |
__ksm_exit | |
__khugepaged_exit | |
collapse_huge_page | |
ipcget_public | pcget_public - get an ipc object or create a new one*@ns: ipc namespace*@ids: ipc identifier set*@ops: the actual creation routine to call*@params: its parameters* This routine is called by sys_msgget, sys_semget() and sys_shmget() |
msgctl_down | This function handles some msgctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function. |
semctl_down | This function handles some semctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function. |
shm_close | |
shm_destroy_orphaned | |
exit_shm | Locking assumes this will only be called with task == current |
shmctl_down | This function handles some shmctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function. |
do_shmat | Fix shmaddr, allocate descriptor, map shm, add attach descriptor to lists.* NOTE! Despite the name, this is NOT a direct system call entrypoint. The* "raddr" thing points to kernel space, and there has to be a wrapper around* this. |
ksys_shmdt | detach and kill segment if marked destroyed.* The work is done in shm_close. |
free_ipcs | _ipcs - free all ipcs of one type*@ns: the namespace to remove the ipcs from*@ids: the table of ipcs to free*@free: the function called to free each individual ipc* Called for each kind of ipc when an ipc_namespace exits. |
key_set_timeout | |
__key_update | Attempt to update an existing key.* The key is given to us with an incremented refcount that we need to discard* if we get an error. |
key_update | key_update - Update a key's contents.*@key_ref: The pointer (plus possession flag) to the key.*@payload: The data to be used to update the key.*@plen: The length of @payload.* Attempt to update the contents of a key with the given payload data. The |
key_revoke | key_revoke - Revoke a key |
key_invalidate | key_invalidate - Invalidate a key.*@key: The key to be invalidated.* Mark a key as being invalidated and have it cleaned up immediately. The key* is ignored by all searches and other operations from this point. |
register_key_type | gister_key_type - Register a type of key.*@ktype: The new key type.* Register a new key type.* Returns 0 on success or -EEXIST if a type of this name already exists. |
keyring_restrict | keyring_restrict - Look up and apply a restriction to a keyring*@keyring_ref: The keyring to be restricted*@type: The key type that will provide the restriction checker.*@restriction: The restriction options to apply to the keyring |
__key_link_end | Finish linking a key into to a keyring.* Must be called with __key_link_begin() having being called. |
__key_unlink_end | Finish unlinking a key from to a keyring. |
keyring_clear | keyring_clear - Clear a keyring*@keyring: The keyring to clear.* Clear the contents of the specified keyring.* Returns 0 if successful or -ENOTDIR if the keyring isn't a keyring. |
keyring_gc | Garbage collect pointers from a keyring.* Not called with any locks held. The keyring's key struct will not be* deallocated under us as only our caller may deallocate it. |
keyring_restriction_gc | Garbage collect restriction pointers from a keyring |
keyctl_chown_key | Change the ownership of a key* The key must grant the caller Setattr permission for this to work, though* the key need not be fully instantiated yet. For the UID to be changed, or* for the GID to be changed to a group the caller is not a member of, the |
keyctl_setperm_key | Change the permission mask on a key.* The key must grant the caller Setattr permission for this to work, though* the key need not be fully instantiated yet. If the caller does not have |
get_user_register | Get or create a user register keyring. |
look_up_user_keyrings | Look up the user and user session keyrings for the current process's UID,* creating them if they don't exist. |
key_fsuid_changed | Handle the fsuid changing. |
key_fsgid_changed | Handle the fsgid changing. |
key_get_persistent | Get the persistent keyring for a specific UID and link it to the nominated* keyring. |
deactivate_locked_super | deactivate_locked_super - drop an active reference to superblock*@s: superblock to deactivate* Drops an active reference to superblock, converting it into a temporary* one if there is no other active references left |
grab_super | grab_super - acquire an active reference*@s: reference we are trying to make active* Tries to acquire an active reference. grab_super() is used when we* had just found a superblock in super_blocks or fs_type->fs_supers |
generic_shutdown_super | generic_shutdown_super - common helper for ->kill_sb()*@sb: superblock to kill* generic_shutdown_super() does all fs-independent work on superblock* shutdown |
drop_super_exclusive | |
__get_super | |
__get_super_thawed | |
get_active_super | get_active_super - get an active reference to the superblock of a device*@bdev: device to get the superblock for* Scans the superblock list and finds the superblock of the file system* mounted on the device given. Returns the superblock with an active |
reconfigure_super | gure_super - asks filesystem to change superblock parameters*@fc: The superblock and configuration* Alters the configuration parameters of a live superblock. |
do_emergency_remount_callback | |
do_thaw_all_callback | |
get_tree_bdev | get_tree_bdev - Get a superblock based on a single block device*@fc: The filesystem context holding the parameters*@fill_super: Helper to initialise a new superblock |
mount_bdev | |
freeze_super | ze_super - lock the filesystem and force it into a consistent state*@sb: the super to lock* Syncs the super to make sure the filesystem is consistent and calls the fs's* freeze_fs. Subsequent calls to this without first thawing the fs will return* -EBUSY. |
thaw_super_locked | |
__bprm_mm_init | |
setup_arg_pages | Finalizes the stack vm_area_struct. The flags and permissions are updated,* the stack is optionally relocated, and some extra space is added. |
fc_mount | |
namespace_unlock | |
do_umount_root | |
do_reconfigure_mnt | Handle reconfiguration of the mountpoint only without alteration of the* superblock it refers to. This is triggered by specifying MS_REMOUNT|MS_BIND* to mount(2). |
do_remount | hange filesystem flags. dir should be a physical root of filesystem.* If you've mounted a non-root directory somewhere and want to do remount* on it - tough luck. |
do_new_mount_fc | Create a new mount using a superblock configuration and request it* be added to the namespace tree. |
vfs_fsconfig_locked | Check the state and apply the configuration. Note that this function is* allowed to 'steal' the value by setting param->xxx to NULL before returning. |
userfaultfd_event_wait_completion | |
userfaultfd_release | |
userfaultfd_register | |
userfaultfd_unregister | |
aio_setup_ring | |
add_existing_master_key | |
add_master_key | |
do_remove_key | Try to remove an fscrypt master encryption key |
coredump_wait | |
v1_write_file_info | |
v2_write_file_info | Write information header to quota file |
v2_write_dquot | |
v2_release_dquot | |
do_concurrent_test | |
write_ldt | |
prealloc_memcg_shrinker | |
ipcget_new | pcget_new - create a new ipc object*@ns: ipc namespace*@ids: ipc identifier set*@ops: the actual creation routine to call*@params: its parameters* This routine is called by sys_msgget, sys_semget() and sys_shmget()* when the key is IPC_PRIVATE. |
del_gendisk | |
key_garbage_collector | Reaper for unused keys. |
destroy_unused_super | Free a superblock that has never been seen by anyone |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |