opnsense-src/sys/compat/linuxkpi/common/include/linux
Vladimir Kondratyev b6f87b78b5 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
2022-05-17 15:10:20 +03:00
..
acpi.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
anon_inodes.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
atomic.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
average.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
backlight.h linuxkpi: Add backlight_device_set_brightness 2022-02-17 09:31:12 +01:00
bcd.h LinuxKPI: make bcd.h use libkern 2021-11-18 23:10:34 +00:00
bitfield.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
bitmap.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
bitops.h LinuxKPI: add __ffs64() 2022-02-14 00:12:09 +00:00
bottom_half.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
bsearch.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
cache.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
capability.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
cdev.h linuxkpi: Move cdev_alloc into .c file 2022-04-04 23:05:59 -06:00
clocksource.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
compat.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
compiler.h LinuxKPI: add sizeof_field() 2022-02-14 00:13:56 +00:00
completion.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
cpu.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
crc32.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
dcache.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
debugfs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
delay.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
devcoredump.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
device.h linuxkpi: Move class_create to .c file 2022-04-04 23:05:43 -06:00
dma-attrs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
dma-mapping.h linuxkpi: Implement dma_max_mapping_size 2022-03-29 13:19:32 +02:00
dmapool.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
dmi.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
efi.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
err.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
errno.h LinuxKPI: add more errno 2022-02-14 00:15:41 +00:00
etherdevice.h LinuxKPI: add eth_random_addr() and device_get_mac_address() 2022-02-14 00:17:14 +00:00
ethtool.h LinuxKPI: add an initial ethtool.h 2022-02-14 00:19:08 +00:00
export.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
file.h fd: make fget_unlocked take a thread argument 2022-02-11 12:29:26 +00:00
firmware.h LinuxKPI: add firmware loading support 2021-01-28 16:05:32 +00:00
fs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
gcd.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
gfp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
hardirq.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
hash.h LinuxKPI: Implement linux/hashtable.h for FreeBSD. 2022-05-12 16:32:47 +02:00
hashtable.h LinuxKPI: Implement linux/hashtable.h for FreeBSD. 2022-05-12 16:32:47 +02:00
highmem.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
hrtimer.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
i2c-algo-bit.h linuxkpi: Add i2c support 2022-01-25 16:15:39 +01:00
i2c.h linuxkpi: Add i2c support 2022-01-25 16:15:39 +01:00
idr.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
ieee80211.h LinuxKPI: 802.11: cleanup debugging 2022-03-24 19:13:45 +00:00
if_arp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
if_ether.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
if_vlan.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
in.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
in6.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
inetdevice.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
interrupt.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
interval_tree.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
interval_tree_generic.h LinuxKPI: Implement interval_tree 2022-01-10 22:49:36 +03:00
io-mapping.h linuxkpi: move io_mapping_create_wc to .c 2022-04-04 23:06:37 -06:00
io.h linuxkpi: Use an inline function for the _ioremap_attr stub. 2022-04-13 16:08:22 -07:00
ioctl.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
iopoll.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
ip.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
irq_work.h linuxkpi: Change irq_work_queue to return a bool 2022-03-28 18:31:31 +02:00
irqreturn.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
jhash.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
jiffies.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
jump_label.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
kdev_t.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
kernel.h LinuxKPI: add ALIGN_DOWN() 2022-04-08 18:27:49 +00:00
kmod.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
kobject.h linuxkpi: move kobject_create to .c file 2022-04-04 23:05:26 -06:00
kref.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
kthread.h LinuxKPI: Implement kthread_worker related functions 2022-05-17 15:10:20 +03:00
ktime.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
list.h linuxkpi: Add list_rotate_to_front 2022-02-17 09:30:46 +01:00
llist.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
lockdep.h LinuxKPI: lockdep add lockdep_assert_not_held() 2022-02-15 23:15:00 +00:00
log2.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
math64.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
miscdevice.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
mm.h linuxkpi: Add mmap_lock.h 2022-02-17 09:31:51 +01:00
mm_types.h linuxkpi: Add mmap_lock.h 2022-02-17 09:31:51 +01:00
mmap_lock.h linuxkpi: Add mmap_lock.h 2022-02-17 09:31:51 +01:00
mod_devicetable.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
module.h LinuxKPI: add MODULE_IMPORT_NS() 2022-02-24 19:59:25 +00:00
moduleparam.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
mutex.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
net.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
net_dim.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
netdev_features.h LinuxKPI: add NETIF_F_HW_CSUM to netdev_features.h 2022-02-14 00:22:24 +00:00
netdevice.h LinuxKPI: import beginning of a new version of netdevice.h 2021-12-27 18:47:25 +00:00
nl80211.h LinuxKPI: update 802.11 headers 2022-02-22 22:57:31 +00:00
notifier.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
numa.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
overflow.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
page.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
pagemap.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
pci.h linuxkpi: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-06 15:46:58 -07:00
pci_ids.h LinuxKPI: add pci_ids.h 2021-03-24 22:35:18 +00:00
pfn.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
pfn_t.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
pid.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
pm.h LinuxKPI: upstream a collection of drm-kmod conflicting changes 2021-01-28 16:15:12 +00:00
pm_qos.h LinuxKPI: Add cpu_latency_qos_request_active stub to linux/pm_qos.h 2022-05-17 15:10:20 +03:00
poison.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
poll.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
power_supply.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
preempt.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
prefetch.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
printk.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
radix-tree.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
random.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
ratelimit.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
rbtree.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
rculist.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
rcupdate.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
reboot.h linuxkpi: Add orderly_poweroff 2022-02-17 09:31:25 +01:00
refcount.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
rwlock.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
rwsem.h linuxkpi: Add down_write_nest_lock 2022-03-23 14:37:53 +01:00
scatterlist.h linuxkpi: Add for_each_sgtable_dma_sg and for_each_sgtable_dma_page 2022-03-29 13:19:32 +02:00
sched.h LinuxKPI: Implement sched_set_fifo(_low) functions 2022-05-17 15:10:20 +03:00
semaphore.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
seq_file.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
seqlock.h linuxkpi: Mitigate a seqlock livelock 2022-04-25 09:13:03 -04:00
shmem_fs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
shrinker.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
sizes.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
skbuff.h LinuxKPI: skbuff: start implementing skb_copy() 2022-04-15 15:54:03 +00:00
slab.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
smp.h LinuxKPI: Add comment describing proper use of the on_each_cpu() function. 2022-03-16 15:44:07 +01:00
socket.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
sort.h LinuxKPI: Add sort() wrapper. 2022-01-10 22:49:38 +03:00
spinlock.h Revert "LinuxKPI: Allow spin_lock_irqsave to be called within a critical section" 2022-01-27 01:27:01 +03:00
srcu.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
string.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
stringify.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
swap.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
sysfs.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
tcp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
time.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
timer.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
tracepoint.h LinuxKPI; add the beginning of a tracepoint.h implementation 2022-02-14 00:24:43 +00:00
types.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
uaccess.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
udp.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49: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-14 23:51:51 +00:00
vmalloc.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
wait.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
wait_bit.h linuxkpi: Add __var_waitqueue 2022-02-17 09:30:27 +01:00
workqueue.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
ww_mutex.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
xarray.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00