| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | emx+gcc access to 16-bit-semaphore |
Hallo, All!
=== Cut ===
.PHONY: all default
CC=gcc
CFLAGS=-Wall -Zmt -pedantic -g -mprobe
AR=ar rcs
EMXOMFAR=emxomfar rc
SEMSRC=sem16.c
SEMOBJ=$(addsuffix .o,$(basename $(SEMSRC)))
SEMTGT=libsem16.a
.c.o:
$(CC) $(CFLAGS) -c $<
all: default
default:
$(CC) $(CFLAGS) $(PRODOPT) -c $(SEMSRC)
-{at}rm -f $(SEMTGT)
$(AR) $(SEMTGT) $(SEMOBJ)
$(SEMTGT): $(SEMOBJ)
-{at}rm -f ${at}
$(AR) ${at} $^
sem16.o: sem16.c
$(CC) -Wall -Zmt -g $(PRODOPT) -c $<
=== Cut ===
;
; doscalls.def (created by emximp)
;
LIBRARY DOSCALLS
EXPORTS
DOSSEMSETWAIT {at}20
DOSMUXSEMWAIT {at}22
DOSCLOSESEM {at}23
DOSCREATESEM {at}24
DOSOPENSEM {at}25
DOSSEMREQUEST {at}140
DOSSEMCLEAR {at}141
DOSSEMWAIT {at}142
DOSSEMSET {at}143
DOSFSRAMSEMREQUEST {at}161
DOSFSRAMSEMCLEAR {at}162
=== Cut ===
/* sem16.h for emx+gcc 0.9c (c) 1996 Thomas Seeling */
#ifndef _DOSCALLS_H
#define _DOSCALLS_H
#ifndef INCL_DOSSEMAPHORES
#define INCL_DOSSEMAPHORES
#endif
#include
#include
#define CSEM_PRIVATE 0
#define CSEM_PUBLIC 1
#endif
USHORT _THUNK_PASCAL_FUNCTION(Dos16CreateSem) (USHORT, PHSEM, PSZ);
USHORT _THUNK_PASCAL_FUNCTION(Dos16OpenSem) (PHSEM, PSZ);
USHORT _THUNK_PASCAL_FUNCTION(Dos16SemRequest)(HSEM, LONG);
USHORT _THUNK_PASCAL_FUNCTION(Dos16SemWait) (HSEM, LONG);
USHORT _THUNK_PASCAL_FUNCTION(Dos16SemClear) (HSEM);
USHORT _THUNK_PASCAL_FUNCTION(Dos16SemSet) (HSEM);
USHORT _THUNK_PASCAL_FUNCTION(Dos16CloseSem) (HSEM);
USHORT DosSemWait (HSEM, LONG);
USHORT DosSemClear (HSEM);
USHORT DosSemSet (HSEM);
USHORT DosSemRequest(HSEM, LONG);
USHORT DosCreateSem (USHORT, PHSEM, PSZ);
USHORT DosOpenSem (PHSEM, PSZ);
USHORT DosCloseSem (HSEM);
=== Cut ===
#include "sem16.h"
USHORT DosCreateSem(USHORT fExclusive, PHSEM phsem, PSZ pszSem) {
return ((USHORT)
(
_THUNK_PASCAL_PROLOG(sizeof(USHORT)+
sizeof(PHSEM)+
sizeof(PSZ));
_THUNK_PASCAL_SHORT(fExclusive);
_THUNK_PASCAL_FLAT(phsem);
_THUNK_PASCAL_FLAT(pszSem);
_THUNK_PASCAL_CALL(Dos16CreateSem)));
}
USHORT DosOpenSem(PHSEM phsem, PSZ pszSem) {
return ((USHORT)
(
_THUNK_PASCAL_PROLOG(sizeof(PHSEM)+
sizeof(PSZ));
_THUNK_PASCAL_FLAT(phsem);
_THUNK_PASCAL_FLAT(pszSem);
_THUNK_PASCAL_CALL(Dos16OpenSem)));
}
USHORT DosSemRequest(HSEM hsem, LONG lTimeout) {
return ((USHORT)
(
_THUNK_PASCAL_PROLOG(sizeof(HSEM)+
sizeof(LONG));
_THUNK_PASCAL_LONG(*(LONG *)&hsem);
_THUNK_PASCAL_LONG(lTimeout);
_THUNK_PASCAL_CALL(Dos16SemRequest)));
}
USHORT DosSemWait(HSEM hsem, LONG lTimeout) {
return ((USHORT)
(
_THUNK_PASCAL_PROLOG(sizeof(HSEM)+
sizeof(LONG));
_THUNK_PASCAL_LONG(*(LONG *)&hsem);
_THUNK_PASCAL_LONG(lTimeout);
_THUNK_PASCAL_CALL(Dos16SemWait)));
}
USHORT DosSemClear(HSEM hsem) {
return ((USHORT)
(
_THUNK_PASCAL_PROLOG(sizeof(HSEM));
_THUNK_PASCAL_LONG(*(LONG *)&hsem);
_THUNK_PASCAL_CALL(Dos16SemClear)));
}
USHORT DosSemSet(HSEM hsem) {
return ((USHORT)
(
_THUNK_PASCAL_PROLOG(sizeof(HSEM));
_THUNK_PASCAL_LONG(*(LONG *)&hsem);
_THUNK_PASCAL_CALL(Dos16SemSet)));
}
USHORT DosCloseSem(HSEM hsem) {
return ((USHORT)
(
_THUNK_PASCAL_PROLOG(sizeof(HSEM));
_THUNK_PASCAL_LONG(*(LONG *)&hsem);
_THUNK_PASCAL_CALL(Dos16CloseSem)));
}
=== Cut ===
Tschau...Thomas
--- E3-32/1.11-32/2.51+
* Origin: Die TeX-Box +49-6034-930021 V.34 -930022 ISDN 24h (2:244/1130.42)SEEN-BY: 50/99 270/101 620/243 625/160 711/401 409 410 413 430 808 809 934 SEEN-BY: 711/955 712/407 515 624 628 713/317 800/1 @PATH: 244/1130 24/999 888 396/1 270/101 712/515 711/808 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.