11-13-2015
Since you are in kernel mode context you most likely need a spinlock. What you have is called a critical section.
5.5. Spinlocks discusses spinlocks in general.
http://tuxthink.blogspot.com/2013/06...x-example.html
Since you asked this question I would recommend lots of reading on your own. FIRST. It is easy to crash or hang the system with slightly less than perfect code. Debugging kernel code can be painful, some debugging tools may still require using two physically separate computers.
It is easier to do your homework first. Write dirt simple code for practice, first.
This User Gave Thanks to jim mcnamara For This Post:
8 More Discussions You Might Find Interesting
1. Programming
Hi,
I am trying to write stuff to a shared memory using a writer, and reading the corresponding stuff using a reader. I am facing problems while releasing the lock, as a result of which I am having segmentation faults. The code is as follows...
/********** writer.c ***********/
... (1 Reply)
Discussion started by: jacques83
1 Replies
2. Red Hat
hi friends
i have a small problem,in my redhat enterprise linux system screen lock is not working
if i click screen lock no action takes place...
so is there any solution to fix this problem or any alternate method available please let me know....
waiting for replys.......
thanks... (2 Replies)
Discussion started by: madhusudankh
2 Replies
3. Solaris
Hi,
I amnot able to execute any svm command. it gives the below message and hangs:
# metadetach d50 d30
metadetach: waiting on /etc/lvm/lock
^Cmetadetach: Interrupt
# metaclear d50
metaclear: waiting on /etc/lvm/lock
^Cmetaclear: Interrupt
Please advice.
Regards,
Sagar. (4 Replies)
Discussion started by: sag71155
4 Replies
4. Red Hat
Hi,
I want to lock the file in linux and the file cannot be edit or modify by other .I know in perl, there is function flock , but it is not worked.
The file can be modifed and edit even if it is locked by flock .
Any other way to lock the file and so other cannot edit or modifed it ????
Any... (7 Replies)
Discussion started by: chuikingman
7 Replies
5. Red Hat
Hello all,
If anyone has time, I have a few questions:
How do I do the following in Linux. We are using Red Hat and Oracle Enterprise Linux, which is based on Red Hat too.
1. How to lock the account after a few (like 3) invalid password attempts?
2. How do you lock a screen after 30... (1 Reply)
Discussion started by: nstarz
1 Replies
6. UNIX for Advanced & Expert Users
Hi all,
I have to test some user priviliges. The goal is to be sure that an unauthorized user can't restart some modules (ssh, mysql etc...).
I'm trying to automate it with a shell script but in same cases I got the syslog broadcast message.
Is there any way to simply get a return code... (3 Replies)
Discussion started by: Dedalus
3 Replies
7. UNIX for Dummies Questions & Answers
hi all
this s quite a foolish problem. I seem to hav pressed some keys s.t in unix, my letters are comin in caps and with caps lock on, i am getting lowercase letters. :o
Pls help.
Also is there any reference or manual where i can check in case such problems arrise?
thanx in advance
curiosity (4 Replies)
Discussion started by: curiosity
4 Replies
8. Red Hat
I'm having a weird problem with a RHEL6 workstation. When the screen lock is activated manually the system will lock and the screens will go blank. Once I try to unlock the system, the monitor will just flicker and won't respond. I tried the combination CTRL, ALT, Backspace and it did not work,... (4 Replies)
Discussion started by: goose25
4 Replies
flock(2) System Calls Manual flock(2)
Name
flock - apply or remove an advisory lock on an open file
Syntax
#include <sys/file.h>
#define LOCK_SH 1 /* shared lock */
#define LOCK_EX 2 /* exclusive lock */
#define LOCK_NB 4 /* don't block when locking */
#define LOCK_UN 8 /* unlock */
flock(fd, operation)
int fd, operation;
Description
The system call applies or removes an advisory lock on the file associated with the file descriptor, fd. A lock is applied by specifying
an operation parameter that is the inclusive OR of LOCK_SH or LOCK_EX and, possibly, LOCK_NB. To unlock an existing lock, operation should
be LOCK_UN.
Advisory locks allow cooperating processes to perform consistent operations on files, but do not guarantee consistency; that is, processes
might still access files without using advisory locks, possibly resulting in inconsistencies.
The locking mechanism allows two types of locks: shared locks and exclusive locks. At any time, multiple shared locks can be applied to a
file. However, multiple exclusive locks, or shared and exclusive locks cannot be applied simultaneously on a file.
A shared lock can be upgraded to be an exclusive lock, and an exclusive lock can become shared, simply by specifying the appropriate lock
type. This change results in the previous lock being released and the new lock applied. When upgrading, do not include LOCK_NB in opera-
tion, because there is a possibility that other processes have requests for locks, or have gained or released a lock.
Requesting a lock on an object that is already locked normally causes the caller to blocked until the lock can be acquired. If LOCK_NB is
included in operation, the call is not blocked; instead, the call fails and the error EWOULDBLOCK is returned.
Locks are on files, not file descriptors. That is, file descriptors duplicated through or call do not result in multiple instances of a
lock, but rather multiple references to a single lock. If a process holding a lock on a file forks and the child explicitly unlocks the
file, the parent loses its lock.
Processes blocked awaiting a lock may be awakened by signals.
Return Values
Zero is returned if the operation was successful; on an error, a -1 is returned and an error code is stored in the global variable, errno.
Diagnostics
The call fails under the following conditions:
[EWOULDBLOCK] The file is locked and the LOCK_NB option was specified.
[EBADF] The argument fd is an invalid descriptor.
[EINVAL] The argument fd refers to an object other than a file.
[EOPNOTSUPP] Invalid operation is requested. The argument fd refers to a socket.
Restrictions
File region locking is not supported over NFS.
See Also
close(2), dup(2), execve(2), fork(2), open(2)
flock(2)