Renesas M3T-MR100 Network Card User Manual


 
- 101 -
sig_sem Release semaphore resource
isig_sem Release semaphore resource (handler only)
[
[
[
[
C
C
L
L
a
a
n
n
g
g
u
u
a
a
g
g
e
e
A
A
P
P
I
I
]
]
]
]
ER ercd = sig_sem( ID semid );
ER ercd = isig_sem( ID semid );
z
z
P
P
a
a
r
r
a
a
m
m
e
e
t
t
e
e
r
r
s
s
ID semid Semaphore ID number to which returned
z
z
R
R
e
e
t
t
u
u
r
r
n
n
P
P
a
a
r
r
a
a
m
m
e
e
t
t
e
e
r
r
s
s
ER ercd Terminated normally (E_OK) or error code
[
[
[
[
A
A
s
s
s
s
e
e
m
m
b
b
l
l
y
y
l
l
a
a
n
n
g
g
u
u
a
a
g
g
e
e
A
A
P
P
I
I
]
]
]
]
.include mr100.inc
sig_sem SEMID
isig_sem SEMID
z
z
P
P
a
a
r
r
a
a
m
m
e
e
t
t
e
e
r
r
s
s
SEMID Semaphore ID number to which returned
z
z
R
R
e
e
g
g
i
i
s
s
t
t
e
e
r
r
c
c
o
o
n
n
t
t
e
e
n
n
t
t
s
s
a
a
f
f
t
t
e
e
r
r
s
s
e
e
r
r
v
v
i
i
c
c
e
e
c
c
a
a
l
l
l
l
i
i
s
s
i
i
s
s
s
s
u
u
e
e
d
d
Register name Content after service call is issued
R0 Error code
R2 Semaphore ID number to which returned
[
[
[
[
E
E
r
r
r
r
o
o
r
r
c
c
o
o
d
d
e
e
]
]
]
]
E_QOVR Queuing overflow
[
[
[
[
F
F
u
u
n
n
c
c
t
t
i
i
o
o
n
n
a
a
l
l
d
d
e
e
s
s
c
c
r
r
i
i
p
p
t
t
i
i
o
o
n
n
]
]
]
]
This service call releases one resource to the semaphore indicated by semid.
If tasks are enqueued in a waiting queue for the target semaphore, the task at the top of the queue is placed into READY
state. Conversely, if no tasks are enqueued in that waiting queue, the semaphore resource count is incremented by 1. If an
attempt is made to return resources (sig_sem or isig_sem service call) causing the semaphore resource count value to ex-
ceed the maximum value specified in a configuration file (maxsem), the error code E_QOVR is returned to the service call
issuing task, with the semaphore count value left intact.
If this service call is to be issued from task context, use sig_sem; if issued from non-task context, use isig_sem.