Commit a2f8aefd authored by Kirill Tkhai's avatar Kirill Tkhai Committed by Pavel Emelyanov

aio: Make struct aio_ring visible for everybody

Move the declaration from .c to header file.
Also rename parasite_check_aios() since we
have one more function with the same name.
Signed-off-by: 's avatarKirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent a3ecca2e
...@@ -70,7 +70,7 @@ unsigned long aio_rings_args_size(struct vm_area_list *vmas) ...@@ -70,7 +70,7 @@ unsigned long aio_rings_args_size(struct vm_area_list *vmas)
vmas->nr_aios * sizeof(struct parasite_aio); vmas->nr_aios * sizeof(struct parasite_aio);
} }
int parasite_check_aios(struct parasite_ctl *ctl, struct vm_area_list *vmas) int parasite_collect_aios(struct parasite_ctl *ctl, struct vm_area_list *vmas)
{ {
struct vma_area *vma; struct vma_area *vma;
struct parasite_check_aios_args *aa; struct parasite_check_aios_args *aa;
......
...@@ -1263,7 +1263,7 @@ static int dump_one_task(struct pstree_item *item) ...@@ -1263,7 +1263,7 @@ static int dump_one_task(struct pstree_item *item)
goto err_cure_imgset; goto err_cure_imgset;
} }
ret = parasite_check_aios(parasite_ctl, &vmas); /* FIXME -- merge with above */ ret = parasite_collect_aios(parasite_ctl, &vmas); /* FIXME -- merge with above */
if (ret) { if (ret) {
pr_err("Failed to check aio rings (pid: %d)\n", pid); pr_err("Failed to check aio rings (pid: %d)\n", pid);
goto err_cure_imgset; goto err_cure_imgset;
......
#ifndef __CR_AIO_H__ #ifndef __CR_AIO_H__
#define __CR_AIO_H__ #define __CR_AIO_H__
#include <linux/aio_abi.h>
#include "images/mm.pb-c.h" #include "images/mm.pb-c.h"
int dump_aio_ring(MmEntry *mme, struct vma_area *vma); int dump_aio_ring(MmEntry *mme, struct vma_area *vma);
void free_aios(MmEntry *mme); void free_aios(MmEntry *mme);
struct parasite_ctl; struct parasite_ctl;
int parasite_check_aios(struct parasite_ctl *, struct vm_area_list *); int parasite_collect_aios(struct parasite_ctl *, struct vm_area_list *);
unsigned long aio_rings_args_size(struct vm_area_list *); unsigned long aio_rings_args_size(struct vm_area_list *);
struct aio_ring {
unsigned id; /* kernel internal index number */
unsigned nr; /* number of io_events */
unsigned head; /* Written to by userland or under ring_lock
* mutex by aio_read_events_ring(). */
unsigned tail;
unsigned magic;
unsigned compat_features;
unsigned incompat_features;
unsigned header_length; /* size of aio_ring */
struct io_event io_events[0];
};
struct rst_aio_ring { struct rst_aio_ring {
unsigned long addr; unsigned long addr;
unsigned long len; unsigned long len;
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "parasite-vdso.h" #include "parasite-vdso.h"
#include "log.h" #include "log.h"
#include "tty.h" #include "tty.h"
#include "aio.h"
#include <string.h> #include <string.h>
...@@ -384,22 +385,6 @@ static inline int tty_ioctl(int fd, int cmd, int *arg) ...@@ -384,22 +385,6 @@ static inline int tty_ioctl(int fd, int cmd, int *arg)
#define AIO_RING_COMPAT_FEATURES 1 #define AIO_RING_COMPAT_FEATURES 1
#define AIO_RING_INCOMPAT_FEATURES 0 #define AIO_RING_INCOMPAT_FEATURES 0
struct aio_ring {
unsigned id; /* kernel internal index number */
unsigned nr; /* number of io_events */
unsigned head; /* Written to by userland or under ring_lock
* mutex by aio_read_events_ring(). */
unsigned tail;
unsigned magic;
unsigned compat_features;
unsigned incompat_features;
unsigned header_length; /* size of aio_ring */
/* struct io_event io_events[0]; */
};
static int sane_ring(struct aio_ring *ring) static int sane_ring(struct aio_ring *ring)
{ {
return ring->magic == AIO_RING_MAGIC && return ring->magic == AIO_RING_MAGIC &&
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment