Sponsored Content
Top Forums Programming Question on interrupts and user space app Post 302464339 by jim mcnamara on Tuesday 19th of October 2010 09:32:32 PM
Old 10-19-2010
1. yes, the kernel can issue asyncronous interrupts. In UNIX they amount to signals. The kernel also preempts processes in what is known as a process context switch. i.e., another process gets the cpu. Processes experience this as a SIGINT - interrupt signal.

2. Using aio or sockets involves asynchronous delivery of data. Normally these are under the surveillance of poll() or select().

Based on your question, you might want to understand a syscall. These are defined as numeric values which amount to function pointers into the true system API.

For example, write() is a system function. Only it is not called "write" in the kernel, it is a syscall. A vector. read(), open, select(), etc are all like this. Because of POSIX and probably common sense, the unix kernel people all decided it was a Good Idea to present common entry point names that get translated at run time into a vector or function pointer.

Next, you ask kernel questions. Often it seems. If that interests you, get a linux distro,
put it on an x86 box, download kernel source, and read:

Amazon.com: Understanding the Linux Kernel, Third Edition (9780596005658): Daniel P. Bovet, Marco Cesati Ph.D.: Books

It comes as an ebook at oreilly.com. This is your path to what you want to know.
This User Gave Thanks to jim mcnamara For This Post:
 

9 More Discussions You Might Find Interesting

1. Filesystems, Disks and Memory

Does unix use interrupts?

I'm a freshman here and I have a simple question. Does unix use interrupts which is like Dos? Are they the same? Thx.:cool: (6 Replies)
Discussion started by: Frank_M
6 Replies

2. UNIX for Dummies Questions & Answers

catching interrupts

hey i have been facing a problem,can you tell me if we can catch ctrl d in unix i have tried and sucessfully catched and disabled ctrl-c and ctrl -z but am not sure if we can do the same for CTRL-D, so got any clue mail on he forum or ...i mean c programming in Unix thats what i am working on (1 Reply)
Discussion started by: toughguy2handle
1 Replies

3. UNIX for Dummies Questions & Answers

Traps and Interrupts

Well, I don't know where exactly to ask this doubt so I'm asking in the newbie section. I was reading about traps and interrupts when I thought of traps as something that cease the control of the OS from the user and interrupts that cease the control yet provide support for multitasking. Am I right... (3 Replies)
Discussion started by: Legend986
3 Replies

4. UNIX for Advanced & Expert Users

wake up user space thread from kernel space ISR

Hello, I'm searching for a proper way to let the kernel space ISR(implemented in a kernel module) wake up a user space thread on a hardware interrupt. Except for sending a real-time signal, is it possible to use a semaphore? I've searched it on google, but it seems impossible to share a... (0 Replies)
Discussion started by: aaronwong
0 Replies

5. Programming

Getting notified in user-space on interrupts

Hi, I'm working on an AMD opteron running Linux 2.6.28.6 I want to preload a module specific register (MSR) with a value to have it overflow after a number of a specific event counts. As I understand, when the counter in the register overflows, an interrupt will be generated and handled by the... (2 Replies)
Discussion started by: mylinuxforums
2 Replies

6. Programming

Signalling interrupts to user space

What is the simplest function I can use to signal an interrupt from kernel module to user space. I knw the usr app pid in my module. Also can someone explain the parameters in kill_fasync and send_sig (0 Replies)
Discussion started by: dragonpoint
0 Replies

7. UNIX for Dummies Questions & Answers

Space Question?

hi guys I was presented a LUN from a storage 85GB. fdisk -l shows 85GB space cool but after I formatted the partition using fdisk and mkfs.ext3 I only get 75GB space available why is that? why too many GB lost? thanks a lot (1 Reply)
Discussion started by: karlochacon
1 Replies

8. UNIX for Beginners Questions & Answers

Accessing the user space of one OS from within another.

Recently, I setup a dual boot on this PC. I can currently jump from Ubuntu 12.04 and 16.04. What I would like to be able to do is access the home directory of my 16.04 OS from within the 12.04, is that possible? I can mount the partition of the hard drive where 16.04 lives from within 12.04 but it... (4 Replies)
Discussion started by: Circuits
4 Replies

9. Programming

Wuhan Coronavirus Status App for China - Rapid Prototype using MQTT and the IoT OnOff IOS App

With a little bit of work, was able to build a nice "Wuhan Coronavirus Status" app using MQTT and the IoT-OnOff app. More on this technique here: ESP32 (ESP-WROOM-32) as an MQTT Client Subscribed to Linux Server Load Average Messages The result turned out nice, I think. I like the look and... (10 Replies)
Discussion started by: Neo
10 Replies
ddi_intr_hilevel(9F)					   Kernel Functions for Drivers 				      ddi_intr_hilevel(9F)

NAME
ddi_intr_hilevel - indicate interrupt handler type SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int ddi_intr_hilevel(dev_info_t *dip, uint_t inumber); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
dip Pointer to dev_info structure. inumber Interrupt number. DESCRIPTION
ddi_intr_hilevel() returns non-zero if the specified interrupt is a "high level" interrupt. High level interrupts must be handled without using system services that manipulate thread or process states, because these interrupts are not blocked by the scheduler. In addition, high level interrupt handlers must take care to do a minimum of work because they are not preemptable. A typical high level interrupt handler would put data into a circular buffer and schedule a soft interrupt by calling ddi_trigger_soft- intr(). The circular buffer could be protected by using a mutex that was properly initialized for the interrupt handler. ddi_intr_hilevel() can be used before calling ddi_add_intr() to decide which type of interrupt handler should be used. Most device drivers are designed with the knowledge that the devices they support will always generate low level interrupts, however some devices, for example those using SBus or VME bus level 6 or 7 interrupts must use this test because on some machines those interrupts are high level (above the scheduler level) and on other machines they are not. RETURN VALUES
non-zero indicates a high-level interrupt. CONTEXT
These functions can be called from user or interrupt context. SEE ALSO
ddi_add_intr(9F), mutex(9F) Writing Device Drivers SunOS 5.10 7 Jan 1992 ddi_intr_hilevel(9F)
All times are GMT -4. The time now is 01:50 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy