Function report |
Source Code:kernel\pid.c |
Create Date:2022-07-28 09:28:37 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:alloc_pid
Proto:struct pid *alloc_pid(struct pid_namespace *ns, pid_t *set_tid, size_t set_tid_size)
Type:struct pid
Parameter:
Type | Parameter | Name |
---|---|---|
struct pid_namespace * | ns | |
pid_t * | set_tid | |
size_t | set_tid_size |
178 | If set_tid_size > level + 1 Then Return ERR_PTR( - EINVAL) |
181 | pid = kmem_cache_alloc(pid_cachep, GFP_KERNEL) |
189 | tid = 0 |
191 | If set_tid_size Then |
201 | If tid != 1 && Not child_reaper Then Go to out_free |
204 | If Not ns_capable(user_ns, Allow setting zone reclaim policy ) Then Go to out_free |
206 | set_tid_size-- |
210 | spin_lock_irq( & Note: disable interrupts while the pidmap_lock is held as an* interrupt might come in and do read_lock(&tasklist_lock)) |
212 | If tid Then |
221 | Else |
222 | pid_min = 1 |
237 | spin_unlock_irq( & Note: disable interrupts while the pidmap_lock is held as an* interrupt might come in and do read_lock(&tasklist_lock)) |
240 | If nr < 0 Then |
251 | If pid_ns_prepare_proc(ns) Then Go to out_free |
255 | get_pid_ns(ns) |
257 | When type < PIDTYPE_MAX cycle INIT_HLIST_HEAD( & lists of tasks that use this pid [type]) |
263 | spin_lock_irq( & Note: disable interrupts while the pidmap_lock is held as an* interrupt might come in and do read_lock(&tasklist_lock)) |
264 | If Not (pid_allocated & PIDNS_ADDING) Then Go to out_unlock |
271 | spin_unlock_irq( & Note: disable interrupts while the pidmap_lock is held as an* interrupt might come in and do read_lock(&tasklist_lock)) |
273 | Return pid |
275 | out_unlock : |
276 | spin_unlock_irq( & Note: disable interrupts while the pidmap_lock is held as an* interrupt might come in and do read_lock(&tasklist_lock)) |
277 | put_pid_ns(ns) |
279 | out_free : |
280 | spin_lock_irq( & Note: disable interrupts while the pidmap_lock is held as an* interrupt might come in and do read_lock(&tasklist_lock)) |
290 | spin_unlock_irq( & Note: disable interrupts while the pidmap_lock is held as an* interrupt might come in and do read_lock(&tasklist_lock)) |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |