5 changed files with 322 additions and 8 deletions
-
97src/spicelib/devices/adms/admst/ngspiceMODULEdel.c.xml
-
97src/spicelib/devices/adms/admst/ngspiceMODULEdest.c.xml
-
12src/spicelib/devices/adms/admst/ngspiceMODULEinit.c.xml
-
103src/spicelib/devices/adms/admst/ngspiceMODULEmdel.c.xml
-
21src/spicelib/devices/adms/admst/ngspiceMakefile.am.xml
@ -0,0 +1,97 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
|
|||
<!-- |
|||
$Id$ |
|||
$Log$ |
|||
Revision 1.1 2006-03-01 14:30:24 pnenzi |
|||
|
|||
Added mdel, del and dest functions to interface. |
|||
|
|||
--> |
|||
|
|||
<!-- |
|||
Written by Laurent Lemaitre - r29173@users.sourceforge.net |
|||
Documentation: |
|||
http://sourceforge.net/docman/display_doc.php?docid=18993&group_id=84289 |
|||
Target Interface: ngspice |
|||
Supported by adms-1.x.x |
|||
This file is used by adms - http://sourceforge.net/projects/mot-adms. |
|||
adms is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
adms is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
You should have received a copy of the GNU General Public License |
|||
along with adms; if not, write to the Free Software |
|||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
--> |
|||
|
|||
<!DOCTYPE admst SYSTEM "admst.dtd"> |
|||
<admst version="2.1.3" xmlns:admst="http://mot-adms.sourceforge.net/xml-files/admst"> |
|||
|
|||
<admst:template match="dectype"> |
|||
<admst:choose> |
|||
<admst:when test="[type='real']"> |
|||
<admst:text format=" double "/> |
|||
</admst:when> |
|||
<admst:when test="[type='integer']"> |
|||
<admst:text format=" int "/> |
|||
</admst:when> |
|||
<admst:otherwise> |
|||
<admst:text format=" char* "/> |
|||
</admst:otherwise> |
|||
</admst:choose> |
|||
</admst:template> |
|||
|
|||
<admst:template match="code"> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:variable name="module" select="%s"/> |
|||
|
|||
#include "ngspice.h" |
|||
#include "$(module)defs.h" |
|||
#include "sperror.h" |
|||
#include "suffix.h" |
|||
|
|||
int $(module)delete(GENmodel *inModel, IFuid name, GENinstance **inInst) |
|||
|
|||
{ |
|||
register $(module)model *model = ($(module)model*)inModel; |
|||
register $(module)instance **fast =($(module)instance**)inInst; |
|||
|
|||
$(module)instance **prev = NULL; |
|||
$(module)instance *here; |
|||
|
|||
for ( ; model ; model = model->$(module)nextModel ) { |
|||
prev = &(model->$(module)instances); |
|||
for (here = *prev; here ; here = *prev) { |
|||
if(here->$(module)name == name || (fast && here==*fast) ) { |
|||
*prev = here->$(module)nextInstance; |
|||
FREE(here); |
|||
return(OK); |
|||
} |
|||
|
|||
} |
|||
} |
|||
return(E_NODEV); |
|||
} |
|||
|
|||
</admst:template> |
|||
|
|||
<admst:for-each select="/module"> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:open file="%sdel.c"> |
|||
<admst:value-of select="/simulator/package_string"/> |
|||
<admst:text format="/***\n*** Interface: %s\n"/> |
|||
<admst:value-of select="/simulator/currentdate"/> |
|||
<admst:value-of select="/simulator/fullname"/> |
|||
<admst:text format=" *** created by: %s - %s ***/\n"/> |
|||
<admst:apply-templates select="." match="code"/> |
|||
</admst:open> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:message format="%sdel.c: file created\n"/> |
|||
</admst:for-each> |
|||
|
|||
</admst> |
|||
@ -0,0 +1,97 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
|
|||
<!-- |
|||
$Id$ |
|||
$Log$ |
|||
Revision 1.1 2006-03-01 14:30:24 pnenzi |
|||
|
|||
Added mdel, del and dest functions to interface. |
|||
|
|||
--> |
|||
|
|||
<!-- |
|||
Written by Laurent Lemaitre - r29173@users.sourceforge.net |
|||
Documentation: |
|||
http://sourceforge.net/docman/display_doc.php?docid=18993&group_id=84289 |
|||
Target Interface: ngspice |
|||
Supported by adms-1.x.x |
|||
This file is used by adms - http://sourceforge.net/projects/mot-adms. |
|||
adms is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
adms is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
You should have received a copy of the GNU General Public License |
|||
along with adms; if not, write to the Free Software |
|||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
--> |
|||
|
|||
<!DOCTYPE admst SYSTEM "admst.dtd"> |
|||
<admst version="2.1.3" xmlns:admst="http://mot-adms.sourceforge.net/xml-files/admst"> |
|||
|
|||
<admst:template match="dectype"> |
|||
<admst:choose> |
|||
<admst:when test="[type='real']"> |
|||
<admst:text format=" double "/> |
|||
</admst:when> |
|||
<admst:when test="[type='integer']"> |
|||
<admst:text format=" int "/> |
|||
</admst:when> |
|||
<admst:otherwise> |
|||
<admst:text format=" char* "/> |
|||
</admst:otherwise> |
|||
</admst:choose> |
|||
</admst:template> |
|||
|
|||
<admst:template match="code"> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:variable name="module" select="%s"/> |
|||
|
|||
#include "ngspice.h" |
|||
#include "$(module)defs.h" |
|||
#include "suffix.h" |
|||
|
|||
void $(module)destroy(GENmodel **inModel) |
|||
|
|||
{ |
|||
register $(module)model **model = ($(module)model**)inModel; |
|||
register $(module)instance *here; |
|||
$(module)instance *prev = NULL; |
|||
$(module)model *mod = *model; |
|||
$(module)model *oldmod = NULL; |
|||
|
|||
for ( ; mod ; mod = mod->$(module)nextModel ) { |
|||
if (oldmod) FREE(oldmod); |
|||
oldmod = mod; |
|||
prev = ($(module)instance *)NULL; |
|||
for (here = mod->$(module)instances; here ; here = here->$(module)nextInstance) { |
|||
if(prev) FREE(prev); |
|||
prev = here; |
|||
} |
|||
if(prev) FREE(prev); |
|||
} |
|||
if(oldmod) FREE(oldmod); |
|||
*model = NULL; |
|||
return; |
|||
} |
|||
|
|||
</admst:template> |
|||
|
|||
<admst:for-each select="/module"> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:open file="%sdest.c"> |
|||
<admst:value-of select="/simulator/package_string"/> |
|||
<admst:text format="/***\n*** Interface: %s\n"/> |
|||
<admst:value-of select="/simulator/currentdate"/> |
|||
<admst:value-of select="/simulator/fullname"/> |
|||
<admst:text format=" *** created by: %s - %s ***/\n"/> |
|||
<admst:apply-templates select="." match="code"/> |
|||
</admst:open> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:message format="%sdest.c: file created\n"/> |
|||
</admst:for-each> |
|||
|
|||
</admst> |
|||
@ -0,0 +1,103 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1"?> |
|||
|
|||
<!-- |
|||
$Id$ |
|||
$Log$ |
|||
Revision 1.1 2006-03-01 14:30:24 pnenzi |
|||
|
|||
Added mdel, del and dest functions to interface. |
|||
|
|||
--> |
|||
|
|||
<!-- |
|||
Written by Laurent Lemaitre - r29173@users.sourceforge.net |
|||
Documentation: |
|||
http://sourceforge.net/docman/display_doc.php?docid=18993&group_id=84289 |
|||
Target Interface: ngspice |
|||
Supported by adms-1.x.x |
|||
This file is used by adms - http://sourceforge.net/projects/mot-adms. |
|||
adms is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
adms is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
You should have received a copy of the GNU General Public License |
|||
along with adms; if not, write to the Free Software |
|||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
--> |
|||
|
|||
<!DOCTYPE admst SYSTEM "admst.dtd"> |
|||
<admst version="2.1.3" xmlns:admst="http://mot-adms.sourceforge.net/xml-files/admst"> |
|||
|
|||
<admst:template match="dectype"> |
|||
<admst:choose> |
|||
<admst:when test="[type='real']"> |
|||
<admst:text format=" double "/> |
|||
</admst:when> |
|||
<admst:when test="[type='integer']"> |
|||
<admst:text format=" int "/> |
|||
</admst:when> |
|||
<admst:otherwise> |
|||
<admst:text format=" char* "/> |
|||
</admst:otherwise> |
|||
</admst:choose> |
|||
</admst:template> |
|||
|
|||
<admst:template match="code"> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:variable name="module" select="%s"/> |
|||
|
|||
#include "ngspice.h" |
|||
#include "$(module)defs.h" |
|||
#include "sperror.h" |
|||
#include "suffix.h" |
|||
|
|||
int $(module)mDelete(GENmodel **inModel, IFuid modname, GENmodel *kill) |
|||
|
|||
{ |
|||
register $(module)model **model = ($(module)model**)inModel; |
|||
register $(module)model *modfast =($(module)model*)kill; |
|||
$(module)instance *here; |
|||
$(module)instance *prev = NULL; |
|||
$(module)model **oldmod; |
|||
|
|||
oldmod = model; |
|||
for ( ; *model ; model = &((*model)->$(module)nextModel)) { |
|||
if ((*model)->$(module)modName == modname || |
|||
(modfast && *model == modfast)) |
|||
goto delgot; |
|||
oldmod = model; |
|||
} |
|||
return(E_NOMOD); |
|||
|
|||
delgot: |
|||
*oldmod = (*model)->$(module)nextModel; /* cut deleted device out of list */ |
|||
for (here = (*model)->$(module)instances; here; here = here->$(module)nextInstance) |
|||
{ if(prev) FREE(prev); |
|||
prev = here; |
|||
} |
|||
if(prev) FREE(prev); |
|||
FREE(*model); |
|||
return(OK); |
|||
} |
|||
|
|||
</admst:template> |
|||
|
|||
<admst:for-each select="/module"> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:open file="%smdel.c"> |
|||
<admst:value-of select="/simulator/package_string"/> |
|||
<admst:text format="/***\n*** Interface: %s\n"/> |
|||
<admst:value-of select="/simulator/currentdate"/> |
|||
<admst:value-of select="/simulator/fullname"/> |
|||
<admst:text format=" *** created by: %s - %s ***/\n"/> |
|||
<admst:apply-templates select="." match="code"/> |
|||
</admst:open> |
|||
<admst:value-of select="attribute[name='ngspicename']/value"/> |
|||
<admst:message format="%smdel.c: file created\n"/> |
|||
</admst:for-each> |
|||
|
|||
</admst> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue