Loading include/linux/regset.h +0 −22 Original line number Diff line number Diff line Loading @@ -82,27 +82,6 @@ static inline int membuf_write(struct membuf *s, const void *v, size_t size) typedef int user_regset_active_fn(struct task_struct *target, const struct user_regset *regset); /** * user_regset_get_fn - type of @get function in &struct user_regset * @target: thread being examined * @regset: regset being examined * @pos: offset into the regset data to access, in bytes * @count: amount of data to copy, in bytes * @kbuf: if not %NULL, a kernel-space pointer to copy into * @ubuf: if @kbuf is %NULL, a user-space pointer to copy into * * Fetch register values. Return %0 on success; -%EIO or -%ENODEV * are usual failure returns. The @pos and @count values are in * bytes, but must be properly aligned. If @kbuf is non-null, that * buffer is used and @ubuf is ignored. If @kbuf is %NULL, then * ubuf gives a userland pointer to access directly, and an -%EFAULT * return value is possible. */ typedef int user_regset_get_fn(struct task_struct *target, const struct user_regset *regset, unsigned int pos, unsigned int count, void *kbuf, void __user *ubuf); typedef int user_regset_get2_fn(struct task_struct *target, const struct user_regset *regset, struct membuf to); Loading Loading @@ -235,7 +214,6 @@ typedef unsigned int user_regset_get_size_fn(struct task_struct *target, * omitted when there is an @active function and it returns zero. */ struct user_regset { user_regset_get_fn *get; user_regset_get2_fn *regset_get; user_regset_set_fn *set; user_regset_active_fn *active; Loading kernel/regset.c +5 −19 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ static int __regset_get(struct task_struct *target, void *p = *data, *to_free = NULL; int res; if (!regset->get && !regset->regset_get) if (!regset->regset_get) return -EOPNOTSUPP; if (size > regset->n * regset->size) size = regset->n * regset->size; Loading @@ -20,7 +20,6 @@ static int __regset_get(struct task_struct *target, if (!p) return -ENOMEM; } if (regset->regset_get) { res = regset->regset_get(target, regset, (struct membuf){.p = p, .left = size}); if (res < 0) { Loading @@ -30,19 +29,6 @@ static int __regset_get(struct task_struct *target, *data = p; return size - res; } res = regset->get(target, regset, 0, size, p, NULL); if (unlikely(res < 0)) { kfree(to_free); return res; } *data = p; if (regset->get_size) { // arm64-only kludge, will go away unsigned max_size = regset->get_size(target, regset); if (size > max_size) size = max_size; } return size; } int regset_get(struct task_struct *target, const struct user_regset *regset, Loading Loading
include/linux/regset.h +0 −22 Original line number Diff line number Diff line Loading @@ -82,27 +82,6 @@ static inline int membuf_write(struct membuf *s, const void *v, size_t size) typedef int user_regset_active_fn(struct task_struct *target, const struct user_regset *regset); /** * user_regset_get_fn - type of @get function in &struct user_regset * @target: thread being examined * @regset: regset being examined * @pos: offset into the regset data to access, in bytes * @count: amount of data to copy, in bytes * @kbuf: if not %NULL, a kernel-space pointer to copy into * @ubuf: if @kbuf is %NULL, a user-space pointer to copy into * * Fetch register values. Return %0 on success; -%EIO or -%ENODEV * are usual failure returns. The @pos and @count values are in * bytes, but must be properly aligned. If @kbuf is non-null, that * buffer is used and @ubuf is ignored. If @kbuf is %NULL, then * ubuf gives a userland pointer to access directly, and an -%EFAULT * return value is possible. */ typedef int user_regset_get_fn(struct task_struct *target, const struct user_regset *regset, unsigned int pos, unsigned int count, void *kbuf, void __user *ubuf); typedef int user_regset_get2_fn(struct task_struct *target, const struct user_regset *regset, struct membuf to); Loading Loading @@ -235,7 +214,6 @@ typedef unsigned int user_regset_get_size_fn(struct task_struct *target, * omitted when there is an @active function and it returns zero. */ struct user_regset { user_regset_get_fn *get; user_regset_get2_fn *regset_get; user_regset_set_fn *set; user_regset_active_fn *active; Loading
kernel/regset.c +5 −19 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ static int __regset_get(struct task_struct *target, void *p = *data, *to_free = NULL; int res; if (!regset->get && !regset->regset_get) if (!regset->regset_get) return -EOPNOTSUPP; if (size > regset->n * regset->size) size = regset->n * regset->size; Loading @@ -20,7 +20,6 @@ static int __regset_get(struct task_struct *target, if (!p) return -ENOMEM; } if (regset->regset_get) { res = regset->regset_get(target, regset, (struct membuf){.p = p, .left = size}); if (res < 0) { Loading @@ -30,19 +29,6 @@ static int __regset_get(struct task_struct *target, *data = p; return size - res; } res = regset->get(target, regset, 0, size, p, NULL); if (unlikely(res < 0)) { kfree(to_free); return res; } *data = p; if (regset->get_size) { // arm64-only kludge, will go away unsigned max_size = regset->get_size(target, regset); if (size > max_size) size = max_size; } return size; } int regset_get(struct task_struct *target, const struct user_regset *regset, Loading