Renesas Emulator System M3T-MR100 User Manual

Page 117

Advertising
background image

- 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.

Advertising