cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

async-thread.h (1499B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Copyright (C) 2007 Oracle.  All rights reserved.
      4 * Copyright (C) 2014 Fujitsu.  All rights reserved.
      5 */
      6
      7#ifndef BTRFS_ASYNC_THREAD_H
      8#define BTRFS_ASYNC_THREAD_H
      9
     10#include <linux/workqueue.h>
     11
     12struct btrfs_fs_info;
     13struct btrfs_workqueue;
     14struct btrfs_work;
     15typedef void (*btrfs_func_t)(struct btrfs_work *arg);
     16typedef void (*btrfs_work_func_t)(struct work_struct *arg);
     17
     18struct btrfs_work {
     19	btrfs_func_t func;
     20	btrfs_func_t ordered_func;
     21	btrfs_func_t ordered_free;
     22
     23	/* Don't touch things below */
     24	struct work_struct normal_work;
     25	struct list_head ordered_list;
     26	struct btrfs_workqueue *wq;
     27	unsigned long flags;
     28};
     29
     30struct btrfs_workqueue *btrfs_alloc_workqueue(struct btrfs_fs_info *fs_info,
     31					      const char *name,
     32					      unsigned int flags,
     33					      int limit_active,
     34					      int thresh);
     35void btrfs_init_work(struct btrfs_work *work, btrfs_func_t func,
     36		     btrfs_func_t ordered_func, btrfs_func_t ordered_free);
     37void btrfs_queue_work(struct btrfs_workqueue *wq,
     38		      struct btrfs_work *work);
     39void btrfs_destroy_workqueue(struct btrfs_workqueue *wq);
     40void btrfs_workqueue_set_max(struct btrfs_workqueue *wq, int max);
     41struct btrfs_fs_info * __pure btrfs_work_owner(const struct btrfs_work *work);
     42struct btrfs_fs_info * __pure btrfs_workqueue_owner(const struct btrfs_workqueue *wq);
     43bool btrfs_workqueue_normal_congested(const struct btrfs_workqueue *wq);
     44void btrfs_flush_workqueue(struct btrfs_workqueue *wq);
     45
     46#endif