|
via Udemy |
Go to Course: https://www.udemy.com/course/interrupts-and-bottom-halves-in-deep/
What you will learn from this courseInterrupts and ExceptionsTypes of Interrupts and Exceptions: Level Triggerred, Edge Triggerred, Traps, FaultsProgrammable Interrput Controller, Advanced Programmable Interrupt Controller (APIC) - IO APIC, Local APICFind out information about your x86 CPU using CPUID InstructionWhat happens when there is interruptHow does CPU finds the interrupt handler: Interrupt Request, Interrupt Vector and Interrupt Descriptor TableInterrupt Handling and Statistics in Linux Kernel: Interrupt sharing, return values, IRQ AffinityLinux Driver for keyboard, mouse, ethernet interruptsWrite a Keylogger in Linux Kernel which will log all characters typedEnabling/Disabling InterruptsWhat happens when we add sleep and delay in interrupt handlerTop and Bottom Halves: Threaded IRQs,Softirqs, Tasklets and Workqueues (System Workqueues and own workqueues)Differences between softirqs, tasklets and workqueuesFiles/proc/cpuinfo/proc/interrupts/proc/irq/proc/softirqsAPI's/Macros/Structuresrequest_irq, irq_handler_tlocal_irq_enable, local_irq_disable, cli, seilocal_irq_save, local_irq_restoredisable_irq, enable_irqdisable_irq_nosync, synchronize_irqirqs_disabledin_interruptrequest_threaded_irqstruct softirq_action, NR_SOFTIRQSopen_softirq, raise_softirqin_irqlocal_softirq_pendingin_softirqlocal_bh_enable, local_bh_disablespin_lock_bh, spin_unlock_bhstruct tasklet_struct, DECLARE_TASKLET, DECLARE_TASKLET_DISABLED, tasklet_init, tasklet_schedule, tasklet_hi_scheduletasklet_trylock, tasklet_unlock, tasklet_disable, tasklet_disable_nosync, tasklet_enable, tasklet_killstruct workqueue_struct, struct work_struct, DECLARE_WORK, INIT_WORK, queue_work, queue_work_on, schedule_work, schedule_work_on, cancel_work_sync, flush_workstruct delayed_work, DELAYED_DECLARED_WORK, INIT_DELAYED_WORK, schedule_delayed_work, schedule_delayed_work_on, flush_delayed_work, cancel_delayed_workalloc_workqueue, destroy_workqueue, flush_workqueue, alloc_ordered_workqueue,Commandswatchlspcidmesg