Use pragma aux to export valid names from DLL in Watcom

This commit is contained in:
z3APA3A 2016-12-12 19:49:58 +03:00
parent a9fb0ea969
commit 945c30c5ee
13 changed files with 88 additions and 41 deletions

View File

@ -8,7 +8,7 @@
BUILDDIR = ../bin/
CC = cl
CFLAGS = /nologo /Ox /MT /D "NOIPV6" /D "NODEBUG" /D "NOODBC" /D "MSVC" /D "WITH_STD_MALLOC" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /c
CFLAGS = /nologo /Ox /MT /D "NOIPV6" /D "NODEBUG" /D "NOODBC" /D"WATCOM" /D "MSVC" /D "WITH_STD_MALLOC" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /c
COUT = /Fo
LN = link
LDFLAGS = /nologo /subsystem:console /incremental:no

View File

@ -878,13 +878,13 @@ static struct commands file_commandhandlers[] = {
static int file_loaded=0;
#ifdef _WIN32
__declspec(dllexport)
#ifdef WATCOM
#pragma aux file_plugin "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
int file_plugin (struct pluginlink * pluginlink,
PLUGINAPI int PLUGINCALL file_plugin (struct pluginlink * pluginlink,
int argc, char** argv){
if(!file_loaded){

View File

@ -677,13 +677,18 @@ static struct commands lfm_commandhandlers[] = {
{NULL, "lfm_format", h_lfm_format, 2, 2}
};
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
__declspec(dllexport)
#ifdef WATCOM
#pragma aux lfm_plugin "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
int lfm_plugin( struct pluginlink * pluginlink, int argc, char** argv )
PLUGINAPI int PLUGINCALL lfm_plugin( struct pluginlink * pluginlink, int argc, char** argv )
{
pl = pluginlink;
myOutputDebugStringA1( "lfm_plugin" );

View File

@ -457,15 +457,16 @@ int h_dircount(int argc, unsigned char ** argv)
/*------------------------------- MAIN --------------------------------------
start plugin init */
#ifdef _WIN32
__declspec(dllexport) int start(struct pluginlink * pluginlink,
int argc, char** argv)
#else
int start(struct pluginlink * pluginlink,
#ifdef WATCOM
#pragma aux start "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
PLUGINAPI int PLUGINCALL start(struct pluginlink * pluginlink,
int argc, char** argv)
#endif
{

View File

@ -358,12 +358,15 @@ static struct symbol regexp_symbols[] = {
{NULL, "pcre_free", NULL},
};
#ifdef _WIN32
__declspec(dllexport)
#ifdef WATCOM
#pragma aux pcre_plugin "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
int pcre_plugin (struct pluginlink * pluginlink,
PLUGINAPI int PLUGINCALL pcre_plugin (struct pluginlink * pluginlink,
int argc, char** argv){
struct filter *flt, *tmpflt;
pl = pluginlink;
pcre_options = 0;

View File

@ -117,9 +117,15 @@ static int pamfunc(struct clientparam *param)
}
#ifdef WATCOM
#pragma aux start "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
/*------------------------------- MAIN --------------------------------------
start plugin init */
int start(struct pluginlink * pluginlink, int argc, unsigned char** argv)
PLUGINAPI int PLUGINCALL start(struct pluginlink * pluginlink, int argc, unsigned char** argv)
{

View File

@ -372,12 +372,15 @@ static struct commands ssl_commandhandlers[] = {
};
#ifdef _WIN32
__declspec(dllexport)
#ifdef WATCOM
#pragma aux ssl_plugin "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
int ssl_plugin (struct pluginlink * pluginlink,
PLUGINAPI int PLUGINCALL ssl_plugin (struct pluginlink * pluginlink,
int argc, char** argv){
pl = pluginlink;
if(!ssl_loaded){
ssl_loaded = 1;

View File

@ -164,17 +164,16 @@ BOOL WINAPI DllMain( HINSTANCE hModule,
return TRUE;
}
__declspec(dllexport) int start(struct pluginlink * pluginlink,
int argc, char** argv)
#else
int start(struct pluginlink * pluginlink,
int argc, char** argv)
#endif
#ifdef WATCOM
#pragma aux start "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
PLUGINAPI int PLUGINCALL start(struct pluginlink * pluginlink,
int argc, char** argv)
{
FILE *f=NULL;

View File

@ -266,11 +266,16 @@ BOOL WINAPI DllMain( HINSTANCE hModule,
return TRUE;
}
__declspec(dllexport)
#endif
int start(struct pluginlink * pluginlink, int argc, char** argv) {
#ifdef WATCOM
#pragma aux start "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
PLUGINAPI int PLUGINCALL start(struct pluginlink * pluginlink, int argc, char** argv) {
struct commands * starthandler;
conf = pluginlink->conf;
commandhandlers = pluginlink->commandhandlers;

View File

@ -89,11 +89,13 @@ static struct filter transparent_filter = {
};
#ifdef _WIN32
__declspec(dllexport)
#ifdef WATCOM
#pragma aux transparent_plugin "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
int transparent_plugin (struct pluginlink * pluginlink,
PLUGINAPI int PLUGINCALL transparent_plugin (struct pluginlink * pluginlink,
int argc, char** argv){
pl = pluginlink;
if(!transparent_loaded){

View File

@ -58,7 +58,13 @@ extern "C" {
return 7;
}
__declspec(dllexport) int WindowsAuthentication(struct pluginlink * pluginlink, int argc, char** argv){
#ifdef WATCOM
#pragma aux WindowsAuthentication "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
PLUGINAPI int PLUGINCALL WindowsAuthentication(struct pluginlink * pluginlink, int argc, char** argv){
char tmpbuf[4096];
DWORD dlen, sidlen;
SID_NAME_USE snu;

View File

@ -62,8 +62,13 @@ unsigned char * conv_utf8_to_cp1251(unsigned char *s){
}
#ifdef WATCOM
#pragma aux utf8tocp1251 "*" parm caller [ ] value struct float struct routine [eax] modify [eax ecx edx]
#undef PLUGINCALL
#define PLUGINCALL
#endif
__declspec(dllexport) int utf8tocp1251(struct pluginlink * pluginlink, int argc, char** argv){
PLUGINAPI int PLUGINCALL utf8tocp1251(struct pluginlink * pluginlink, int argc, char** argv){
static int loaded = 0;

View File

@ -162,7 +162,21 @@ typedef void (*TRAFCOUNTFUNC)(struct clientparam * param);
typedef void * (*EXTENDFUNC) (struct node *node);
typedef void (*CBFUNC)(void *cb, char * buf, int inbuf);
typedef void (*PRINTFUNC) (struct node *node, CBFUNC cbf, void*cb);
typedef int (*PLUGINFUNC) (struct pluginlink *pluginlink, int argc, char** argv);
#ifdef WIN32
#define PLUGINAPI __declspec(dllexport)
typedef int (__cdecl *PLUGINFUNC) (struct pluginlink *pluginlink, int argc, char** argv);
#define PLUGINCALL __cdecl
#else
#define PLUGINCALL
#define PLUGINAPI
typedef int (*PLUGINFUNC)(struct pluginlink *pluginlink, int argc, char** argv);
#endif
struct auth {
struct auth *next;
@ -752,8 +766,6 @@ typedef enum {
TYPE_SERVER
}DATA_TYPE;
#ifdef __cplusplus
}
#endif