Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
linux-seco-imx
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Iterations
Jira
Code
Merge requests
11
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Clea OS
bsp
nxp
linux-seco-imx
Commits
1e6986c9
Commit
1e6986c9
authored
4 years ago
by
Al Viro
Browse files
Options
Downloads
Patches
Plain Diff
regset: kill ->get()
no instances left Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
dcad7854
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
include/linux/regset.h
+0
-22
0 additions, 22 deletions
include/linux/regset.h
kernel/regset.c
+5
-19
5 additions, 19 deletions
kernel/regset.c
with
5 additions
and
41 deletions
include/linux/regset.h
+
0
−
22
View file @
1e6986c9
...
@@ -82,27 +82,6 @@ static inline int membuf_write(struct membuf *s, const void *v, size_t size)
...
@@ -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
,
typedef
int
user_regset_active_fn
(
struct
task_struct
*
target
,
const
struct
user_regset
*
regset
);
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
,
typedef
int
user_regset_get2_fn
(
struct
task_struct
*
target
,
const
struct
user_regset
*
regset
,
const
struct
user_regset
*
regset
,
struct
membuf
to
);
struct
membuf
to
);
...
@@ -235,7 +214,6 @@ typedef unsigned int user_regset_get_size_fn(struct task_struct *target,
...
@@ -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.
* omitted when there is an @active function and it returns zero.
*/
*/
struct
user_regset
{
struct
user_regset
{
user_regset_get_fn
*
get
;
user_regset_get2_fn
*
regset_get
;
user_regset_get2_fn
*
regset_get
;
user_regset_set_fn
*
set
;
user_regset_set_fn
*
set
;
user_regset_active_fn
*
active
;
user_regset_active_fn
*
active
;
...
...
This diff is collapsed.
Click to expand it.
kernel/regset.c
+
5
−
19
View file @
1e6986c9
...
@@ -11,7 +11,7 @@ static int __regset_get(struct task_struct *target,
...
@@ -11,7 +11,7 @@ static int __regset_get(struct task_struct *target,
void
*
p
=
*
data
,
*
to_free
=
NULL
;
void
*
p
=
*
data
,
*
to_free
=
NULL
;
int
res
;
int
res
;
if
(
!
regset
->
get
&&
!
regset
->
regset_get
)
if
(
!
regset
->
regset_get
)
return
-
EOPNOTSUPP
;
return
-
EOPNOTSUPP
;
if
(
size
>
regset
->
n
*
regset
->
size
)
if
(
size
>
regset
->
n
*
regset
->
size
)
size
=
regset
->
n
*
regset
->
size
;
size
=
regset
->
n
*
regset
->
size
;
...
@@ -20,28 +20,14 @@ static int __regset_get(struct task_struct *target,
...
@@ -20,28 +20,14 @@ static int __regset_get(struct task_struct *target,
if
(
!
p
)
if
(
!
p
)
return
-
ENOMEM
;
return
-
ENOMEM
;
}
}
if
(
regset
->
regset_get
)
{
res
=
regset
->
regset_get
(
target
,
regset
,
res
=
regset
->
regset_get
(
target
,
regset
,
(
struct
membuf
){.
p
=
p
,
.
left
=
size
});
(
struct
membuf
){.
p
=
p
,
.
left
=
size
});
if
(
res
<
0
)
{
if
(
res
<
0
)
{
kfree
(
to_free
);
return
res
;
}
*
data
=
p
;
return
size
-
res
;
}
res
=
regset
->
get
(
target
,
regset
,
0
,
size
,
p
,
NULL
);
if
(
unlikely
(
res
<
0
))
{
kfree
(
to_free
);
kfree
(
to_free
);
return
res
;
return
res
;
}
}
*
data
=
p
;
*
data
=
p
;
if
(
regset
->
get_size
)
{
// arm64-only kludge, will go away
return
size
-
res
;
unsigned
max_size
=
regset
->
get_size
(
target
,
regset
);
if
(
size
>
max_size
)
size
=
max_size
;
}
return
size
;
}
}
int
regset_get
(
struct
task_struct
*
target
,
int
regset_get
(
struct
task_struct
*
target
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment