96f37eabe7
thread_with_stdio now knows how to handle input - fsck can now prompt to fix errors. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _BCACHEFS_THREAD_WITH_FILE_H
|
|
#define _BCACHEFS_THREAD_WITH_FILE_H
|
|
|
|
#include "thread_with_file_types.h"
|
|
|
|
struct task_struct;
|
|
|
|
struct thread_with_file {
|
|
struct task_struct *task;
|
|
int ret;
|
|
bool done;
|
|
};
|
|
|
|
void bch2_thread_with_file_exit(struct thread_with_file *);
|
|
int bch2_run_thread_with_file(struct thread_with_file *,
|
|
const struct file_operations *,
|
|
int (*fn)(void *));
|
|
|
|
struct thread_with_stdio {
|
|
struct thread_with_file thr;
|
|
struct stdio_redirect stdio;
|
|
DARRAY(char) output2;
|
|
void (*exit)(struct thread_with_stdio *);
|
|
};
|
|
|
|
static inline void thread_with_stdio_done(struct thread_with_stdio *thr)
|
|
{
|
|
thr->thr.done = true;
|
|
thr->stdio.done = true;
|
|
wake_up(&thr->stdio.input_wait);
|
|
wake_up(&thr->stdio.output_wait);
|
|
}
|
|
|
|
int bch2_run_thread_with_stdio(struct thread_with_stdio *,
|
|
void (*exit)(struct thread_with_stdio *),
|
|
int (*fn)(void *));
|
|
int bch2_stdio_redirect_read(struct stdio_redirect *, char *, size_t);
|
|
int bch2_stdio_redirect_readline(struct stdio_redirect *, char *, size_t);
|
|
|
|
#endif /* _BCACHEFS_THREAD_WITH_FILE_H */
|