opnsense-src/sys/compat/linuxkpi/common/include/linux
Vladimir Kondratyev 2c9bb9c618 LinuxKPI: Implement kthread_worker related functions
Kthread worker is a single thread workqueue which can be used in cases
where specific kthread association is necessary, for example, when it
should have RT priority or be assigned to certain cgroup.

This change implements Linux v4.9 interface which mostly hides kthread
internals from users thus allowing to use ordinary taskqueue(9) KPI.
As kthread worker prohibits enqueueing of already pending or canceling
tasks some minimal changes to taskqueue(9) were done.
taskqueue_enqueue_flags() was added to taskqueue KPI which accepts extra
flags parameter. It contains one or more of the following flags:

TASKQUEUE_FAIL_IF_PENDING - taskqueue_enqueue_flags() fails if the task
    is already scheduled to execution. EEXIST is returned and the
    ta_pending counter value remains unchanged.
TASKQUEUE_FAIL_IF_CANCELING - taskqueue_enqueue_flags() fails if the
    task is in the canceling state and ECANCELED is returned.

Required by:	drm-kmod 5.10

MFC after:	1 week
Reviewed by:	hselasky, Pau Amma (docs)
Differential Revision:	https://reviews.freebsd.org/D35051

(cherry picked from commit b6f87b78b5)
2022-06-02 00:50:14 +03:00
..
acpi.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
anon_inodes.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
atomic.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
average.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
backlight.h linuxkpi: Add backlight_device_set_brightness 2022-03-05 12:12:44 +01:00
bcd.h LinuxKPI: add bcd.h 2021-11-21 18:15:58 +00:00
bitfield.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
bitmap.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
bitops.h LinuxKPI: add __ffs64() 2022-02-20 16:24:17 +00:00
bottom_half.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
bsearch.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
cache.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
capability.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
cdev.h linuxkpi: Move cdev_alloc into .c file 2022-04-05 08:40:10 -06:00
clocksource.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
compat.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
compiler.h LinuxKPI: add sizeof_field() 2022-02-20 16:24:22 +00:00
completion.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
cpu.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
crc32.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
dcache.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
debugfs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
delay.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
devcoredump.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
device.h linuxkpi: Move class_create to .c file 2022-04-05 08:40:10 -06:00
dma-attrs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
dma-mapping.h linuxkpi: Implement dma_max_mapping_size 2022-04-27 18:38:06 +02:00
dmapool.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
dmi.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
efi.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
err.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
errno.h LinuxKPI: add more errno 2022-02-20 16:23:16 +00:00
etherdevice.h LinuxKPI: add eth_random_addr() and device_get_mac_address() 2022-02-20 16:23:05 +00:00
ethtool.h LinuxKPI: add an initial ethtool.h 2022-02-20 16:23:00 +00:00
export.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
file.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
firmware.h LinuxKPI: add firmware loading support 2021-02-02 11:50:38 +00:00
fs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
gcd.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
gfp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
hardirq.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
hash.h LinuxKPI: Implement linux/hashtable.h for FreeBSD. 2022-06-02 00:50:13 +03:00
hashtable.h LinuxKPI: Implement linux/hashtable.h for FreeBSD. 2022-06-02 00:50:13 +03:00
highmem.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
hrtimer.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
idr.h linuxkpi: implement ida_alloc() 2022-05-07 13:08:55 +01:00
ieee80211.h LinuxKPI: 802.11: cleanup debugging 2022-03-27 18:13:00 +00:00
if_arp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
if_ether.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
if_vlan.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
in.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
in6.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
inetdevice.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
interrupt.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
interval_tree.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
interval_tree_generic.h LinuxKPI: Implement interval_tree 2022-01-22 22:34:35 +03:00
io-mapping.h linuxkpi: move io_mapping_create_wc to .c 2022-04-05 08:40:11 -06:00
io.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
ioctl.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
iopoll.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
ip.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
irq_work.h linuxkpi: Change irq_work_queue to return a bool 2022-04-27 18:38:06 +02:00
irqreturn.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
jhash.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
jiffies.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
jump_label.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
kdev_t.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
kernel.h linuxkpi: Allow BUILD_BUG_ON in if statements without braces 2022-05-07 13:08:46 +01:00
kmod.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
kobject.h linuxkpi: move kobject_create to .c file 2022-04-05 08:40:10 -06:00
kref.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
kthread.h LinuxKPI: Implement kthread_worker related functions 2022-06-02 00:50:14 +03:00
ktime.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
list.h linuxkpi: Add list_rotate_to_front 2022-03-05 12:12:43 +01:00
llist.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
lockdep.h LinuxKPI: lockdep add lockdep_assert_not_held() 2022-02-20 16:25:03 +00:00
log2.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
math64.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
miscdevice.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
mm.h linuxkpi: Add mmap_lock.h 2022-03-05 12:12:44 +01:00
mm_types.h linuxkpi: Add mmap_lock.h 2022-03-05 12:12:44 +01:00
mmap_lock.h linuxkpi: Add mmap_lock.h 2022-03-05 12:12:44 +01:00
mod_devicetable.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
module.h LinuxKPI: add MODULE_IMPORT_NS() 2022-02-27 23:41:54 +00:00
moduleparam.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
mutex.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
net.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
net_dim.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
netdev_features.h LinuxKPI: add NETIF_F_HW_CSUM to netdev_features.h 2022-02-20 16:23:27 +00:00
netdevice.h LinuxKPI: import beginning of a new version of netdevice.h 2021-12-30 18:27:31 +00:00
nl80211.h LinuxKPI: update 802.11 headers 2022-02-27 23:41:54 +00:00
notifier.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
numa.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
overflow.h <linux/overflow.h>: Don't use __has_builtin(). 2022-05-10 15:51:49 -07:00
page.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
pagemap.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
pci.h linuxkpi: Move lkpi_pcim_iomap_devres_find to .c file 2022-04-05 08:40:11 -06:00
pci_ids.h LinuxKPI: add pci_ids.h 2021-07-18 00:34:58 +00:00
pfn.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
pfn_t.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
pid.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
pm.h LinuxKPI: upstream a collection of drm-kmod conflicting changes 2021-02-02 11:51:15 +00:00
pm_qos.h LinuxKPI: Add cpu_latency_qos_request_active stub to linux/pm_qos.h 2022-06-02 00:50:14 +03:00
poison.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
poll.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
power_supply.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
preempt.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
prefetch.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
printk.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
radix-tree.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
random.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
ratelimit.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
rbtree.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
rculist.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
rcupdate.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
reboot.h linuxkpi: Add orderly_poweroff 2022-03-05 12:12:44 +01:00
refcount.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
rwlock.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
rwsem.h linuxkpi: Add down_write_nest_lock 2022-04-27 18:34:47 +02:00
scatterlist.h linuxkpi: Add sg_init_one 2022-05-07 12:57:31 +01:00
sched.h LinuxKPI: Implement sched_set_fifo(_low) functions 2022-06-02 00:50:14 +03:00
semaphore.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
seq_file.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
seqlock.h linuxkpi: Mitigate a seqlock livelock 2022-05-09 08:32:09 -04:00
shmem_fs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
shrinker.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
sizes.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
skbuff.h LinuxKPI: skbuff: start implementing skb_copy() 2022-04-18 09:32:58 +00:00
slab.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
smp.h LinuxKPI: Add comment describing proper use of the on_each_cpu() function. 2022-03-17 10:55:15 +01:00
socket.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
sort.h LinuxKPI: Add sort() wrapper. 2022-01-22 22:34:38 +03:00
spinlock.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
srcu.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
string.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
stringify.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
swap.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
sysfs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
tcp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
time.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
timer.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
tracepoint.h LinuxKPI; add the beginning of a tracepoint.h implementation 2022-02-20 16:22:41 +00:00
types.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
uaccess.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
udp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
usb.h linuxkpi whitespace cleanup 2018-03-23 15:50:01 +00:00
uuid.h LinuxKPI: add UUID_STRING_LEN and GUID_INIT to uuid.h 2022-02-20 16:24:38 +00:00
vmalloc.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
wait.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
wait_bit.h linuxkpi: Add __var_waitqueue 2022-03-05 12:12:43 +01:00
workqueue.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
ww_mutex.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00
xarray.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-22 22:34:38 +03:00