/linux/arch/powerpc/kernel/ptrace/ |
H A D | ptrace-adv.c | 74 int ptrace_get_debugreg(struct task_struct *child, unsigned long addr, in ptrace_get_debugreg() argument 80 return put_user(child->thread.debug.dac1, datalp); in ptrace_get_debugreg() 140 static long set_instruction_bp(struct task_struct *child, in set_instruction_bp() argument 144 int slot1_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC1) != 0); in set_instruction_bp() 145 int slot2_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC2) != 0); in set_instruction_bp() 146 int slot3_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC3) != 0); in set_instruction_bp() 147 int slot4_in_use = ((child->thread.debug.dbcr0 & DBCR0_IAC4) != 0); in set_instruction_bp() 149 if (dbcr_iac_range(child) & DBCR_IAC12MODE) in set_instruction_bp() 151 if (dbcr_iac_range(child) & DBCR_IAC34MODE) in set_instruction_bp() 165 child->thread.debug.iac1 = bp_info->addr; in set_instruction_bp() [all …]
|
/linux/drivers/mtd/ |
H A D | mtdpart.c | 50 struct mtd_info *child; in allocate_partition() local 56 child = kzalloc(sizeof(*child), GFP_KERNEL); in allocate_partition() 58 if (!name || !child) { in allocate_partition() 62 kfree(child); in allocate_partition() 67 child->type = parent->type; in allocate_partition() 68 child->part.flags = parent->flags & ~part->mask_flags; in allocate_partition() 69 child->part.flags |= part->add_flags; in allocate_partition() 70 child->flags = child->part.flags; in allocate_partition() 71 child->part.size = part->size; in allocate_partition() 72 child->writesize = parent->writesize; in allocate_partition() [all …]
|
/linux/kernel/ |
H A D | ptrace.c | 69 void __ptrace_link(struct task_struct *child, struct task_struct *new_parent, in __ptrace_link() argument 72 BUG_ON(!list_empty(&child->ptrace_entry)); in __ptrace_link() 73 list_add(&child->ptrace_entry, &new_parent->ptraced); in __ptrace_link() 74 child->parent = new_parent; in __ptrace_link() 75 child->ptracer_cred = get_cred(ptracer_cred); in __ptrace_link() 84 static void ptrace_link(struct task_struct *child, struct task_struct *new_parent) in ptrace_link() argument 86 __ptrace_link(child, new_parent, current_cred()); in ptrace_link() 91 * @child: ptracee to be unlinked 93 * Remove @child from the ptrace list, move it back to the original parent, 117 void __ptrace_unlink(struct task_struct *child) in __ptrace_unlink() argument [all …]
|
/linux/scripts/kconfig/ |
H A D | gconf.glade | 24 <child> 30 <child> 34 <child> 40 <child> 43 <child> 52 <child internal-child="image"> 62 </child> 64 </child> 66 <child> 75 <child internal-child="image"> [all …]
|
/linux/tools/testing/selftests/powerpc/ptrace/ |
H A D | ptrace-perf-hwbreak.c | 13 * Child subroutine that performs a load on the address, then traps 24 * Child subroutine that performs a load on the first address, then a load on 173 * Checks if we can place at least 2 watchpoints on the child process 186 * Wrapper around a plain fork() call that sets up the child for 187 * ptrace-ing. Both the parent and child return from this, though 188 * the child is stopped until ptrace_cont(pid) is run by the parent. 197 FAIL_IF_MSG(1, "Failed to fork child"); in ptrace_fork_child() 201 FAIL_IF_EXIT_MSG(raise(SIGSTOP), "Child failed to raise SIGSTOP"); in ptrace_fork_child() 203 /* Synchronise on child SIGSTOP */ in ptrace_fork_child() 204 FAIL_IF_MSG(waitpid(*pid, &status, 0) == -1, "Failed to wait for child"); in ptrace_fork_child() [all …]
|
H A D | ptrace.h | 64 int start_trace(pid_t child) in start_trace() argument 68 ret = ptrace(PTRACE_ATTACH, child, NULL, NULL); in start_trace() 73 ret = waitpid(child, NULL, 0); in start_trace() 74 if (ret != child) { in start_trace() 81 int stop_trace(pid_t child) in stop_trace() argument 85 ret = ptrace(PTRACE_DETACH, child, NULL, NULL); in stop_trace() 93 int cont_trace(pid_t child) in cont_trace() argument 97 ret = ptrace(PTRACE_CONT, child, NULL, NULL); in cont_trace() 105 int ptrace_read_regs(pid_t child, unsigned long type, unsigned long regs[], in ptrace_read_regs() argument 111 FAIL_IF(start_trace(child)); in ptrace_read_regs() [all …]
|
H A D | ptrace-gpr.c | 22 static int child(void) in child() function 47 int trace_gpr(pid_t child) in trace_gpr() argument 52 FAIL_IF(start_trace(child)); in trace_gpr() 54 // Check child GPRs match what we expect using GETREGS in trace_gpr() 55 FAIL_IF(show_gpr(child, gpr)); in trace_gpr() 58 // Check child FPRs match what we expect using GETFPREGS in trace_gpr() 59 FAIL_IF(show_fpr(child, fpr)); in trace_gpr() 63 // Check child FPRs match what we expect using PEEKUSR in trace_gpr() 64 peeked_fprs = peek_fprs(child); in trace_gpr() 69 // Write child GPRs using SETREGS in trace_gpr() [all …]
|
/linux/arch/x86/kernel/ |
H A D | step.c | 14 unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *regs) in convert_ip_to_linear() argument 38 mutex_lock(&child->mm->context.lock); in convert_ip_to_linear() 39 if (unlikely(!child->mm->context.ldt || in convert_ip_to_linear() 40 seg >= child->mm->context.ldt->nr_entries)) in convert_ip_to_linear() 43 desc = &child->mm->context.ldt->entries[seg]; in convert_ip_to_linear() 51 mutex_unlock(&child->mm->context.lock); in convert_ip_to_linear() 58 static int is_setting_trap_flag(struct task_struct *child, struct pt_regs *regs) in is_setting_trap_flag() argument 62 unsigned long addr = convert_ip_to_linear(child, regs); in is_setting_trap_flag() 64 copied = access_process_vm(child, addr, opcode, sizeof(opcode), in is_setting_trap_flag() 113 static int enable_single_step(struct task_struct *child) in enable_single_step() argument [all …]
|
/linux/tools/testing/selftests/bpf/prog_tests/ |
H A D | uprobe_multi_test.c | 48 struct child { struct 50 int c2p[2]; /* child -> parent channel */ argument 57 static void release_child(struct child *child) in release_child() argument 61 if (!child) in release_child() 63 close(child->go[1]); in release_child() 64 close(child->go[0]); in release_child() 65 if (child->thread) in release_child() 66 pthread_join(child->thread, NULL); in release_child() 67 close(child->c2p[0]); in release_child() 68 close(child->c2p[1]); in release_child() [all …]
|
/linux/tools/perf/arch/x86/tests/ |
H A D | bp-modify.c | 32 int child = fork(); in spawn_child() local 34 if (child == 0) { in spawn_child() 36 * The child sets itself for as tracee and in spawn_child() 52 return child; in spawn_child() 61 pid_t child; in bp_modify1() local 65 child = spawn_child(); in bp_modify1() 67 waitpid(child, &status, 0); in bp_modify1() 79 * - detaches the child in bp_modify1() 81 if (ptrace(PTRACE_POKEUSER, child, in bp_modify1() 88 if (ptrace(PTRACE_POKEUSER, child, in bp_modify1() [all …]
|
/linux/arch/m68k/kernel/ |
H A D | ptrace.c | 32 * does not yet catch signals sent when the child dies. 129 static inline void singlestep_disable(struct task_struct *child) in singlestep_disable() argument 131 unsigned long tmp = get_reg(child, PT_SR) & ~TRACE_BITS; in singlestep_disable() 132 put_reg(child, PT_SR, tmp); in singlestep_disable() 133 clear_tsk_thread_flag(child, TIF_DELAYED_TRACE); in singlestep_disable() 139 void ptrace_disable(struct task_struct *child) in ptrace_disable() argument 141 singlestep_disable(child); in ptrace_disable() 144 void user_enable_single_step(struct task_struct *child) in user_enable_single_step() argument 146 unsigned long tmp = get_reg(child, PT_SR) & ~TRACE_BITS; in user_enable_single_step() 147 put_reg(child, PT_SR, tmp | T1_BIT); in user_enable_single_step() [all …]
|
/linux/arch/x86/um/ |
H A D | ptrace_32.c | 51 int putreg(struct task_struct *child, int regno, unsigned long value) in putreg() argument 67 UPT_SYSCALL_NR(&child->thread.regs.regs) = value; in putreg() 91 child->thread.regs.regs.gp[HOST_EFLAGS] |= value; in putreg() 96 child->thread.regs.regs.gp[reg_offsets[regno]] = value; in putreg() 100 int poke_user(struct task_struct *child, long addr, long data) in poke_user() argument 106 return putreg(child, addr, data); in poke_user() 113 child->thread.arch.debugregs[addr] = data; in poke_user() 119 unsigned long getreg(struct task_struct *child, int regno) in getreg() argument 148 return mask & child->thread.regs.regs.gp[reg_offsets[regno]]; in getreg() 152 int peek_user(struct task_struct *child, long addr, long data) in peek_user() argument [all …]
|
H A D | ptrace_64.c | 55 int putreg(struct task_struct *child, int regno, unsigned long value) in putreg() argument 79 UPT_SYSCALL_NR(&child->thread.regs.regs) = value; in putreg() 101 child->thread.regs.regs.gp[HOST_EFLAGS] |= value; in putreg() 108 child->thread.regs.regs.gp[reg_offsets[regno >> 3]] = value; in putreg() 112 int poke_user(struct task_struct *child, long addr, long data) in poke_user() argument 118 return putreg(child, addr, data); in poke_user() 125 child->thread.arch.debugregs[addr] = data; in poke_user() 131 unsigned long getreg(struct task_struct *child, int regno) in getreg() argument 169 return mask & child->thread.regs.regs.gp[reg_offsets[regno >> 3]]; in getreg() 172 int peek_user(struct task_struct *child, long addr, long data) in peek_user() argument [all …]
|
/linux/arch/mips/kernel/ |
H A D | ptrace32.c | 43 long compat_arch_ptrace(struct task_struct *child, compat_long_t request, in compat_arch_ptrace() argument 73 copied = ptrace_access_vm(child, (u64)addrOthers, &tmp, in compat_arch_ptrace() 86 regs = task_pt_regs(child); in compat_arch_ptrace() 97 if (!tsk_used_math(child)) { in compat_arch_ptrace() 102 fregs = get_fpu_regs(child); in compat_arch_ptrace() 103 if (test_tsk_thread_flag(child, TIF_32BIT_FPREGS)) { in compat_arch_ptrace() 117 tmp = child->thread.fpu.fcr31; in compat_arch_ptrace() 147 dregs = __get_dsp_regs(child); in compat_arch_ptrace() 157 tmp = child->thread.dsp.dspcontrol; in compat_arch_ptrace() 186 if (ptrace_access_vm(child, (u64)addrOthers, &data, in compat_arch_ptrace() [all …]
|
/linux/tools/testing/selftests/cgroup/ |
H A D | test_core.c | 74 * Create a child process that allocates and touches 100MB, then waits to be 75 * killed. Wait until the child is attached to the cgroup, kill all processes 102 /* wait for the child to enter cgroup */ in test_cgcore_destroy() 278 char *grandparent = NULL, *parent = NULL, *child = NULL; in test_cgcore_invalid_domain() 282 child = cg_name(root, "cg_test_grandparent/cg_test_parent/cg_test_child"); in test_cgcore_invalid_domain() 283 if (!parent || !child || !grandparent) in test_cgcore_invalid_domain() 292 if (cg_create(child)) in test_cgcore_invalid_domain() 298 if (cg_read_strcmp(child, "cgroup.type", "domain invalid\n")) in test_cgcore_invalid_domain() 301 if (!cg_enter_current(child)) in test_cgcore_invalid_domain() 307 if (!clone_into_cgroup_run_wait(child)) in test_cgcore_invalid_domain() 276 char *grandparent = NULL, *parent = NULL, *child = NULL; test_cgcore_invalid_domain() local 338 char *parent = NULL, *child = NULL; test_cgcore_parent_becomes_threaded() local 377 char *parent = NULL, *child = NULL; test_cgcore_no_internal_process_constraint_on_threads() local 429 char *parent = NULL, *child = NULL; test_cgcore_top_down_constraint_enable() local 464 char *parent = NULL, *child = NULL; test_cgcore_top_down_constraint_disable() local 505 char *parent = NULL, *child = NULL; test_cgcore_internal_process_constraint() local [all...] |
/linux/tools/testing/selftests/arm64/abi/ |
H A D | ptrace.c | 32 static void test_tpidr(pid_t child) in test_tpidr() argument 45 ret = ptrace(PTRACE_GETREGSET, child, NT_ARM_TLS, &read_iov); in test_tpidr() 51 ret = ptrace(PTRACE_SETREGSET, child, NT_ARM_TLS, &write_iov); in test_tpidr() 55 ret = ptrace(PTRACE_GETREGSET, child, NT_ARM_TLS, &read_iov); in test_tpidr() 61 ret = ptrace(PTRACE_GETREGSET, child, NT_ARM_TLS, &read_iov); in test_tpidr() 82 ret = ptrace(PTRACE_SETREGSET, child, NT_ARM_TLS, &write_iov); in test_tpidr() 90 ret = ptrace(PTRACE_GETREGSET, child, NT_ARM_TLS, &read_iov); in test_tpidr() 112 ret = ptrace(PTRACE_SETREGSET, child, NT_ARM_TLS, &write_iov); in test_tpidr() 117 ret = ptrace(PTRACE_GETREGSET, child, NT_ARM_TLS, in test_tpidr() 135 static void test_hw_debug(pid_t child, int type, const char *type_name) in test_hw_debug() argument [all …]
|
/linux/include/linux/ |
H A D | bootconfig.h | 53 uint16_t child; member 105 return xbc_node_is_value(node) && node->child != 0; in xbc_node_is_array() 113 * or no child. Returns true if it is a leaf node, or false if not. 120 (!node->child || xbc_node_is_value(xbc_node_get_child(node))); in xbc_node_is_leaf() 169 * Return the first subkey node of the @node. If the @node has no child 174 struct xbc_node *child = xbc_node_get_child(node); in xbc_node_get_subkey() local 176 if (child && xbc_node_is_value(child)) in xbc_node_get_subkey() 177 return xbc_node_get_next(child); in xbc_node_get_subkey() 179 return child; in xbc_node_get_subkey() 197 * xbc_node_for_each_child() - Iterate child nodes [all …]
|
/linux/drivers/scsi/libsas/ |
H A D | sas_expander.c | 744 struct domain_device *child, in sas_ex_get_linkrate() argument 751 child->pathways = 0; in sas_ex_get_linkrate() 762 if (sas_phy_match_dev_addr(child, phy)) { in sas_ex_get_linkrate() 763 child->min_linkrate = min(parent->min_linkrate, in sas_ex_get_linkrate() 765 child->max_linkrate = max(parent->max_linkrate, in sas_ex_get_linkrate() 767 child->pathways++; in sas_ex_get_linkrate() 771 child->linkrate = min(parent_phy->linkrate, child->max_linkrate); in sas_ex_get_linkrate() 772 child->pathways = min(child->pathways, parent->pathways); in sas_ex_get_linkrate() 776 struct domain_device *child, int phy_id) in sas_ex_add_dev() argument 781 child->dev_type = SAS_END_DEVICE; in sas_ex_add_dev() [all …]
|
/linux/arch/alpha/kernel/ |
H A D | ptrace.c | 42 * does not yet catch signals sent when the child dies. 179 ptrace_set_bpt(struct task_struct * child) in ptrace_set_bpt() argument 185 pc = get_reg(child, REG_PC); in ptrace_set_bpt() 186 res = read_int(child, pc, (int *) &insn); in ptrace_set_bpt() 201 task_thread_info(child)->bpt_addr[nsaved++] = pc + 4; in ptrace_set_bpt() 203 task_thread_info(child)->bpt_addr[nsaved++] in ptrace_set_bpt() 208 task_thread_info(child)->bpt_addr[nsaved++] = get_reg(child, reg_b); in ptrace_set_bpt() 211 task_thread_info(child)->bpt_addr[nsaved++] = pc + 4; in ptrace_set_bpt() 217 res = read_int(child, task_thread_info(child)->bpt_addr[i], in ptrace_set_bpt() 221 task_thread_info(child)->bpt_insn[i] = insn; in ptrace_set_bpt() [all …]
|
/linux/tools/testing/selftests/landlock/ |
H A D | ptrace_test.c | 98 * Test multiple tracing combinations between a parent process P1 and a child 122 * Child domain 155 * Parent + child domain (siblings) 189 * Inherited + child domain 225 * Inherited + parent and child domain (siblings) 252 /* Test PTRACE_TRACEME and PTRACE_ATTACH for parent and child. */ 255 pid_t child, parent; in TEST_F() local 271 * can_read_child is true if a parent process can read its child in TEST_F() 273 * isolated from the child with a dedicated Landlock domain. in TEST_F() 278 * can_trace_child is true if a parent process can trace its child in TEST_F() [all …]
|
/linux/tools/testing/selftests/pidfd/ |
H A D | pidfd_getfd_test.c | 25 * UNKNOWN_FD is an fd number that should never exist in the child, as it is 48 fprintf(stderr, "%s: Child could not set DEATHSIG\n", in __child() 55 fprintf(stderr, "%s: Child failed to send fd number\n", in __child() 63 * This blocking recv enables the parent to message the child. in __child() 67 * indicating that the child should exit. in __child() 74 "%s: Child failed to disable ptrace\n", in __child() 79 fprintf(stderr, "Child received unknown command %c\n", in __child() 85 fprintf(stderr, "%s: Child failed to ack\n", in __child() 91 fprintf(stderr, "%s: Child failed to read from socket\n", in __child() 99 static int child(int sk) in child() function [all …]
|
/linux/drivers/net/mdio/ |
H A D | fwnode_mdio.c | 71 struct fwnode_handle *child, u32 addr) in fwnode_mdiobus_phy_device_register() argument 75 rc = fwnode_irq_get(child, 0); in fwnode_mdiobus_phy_device_register() 91 if (fwnode_property_read_bool(child, "broken-turn-around")) in fwnode_mdiobus_phy_device_register() 94 fwnode_property_read_u32(child, "reset-assert-us", in fwnode_mdiobus_phy_device_register() 96 fwnode_property_read_u32(child, "reset-deassert-us", in fwnode_mdiobus_phy_device_register() 102 fwnode_handle_get(child); in fwnode_mdiobus_phy_device_register() 103 device_set_node(&phy->mdio.dev, child); in fwnode_mdiobus_phy_device_register() 111 fwnode_handle_put(child); in fwnode_mdiobus_phy_device_register() 116 child, addr); in fwnode_mdiobus_phy_device_register() 122 struct fwnode_handle *child, u32 addr) in fwnode_mdiobus_register_phy() argument [all …]
|
H A D | of_mdio.c | 38 struct device_node *child, u32 addr) in of_mdiobus_phy_device_register() argument 41 of_fwnode_handle(child), in of_mdiobus_phy_device_register() 47 struct device_node *child, u32 addr) in of_mdiobus_register_phy() argument 49 return fwnode_mdiobus_register_phy(mdio, of_fwnode_handle(child), addr); in of_mdiobus_register_phy() 53 struct device_node *child, u32 addr) in of_mdiobus_register_device() argument 55 struct fwnode_handle *fwnode = of_fwnode_handle(child); in of_mdiobus_register_device() 79 child, addr); in of_mdiobus_register_device() 105 * Return true if the child node is for a phy. It must either: 115 bool of_mdiobus_child_is_phy(struct device_node *child) in of_mdiobus_child_is_phy() argument 119 if (of_get_phy_id(child, &phy_id) != -EINVAL) in of_mdiobus_child_is_phy() [all …]
|
/linux/fs/ |
H A D | pnode.c | 226 struct mount *child; in propagate_one() local 260 child = copy_tree(last_source, last_source->mnt.mnt_root, type); in propagate_one() 261 if (IS_ERR(child)) in propagate_one() 262 return PTR_ERR(child); in propagate_one() 264 mnt_set_mountpoint(m, dest_mp, child); in propagate_one() 269 last_source = child; in propagate_one() 270 hlist_add_head(&child->mnt_hash, list); in propagate_one() 271 return count_mounts(m->mnt_ns, child); in propagate_one() 337 struct mount *child; in find_topper() local 342 child = list_first_entry(&mnt->mnt_mounts, struct mount, mnt_child); in find_topper() [all …]
|
/linux/tools/testing/selftests/ptrace/ |
H A D | peeksiginfo.c | 44 static int check_error_paths(pid_t child) in check_error_paths() argument 73 ret = sys_ptrace(PTRACE_PEEKSIGINFO, child, &arg, addr_rw); in check_error_paths() 83 ret = sys_ptrace(PTRACE_PEEKSIGINFO, child, &arg, in check_error_paths() 91 ret = sys_ptrace(PTRACE_PEEKSIGINFO, child, &arg, addr_ro); in check_error_paths() 105 int check_direct_path(pid_t child, int shared, int nr) in check_direct_path() argument 122 ret = sys_ptrace(PTRACE_PEEKSIGINFO, child, &arg, siginfo); in check_direct_path() 157 pid_t child; in main() local 163 child = fork(); in main() 164 if (child == -1) { in main() 167 } else if (child == 0) { in main() [all …]
|