#include <linux/list.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/workqueue.h>
#include "server.h"
#include "connection.h"
#include "ksmbd_work.h"
#include "mgmt/ksmbd_ida.h"
static struct kmem_cache *work_cache;
static struct workqueue_struct *ksmbd_wq;
struct ksmbd_work *ksmbd_alloc_work_struct(void)
{ … }
void ksmbd_free_work_struct(struct ksmbd_work *work)
{ … }
void ksmbd_work_pool_destroy(void)
{ … }
int ksmbd_work_pool_init(void)
{ … }
int ksmbd_workqueue_init(void)
{ … }
void ksmbd_workqueue_destroy(void)
{ … }
bool ksmbd_queue_work(struct ksmbd_work *work)
{ … }
static inline void __ksmbd_iov_pin(struct ksmbd_work *work, void *ib,
unsigned int ib_len)
{ … }
static int __ksmbd_iov_pin_rsp(struct ksmbd_work *work, void *ib, int len,
void *aux_buf, unsigned int aux_size)
{ … }
int ksmbd_iov_pin_rsp(struct ksmbd_work *work, void *ib, int len)
{ … }
int ksmbd_iov_pin_rsp_read(struct ksmbd_work *work, void *ib, int len,
void *aux_buf, unsigned int aux_size)
{ … }
int allocate_interim_rsp_buf(struct ksmbd_work *work)
{ … }