Contents
pdlib
COPYING
kfunc
ObjType
Image
FEI
NetVal
vfile
vfile.h
VADDR
VFILE
Vars
Parse
SX
XML
Print
SX
XML
Compress
Bitstream
Huffman
Function Index
pdscript
COPYING
PDScript Lang
Statements
Expressions
Builtins
BGGL2
Interp
Parse
Util
PDScript
Interp
Compile
Reference
Statements
Function Index
pdnet
Parse
NET
Sock
TCP
UDP
RPC
XML-RPC
Decode
Encode
Ext-1
Service
Jabber-RPC
ObjLst
Protocols
Meta0
HTTP
XMPP/Jabber
Util
JEP-0030
JEP-0045(MultiUserChat)
TMP
Multiplex
MUX0
Function Index
pdvfs
VDIR
VFS
VFSNS
VPath
Function Index
pdglue
Function Index
pdlib
pdlib is a library primarily intended to provide:
a simplistic persistence feature;
a dynamic typesystem (ObjType);
an application extensible file interface (VFILE).
it is primarily used by including "pdlib.h", and linking with -lpdlib (assuming it is installed correctly).
COPYING
PDLIB: A collection of utility functions and other stuff.
Copyright (C) 2005 Brendan G Bohannon (aka: cr88192)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
Email: cr88192@hotmail.com
kfunc
Form
int panic(char *s, ...);
DocPos
pd_base/kfunc.c:27
Description
panic and exit.
Form
int kprint(char *s, ...);
DocPos
pd_base/kfunc.c:51
Description
primary print function for pdlib.
Form
int kprintd(char *s, ...);
DocPos
pd_base/kfunc.c:77
Description
print to debug log.
Form
void *kalloc(int sz);
DocPos
pd_base/kfunc.c:102
Description
primary alloc function for pdlib.
Form
int kfree(void *p);
DocPos
pd_base/kfunc.c:124
Description
primary free function for pdlib.
Form
int kincref(void *p);
DocPos
pd_base/kfunc.c:139
Description
increment reference count for p.
Form
int kdecref(void *p);
DocPos
pd_base/kfunc.c:152
Description
deincrement reference count for p.
Form
void *kralloc(int sz);
DocPos
pd_base/kfunc.c:165
Description
allocates in a rotating buffer, only safe for temporary data.
one does not need to free allocations.
Form
char *kstrdup(char *s);
DocPos
pd_base/kfunc.c:188
Description
copies a string using kalloc.
Form
char *krstrdup(char *s);
DocPos
pd_base/kfunc.c:204
Description
copies a string using kralloc.
Form
char *kdstrdup(char *s);
DocPos
pd_base/kfunc.c:220
Description
copies a string with dynamic typing.
Form
char *kdallocstr(int sz);
DocPos
pd_base/kfunc.c:236
Description
creates a dynamicly types string buffer.
Form
char *kvprints(char *d, char *s, va_list lst);
DocPos
pd_base/kfunc.c:250
Description
prints into string buffer d.
returns the new end of the string.
Form
char *kprints(char *d, char *s, ...);
DocPos
pd_base/kfunc.c:266
Description
prints into string buffer d.
returns the new end of the string.
Form
char *ksprint(char *s, ...);
DocPos
pd_base/kfunc.c:285
Description
prints into a new string.
the string is allocated via kralloc, and thus will need to be copied for the value to be retained.
returns the new string.
Form
int kprintvf(VFILE *fd, char *s, ...);
DocPos
pd_base/kfunc.c:307
Description
prints into the vfile fd.
Form
void *kmemdup(void *p, int sz);
DocPos
pd_base/kfunc.c:330
Description
makes a copy of p in a buffer that is sz bytes.
Form
char *ksgets(char *buf, int l, char *s);
DocPos
pd_base/kfunc.c:346
Description
extracts a line from s.
l is the maximal number of characters (excluding nul) that can fit in buf.
the newline is not included.
returns s if there is not a complete line in the buffer.
otherwise it returns the start of the next line.
ObjType
ObjType is the dynamic typing system used within pdlib.
Its basic mechanism is a pointer to a typed struct or array, where the basic type can be determined just from the pointer.
The purpose includes being easily and dynamically extensible for new app types.
Type Strings:
DEF = TYPE [':' NAME] ';' | TYPE '+' [':' NAME ';']
TYPE = TypeName | SHAPE TypeName | '*' TypeName | SHAPE '*' TypeName
SHAPE = Int | Int ',' SHAPE
TypeName:
single words will flag inlined types.
'*type' will indicate a pointer to the type (within ObjType).
'type+' will indicate a terminal array of that type.
'*type+' will be a terminal array of pointers to type.
'sbyte': 8 bit signed int;
'byte': 8 bit unsigned int;
'short': 16 bit signed int;
'ushort': 16 bit unsigned int;
'int': 32 bit signed int;
'uint': 32 bit unsigned int;
'long': 32/64 bit signed int;
'ulong': 32/64 bit unsigned int;
'float': 32 bit float;
'double': 64 bit double;
'string': string, pointer to an externally defined string;
'*struct': reference to a struct.
'cptr': a c pointer, points to unknown data.
'cfunc': a c function pointer.
at present including defined types within type strings will be disallowed (this does not count for pointer types).
Form
int ObjType_FormSize(char *form);
DocPos
pd_base/objtype.c:43
Description
Given a string form description, it will figure the needed size.
This size does not include any terminal arrays or such.
Form
unsigned int ObjType_StrAdler32(byte *s);
DocPos
pd_base/objtype.c:125
Description
Compute the Adler-32 checksum for a string.
Form
unsigned int ObjType_DataAdler32(void *buf, int sz, unsigned int lcrc);
DocPos
pd_base/objtype.c:146
Description
Compute the Adler-32 checksum for a glob of data.
lcrc is the crc of the last fragment (eg: multiple fragments with a common crc, parts of a stream, ...).
lcrc should initially be 1.
Form
unsigned int ObjType_StringCRC(char *s);
DocPos
pd_base/objtype.c:171
Description
Compute the checksum for a string.
This will be usable for match the type crc's for the same names.
Form
PDLIB_ObjType *ObjType_NewType(char *name, char *form);
DocPos
pd_base/objtype.c:184
Description
Creates a new type with the given name and form.
Form
PDLIB_ObjType *ObjType_FindType(char *type);
DocPos
pd_base/objtype.c:234
Description
Finds the type associated with a given name.
Form
PDLIB_ObjType *ObjType_FindTypeCRC(unsigned int crc);
DocPos
pd_base/objtype.c:254
Description
Finds the type associated with a given crc.
Form
void *ObjType_New(char *type, int size);
DocPos
pd_base/objtype.c:274
Description
Creates a new object of a given type and size.
Size is either 0 or the size of the requested structure
Form
PDLIB_ObjType *ObjType_GetType(void *p);
DocPos
pd_base/objtype.c:324
Description
Gets the type associated with a given object.
Form
char *ObjType_GetTypeName(void *p);
DocPos
pd_base/objtype.c:341
Description
Gets the type name associated with a given object.
Form
unsigned int ObjType_GetTypeCRC(void *p);
DocPos
pd_base/objtype.c:374
Description
Gets the type name checksum associated with a given object.
Form
int ObjType_GetSize(void *p);
DocPos
pd_base/objtype.c:407
Description
Gets the size of a particular object.
Form
void *ObjType_GetBase(void *p);
DocPos
pd_base/objtype.c:427
Description
Gets the base of a particular object.
Form
long ObjType_GetOffset(void *p);
DocPos
pd_base/objtype.c:444
Description
Gets the offset relative to the base of a particular object.
Form
long ObjType_GetRelSize(void *p);
DocPos
pd_base/objtype.c:458
Description
Gets the relative size of a particular object.
Form
int ObjType_TypeP(void *p, char *type);
DocPos
pd_base/objtype.c:470
Description
Returns non-zero if p is type.
Form
int ObjType_IncRef(void *p);
DocPos
pd_base/objtype.c:505
Description
Increments the ref count for an object.
Form
int ObjType_DecRef(void *p);
DocPos
pd_base/objtype.c:517
Description
Decrements the ref count for an object.
Form
int ObjType_Init();
DocPos
pd_base/objtype.c:529
Description
Inits the ObjType system.
Image
Form
int PDLIB_Image_NameObj(char *name, void *ptr);
DocPos
pd_base/image.c:277
Description
Associates a name with an object.
The name will be used as a root for the store.
Form
void *PDLIB_Image_FetchName(char *name);
DocPos
pd_base/image.c:304
Description
Fetches the object associated with a given name.
Form
int PDLIB_StoreImage(char *name);
DocPos
pd_base/image.c:337
Description
Store an image containing reachable objects to the given filename.
Form
int PDLIB_LoadImage(char *name);
DocPos
pd_base/load.c:217
Description
Load a store image from the given file.
FEI
FEI is a feature for exporting/importing features from a pool.
The intended use is for persistence and otherwise sharing functions.
No information is preserved about args or such.
Form
int PDLIB_FEI_ExportFunc(char *name, void *f);
DocPos
pd_base/fei.c:33
Description
Exports a function (represented as void pointer to the function).
It will first try to replace any exports with the same name, otherwise it will add a new export with the given name.
All functions need to be exported before loading/storing images using them.
Form
void *PDLIB_FEI_ImportFunc(char *name);
DocPos
pd_base/fei.c:69
Description
Import a function with a given name.
Returns a pointer to the function (though in the form of 'void *').
Returns NULL if name was not previously exported.
Form
char *PDLIB_FEI_FuncName(void *f);
DocPos
pd_base/fei.c:94
Description
Find the name for a given exported function.
Returns NULL if not found.
NetVal
objective:
create code for managing builtin dynamic types.
make use of pdlib type system as base.
Form
void *NetVal_WrapInt(int i);
DocPos
pd_base/netval.c:133
Description
Wraps an integer.
Form
void *NetVal_WrapInt64(sint64 i);
DocPos
pd_base/netval.c:153
Description
Wraps a long long.
Form
void *NetVal_WrapChar(int i);
DocPos
pd_base/netval.c:176
Description
Wraps a character literal.
Form
void *NetVal_WrapBool(int i);
DocPos
pd_base/netval.c:193
Description
Wraps a boolean.
Form
void *NetVal_WrapStr(char *);
void *NetVal_WrapString(char *);
DocPos
pd_base/netval.c:215
Description
Wraps a string.
Form
void *NetVal_WrapSymbol(char *s);
DocPos
pd_base/netval.c:243
Description
Wraps a symbol.
Form
void *NetVal_WrapKeyword(char *s);
DocPos
pd_base/netval.c:264
Description
Wraps a keyword.
Form
void *NetVal_WrapLink(char *s);
DocPos
pd_base/netval.c:285
Description
Wraps a link.
Form
void *NetVal_WrapFloat(double f);
DocPos
pd_base/netval.c:302
Description
Wraps a double.
Form
void *NetVal_WrapNumber(double f);
DocPos
pd_base/netval.c:327
Description
Wraps a number, picking either a double or int.
Form
void *NetVal_MakeNull();
DocPos
pd_base/netval.c:345
Description
Wraps a null value.
Form
void *NetVal_WrapArray(void *a);
DocPos
pd_base/netval.c:361
Description
Wraps an array.
Form
void *NetVal_WrapDArray(void *a);
DocPos
pd_base/netval.c:383
Description
Wraps a dynamic array.
Form
void *NetVal_WrapNDArray(void *a, int n);
DocPos
pd_base/netval.c:402
Description
Wraps a dynamic array with a given args count.
Form
void *NetVal_WrapDVector(void *a);
DocPos
pd_base/netval.c:426
Description
Wraps a dynamic vector.
Form
int NetVal_UnwrapInt(void *a);
DocPos
pd_base/netval.c:445
Description
Unwraps an integer.
Form
sint64 NetVal_UnwrapInt64(void *a);
DocPos
pd_base/netval.c:475
Description
Unwraps a long long.
Form
int NetVal_UnwrapChar(void *a);
DocPos
pd_base/netval.c:505
Description
Unwraps a character.
Form
int NetVal_UnwrapBool(void *a);
DocPos
pd_base/netval.c:517
Description
Unwraps a boolean.
Form
char *NetVal_UnwrapString(void *a);
DocPos
pd_base/netval.c:539
Description
Unwraps a string.
Form
char *NetVal_UnwrapSymbol(void *a);
DocPos
pd_base/netval.c:551
Description
Unwraps a symbol.
Form
char *NetVal_UnwrapKeyword(void *a);
DocPos
pd_base/netval.c:563
Description
Unwraps a keyword.
Form
char *NetVal_UnwrapLink(void *a);
DocPos
pd_base/netval.c:575
Description
Unwraps a link.
Form
double NetVal_UnwrapFloat(void *a);
DocPos
pd_base/netval.c:587
Description
Unwraps a double.
Form
void **NetVal_UnwrapArray(void *a);
DocPos
pd_base/netval.c:618
Description
Unwraps an array.
Form
void **NetVal_UnwrapDArray(void *a);
DocPos
pd_base/netval.c:630
Description
Unwraps a dynamic array.
Form
int NetVal_UnwrapDVector(void *a);
DocPos
pd_base/netval.c:642
Description
Unwraps a dynamic vector.
Form
void *NetVal_UnwrapIntArray(void *a, int ar);
DocPos
pd_base/netval.c:654
Description
Unwraps an integer array.
a is the array and ar is the rank of the array.
If ar=1, this returns an allocation containing an array of integers (can be safely cast to 'int *').
If ar>1, this returns ar-1 levels of indirection arrays (null terminated), with the leaf arrays being integer arrays.
Form
void *NetVal_UnwrapStringArray(void *a, int ar);
DocPos
pd_base/netval.c:694
Description
Unwraps a string array.
a is the array and ar is the rank of the array.
If ar=1, this returns an allocation containing an array of strings (can be safely cast to 'char **').
If ar>1, this returns ar-1 levels of indirection arrays (null terminated), with the leaf arrays being string arrays.
Form
void *NetVal_UnwrapFloatArray(void *a, int ar);
DocPos
pd_base/netval.c:734
Description
Unwraps a float array.
a is the array and ar is the rank of the array.
If ar=1, this returns an allocation containing an array of floats (can be safely cast to 'float *').
If ar>1, this returns ar-1 levels of indirection arrays (null terminated), with the leaf arrays being float arrays.
Form
void *NetVal_UnwrapDoubleArray(void *a, int ar);
DocPos
pd_base/netval.c:774
Description
Unwraps a double array.
a is the array and ar is the rank of the array.
If ar=1, this returns an allocation containing an array of doubles (can be safely cast to 'double *').
If ar>1, this returns ar-1 levels of indirection arrays (null terminated), with the leaf arrays being double arrays.
Form
int NetVal_IsTypeNumber(char *ty);
DocPos
pd_base/netval.c:814
Description
Returns a non-zero value if ty is the name of a numeric type.
Form
int NetVal_IsNumber(void *p);
DocPos
pd_base/netval.c:829
Description
Returns a non-zero value if p is of a numeric type.
vfile
VFILE is a subsystem intended for the creation of file like objects.
VFILE is actually one of the oldest pieces of code in pdlib, stretching back as far as sometime in the late 90's.
It is ugly and monolithic, but worth noting was that much of it was written incrementally.
I had kept it as largely a mirror of the stdio file stuff to make conversion between them as effortless as was reasonable.
Form
int vfread(void *buf, int s1, int s2, VFILE *fd);
DocPos
pd_base/vfile.c:21
Description
read from a vfile, s1 and s2 are multiplied to get the number of bytes.
Form
int vfwrite(void *buf, int s1, int s2, VFILE *fd);
DocPos
pd_base/vfile.c:58
Description
write to a vfile, s1 and s2 are multiplied to get the number of bytes.
Form
int vfseek(VFILE *fd, int pos, int rel);
DocPos
pd_base/vfile.c:94
Description
seek within a vfile, like fseek.
Form
int vftell(VFILE *fd);
DocPos
pd_base/vfile.c:341
Description
return current vfile offset.
Form
int vfgetc(VFILE *fd);
DocPos
pd_base/vfile.c:357
Description
read one character, returns -1 on eof or error.
Form
int vfputc(int c, VFILE *fd);
DocPos
pd_base/vfile.c:371
Description
write 1 character to fd.
Form
int vfclose(VFILE *fd);
DocPos
pd_base/vfile.c:385
Description
close fd.
Form
int vfeof(VFILE *fd);
DocPos
pd_base/vfile.c:398
Description
returns whether fd is at the end of file mark.
Form
int vfflush(VFILE *fd);
DocPos
pd_base/vfile.c:411
Description
flush the contents of fd.
Form
int vfinready(VFILE *fd);
DocPos
pd_base/vfile.c:424
Description
tells if input is ready.
a value >1 means at least that many bytes can be read without blocking.
Form
int vfioctl(VFILE *fd, int req, char *argp);
DocPos
pd_base/vfile.c:445
Description
does an ioctl on fd.
Form
int vfioctls(VFILE *fd, ...);
DocPos
pd_base/vfile.c:458
Description
(deprecated) does a variation of ioctl on fd, var arg.
the first argument was typically a string telling what to do.
Form
void *vfmmap(void *addr, int length, int prot, int flags, VFILE *fd, int offs);
DocPos
pd_base/vfile.c:476
Description
tries to mmap fd.
Form
int vfsend(VFILE *sock, VADDR *target, void *msg, int len, int flags);
DocPos
pd_base/vfile.c:503
Description
tries to send a message over sock.
Form
int vfget(void *buf, int sz, VADDR *from, VFILE *sock);
DocPos
pd_base/vfile.c:516
Description
tries to get a message from sock.
sz is the maximal size of the buffer.
from (if applicable) is filled with the address if the sender.
returns -1 if no messages are available.
Form
VFILE *vfnew();
DocPos
pd_base/vfile.c:635
Description
creates a new, empty vfile.
Form
int vfdestroy(VFILE *fd);
DocPos
pd_base/vfile.c:661
Description
destroys a vfile, typically called from the close function of the associated vfile.
Form
char *vfgets(char *s, int n, VFILE *fd);
DocPos
pd_base/vfile.c:674
Description
reads a line from fd.
returns the initial value of s.
Form
byte *vfbufferin(VFILE *fd);
DocPos
pd_base/vfile.c:703
Description
reads in an entire vfile and returns a pointer to it.
the buffer is allocated with kalloc.
Form
int vf_clip(VFILE *fd, u8 start, u8 len);
DocPos
pd_base/vfile.c:927
Description
creates a "clipping" of fd.
a clipping behaves like the parent except that it refers only to part of the parent.
Form
VFILE *vf_wrap_fd(FILE *fd);
DocPos
pd_base/vf_us.c:99
Description
wrap fd in a vfile.
Form
VFILE *vffopen_us(char *name, char *access);
DocPos
pd_base/vf_us.c:131
Description
Open a file with vfile, access is roughly the same syntax as fopen.
Opens relative to the current os directory.
Form
VFILE *vffopen(char *name, char *access);
DocPos
pd_base/vf_us.c:158
Description
open a file with vfile, access is roughly the same syntax as fopen.
vfile.h
VADDR
Form
PROTO_IPV4
PROTO_IPV6
PROTO_TCP
PROTO_UDP
PROTO_UNDEFINED
PROTO_IPV4UDP
PROTO_IPV4TCP
PROTO_IPV6UDP
PROTO_IPV6TCP
DocPos
include/pdbase/vfile.h:15
Description
constants defined within VADDR.
Form
typedef union VADDR_u VADDR;
union VADDR_u {
int proto;
struct {
int proto;
int flags;
unsigned short port;
unsigned long addr;
}ipv4;
struct {
int proto;
int flags;
unsigned short port;
byte addr[16];
}ipv6;
};
DocPos
include/pdbase/vfile.h:65
Description
VADDR structure.
VFILE
struct VFILE_T {
int (*read_proc)(void *buf, int len, VFILE *fd);
int (*write_proc)(void *buf, int len, VFILE *fd);
int (*seek_proc)(VFILE *fd, int adr, int rel);
int (*lseek_proc)(VFILE *fd, s8 adr, s8 ret, int rel);
int (*tell_proc)(VFILE *fd);
int (*ltell_proc)(VFILE *fd, s8 ret);
int (*close_proc)(VFILE *fd);
int (*eof_proc)(VFILE *fd);
int (*flush_proc)(VFILE *fd);
int (*inready_proc)(VFILE *fd);
int (*ioctl_proc)(VFILE *fd, int req, char *argp);
int (*ioctls_proc)(VFILE *fd, void **arg);
void *(*mmap_proc)(void *addr, int length, int prot, int flags, VFILE *fd, int offs);
//int (*munmap_proc)(void *start, int length, VFILE *fd);
//int (*msync_proc)(void *start, int length, int flags, VFILE *fd);
int (*sread_proc)(void *buf, s8 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
int (*swrite_proc)(void *buf, s8 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
int (*send_proc)(VFILE *sock, VADDR *target, void *msg, int len, int flags);
// used in the same bent way as read/write
int (*get_proc)(void *buf, int sz, VADDR *from, VFILE *sock);
u8 s_pos; //for seeking read/write, allow emulation of normal read/write on async devs
void *buffer; //data used by creator to allow storing other data.
void *userdata; //user data, can be attached to files possibly to
//ease open file management
//void *mapdata; // for use by mmap in cases it is external
VFILE *chain, *ch_prev;
// used by things that recieve this vfile,
// ch_prev used for putting in lists
VFILE *c_next, *c_prev;
// used by the creator
VFNOTIFY *notify;
};
Vars
Vars is a system for getting and setting simple string variables.
Form
int Var_Init();
DocPos
pd_base/vars.c:12
Description
Init function for vars system.
Form
PDLIB_Var *Var_Lookup(char *name);
DocPos
pd_base/vars.c:30
Description
Lookup a variable with a specific name.
Form
PDLIB_Var *Var_Create(char *name);
DocPos
pd_base/vars.c:45
Description
Create a new variable with a specific name.
Form
PDLIB_Var *Var_SetString(char *name, char *value);
DocPos
pd_base/vars.c:67
Description
Assign a variable, creating it if not allready defined.
Form
char *Var_GetString(char *name);
DocPos
pd_base/vars.c:104
Description
Get a string containing the value of the variable.
Form
float Var_GetValue(char *name);
DocPos
pd_base/vars.c:120
Description
Get the numeric representation of the value of a variable.
Form
int Var_ParseConfig(VFILE *fd);
DocPos
pd_base/vars.c:138
Description
Parse some configuration from a vfile.
Lines starting with '#' or ';' are comments.
Blank lines are ignored.
Other lines have the form '<var> <value>'.
Form
int Var_LoadConfig(char *name);
DocPos
pd_base/vars.c:196
Description
Load the configuration from a file.
Parse
Form
int NetParse_Init();
DocPos
pd_base/parse/parse_tree.c:4
Description
Init function for NetParse, called implicitly by node/attr creation.
Form
NetParse_Attr *NetParse_NewAttr();
DocPos
pd_base/parse/parse_tree.c:24
Description
Creates a new attribute.
Form
NetParse_Attr *NetParse_AddAttr(NetParse_Node *node, char *key, char *value);
DocPos
pd_base/parse/parse_tree.c:47
Description
Adds an attribute to a node (or sets the attribute if present).
Form
NetParse_Attr *NetParse_AddAttrList(NetParse_Attr *lst, char *key, char *value);
DocPos
pd_base/parse/parse_tree.c:88
Description
Adds an attribute to a list of attributes (or assigns the attribure if allready present).
Returns the start of the list, or the new attribute if lst is NULL.
Form
char *NetParse_GetNodeAttr(NetParse_Node *node, char *key);
DocPos
pd_base/parse/parse_tree.c:127
Description
Gets an attribute associated with a node.
Returns NULL if not found.
Form
int NetParse_GetNodeAttrIsP(NetParse_Node *node, char *key, char *value);
DocPos
pd_base/parse/parse_tree.c:148
Description
Check if a given node has a certain attribute as a certain value.
Form
char *NetParse_GetAttrList(NetParse_Attr *lst, char *key);
DocPos
pd_base/parse/parse_tree.c:173
Description
Gets an attribute in a list.
Returns NULL if not found.
Form
NetParse_Node *NetParse_NewNode();
DocPos
pd_base/parse/parse_tree.c:194
Description
Creates a new node.
Form
NetParse_Node *NetParse_AddNodeEnd(NetParse_Node *first, NetParse_Node *node);
DocPos
pd_base/parse/parse_tree.c:219
Description
Adds a new node at the end of a list of nodes.
Form
int NetParse_AddChildNode(NetParse_Node *parent, NetParse_Node *node);
DocPos
pd_base/parse/parse_tree.c:239
Description
Add a new child node to a parent.
Form
int NetParse_FreeAttr(NetParse_Attr *attr);
DocPos
pd_base/parse/parse_tree.c:264
Description
Frees an attribute.
Also frees any following attributes.
Form
int NetParse_FreeNode(NetParse_Node *node);
DocPos
pd_base/parse/parse_tree.c:283
Description
Frees a node and any associated attributes.
Also frees any child nodes.
Form
NetParse_Attr *NetParse_CopyAttr(NetParse_Attr *attr);
DocPos
pd_base/parse/parse_tree.c:318
Description
Copies an attribute along with any following attributes.
Form
NetParse_Node *NetParse_CopyNode(NetParse_Node *node);
DocPos
pd_base/parse/parse_tree.c:343
Description
Makes a copy of a node tree, copies any attributes or children.
Form
NetParse_Node *NetParse_FindKey(NetParse_Node *first, char *key);
DocPos
pd_base/parse/parse_tree.c:382
Description
Finds a node in a list with a given key.
Returns NULL if not found.
Form
NetParse_Node *NetParse_NewNodeKey(char *ns, char *key);
DocPos
pd_base/parse/parse_tree.c:407
Description
Creates a new node with a given namespace prefix and key.
ns may be NULL in most cases (the tag does not have a namespace prefix).
Form
NetParse_Node *NetParse_NewNodeText(char *text);
DocPos
pd_base/parse/parse_tree.c:425
Description
Creates a new text node with the contents given.
Form
char *NetParse_GetNodeNS(NetParse_Node *node);
char *NetParse_GetNodeKey(NetParse_Node *node);
char *NetParse_GetNodeText(NetParse_Node *node);
NetParse_Node *NetParse_GetNodeFirst(NetParse_Node *node);
NetParse_Node *NetParse_GetNodeNext(NetParse_Node *node);
DocPos
pd_base/parse/parse_tree.c:442
Description
Get a property of a node, each will return NULL in the case that the given property is not present.
Form
int NetParse_SetNodeNS(NetParse_Node *node, char *value);
int NetParse_SetNodeKey(NetParse_Node *node, char *value);
int NetParse_SetNodeText(NetParse_Node *node, char *value);
int NetParse_SetNodeFirst(NetParse_Node *node, NetParse_Node *node2);
int NetParse_SetNodeNext(NetParse_Node *node, NetParse_Node *node2);
DocPos
pd_base/parse/parse_tree.c:478
Description
Set a property of a node, the return value will be 0 if no errors occure.
SX
SX is a simplistic s-expression like syntax.
Unlike XML there is no support for attributes.
The encoding is also much more terse than XML.
Unlike s-expressions, the notation has a typesystem equivalent to that of XML...
Form
char *NetParse_SX_EatWhite(char *s);
DocPos
pd_base/parse/parse_sx.c:20
Description
Skips over whitespace.
Status
Internal
Form
int NetParse_SX_SpecialP(char *s);
DocPos
pd_base/parse/parse_sx.c:77
Description
Returns a nonzero value if *s is special.
Status
Internal
Form
char *NetParse_SX_Token(char *s, char *b, int *t);
DocPos
pd_base/parse/parse_sx.c:133
Description
Reads a token from the SX stream.
This includes:
Individual symbols;
Globs of text/tags;
Strings.
b is the buffer.
t is an integer to hold the token type
TOKEN_NULL, a null terminator was reached;
TOKEN_SPECIAL, a special character.
TOKEN_STRING, a quoted string literal (escapes processed).
TOKEN_SYMBOL, an unquoted bit of text (eg: a tag).
Returns the next character after the token.
Status
Internal
Form
NetParse_Node *NetParse_SX_ParseExpr(char **s);
DocPos
pd_base/parse/parse_sx.c:215
Description
Parses an SX expression.
s is updated to reflect the change.
XML
Form
char *NetParse_XML_EatWhite(char *s);
DocPos
pd_base/parse/parse_xml.c:11
Description
Skips over whitespace.
Status
Internal
Form
int NetParse_XML_SpecialP(char *s);
DocPos
pd_base/parse/parse_xml.c:40
Description
Returns a nonzero value if *s is special.
Status
Internal
Form
int NetParse_XML_ContSpecialP(char *s);
DocPos
pd_base/parse/parse_xml.c:77
Description
Returns nonzero if this will get the parsers attention when reading as text.
This includes '<' and '&'.
Status
Internal
Form
char *NetParse_XML_Token(char *s, char *b, int *t);
DocPos
pd_base/parse/parse_xml.c:103
Description
Reads a token from the XML stream.
This includes:
Individual symbols;
Globs of text/tags;
Strings.
b is the buffer.
t is an integer to hold the token type
TOKEN_NULL, a null terminator was reached;
TOKEN_SPECIAL, a special character.
TOKEN_STRING, a quoted string literal (escapes processed).
TOKEN_SYMBOL, an unquoted bit of text (eg: a tag).
Returns the next character after the token.
Status
Internal
Form
char *NetParse_XML_ParseText(char *s, char *b);
DocPos
pd_base/parse/parse_xml.c:217
Description
Parse a glob of text from the stream.
Handles escapes and such.
Status
Internal
Form
NetParse_Attr *NetParse_XML_ParseOpts(char **s);
DocPos
pd_base/parse/parse_xml.c:318
Description
Parse the list of attributes within a tag.
Status
Internal
Form
NetParse_Node *NetParse_XML_ParseTag(char **s);
DocPos
pd_base/parse/parse_xml.c:451
Description
Parses an individual tag (used in cases, eg, where there may not be a closing tag or such).
s is updated to reflect the change.
Form
NetParse_Node *NetParse_XML_ParseExpr(char **s);
DocPos
pd_base/parse/parse_xml.c:623
Description
Parses an XML expression.
s is updated to reflect the change.
Form
NetParse_Node *NetParse_XML_LoadFile(char *name);
DocPos
pd_base/parse/parse_xml.c:988
Description
loads XML from a file.
returns NULL on failure.
Print
SX
Form
char *NetParse_SX_PrintExpr(char *s, NetParse_Node *exp);
DocPos
pd_base/parse/parse_sx.c:300
Description
Prints an SX expression to s.
Returns the space after the printed expression.
XML
Form
char *NetParse_XML_PrintText(char *s, char *t);
DocPos
pd_base/parse/parse_xml.c:1019
Description
Prints a glob of XML text, generates escapes and such.
Status
Internal
Form
char *NetParse_XML_PrintExpr(char *s, NetParse_Node *exp);
DocPos
pd_base/parse/parse_xml.c:1078
Description
Prints an XML expression to s.
Returns the space after the printed expression.
Form
char *NetParse_XML_PrintFormattedExpr(char *s, NetParse_Node *exp, int ind);
DocPos
pd_base/parse/parse_xml.c:1144
Description
Prints a formatted XML expression to s.
Returns the space after the printed expression.
The idea is for a more editable, yet still parsable, fragment.
Form
int NetParse_XML_FormatExpr(NetParse_Node *exp, int ind);
DocPos
pd_base/parse/parse_xml.c:1220
Description
Prints a formatted XML expression to the screen.
Will not escape characters in text.
ind is the indentation.
Form
int NetParse_XML_FormatExprVF(VFILE *fd, NetParse_Node *exp, int ind);
DocPos
pd_base/parse/parse_xml.c:1292
Description
Prints a formatted XML expression to fd.
ind is the indentation.
The idea is for formatted output for files.
Form
NetParse_Node *NetParse_XML_SaveFile(char *name, NetParse_Node *list);
DocPos
pd_base/parse/parse_xml.c:1381
Description
saves XML to a file.
returns -1 on error.
Compress
Bitstream
Form
int PDBSIO_PeekBits(PDBSIO *ctx, int n);
DocPos
compress/bitstream.c:3
Description
Get n bits from the bitstream, but do not remove the bits from the stream.
Unsafe for operations >24 bits.
Form
int PDBSIO_ReadBits(PDBSIO *ctx);
DocPos
compress/bitstream.c:21
Description
Read a single bit from the bitstream.
Form
int PDBSIO_ReadBits(PDBSIO *ctx, int n);
DocPos
compress/bitstream.c:59
Description
Read n bits from the bitstream.
Form
int PDBSIO_WriteBit(PDBSIO *ctx, int v);
DocPos
compress/bitstream.c:97
Description
Write a single bit to the bitstream.
Form
int PDBSIO_WriteBits(PDBSIO *ctx, int v, int n);
DocPos
compress/bitstream.c:136
Description
Write n bits to the bitstream.
Form
int PDBSIO_WriteCBits(PDBSIO *ctx, int v, int n);
DocPos
compress/bitstream.c:175
Description
Write n constant bits to the bitstream.
If v is 0, n 0's are written, otherwise n 1's are written.
There is not a specific limit set on the number of bits that can be written here.
Form
int PDBSIO_FlushBits(PDBSIO *ctx);
DocPos
compress/bitstream.c:222
Description
Flush any bits in the bitstream and reposition it on the next byte boundary.
Form
PDBSIO *PDBSIO_NewBitstream();
DocPos
compress/bitstream.c:268
Description
Create a new bitstream context.
Form
PDBSIO *PDBSIO_CreateBuffer(byte *buf, int sz, int hl);
DocPos
compress/bitstream.c:283
Description
Create a new bitstream which performs bit io on a buffer.
hl is a flag indicating the bit order. 0 means low-high ordering, 1 means high-low ordering.
In low-high ordering, conceptually the least signifigant bit (0) is on the left hand side of the byte, and the most signifigant bit (7) is on the right. Multi-bit values spanning byte boundaries will have their low bits located in the high end of previous bytes, and their higher bits on the low end of later bytes.
In high-low order, this is the reverse. The MSB(7) is on the left and the LSB(0) is on the right, with multi-bit values having their high bits on the low end of previous bytes and their low bits on the high end of later bytes.
Form
int PDBSIO_GetBytePos(PDBSIO *ctx);
DocPos
compress/bitstream.c:322
Description
Get the byte position in a bitstream.
This position is located within the byte currently to be read/written.
Form
int PDBSIO_GetBitPos(PDBSIO *ctx);
DocPos
compress/bitstream.c:335
Description
Get the bit position in a bitstream.
This position is located after the last bits written, or before the first bits to be read.
Huffman
A basic huffman style encoder.
Internally works in terms of a 12 bit codespace.
Supports multiple huffman tables.
Form
void PDHuff_StatBuffer(int *stat, int *num, byte *buf, int sz);
DocPos
compress/huffman.c:24
Description
Gather statistics for a buffer.
Works with a buffer containing 4096 values.
num is filled with the index (0..4095).
stat is filled with the counts of various lone bytes (0..255), along with the count of pairs of a byte (256..512).
Form
int PDHuff_StatBuffer2(int *stat, int *num, ushort *buf, int sz, int tn);
DocPos
compress/huffman.c:53
Description
Gather statistics for a buffer.
Works with a buffer containing 4096 values.
num is filled with the index (0..4095).
tn is used as a kind of "page id".
stat is filled with the counts of any particular value, so long as ((v>>12)==tn).
Returns the total number of bytes in the desired page.
Form
int PDHuff_QuickSortStats(int *a, int *an, int *b, int *bn, int cnt);
DocPos
compress/huffman.c:85
Description
Internal part of the quicksort function for the stats.
Form
void PDHuff_SortStats(int *stat, int *num);
DocPos
compress/huffman.c:155
Description
Sort a stats buffer from highest to lowest counts.
Form
int PDHuff_PeekBits(PDHuff_CTX *ctx, int n);
DocPos
compress/huffman.c:248
Description
Get n bits from the bitstream, but do not remove the bits from the stream.
Unsafe for operations >24 bits.
Form
int PDHuff_ReadBits(PDHuff_CTX *ctx, int n);
DocPos
compress/huffman.c:264
Description
Read n bits from the bitstream.
Bits are viewed as occuring in low-high ordering, such that bit 0 (the LSB) is placed on the left hand side and bit 7 (the MSB) on the right, followed by bit 0 of the next byte, and so forth. Values are represented such that the least signifigant bits end up comming before more signifigant bits, and higher bits may be placed in subsequent bytes if they cross a byte boundary (that is, values are conceptually backwards).
Limit to operations <=24 bits.
Form
int PDHuff_WriteBits(PDHuff_CTX *ctx, int v, int n);
DocPos
compress/huffman.c:289
Description
Write n bits to the bitstream.
Form
int PDHuff_FlushRBits(PDHuff_CTX *ctx);
DocPos
compress/huffman.c:310
Description
Flush the read bits, eg, position the input stream on the byte boundary following the last bits read.
Form
int PDHuff_FlushWBits(PDHuff_CTX *ctx);
DocPos
compress/huffman.c:338
Description
Write any pending bits to the bitstream and position on the byte boundary following the last bits written.
Form
int PDHuff_BuildNodes(int *stat, int *num, PDHuff_CTX *ctx, int sz, int tn);
DocPos
compress/huffman.c:362
Description
Build a set of huffman nodes for a given set of pre-sorted statistics.
ctx is the context used to hold the table.
sz is the cumulative value for the statistics (the total number of values represented).
tn gives the index number of the huffman tree to build, allowing a context to have multiple huffman trees.
Each tree consists of a number of "levels", each with a particular bit depth and ((1<<b)-1) leaves (the value 0 in each level refers to the next level).
The bit depth is chosen by looking at the first value (ceil(log2((sz-nt)/stat[i]))), where nt is the cumulative value of all previous statistics.
All leaves are then sorted within the given level into ascending value-order.
Form
int PDHuff_ReadNodes(PDHuff_CTX *ctx, int tn);
DocPos
compress/huffman.c:475
Description
Reads a set of nodes from the bitstream.
tn gives the index of the table to be read.
The nodes are represented by a zero terminated list of bit-depths (each 4 bits), followed by a group of 4096 huffman and rle coded entries representing the level number for each value (to be packed on the end of each node).
0xFFF indicates a given entry is unused, 0xFFE a run of 16 unused entries, 0xFFD a run of 64 unused entries, and 0xFFC a run of 256 unused entries.
The counts for these are estimated:
r=4096-k; //0xFFF count
r1=r>>4; //0xFFE count
r-=(r1*15);
r2=r1>>2; //0xFFD count
r1-=(r2*3);
r3=r2>>2; //0xFFC count
r2-=(r3*3);
where k is the cumulative leaf statistic for each level.
Each level value has a statistic ((1<<b)-1), where b is the bit-depth.
Afterwards the stream is byte-aligned.
Form
int PDHuff_WriteNodes(PDHuff_CTX *ctx, int tn);
DocPos
compress/huffman.c:592
Description
Write a set of nodes, as described for read nodes.
Form
int PDHuff_ReadNodesBasic(PDHuff_CTX *ctx, int tn);
DocPos
compress/huffman.c:687
Description
Reads a set of "basic" nodes.
tn is the index of the table to be read.
The nodes have a simpler representation, but may require more bytes.
Each level is represented by a 4 bit code giving the bit-depth, followed by a number of 12 bit leaf values for the node ((1<<b)-1).
A bit depth of 0 is used to terminate the list.
Form
int PDHuff_WriteNodesBasic(PDHuff_CTX *ctx, int tn);
DocPos
compress/huffman.c:735
Description
Write nodes as described previously.
Form
int PDHuff_DestroyNodes(PDHuff_CTX *ctx, int tn);
DocPos
compress/huffman.c:763
Description
Destroy a given set of nodes.
tn gives the index of the table to be destroyed.
Form
int PDHuff_EncodeValue(PDHuff_CTX *ctx, int v, int tn);
DocPos
compress/huffman.c:788
Description
Huffman encodes a given value into the bitstream.
v gives the value to be encoded, and tn gives the index of the table to use.
Form
int PDHuff_DecodeValue(PDHuff_CTX *ctx, int tn);
DocPos
compress/huffman.c:812
Description
Huffman decodes a value from the bitstream.
tn gives the index of the table to use for decoding.
Form
void PDHuff_EncodeLWord(PDHuff_CTX *ctx, int v);
DocPos
compress/huffman.c:837
Description
Encode an "LWord" into the bitstream.
An lword is an integer value consisting of a 6 bit bit-count, followed by that many bits giving the value.
Form
int PDHuff_DecodeLWord(PDHuff_CTX *ctx);
DocPos
compress/huffman.c:854
Description
Decodes an lword from the bitstream.
Form
int PDHuff_EncodeCore(ushort *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:870
Description
Encode a glob of 12 bit values into the buffer given by obuf.
sz indicates the number of values given in ibuf.
Returns the number of bytes in obuf filled.
Layout:
An lword giving the value of sz;
The set of nodes;
A glob of sz huffman encoded values.
Uses the more complex for of huffman tables.
Form
int PDHuff_DecodeCore(byte *ibuf, ushort *obuf, int sz);
DocPos
compress/huffman.c:941
Description
Decodes a glob of 12 bit values into obuf.
sz is the size of the encoded input.
Returns the count for the decoded values.
Form
int PDHuff_StatSizeCore(byte *ibuf);
DocPos
compress/huffman.c:980
Description
Returns the number of encoded values for a buffer.
Form
int PDHuff_RLECompress(byte *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:1007
Description
Perform a simple form of RLE compression.
sz is the size of the input.
Returns the number of bytes in obuf filled.
The encoded data is a set of runs given by a prefix byte.
1..111 give rle runs, followed by a byte giving the value.
-1..-111 give runs of data, followed by the inverse of that value bytes of data.
112 gives a longer rle run, followed by a 16 bit length in low-hi order and a byte giving the value.
0 serves as a terminator value.
Form
int PDHuff_RLECompress2(byte *ibuf, ushort *obuf, int sz);
DocPos
compress/huffman.c:1269
Description
RLE encodes the data into a 12 bit buffer.
sz is the size of the input.
Returns the number of values placed in obuf.
(the generation of shorts is justified by saying that it is intended to be run through the huffman coder, standalone this will just inflate the data...).
Several values are used as "marks":
PDHUFF_RLE_RLEMARK=513: Gives an rle compressed run. This is defined as a byte (0..255) giving the length, followed by a byte giving the value.
PDHUFF_RLE_EOFMARK=514: Marks the end of the encoded data.
PDHUFF_RLE_IDXMARK=515: (not generated by this encoder) Gives a reference into the previously generated output. This is defined as: A relative offset in the range 0..4095, and a length in the range 0..255. The offset tells how far back to get to the string to be used.
Values in the range of 256..512 give a pair of bytes (unused as it tends to hurt compression).
Any other byte values are just represented exactly.
Form
int PDHuff_RLECompress3(byte *ibuf, ushort *obuf, int sz);
DocPos
compress/huffman.c:1338
Description
RLE+LZ77 encodes the data into a 12 bit buffer.
sz is the size of the input.
Returns the number of values placed in obuf.
This is like the previous, but implements the LZ77 algo and makes use of the IDXMARK feature.
Form
int PDHuff_RLECompress4(ushort *ibuf, ushort *obuf, int sz);
DocPos
compress/huffman.c:1465
Description
RLE encodes 16 bit data into a 12 bit buffer.
sz is the size of the input in shorts.
Returns the number of values placed in obuf.
Form
int PDHuff_RLEDecompress2(ushort *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:1509
Description
Decode data generated by RLECompress2 or 3.
Form
int PDHuff_Encode2(byte *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:1579
Description
Encodes the Data using RLECompress2, and huffman encodes the results into obuf.
sz gives the size of the input.
Returns the size of the huffman encoded results.
Form
int PDHuff_Decode2(byte *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:1611
Description
Decode data encoded with Encode2.
Form
int PDHuff_EncodeLZ(byte *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:1632
Description
Like Encode2, but uses RLECompress3, thus having additional lz77 encoding.
For some kinds of data lz encoding may hurt compression (this would be data with a low occurance of repeating strings, or a fair degree of skew).
Form
int PDHuff_DecodeLZ(byte *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:1663
Description
Decode data generated by EncodeLZ.
Form
int PDHuff_Encode12(ushort *ibuf, byte *obuf, int sz);
DocPos
compress/huffman.c:1684
Description
Encodes the Data using RLECompress4, and huffman encodes the results into obuf.
sz gives the size of the input in shorts.
Returns the size of the huffman encoded results.
Function Index
int kprint_openlog();
pd_base/kfunc.c:9
int kprint_logstr(char *s);
pd_base/kfunc.c:21
int panic(char *s, ...);
pd_base/kfunc.c:35
int kprint(char *s, ...);
pd_base/kfunc.c:59
int kprintd(char *s, ...);
pd_base/kfunc.c:85
void *kalloc(int sz);
pd_base/kfunc.c:109
int kfree(void *p);
pd_base/kfunc.c:131
int kincref(void *p);
pd_base/kfunc.c:146
int kdecref(void *p);
pd_base/kfunc.c:159
void *kralloc(int size);
pd_base/kfunc.c:173
char *kstrdup(char *s);
pd_base/kfunc.c:195
char *krstrdup(char *s);
pd_base/kfunc.c:211
char *kdstrdup(char *s);
pd_base/kfunc.c:227
char *kdallocstr(int sz);
pd_base/kfunc.c:243
char *kvprints(char *d, char *s, va_list lst);
pd_base/kfunc.c:259
char *kprints(char *d, char *s, ...);
pd_base/kfunc.c:274
char *ksprint(char *s, ...);
pd_base/kfunc.c:295
int kprintvf(VFILE *fd, char *s, ...);
pd_base/kfunc.c:315
void *kmemdup(void *p, int sz);
pd_base/kfunc.c:338
char *ksgets(char *buf, int l, char *s);
pd_base/kfunc.c:358
int kstricmp(char *s1, char *s2);
pd_base/kfunc.c:399
int katoi(char *s);
pd_base/kfunc.c:410
char *kitoa(int i);
pd_base/kfunc.c:438
int kusleep(int us);
pd_base/kfunc.c:447
int ObjType_FormSize(char *form);
pd_base/objtype.c:51
PDLIB_ObjType *ObjType_NewType(char *name, char *form);
pd_base/objtype.c:193
PDLIB_ObjType *ObjType_FindType(char *type);
pd_base/objtype.c:243
PDLIB_ObjType *ObjType_FindTypeCRC(unsigned int crc);
pd_base/objtype.c:263
void *ObjType_New(char *type, int size);
pd_base/objtype.c:284
PDLIB_ObjType *ObjType_GetType(void *p);
pd_base/objtype.c:333
char *ObjType_GetTypeName(void *p);
pd_base/objtype.c:350
int ObjType_GetSize(void *p);
pd_base/objtype.c:416
void *ObjType_GetBase(void *p);
pd_base/objtype.c:436
long ObjType_GetOffset(void *p);
pd_base/objtype.c:453
long ObjType_GetRelSize(void *p);
pd_base/objtype.c:467
int ObjType_TypeP(void *p, char *type);
pd_base/objtype.c:479
int ObjType_IncRef(void *p);
pd_base/objtype.c:514
int ObjType_DecRef(void *p);
pd_base/objtype.c:526
int ObjType_Init();
pd_base/objtype.c:538
int PDLIB_Image_StoreTypes();
pd_base/image.c:20
int PDLIB_Image_GetType(char *ty);
pd_base/image.c:41
int PDLIB_Image_WriteShort(short v);
pd_base/image.c:52
int PDLIB_Image_WriteInt(int v);
pd_base/image.c:60
int PDLIB_Image_WriteLong(long v);
pd_base/image.c:70
int PDLIB_Image_WriteString(char *str);
pd_base/image.c:87
int PDLIB_Image_GetObj(void *p);
pd_base/image.c:100
int PDLIB_Image_GetString(char *s);
pd_base/image.c:112
void *PDLIB_Image_WriteType(char *ty, void *obj, int count);
pd_base/image.c:124
void *PDLIB_Image_WriteObj(PDLIB_ObjType *ty, void *obj, int size);
pd_base/image.c:185
int PDLIB_Image_StoreStrings();
pd_base/image.c:231
int PDLIB_Image_StoreObjs();
pd_base/image.c:246
int PDLIB_Image_NameObj(char *name, void *ptr);
pd_base/image.c:285
void *PDLIB_Image_FetchName(char *name);
pd_base/image.c:311
int PDLIB_Image_StoreNames();
pd_base/image.c:321
int PDLIB_StoreImage(char *name);
pd_base/image.c:344
int PDLIB_SwapShort(int v);
pd_base/load.c:20
int PDLIB_SwapInt(int v);
pd_base/load.c:26
long PDLIB_SwapLong(long v);
pd_base/load.c:41
char *PDLIB_ReadString(FILE *fd);
pd_base/load.c:62
int PDLIB_ReadShort(FILE *fd);
pd_base/load.c:76
int PDLIB_ReadLong(FILE *fd);
pd_base/load.c:86
void *PDLIB_Load_DecodeType(char *ty, void *obj, int count);
pd_base/load.c:98
void *PDLIB_Load_DecodeObj(PDLIB_ObjType *ty, void *obj, int size);
pd_base/load.c:154
int PDLIB_Load_DecodeObjs();
pd_base/load.c:200
int PDLIB_LoadImage(char *name);
pd_base/load.c:224
int PDLIB_FEI_ExportFunc(char *name, void *f);
pd_base/fei.c:44
void *PDLIB_FEI_ImportFunc(char *name);
pd_base/fei.c:80
char *PDLIB_FEI_FuncName(void *f);
pd_base/fei.c:104
int MM22_InitLow();
pd_base/memory2_2.c:40
void *MM22_Alloc(int size);
pd_base/memory2_2.c:199
int MM22_Free(void *p);
pd_base/memory2_2.c:288
void *MM22_GetBase(void *p);
pd_base/memory2_2.c:302
int MM22_Init();
pd_base/memory2_2.c:341
int GC22_Mark(void *p);
pd_base/memory2_2.c:358
int GC22_ScanRange(void **p, int cnt);
pd_base/memory2_2.c:395
int GC22_Sweep();
pd_base/memory2_2.c:442
int GC22_StackBase(void *p);
pd_base/memory2_2.c:456
int GC22_ScanStack();
pd_base/memory2_2.c:463
int GC22_Collect();
pd_base/memory2_2.c:475
int GC22_GetUsedCells();
pd_base/memory2_2.c:527
int GC22_GetFreeCells();
pd_base/memory2_2.c:532
int GC22_Init();
pd_base/memory2_2.c:537
double Sys_Time();
pd_base/misc_unx.c:14
int Sys_TimeMS();
pd_base/misc_unx.c:28
int Sys_Sleep(int us);
pd_base/misc_unx.c:42
int Sys_OpenShell();
pd_base/misc_unx.c:48
int Sys_CloseShell();
pd_base/misc_unx.c:60
int Sys_ReadChar();
pd_base/misc_unx.c:65
int Sys_WriteChar(int ch);
pd_base/misc_unx.c:74
int Sys_WriteStr(char *str);
pd_base/misc_unx.c:82
char *Sys_SingleLineInput(char *prompt);
pd_base/misc_unx.c:88
char *Sys_ReadLine();
pd_base/misc_unx.c:184
int Sys_ProcExited(unsigned long pid);
pd_base/misc_unx.c:225
int Sys_NewPipe(int hnd[2]);
pd_base/misc_unx.c:234
int Sys_ClosePipe(int hnd);
pd_base/misc_unx.c:239
VFILE *SysVF_OpenPipe(int hnd, int w);
pd_base/misc_unx.c:270
int fd_read_proc(void *buf, int len, VFILE *fd);
pd_base/misc_unx.c:284
int fd_write_proc(void *buf, int len, VFILE *fd);
pd_base/misc_unx.c:289
int fd_seek_proc(VFILE *fd, int adr, int rel);
pd_base/misc_unx.c:294
VFILE *vf_wrap_fhnd(int hnd);
pd_base/misc_unx.c:332
int Sys_Printf(char *s);
pd_base/misc_unx.c:352
int Sys_Init();
pd_base/misc_unx.c:357
int NetVal_IsPRange(void *p, void *b, int r);
pd_base/netval.c:35
char *NetVal_GetVType(byte *p);
pd_base/netval.c:44
int NetVal_HashName(char *s);
pd_base/netval.c:60
char *NetVal_HashSymbol(void **tab, char *ty, char *s);
pd_base/netval.c:70
int NetVal_DumpHash();
pd_base/netval.c:110
void *NetVal_WrapInt(int i);
pd_base/netval.c:140
void *NetVal_WrapInt64(sint64 i);
pd_base/netval.c:160
void *NetVal_WrapChar(int i);
pd_base/netval.c:183
void *NetVal_WrapBool(int i);
pd_base/netval.c:200
void *NetVal_WrapStr(char *s);
pd_base/netval.c:223
void *NetVal_WrapString(char *s);
pd_base/netval.c:233
void *NetVal_WrapSymbol(char *s);
pd_base/netval.c:250
void *NetVal_WrapKeyword(char *s);
pd_base/netval.c:271
void *NetVal_WrapLink(char *s);
pd_base/netval.c:292
void *NetVal_WrapFloat(double f);
pd_base/netval.c:309
void *NetVal_WrapNumber(double f);
pd_base/netval.c:334
void *NetVal_MakeNull();
pd_base/netval.c:352
void *NetVal_WrapArray(void *a);
pd_base/netval.c:368
void *NetVal_WrapDArray(void *a);
pd_base/netval.c:390
void *NetVal_WrapNDArray(void *a, int n);
pd_base/netval.c:409
void *NetVal_WrapDVector(void *a);
pd_base/netval.c:433
int NetVal_UnwrapInt(void *a);
pd_base/netval.c:452
sint64 NetVal_UnwrapInt64(void *a);
pd_base/netval.c:482
char NetVal_UnwrapChar(void *a);
pd_base/netval.c:512
int NetVal_UnwrapBool(void *a);
pd_base/netval.c:524
char *NetVal_UnwrapString(void *a);
pd_base/netval.c:546
char *NetVal_UnwrapSymbol(void *a);
pd_base/netval.c:558
char *NetVal_UnwrapKeyword(void *a);
pd_base/netval.c:570
char *NetVal_UnwrapLink(void *a);
pd_base/netval.c:582
double NetVal_UnwrapFloat(void *a);
pd_base/netval.c:594
void **NetVal_UnwrapArray(void *a);
pd_base/netval.c:625
void **NetVal_UnwrapDArray(void *a);
pd_base/netval.c:637
void **NetVal_UnwrapDVector(void *a);
pd_base/netval.c:649
void *NetVal_UnwrapIntArray(void *a, int ar);
pd_base/netval.c:666
void *NetVal_UnwrapStringArray(void *a, int ar);
pd_base/netval.c:708
void *NetVal_UnwrapFloatArray(void *a, int ar);
pd_base/netval.c:750
void *NetVal_UnwrapDoubleArray(void *a, int ar);
pd_base/netval.c:792
int NetVal_IsTypeNumber(char *ty);
pd_base/netval.c:829
int NetVal_IsNumber(void *p);
pd_base/netval.c:844
int NetVal_Init();
pd_base/netval.c:855
int add_u8(u8 c, u8 a, u8 b);
pd_base/long64.c:4
int sub_u8(u8 c, u8 a, u8 b);
pd_base/long64.c:34
int mul_u8(u8 c, u8 a, u8 b);
pd_base/long64.c:64
int cmp_u8(u8 a, u8 b);
pd_base/long64.c:109
int div_u8(u8 c, u8 a, u8 b);
pd_base/long64.c:120
int shr_u8(u8 c, u8 a, int b);
pd_base/long64.c:138
int shl_u8(u8 c, u8 a, int b);
pd_base/long64.c:169
int add_s8(s8 c, s8 a, s8 b);
pd_base/long64.c:201
int sub_s8(s8 c, s8 a, s8 b);
pd_base/long64.c:206
int neg_s8(s8 c, s8 a);
pd_base/long64.c:211
int abs_s8(u8 c, s8 a);
pd_base/long64.c:218
int mul_s8(s8 c, s8 a, s8 b);
pd_base/long64.c:232
int div_s8(s8 c, s8 a, s8 b);
pd_base/long64.c:247
int cmp_s8(s8 a, s8 b);
pd_base/long64.c:262
int shr_s8(s8 c, s8 a, int b);
pd_base/long64.c:273
int shl_s8(s8 c, s8 a, int b);
pd_base/long64.c:308
int copy_u8(u8 c, u8 a);
pd_base/long64.c:313
int copy_s8(s8 c, s8 a);
pd_base/long64.c:320
int vfread(void *buf, int s1, int s2, VFILE *fd);
pd_base/vfile.c:31
int vfwrite(void *buf, int s1, int s2, VFILE *fd);
pd_base/vfile.c:68
int vfseek(VFILE *fd, int pos, int rel);
pd_base/vfile.c:104
int vflseek(VFILE *fd, s8 pos, s8 ret, int rel);
pd_base/vfile.c:149
int vfsread(void *buf, u4 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
pd_base/vfile.c:199
int vfswrite(void *buf, u4 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
pd_base/vfile.c:233
int vfreads(void *buf, u4 pos, int len, VFILE *fd);
pd_base/vfile.c:267
int vfwrites(void *buf, u4 pos, int len, VFILE *fd);
pd_base/vfile.c:278
int vflread(void *buf, u8 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
pd_base/vfile.c:289
int vflwrite(void *buf, u8 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
pd_base/vfile.c:317
int vftell(VFILE *fd);
pd_base/vfile.c:351
int vfgetc(VFILE *fd);
pd_base/vfile.c:367
int vfputc(int val, VFILE *fd);
pd_base/vfile.c:381
int vfclose(VFILE *fd);
pd_base/vfile.c:395
int vfeof(VFILE *fd);
pd_base/vfile.c:408
int vfflush(VFILE *fd);
pd_base/vfile.c:421
int vfinready(VFILE *fd);
pd_base/vfile.c:435
int vfioctl(VFILE *fd, int req, char *argp);
pd_base/vfile.c:455
int vfioctls(VFILE *fd, ...);
pd_base/vfile.c:469
void *vfmmap(void *addr, int length, int prot, int flags, VFILE *fd, int offs);
pd_base/vfile.c:486
int vfmunmap(void *start, int length, VFILE *fd);
pd_base/vfile.c:493
int vfmsync(void *start, int length, int flags, VFILE *fd);
pd_base/vfile.c:499
int vfsend(VFILE *sock, VADDR *target, void *msg, int len, int flags);
pd_base/vfile.c:513
int vfget(void *buf, int sz, VADDR *from, VFILE *sock);
pd_base/vfile.c:529
int vfaread(void *buf, int s1, int s2, VFILE *fd);
pd_base/vfile.c:537
int vfawrite(void *buf, int s1, int s2, VFILE *fd);
pd_base/vfile.c:543
int vfaseek(VFILE *fd, int pos, int rel);
pd_base/vfile.c:549
int vfatell(VFILE *fd);
pd_base/vfile.c:555
int vfagetc(VFILE *fd);
pd_base/vfile.c:561
int vfaputc(int v, VFILE *fd);
pd_base/vfile.c:567
int vfaclose(VFILE *fd);
pd_base/vfile.c:573
int vfaeof(VFILE *fd);
pd_base/vfile.c:579
int vfaflush(VFILE *fd);
pd_base/vfile.c:585
int vfainready(VFILE *fd);
pd_base/vfile.c:591
char *vfagets(char *s, int n, VFILE *fd);
pd_base/vfile.c:597
VFNOTIFY *vfaddnotify(VFILE *fd, int (*func)(VFILE *fd), int flags);
pd_base/vfile.c:605
int vfnotify(VFILE *fd, int cond);
pd_base/vfile.c:621
VFILE *vfnew();
pd_base/vfile.c:645
int vfdestroy(VFILE *fd);
pd_base/vfile.c:671
char *vfgets(char *s, int n, VFILE *fd);
pd_base/vfile.c:685
byte *vf_bufferin(VFILE *fd);
pd_base/vfile.c:714
int clip_sread(void *buf, s8 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
pd_base/vfile.c:738
int clip_swrite(void *buf, s8 pos, int len, VFILE *fd, vf_int_cb *cb, void *data);
pd_base/vfile.c:750
int clip_read(void *buf, int l, VFILE *fd);
pd_base/vfile.c:762
int clip_write(void *buf, int l, VFILE *fd);
pd_base/vfile.c:784
int clip_lseek(VFILE *fd, s8 pos, s8 ret, int rel);
pd_base/vfile.c:806
int clip_tell(VFILE *fd);
pd_base/vfile.c:846
int clip_close(VFILE *fd);
pd_base/vfile.c:862
int clip_eof(VFILE *fd);
pd_base/vfile.c:869
int clip_flush(VFILE *fd);
pd_base/vfile.c:880
int clip_inready(VFILE *fd);
pd_base/vfile.c:888
int clip_ioctl(VFILE *fd, int req, void *argp);
pd_base/vfile.c:896
int clip_ioctls(VFILE *fd, void **argp);
pd_base/vfile.c:904
void *clip_mmap(void *addr, int length, int prot, int flags, VFILE *fd, int offs);
pd_base/vfile.c:912
VFILE *vf_clip(VFILE *fd, u8 start, u8 length);
pd_base/vfile.c:938
VFILE *vf_wrap_file(FILE *fd);
pd_base/vfile.c:1010
VFILE *vffopen(char *name, char *access);
pd_base/vfile.c:1026
VFILE *vf_wrap_fd(FILE *fd);
pd_base/vf_us.c:107
VFILE *vffopen_us(char *name, char *access);
pd_base/vf_us.c:139
VFILE *vffopen(char *s, char *a);
pd_base/vf_us.c:165
int Var_Init();
pd_base/vars.c:19
PDLIB_Var *Var_Lookup(char *name);
pd_base/vars.c:37
PDLIB_Var *Var_Create(char *name);
pd_base/vars.c:52
PDLIB_Var *Var_SetString(char *name, char *value);
pd_base/vars.c:74
char *Var_GetString(char *name);
pd_base/vars.c:111
float Var_GetValue(char *name);
pd_base/vars.c:127
int Var_ParseConfig(VFILE *fd);
pd_base/vars.c:148
int Var_LoadConfig(char *name);
pd_base/vars.c:203
void IFF_WriteInt16LE(VFILE *fd, iff_uint16 i);
pd_base/format/fmt_iff.c:3
void IFF_WriteInt16BE(VFILE *fd, iff_uint16 i);
pd_base/format/fmt_iff.c:9
iff_uint16 IFF_ReadInt16LE(VFILE *fd);
pd_base/format/fmt_iff.c:15
iff_uint16 IFF_ReadInt16BE(VFILE *fd);
pd_base/format/fmt_iff.c:23
void IFF_WriteInt16(VFILE *fd, iff_uint16 i, int be);
pd_base/format/fmt_iff.c:31
iff_uint16 IFF_ReadInt16(VFILE *fd, int be);
pd_base/format/fmt_iff.c:37
void IFF_WriteInt32LE(VFILE *fd, iff_uint32 i);
pd_base/format/fmt_iff.c:43
void IFF_WriteInt32BE(VFILE *fd, iff_uint32 i);
pd_base/format/fmt_iff.c:51
void IFF_WriteFourcc(VFILE *fd, iff_fourcc i);
pd_base/format/fmt_iff.c:59
iff_uint32 IFF_ReadInt32LE(VFILE *fd);
pd_base/format/fmt_iff.c:67
iff_uint32 IFF_ReadInt32BE(VFILE *fd);
pd_base/format/fmt_iff.c:77
iff_fourcc IFF_ReadFourcc(VFILE *fd);
pd_base/format/fmt_iff.c:87
void IFF_WriteInt32(VFILE *fd, iff_uint32 i, int be);
pd_base/format/fmt_iff.c:97
iff_uint32 IFF_ReadInt32(VFILE *fd, int be);
pd_base/format/fmt_iff.c:103
void IFF_WriteInt64LE(VFILE *fd, iff_uint64 i);
pd_base/format/fmt_iff.c:110
void IFF_WriteInt64BE(VFILE *fd, iff_uint64 i);
pd_base/format/fmt_iff.c:122
void IFF_WriteEightcc(VFILE *fd, iff_eightcc i);
pd_base/format/fmt_iff.c:134
iff_uint64 IFF_ReadInt64LE(VFILE *fd);
pd_base/format/fmt_iff.c:146
iff_uint64 IFF_ReadInt64BE(VFILE *fd);
pd_base/format/fmt_iff.c:160
iff_eightcc IFF_ReadEightcc(VFILE *fd);
pd_base/format/fmt_iff.c:174
void IFF_WriteInt64(VFILE *fd, iff_uint64 i, int be);
pd_base/format/fmt_iff.c:188
iff_uint64 IFF_ReadInt64(VFILE *fd, int be);
pd_base/format/fmt_iff.c:194
void IFF_WriteIntTsz(VFILE *fd, iff_uint64 i, int tsz);
pd_base/format/fmt_iff.c:200
iff_uint64 IFF_ReadIntTsz(VFILE *fd, int tsz);
pd_base/format/fmt_iff.c:221
int IFF_FloodFillFD(VFILE *fd, iff_uint64 offs, iff_uint64 size);
pd_base/format/fmt_iff.c:245
char *IFF_Fourcc2String(iff_fourcc fcc);
pd_base/format/fmt_iff.c:281
IFF_Context *IFF_OpenFileWrite(char *name, iff_fourcc fcc, iff_fourcc ty);
pd_base/format/fmt_iff.c:301
void IFF_CloseFileWrite(IFF_Context *ctx);
pd_base/format/fmt_iff.c:316
void IFF_BeginChunk(IFF_Context *ctx, iff_fourcc fcc);
pd_base/format/fmt_iff.c:324
void IFF_BeginListChunk(IFF_Context *ctx, iff_fourcc fcc, iff_fourcc ty);
pd_base/format/fmt_iff.c:334
void IFF_EndChunk(IFF_Context *ctx);
pd_base/format/fmt_iff.c:345
IFF_Context *IFF_OpenFileRead(char *name, iff_fourcc *fccp, iff_offset *szp,iff_fourcc *typ);
pd_base/format/fmt_iff.c:361
void IFF_CloseFileRead(IFF_Context *ctx);
pd_base/format/fmt_iff.c:395
void IFF_ReadChunkInfo(IFF_Context *ctx, iff_fourcc *fcc, iff_offset *size,iff_fourcc *ty);
pd_base/format/fmt_iff.c:402
void IFF_EnterChunk(IFF_Context *ctx);
pd_base/format/fmt_iff.c:419
void IFF_ExitChunk(IFF_Context *ctx);
pd_base/format/fmt_iff.c:427
LIFF_Context *LIFF_OpenFileWrite(char *name, iff_eightcc fcc, iff_eightcc ty);
pd_base/format/fmt_liff.c:3
void LIFF_CloseFileWrite(LIFF_Context *ctx);
pd_base/format/fmt_liff.c:19
int LIFF_GetTsz(LIFF_Context *ctx);
pd_base/format/fmt_liff.c:27
void LIFF_BeginChunk(LIFF_Context *ctx, iff_eightcc fcc, int tsz);
pd_base/format/fmt_liff.c:34
void LIFF_BeginListChunk(LIFF_Context *ctx, iff_eightcc fcc, iff_eightcc ty,int tsz);
pd_base/format/fmt_liff.c:50
void LIFF_EndChunk(LIFF_Context *ctx);
pd_base/format/fmt_liff.c:66
LIFF_Context *LIFF_OpenFileRead(char *name, iff_eightcc *fccp, iff_offset *szp,iff_eightcc *typ);
pd_base/format/fmt_liff.c:88
void LIFF_CloseFileRead(IFF_Context *ctx);
pd_base/format/fmt_liff.c:122
void LIFF_ReadChunkInfo(LIFF_Context *ctx, iff_eightcc *fcc, iff_offset *size,iff_eightcc *ty);
pd_base/format/fmt_liff.c:129
void LIFF_EnterChunk(LIFF_Context *ctx, int tsz);
pd_base/format/fmt_liff.c:149
void LIFF_ExitChunk(LIFF_Context *ctx);
pd_base/format/fmt_liff.c:162
int NetParse_Init();
pd_base/parse/parse_tree.c:11
NetParse_Attr *NetParse_NewAttr();
pd_base/parse/parse_tree.c:31
NetParse_Attr *NetParse_AddAttr(NetParse_Node *node, char *key, char *value);
pd_base/parse/parse_tree.c:54
NetParse_Attr *NetParse_AddAttrList(NetParse_Attr *lst, char *key, char *value);
pd_base/parse/parse_tree.c:97
char *NetParse_GetNodeAttr(NetParse_Node *node, char *key);
pd_base/parse/parse_tree.c:136
int NetParse_GetNodeAttrIsP(NetParse_Node *node, char *key, char *value);
pd_base/parse/parse_tree.c:156
char *NetParse_GetAttrList(NetParse_Attr *lst, char *key);
pd_base/parse/parse_tree.c:182
NetParse_Node *NetParse_NewNode();
pd_base/parse/parse_tree.c:202
NetParse_Node *NetParse_AddNodeEnd(NetParse_Node *first, NetParse_Node *node);
pd_base/parse/parse_tree.c:227
int NetParse_AddChildNode(NetParse_Node *parent,NetParse_Node *node);
pd_base/parse/parse_tree.c:248
int NetParse_FreeAttr(NetParse_Attr *attr);
pd_base/parse/parse_tree.c:273
int NetParse_FreeNode(NetParse_Node *node);
pd_base/parse/parse_tree.c:292
NetParse_Attr *NetParse_CopyAttr(NetParse_Attr *attr);
pd_base/parse/parse_tree.c:326
NetParse_Node *NetParse_CopyNode(NetParse_Node *node);
pd_base/parse/parse_tree.c:351
NetParse_Node *NetParse_FindKey(NetParse_Node *first, char *key);
pd_base/parse/parse_tree.c:391
NetParse_Node *NetParse_NewNodeKey(char *ns, char *key);
pd_base/parse/parse_tree.c:417
NetParse_Node *NetParse_NewNodeText(char *text);
pd_base/parse/parse_tree.c:434
char *NetParse_GetNodeNS(NetParse_Node *node);
pd_base/parse/parse_tree.c:456
char *NetParse_GetNodeKey(NetParse_Node *node);
pd_base/parse/parse_tree.c:461
char *NetParse_GetNodeText(NetParse_Node *node);
pd_base/parse/parse_tree.c:466
NetParse_Node *NetParse_GetNodeFirst(NetParse_Node *node);
pd_base/parse/parse_tree.c:471
NetParse_Node *NetParse_GetNodeNext(NetParse_Node *node);
pd_base/parse/parse_tree.c:476
int NetParse_SetNodeNS(NetParse_Node *node, char *value);
pd_base/parse/parse_tree.c:493
int NetParse_SetNodeKey(NetParse_Node *node, char *value);
pd_base/parse/parse_tree.c:499
int NetParse_SetNodeText(NetParse_Node *node, char *value);
pd_base/parse/parse_tree.c:505
int NetParse_SetNodeFirst(NetParse_Node *node, NetParse_Node *node2);
pd_base/parse/parse_tree.c:511
int NetParse_SetNodeNext(NetParse_Node *node, NetParse_Node *node2);
pd_base/parse/parse_tree.c:517
char *NetParse_SX_EatWhite(char *s);
pd_base/parse/parse_sx.c:28
int NetParse_SX_SpecialP(char *s);
pd_base/parse/parse_sx.c:85
char *NetParse_SX_Token(char *s, char *b, int *t);
pd_base/parse/parse_sx.c:152
NetParse_Node *NetParse_SX_ParseExpr(char **s);
pd_base/parse/parse_sx.c:226
char *NetParse_SX_PrintExpr(char *s, NetParse_Node *exp);
pd_base/parse/parse_sx.c:308
char *NetParse_XML_EatWhite(char *s);
pd_base/parse/parse_xml.c:19
int NetParse_XML_SpecialP(char *s);
pd_base/parse/parse_xml.c:48
int NetParse_XML_ContSpecialP(char *s);
pd_base/parse/parse_xml.c:86
char *NetParse_XML_Token(char *s, char *b, int *t);
pd_base/parse/parse_xml.c:122
char *NetParse_XML_ParseText(char *s, char *b);
pd_base/parse/parse_xml.c:226
NetParse_Attr *NetParse_XML_ParseOpts(char **s);
pd_base/parse/parse_xml.c:326
NetParse_Node *NetParse_XML_ParseTag(char **s);
pd_base/parse/parse_xml.c:459
NetParse_Node *NetParse_XML_ParseExpr(char **s);
pd_base/parse/parse_xml.c:634
NetParse_Node *NetParse_XML_LoadFile(char *name);
pd_base/parse/parse_xml.c:996
char *NetParse_XML_PrintText(char *s, char *t);
pd_base/parse/parse_xml.c:1027
char *NetParse_XML_PrintExpr(char *s, NetParse_Node *exp);
pd_base/parse/parse_xml.c:1086
char *NetParse_XML_PrintFormattedExpr(char *s, NetParse_Node *exp, int ind);
pd_base/parse/parse_xml.c:1154
int NetParse_XML_FormatExpr(NetParse_Node *exp, int ind);
pd_base/parse/parse_xml.c:1230
int NetParse_XML_FormatExprVF(VFILE *fd, NetParse_Node *exp, int ind);
pd_base/parse/parse_xml.c:1302
int NetParse_XML_SaveFile(char *name, NetParse_Node *list);
pd_base/parse/parse_xml.c:1390
BIMG_TypeContext *BIMG_TypeCtx_LookupType(char *name);
pd_base/img2/context.c:5
BIMG_TypeContext *BIMG_TypeCtx_GetType(char *name);
pd_base/img2/context.c:18
int BIMG_ReadInt16(VFILE *fd);
pd_base/img2/load.c:3
int BIMG_ReadInt32(VFILE *fd);
pd_base/img2/load.c:13
sint64 BIMG_ReadInt64(VFILE *fd);
pd_base/img2/load.c:25
int BIMG_ReadChunkInfo(VFILE *fd, int ofs, int *id, int *sz);
pd_base/img2/load.c:41
int BIMG_NextChunk(VFILE *fd, int ofs);
pd_base/img2/load.c:51
int BIMG_Load_IndexChunks(BIMG_Context *ctx);
pd_base/img2/load.c:61
int BIMG_Load_FindChunk(BIMG_Context *ctx, int fst, int tag);
pd_base/img2/load.c:87
void *BIMG_Load_PreLoadObject(BIMG_Context *ctx, int index);
pd_base/img2/load.c:96
int BIMG_Load_PreLoadAll(BIMG_Context *ctx);
pd_base/img2/load.c:130
int BIMG_Load_PostLoadAll(BIMG_Context *ctx);
pd_base/img2/load.c:160
void *BIMG_Load_GetObject(BIMG_Context *ctx, int i);
pd_base/img2/load.c:185
void *BIMG_Load_Image(char *name);
pd_base/img2/load.c:190
int BIMG_Save_WriteInt32(VFILE *fd, int v);
pd_base/img2/save.c:3
int BIMG_Save_IndexString(BIMG_Context *ctx, char *str);
pd_base/img2/save.c:10
int BIMG_Save_WriteNewChunk(BIMG_Context *ctx, unsigned int tag, int sz,void *buf);
pd_base/img2/save.c:29
int BIMG_Save_BeginChunk(BIMG_Context *ctx, unsigned int tag, int size);
pd_base/img2/save.c:54
int BIMG_Save_EndChunk(BIMG_Context *ctx, int num);
pd_base/img2/save.c:75
int BIMG_Save_IndexObject(BIMG_Context *ctx, void *obj);
pd_base/img2/save.c:97
int BIMG_Save_Image(char *name, void *root);
pd_base/img2/save.c:126
int bimg_types_save(BIMG_Context *ctx, void *obj);
pd_base/img2/types.c:7
void *bimg_types_preload(BIMG_Context *ctx, char *tyn, int size);
pd_base/img2/types.c:134
int bimg_types_postload(BIMG_Context *ctx, void *obj, char *tyn, int size);
pd_base/img2/types.c:213
int BIMG_Types_Init();
pd_base/img2/types.c:251
int PDBSIO_PeekBits(PDBSIO *ctx, int n);
compress/bitstream.c:11
int PDBSIO_ReadBit(PDBSIO *ctx);
compress/bitstream.c:28
int PDBSIO_ReadBits(PDBSIO *ctx, int n);
compress/bitstream.c:66
int PDBSIO_WriteBit(PDBSIO *ctx, int v);
compress/bitstream.c:104
int PDBSIO_WriteBits(PDBSIO *ctx, int v, int n);
compress/bitstream.c:143
int PDBSIO_FlushBits(PDBSIO *ctx);
compress/bitstream.c:230
PDBSIO *PDBSIO_NewBitstream();
compress/bitstream.c:276
PDBSIO *PDBSIO_CreateBuffer(byte *buf, int sz, int hl);
compress/bitstream.c:303
int PDBSIO_GetBytePos(PDBSIO *ctx);
compress/bitstream.c:338
int PDBSIO_GetBitPos(PDBSIO *ctx);
compress/bitstream.c:352
void PDHuff_StatBuffer(int *stat, int *num, byte *buf, int sz);
compress/huffman.c:35
int PDHuff_StatBuffer2(int *stat, int *num, ushort *buf, int sz, int tn);
compress/huffman.c:67
int PDHuff_QuickSortStats(int *a, int *an, int *b, int *bn, int cnt);
compress/huffman.c:94
void PDHuff_SortStats(int *stat, int *num);
compress/huffman.c:164
int PDHuff_PeekBits(PDHuff_CTX *ctx, int n);
compress/huffman.c:258
int PDHuff_ReadBits(PDHuff_CTX *ctx, int n);
compress/huffman.c:280
int PDHuff_WriteBits(PDHuff_CTX *ctx, int v, int n);
compress/huffman.c:303
int PDHuff_FlushRBits(PDHuff_CTX *ctx);
compress/huffman.c:325
int PDHuff_FlushWBits(PDHuff_CTX *ctx);
compress/huffman.c:354
int PDHuff_BuildNodes(int *stat, int *num,PDHuff_CTX *ctx, int sz, int tn);
compress/huffman.c:394
int PDHuff_ReadNodes(PDHuff_CTX *ctx, int tn);
compress/huffman.c:521
int PDHuff_WriteNodes(PDHuff_CTX *ctx, int tn);
compress/huffman.c:621
int PDHuff_ReadNodesBasic(PDHuff_CTX *ctx, int tn);
compress/huffman.c:722
int PDHuff_WriteNodesBasic(PDHuff_CTX *ctx, int tn);
compress/huffman.c:765
int PDHuff_DestroyNodes(PDHuff_CTX *ctx, int tn);
compress/huffman.c:794
int PDHuff_EncodeValue(PDHuff_CTX *ctx, int v, int tn);
compress/huffman.c:819
int PDHuff_DecodeValue(PDHuff_CTX *ctx, int tn);
compress/huffman.c:843
void PDHuff_EncodeLWord(PDHuff_CTX *ctx, int v);
compress/huffman.c:869
int PDHuff_DecodeLWord(PDHuff_CTX *ctx);
compress/huffman.c:885
int PDHuff_EncodeCore(ushort *ibuf, byte *obuf, int sz);
compress/huffman.c:910
int PDHuff_DecodeCore(byte *ibuf, ushort *obuf, int sz);
compress/huffman.c:975
int PDHuff_StatSizeCore(byte *ibuf);
compress/huffman.c:1011
int PDHuff_RLECompress(byte *ibuf, byte *obuf, int sz);
compress/huffman.c:1048
int PDHuff_Encode(byte *ibuf, byte *obuf, int isz);
compress/huffman.c:1102
int PDHuff_Decode(byte *ibuf, byte *obuf, int sz);
compress/huffman.c:1209
int PDHuff_RLECompress2(byte *ibuf, ushort *obuf, int sz);
compress/huffman.c:1323
int PDHuff_RLECompress3(byte *ibuf, ushort *obuf, int sz);
compress/huffman.c:1385
int PDHuff_RLECompress4(short *ibuf, ushort *obuf, int sz);
compress/huffman.c:1510
int PDHuff_RLEDecompress2(ushort *ibuf, byte *obuf, int sz);
compress/huffman.c:1552
int PDHuff_Encode2(byte *ibuf, byte *obuf, int sz);
compress/huffman.c:1625
int PDHuff_Decode2(byte *ibuf, byte *obuf, int sz);
compress/huffman.c:1655
int PDHuff_EncodeLZ(byte *ibuf, byte *obuf, int sz);
compress/huffman.c:1678
int PDHuff_DecodeLZ(byte *ibuf, byte *obuf, int sz);
compress/huffman.c:1708
int PDHuff_Encode12(short *ibuf, byte *obuf, int sz);
compress/huffman.c:1732
PDHuff2_Table *PDHuff2_NewInitialTable();
compress/dhuff.c:4
int PDHuff2_DestroyTable(PDHuff2_Table *tbl);
compress/dhuff.c:30
void PDHuff2_RecalcTable(PDHuff2_Table *tbl, int base);
compress/dhuff.c:57
void PDHuff2_AddCharTable(PDHuff2_Table *tbl, int v);
compress/dhuff.c:110
int PDHuff2_EncodeIdx(PDBSIO *bs, PDHuff2_Table *tbl, int v);
compress/dhuff.c:138
int PDHuff2_DecodeIdx(PDBSIO *bs, PDHuff2_Table *tbl);
compress/dhuff.c:159
int PDHuff2_EncodeValue(PDBSIO *bs, PDHuff2_Table *tbl, int v);
compress/dhuff.c:173
int PDHuff2_DecodeValue(PDBSIO *bs, PDHuff2_Table *tbl);
compress/dhuff.c:178
int PDHuff2_Encode12(ushort *ibuf, byte *obuf, int sz);
compress/dhuff.c:183
int PDHuff2_Decode12(byte *ibuf, ushort *obuf, int sz);
compress/dhuff.c:209
int PDHuff2_Encode8(byte *ibuf, byte *obuf, int sz);
compress/dhuff.c:230
int PDHuff2_HashPos(int **hash, byte *ibuf, byte *in);
compress/dhuff.c:282
int PDHuff2_FindString2(int **hash, int *pos, int *len,byte *ibuf, byte *in, byte *ine);
compress/dhuff.c:305
int PDHuff2_FindString(int **hash, int *pos, int *len,byte *ibuf, byte *in, byte *ine);
compress/dhuff.c:372
int PDHuff2_EncodeLZ8(byte *ibuf, byte *obuf, int sz);
compress/dhuff.c:393
int PDHuff2_Decode8(byte *ibuf, byte *obuf, int sz);
compress/dhuff.c:481
int PDHuff2_EncodeRLE12(short *ibuf, byte *obuf, int sz);
compress/dhuff.c:521
BTEC_CTX *BTEC_CreateContext(int bd, PDBSIO *bs);
compress/btec0.c:7
int BTEC_UpdateModel(BTEC_CTX *ctx, int tsp, int tn, int fn);
compress/btec0.c:62
int BTEC_EncodeValue(BTEC_CTX *ctx, int v);
compress/btec0.c:167
int BTEC_DecodeValue(BTEC_CTX *ctx);
compress/btec0.c:249
int BTEC_EncodeShort(ushort *ibuf, byte *obuf, int bd, int sz);
compress/btec0.c:336
int BTEC_DecodeShort(byte *ibuf, ushort *obuf, int bd, int sz);
compress/btec0.c:359
int BTEC_Encode8(byte *ibuf, byte *obuf, int sz);
compress/btec0.c:383
int BTEC_Decode8(byte *ibuf, byte *obuf, int bd, int sz);
compress/btec0.c:404
int PDComp_Arith4_Encode(byte *ibuf, byte *obuf, int sz);
compress/arith4.c:381
int PDComp_Arith4_Decode(byte *ibuf, byte *obuf, int sz);
compress/arith4.c:463
int PDBS0_FilterEncode(byte *ibuf, byte *obuf, int sz, int ord);
compress/bs0.c:99
int PDComp_BS1_Filter(byte *ibuf, byte *obuf, int sz);
compress/bs1.c:3
pdscript
COPYING
PDLIB: A collection of utility functions and other stuff.
Copyright (C) 2005 Brendan G Bohannon (aka: cr88192)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
Email: cr88192@hotmail.com
PDScript Lang
Statements
Statements:
break [<number>]
break. number will optionally give a number of break levels to skip over.
continue [<number>]
continue. number will optionally give a number of break levels to skip over.
goto <name>
goto a label given by name.
throw <name>
throw an exception given by name.
return;
return <EXPR>
return from a function with a given value. the form absent a value by defualt returns NULL.
bind <EXPR>=<EXPR>
set <EXPR>=<EXPR>
bind or set values in the first expression to those in the second form.
this is deprecated in favor of <EXPR>=<EXPR>.
<name>++
<name>--
Block Statements:
<name>: label.
object <name> [clones <EXPR>] [extends <ARGS>] [toplevel <expr>] <BLOCK>
creates a new object (an alternative to dictionary notation).
begin_object <EXPR> <BLOCK>
execute block within the context of the object given by expr.
function <name>(<VARS>) <BLOCK>
defines a new function in the object scope.
lfunction <name>(<VARS>) <BLOCK>
defines a new function in the lexical scope.
macro_statement <name>(<VARS>) <BLOCK>
defines a new statement macro.
macro_expression <name>(<VARS>) <BLOCK>
defines a new expression macro.
if(<EXPR>)<BLOCK> [else <BLOCK>]
begin <BLOCK>
naturally execute block once, however break and continue may be used to exit or loop within block.
while(<EXPR>)<BLOCK>
a while loop.
for(<STMT>; <EXPR>; <STMT>)<BLOCK>
a for loop.
let <name>(VARS) <BLOCK>
let, non-working
switch(<EXPR>) {<branches>}
switch statement.
try <BLOCK> [catch <name> <BLOCK>]*
executes a block and catch an exception of a given name, in which case the handler block will be executed.
var <VARS>
define vars in the object scope.
dynvar <VARS>
define vars in the dynamic scope.
local <VARS>
define vars in the lexical scope.
Expressions
Lit: Literal values/builtin expressions
PE: (<expr>) <expr>[<expr>] <expr>.<name>
IncDec: ++<name> --<name> + - ! ~ ... <name>++ <name>-- <expr>(<args>)[<BLOCK>]
E: <expr>**<expr>
MD: * / % \ &
AS: + - | ^
SHLR: << >>
RCmp: < > <= >= == != <=> <<== >>==
Lop: &&
Lop2: || ^^
TCond: <expr>?<expr>:<expr>
Attr: := :!= :< :> :<= :>= :<< :>> :<<= :>>=
Equals: = += -= *= /= \= %= &= |= ^= >>= <<=
Literals:
$<name>
#<name> symbol
#:<name> keyword
#{<ARGS>} matrix
#[<ARGS>] vector
#(<ARGS>) complex
{<ARGS>} array
[<ARGS>] dictionary
[:<ARGS>:] list
-<NUMBER> negative number
lambda [<name>](<VARS>) <BLOCK>
fun [<name>](<VARS>) <BLOCK>
define a first-class function. name may be used to allow recursive forms, and will be visible only within the lexical scope of the block.
let <name>(VARS) <BLOCK>
[dropped]
let, non-working
withcc(<name>) <BLOCK>
new continuation. BLOCK is executed with the continuation bound to name.
object <name> [clones <EXPR>] [extends <ARGS>] <BLOCK>
creates a new object (an alternative to dictionary notation).
begin_object <EXPR> <BLOCK>
execute block within the context of the object given by expr.
quote_xml <XML>
treats a chunk of xml as if it were a parse tree.
xml <XML>
creates a glob of xml to be used as a value.
statement <BLOCK>
represents a statement in expresion position (intended primarily for macros).
quote(<EXPR>)
quote <BLOCK>
quote a statement or expression, generating a value that can be used in working with syntax.
clone <EXPR>
clone an object.
new <EXPR>(<ARGS>)
create a new object and call the constructor with args.
<name> var reference.
<number> numeric literal.
<string> string literal.
<charstr> character literal.
Builtins
true: boolean true value
false: boolean false value
null: null value
system.io.print(...)
print items
system.io.println(...)
print items with trailing linebreak
system.interp.eval_block(block, self)
evaluates a block of statements
system.interp.eval_expr(expr)
evaluates an expression and returns result
system.interp.load(name[, toplevel])
load and run a script
system.math.vector(<number+>)
creates a numeric vector
system.math.normalize(vector)
normalize a vector
system.basic.tostring(obj, ...)
convert an object to a string
system.basic.copy(obj)
copy an object
system.basic.builtin_join(obj)
try to fetch a value from an object, otherwise returns NULL.
system.basic.gettypename(obj)
fetch type name for obj
system.basic.apply(fun, args[, self])
apply a function to an array containing args. self is optionally the toplevel to use during the apply.
system.basic.buildxml(...)
build a chunk of xml
system.system.usedheap()
gets number of used cells on heap
system.system.freeheap()
gets number of free cells on heap
system.system.deltaheap()
heap size delta since last call
system.math.PI: Constant PI
system.math.E: Constant Epsilon
system.math.CI: Constant Complex I, #(0, 1)
system.math.CJ: Constant Complex J, #(0, 0, 1)
system.math.CK: Constant Complex K, #(0, 0, 0, 1)
system.math.sqrt(x): square root
system.math.floor(x): round down
system.math.ceil(x): round up
system.math.round(x): round nearest
system.math.truncate(x): fractional part
system.math.pow(x, y): raise x to y
system.math.degrees(x): radians to degrees
system.math.radians(x): degrees to radians
system.math.cos(x): cosine
system.math.sin(x): sine
system.math.tan(x): tangent
system.math.cos_d(x): cosine degrees
system.math.sin_d(x): sine degrees
system.math.tan_d(x): tangent degrees
system.math.acos(x): arc cosine
system.math.asin(x): arc sine
system.math.atan(f[, g]): arc tangent
system.math.ln(x): natural log
system.math.log(x[, b]):logarithm
system.math.log10(x): log 10
Operators
a===b a IS b
a<b Less
a>b Greater
a<=b LessEqual
a>=b GreaterEqual
a==b Equal
a!=b NotEqual
a<=>b Match
a&&b Logical And
a||b Logical Or
a^^b Logical Xor
!a Logical Not
a+b Add Array Array => Array of combined contents
a+b Add Array Integer => Array with b added to the base
a-b Sub Array Integer => Array with b subtracted from the base
a+b Add Functions, creates a linked function which will evaluate the first (leftmost) matching function first.
Number
a+b Add
a-b Subtract
a*b Multiply
a/b Divide
a\b Integer Division
a%b Modulus
a**b Exponent
a<<b Shift Left
a>>b Shift Right
a&b Bitwise And
a|b Bitwise Or
a^b Bitwise Xor
~a Bitwise Not
-a Negatation
Vector
a+b Add Vector
a-b Subtract Vector
a*b Scale Vector
a/b Divide Vector by scalar
a%b Cross Product
a^b Cross Product
-a Negate Vector
|a Vector Length
\a Normalize Vector
Complex
+ Add Complex
- Subtract Complex
* Multiply Complex
/ Divide Complex
Matrix
a+b Add Matrix
a-b Subtract Matrix
a*b Multiply Matrix
a/b Multiply Matrix by iverse of B (a*(/b))
/a Invert Matrix
String
a+b Add String String => New string with combined contents
a+b Add String Integer => String with b added to the base
a-b Sub String Integer => String with b subtracted from the base
a&b Concatenate Strings/Concatenate a string with the textual representation of an object.
a<<b Relative String Less Than
a>>b Realtive String Greater Than
a<<==b Relative String Less Than or Equal
a>>==b Relative String Greater Than or Equal
These compare strings by relative base, and are undefined for the case when a and b are different strings.
|a String Length
BGGL2
Interp
Main interpreter for BGGL2.
Form
void *BGGL2_Lookup(char *name);
DocPos
pd_script/bggl2/interp.c:14
Description
Lookup a given name in the user and system dictionaries.
Form
int BGGL2_Bind(char *name, void *val);
DocPos
pd_script/bggl2/interp.c:55
Description
Bind a name in the dictionary.
Form
int BGGL2_BindUser(char *name, void *val);
DocPos
pd_script/bggl2/interp.c:76
Description
Bind a name in the user dictionary.
Form
int BGGL2_BindCurrent(BGGL2_Context *ctx, char *name, void *val);
DocPos
pd_script/bggl2/interp.c:97
Description
Bind a name in the current dictionary.
Form
int BGGL2_SetCurrent(BGGL2_Context *ctx, char *name, void *val);
DocPos
pd_script/bggl2/interp.c:118
Description
Assigns a variable, first searching the current dict and any parents.
Form
int BGGL2_AddBuiltin(char *name, void (*func)(BGGL2_Context *ctx));
DocPos
pd_script/bggl2/interp.c:159
Description
Add a new builtin function.
Form
int BGGL2_Execute(void *val);
DocPos
pd_script/bggl2/interp.c:182
Description
Execute one object.
Tokens are invalid here.
Blocks will have their contents evaluated.
Builtins will be called.
Most other objects will be pushed.
Form
int BGGL2_Eval(void *val);
DocPos
pd_script/bggl2/interp.c:235
Description
Evaluate one object.
Tokens will be looked up from the dictionary and executed.
Any other objects will be pushed.
Form
int BGGL2_EvalString(char *str);
DocPos
pd_script/bggl2/interp.c:300
Description
Evaluate a string.
Form
int BGGL2_Load(char *script);
DocPos
pd_script/bggl2/interp.c:323
Description
Load and evaluate a script.
Form
int BGGL2_Reset();
DocPos
pd_script/bggl2/interp.c:365
Description
Reset the interpreter back to initial state (user dict and stacks cleared, system dict untouched).
Form
BGGL2_Context *BGGL2_DefaultContext();
DocPos
pd_script/bggl2/interp.c:383
Description
Gets the default context.
Form
int BGGL2_Init();
DocPos
pd_script/bggl2/interp.c:395
Description
Init function for BGGL2.
Parse
Parser for BGGL2.
Form
char *BGGL2_EatWhite(char *s);
DocPos
pd_script/bggl2/parse.c:11
Description
Skip over any whitespace or comments.
Form
int BGGL2_CharSpecial(int c);
DocPos
pd_script/bggl2/parse.c:57
Description
Returns 1 if the character is "special" (eg: not allowed as part of a longer token).
Includes: ()[]{}/
Form
char *BGGL2_Token(char *s, char *t);
DocPos
pd_script/bggl2/parse.c:115
Description
Parses out a single token.
A token is either a single character (in the case of "special" characters), or a longer glob of multiple characters.
Form
char *BGGL2_ParseString(char *s, char *t);
DocPos
pd_script/bggl2/parse.c:143
Description
Parses a string (deliminated by ')') from the stream.
s is the input string, t is the string buffer.
Form
char *BGGL2_ParseXString(char *s, char **b);
DocPos
pd_script/bggl2/parse.c:203
Description
Parses an 'extension' string from the stream. There is no implicit limit on the string length.
s is the input string, b is the string buffer (filled in with an allocated buffer).
<| and |> may be included directly if they follow proper nesting.
&<| and &|> allow escaped forms of the marks.
&; allows including '&' where it would normally mess up the pattern:
'&;|>' allows a string to end in an ampersand;
'&;&<|' allows escaping '&<|';
...
Form
char *BGGL2_ParseHexString(char *s, byte **buf, int *len);
DocPos
pd_script/bggl2/parse.c:322
Description
Parses a hex string (deliminated by '>') from the stream.
s is the input string, b is a filled with the buffer.
len is filled with the length of the data.
Form
void *BGGL2_ParseBlock(char **buf);
DocPos
pd_script/bggl2/parse.c:386
Description
Parses a block of objects (deliminated by '}') from the string pointer given in 'buf'.
Form
void *BGGL2_Parse(char **buf);
DocPos
pd_script/bggl2/parse.c:429
Description
Parses an object from the string given in 'buf'.
Util
Form
int BGGL2_Push(BGGL2_Context *ctx, void *val);
DocPos
pd_script/bggl2/util.c:7
Description
Pushes a single value on the stack.
Form
void *BGGL2_Pop(BGGL2_Context *ctx);
DocPos
pd_script/bggl2/util.c:25
Description
Pops a single value off the stack and returns it.
Form
void **BGGL2_PopMulti(BGGL2_Context *ctx, int num);
DocPos
pd_script/bggl2/util.c:46
Description
Pops multiple values off the stack and returns them.
These values will be overwritten by subsequent calls to Push.
Form
void **BGGL2_PopMark(BGGL2_Context *ctx, int *num);
DocPos
pd_script/bggl2/util.c:68
Description
PopMark is similar to PopMulti, except that it pops all values since the last mark, and num (in not NULL) is filled with the number of args.
These values will be overwritten by subsequent calls to Push.
Form
int BGGL2_PushDouble(double f);
DocPos
pd_script/bggl2/util.c:95
Description
Pushes a single numeric value on the stack.
Form
void *BGGL2_PopDouble(BGGL2_Context *ctx);
DocPos
pd_script/bggl2/util.c:116
Description
Pops a single numeric value off the stack and returns it.
Form
double *BGGL2_PopMultiDouble(BGGL2_Context *ctx, int num);
DocPos
pd_script/bggl2/util.c:141
Description
Pops multiple double values off the stack and returns them.
These values will be stored in a temporary buffer.
Form
double *BGGL2_PopMarkDouble(BGGL2_Context *ctx, int *num);
DocPos
pd_script/bggl2/util.c:172
Description
PopMarkDouble is similar to PopMultiDouble, except that it pops all values since the last mark, and num (in not NULL) is filled with the number of args.
These values will be stored in a temporary buffer.
PDScript
Interp
Form
PDSCR0_Object *PDSCR_Interp_GetSelf(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:7
Description
Gets the self associated with the context.
Form
void *PDSCR0_Interp_Lookup(PDSCR0_Context *ctx, char *name);
DocPos
pd_script/pdscr0/interp/interp.c:19
Description
Looks up a given name within the current scope of the context.
Form
int PDSCR0_Interp_Assign(PDSCR0_Context *ctx, char *name, void *p);
DocPos
pd_script/pdscr0/interp/interp.c:74
Description
Assigns a name within the current scope within the context.
Form
int PDSCR0_Interp_ClearEnv(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:130
Description
Destroys lexical bindings to ienv mark.
Form
int PDSCR0_Interp_BindCurrent(PDSCR0_Context *ctx, char *name, void *val);
DocPos
pd_script/pdscr0/interp/interp.c:154
Description
Binds a name within the current lexical scope within the context.
Form
int PDSCR0_Interp_DynBindCurrent(PDSCR0_Context *ctx, char *name,
void *val);
DocPos
pd_script/pdscr0/interp/interp.c:180
Description
Binds a name within the current dynamic scope within the context.
Form
int PDSCR0_Interp_BindArgs(PDSCR0_Context *ctx, PDSCR0_FunArg *args);
DocPos
pd_script/pdscr0/interp/interp.c:202
Description
Binds function arguments within the current lexical scope within the context.
Form
int PDSCR0_Interp_BindPattern(PDSCR0_Context *ctx, void *pat, void *val);
DocPos
pd_script/pdscr0/interp/interp.c:245
Description
Binds a pattern within the lexical env.
Form
int PDSCR0_Interp_Call(PDSCR0_Context *ctx, void *self, void *func);
DocPos
pd_script/pdscr0/interp/interp.c:293
Description
Calls a function within the context.
Self gives the self for the function call.
Args are given on the stack: mark <arg[0]> ... <arg[n]>
Form
int PDSCR0_Interp_TailCall(PDSCR0_Context *ctx, void *self, void *func);
DocPos
pd_script/pdscr0/interp/interp.c:503
Description
Tail-calls a function within the context.
Self gives the self for the function call.
Args are given on the stack: mark <arg[0]> ... <arg[n]>
Form
void *PDSCR0_Interp_LoadIndex(PDSCR0_Context *ctx, void *obj, void *index);
DocPos
pd_script/pdscr0/interp/interp.c:579
Description
Loads the value from a given slot in an object.
Form
int PDSCR0_Interp_StoreIndex(PDSCR0_Context *ctx, void *obj, void *index, void *value);
DocPos
pd_script/pdscr0/interp/interp.c:643
Description
Stores a value to a given slot in an object.
Form
int PDSCR0_Interp_MethodCall(PDSCR0_Context *ctx, void *obj, void *index);
DocPos
pd_script/pdscr0/interp/interp.c:723
Description
Calls a method within the object and context.
Index gives the method name.
Args are given on the stack: mark <arg[0]> ... <arg[n]>
Form
int PDSCR0_Interp_MethodTailCall(PDSCR0_Context *ctx, void *obj, void *index);
DocPos
pd_script/pdscr0/interp/interp.c:769
Description
Tail-calls a method within the object and context.
Index gives the method name.
Args are given on the stack: mark <arg[0]> ... <arg[n]>
Form
void *PDSCR0_Interp_FLink(PDSCR0_Context *ctx, void *p, void *q);
DocPos
pd_script/pdscr0/interp/interp.c:821
Description
Links the functions p and q into a single function.
Form
void *PDSCR0_Interp_MakeCLambda(PDSCR0_Context *ctx, void *p);
DocPos
pd_script/pdscr0/interp/interp.c:847
Description
Creates a compiled lambda.
Form
int PDSCR_Interp_Throw(PDSCR0_Context *ctx, char *name);
int PDSCR0_Interp_DoThrow(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:864
Description
Related to throwing exceptions.
Throw invokes throwing an exception.
DoThrow is called from the interpreter to deal with an exception.
Form
int PDSCR0_Interp_Catch(PDSCR0_Context *ctx, char *name, int ip);
DocPos
pd_script/pdscr0/interp/interp.c:915
Description
Adds an exception handler.
Form
int PDSCR0_Interp_BeginTry(PDSCR0_Context *ctx);
int PDSCR0_Interp_EndTry(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:931
Description
Begin and end a block related to exception handling.
Handlers are defined after calling BeginTry.
Form
int PDSCR0_Interp_List(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:986
Description
Generates a list from the values on the stack.
mark <value[n]*> <tail>
Form
int PDSCR0_Interp_Array(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:1018
Description
Generates an array from the values on the stack.
mark <value[n]*>
Form
int PDSCR0_Interp_Dict(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:1040
Description
Generates a dict from the attributes on the stack.
mark <attr[n]*>
Form
int PDSCR0_Interp_Vector(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:1070
Description
Generates a numeric vector from the values on the stack.
mark <value[n]*>
Form
int PDSCR0_Interp_Complex(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:1094
Description
Generates a complex number from the values on the stack.
mark <value[n]*>
Form
int PDSCR0_Interp_Matrix(PDSCR0_Context *ctx);
DocPos
pd_script/pdscr0/interp/interp.c:1118
Description
Generates a matrix from the values on the stack.
mark <value[n]*>
Form
int PDSCR0_Interp_PushCC(PDSCR0_Context *ctx, int exit_ip);
DocPos
pd_script/pdscr0/interp/interp.c:1162
Description
Pushes the current continuation onto the stack.
exit_ip is the ip to jump to when exiting the continuation.
Form
int PDSCR0_Interp_Run(PDSCR0_Context *ctx, int limit);
DocPos
pd_script/pdscr0/interp/interp.c:1190
Description
Main bytecode interpreter for PDScript.
Executes the bytecode for the current state of ctx.
If limit is >0, then it refers to the max number of instructions before the interpreter loop breaks.
If limit is -1, then there is no limit but blocking is possible.
Returns:
1=interpreter terminated;
2=limit expired;
3=blocked;
4=unhandled exception.
Form
PDSCR0_Context *PDSCR_Interp_NewContext();
DocPos
pd_script/pdscr0/interp/interp.c:1696
Description
Creates a new interpreter context.
Form
int PDSCR_Interp_FreeContext(PDSCR0_Context *tmp);
DocPos
pd_script/pdscr0/interp/interp.c:1751
Description
Destroys an interpreter context.
Form
void *PDSCR_Interp_CallFunction(void *obj, void *func, void **args);
DocPos
pd_script/pdscr0/interp/interp.c:1775
Description
Calls a function with a self and args, and returns the result.
Form
void *PDSCR_Interp_CallMethod(void *obj, char *slot, void **args);
DocPos
pd_script/pdscr0/interp/interp.c:1804
Description
Calls an object method with args, and returns the result.
Form
int PDSCR_Interp_ExecuteBlock(PDSCR0_Block *blk);
DocPos
pd_script/pdscr0/interp/interp.c:1833
Description
Execute the instructions found in the block within a new context.
By default the toplevel is used as self.
Form
int PDSCR_Interp_ExecuteBlockSelf(PDSCR0_Block *blk, PDSCR0_Object *self);
DocPos
pd_script/pdscr0/interp/interp.c:1861
Description
Execute a block with a given self.
Form
void *PDSCR_Interp_ExecuteBlockExpr(PDSCR0_Block *blk);
DocPos
pd_script/pdscr0/interp/interp.c:1888
Description
Execute a block representing an expression and return the result.
Form
int PDSCR_Interp_String(char *str);
DocPos
pd_script/pdscr0/interp/interp.c:1917
Description
Parse and interpret a string representing one or more statements.
Form
void *PDSCR_Interp_StringExpr(char *str);
DocPos
pd_script/pdscr0/interp/interp.c:1974
Description
Parse and interpret a string representing an expression.
Form
int PDSCR_Interp_Load(char *file, void *self);
DocPos
pd_script/pdscr0/interp/interp.c:2014
Description
Load and interpret a file.
If not-null self comprises the toplevel to be used during loading.
Form
int PDSCR_Interp_Init();
DocPos
pd_script/pdscr0/interp/interp.c:2078
Description
Main init function for the interpreter.
Compile
Form
PDSCR0_Block *PDSCR_Compile_FoldBlock(ushort *ops, ushort *ip, PDSCR0_CompileContext *ctx);
DocPos
pd_script/pdscr0/compile/compile.c:153
Description
Form
PDSCR0_Block *PDSCR_Compile_Block(NetParse_Node *first);
DocPos
pd_script/pdscr0/compile/compile.c:191
Description
Form
PDSCR0_Block *PDSCR_Compile_Function(NetParse_Node *first, NetParse_Node *args, char *fname);
DocPos
pd_script/pdscr0/compile/compile.c:247
Description
Form
int PDSCR_Compile_Init();
DocPos
pd_script/pdscr0/compile/compile.c:410
Description
Form
int PDSCR_Compile_PushLMark();
DocPos
pd_script/pdscr0/compile/compile_goto.c:21
Description
Push a mark on the label and goto stacks.
Form
int PDSCR_Compile_PopLMark();
DocPos
pd_script/pdscr0/compile/compile_goto.c:40
Description
Pop to the mark on the label and goto stacks.
Form
int PDSCR_Compile_PushLabel(char *name, ushort *ip);
DocPos
pd_script/pdscr0/compile/compile_goto.c:58
Description
Push a new label on the label stack.
Form
int PDSCR_Compile_PushGoto(char *name, ushort *ip);
DocPos
pd_script/pdscr0/compile/compile_goto.c:73
Description
Push a new goto on the goto stack.
Form
int PDSCR_Compile_ResolveGotos();
DocPos
pd_script/pdscr0/compile/compile_goto.c:88
Description
Resolve any gotos since the last mark to any labels since the mark.
Form
DocPos
pd_script/pdscr0/compile/compile_goto.c:126
Description
Form
DocPos
pd_script/pdscr0/compile/compile_goto.c:142
Description
Form
DocPos
pd_script/pdscr0/compile/compile_goto.c:158
Description
Form
DocPos
pd_script/pdscr0/compile/compile_goto.c:172
Description
Form
DocPos
pd_script/pdscr0/compile/compile_goto.c:186
Description
Form
DocPos
pd_script/pdscr0/compile/compile_goto.c:197
Description
Form
int PDSCR_Compile_IndexUnary(char *op);
DocPos
pd_script/pdscr0/compile/compile_index.c:15
Description
Form
int PDSCR_Compile_IndexBinary(char *op);
DocPos
pd_script/pdscr0/compile/compile_index.c:35
Description
Form
char *PDSCR_Compile_NameUnary(int op);
DocPos
pd_script/pdscr0/compile/compile_index.c:55
Description
Form
char *PDSCR_Compile_NameBinary(int op);
DocPos
pd_script/pdscr0/compile/compile_index.c:66
Description
Form
int PDSCR_Compile_IndexName(PDSCR0_CompileContext *ctx, char *name);
DocPos
pd_script/pdscr0/compile/compile_index.c:77
Description
Form
int PDSCR_Compile_IndexKeyword(PDSCR0_CompileContext *ctx, char *name);
DocPos
pd_script/pdscr0/compile/compile_index.c:99
Description
Form
int PDSCR_Compile_IndexString(PDSCR0_CompileContext *ctx, char *str);
DocPos
pd_script/pdscr0/compile/compile_index.c:121
Description
Form
int PDSCR_Compile_IndexNumber(PDSCR0_CompileContext *ctx, double f);
DocPos
pd_script/pdscr0/compile/compile_index.c:143
Description
Form
int PDSCR_Compile_IndexValue(PDSCR0_CompileContext *ctx, void *p);
DocPos
pd_script/pdscr0/compile/compile_index.c:165
Description
Form
ushort *PDSCR_Compile_Statement(ushort *ip, PDSCR0_CompileContext *ctx,
NetParse_Node *expr);
DocPos
pd_script/pdscr0/compile/compile_stmt.c:11
Description
Form
ushort *PDSCR_Compile_Statements(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *first);
DocPos
pd_script/pdscr0/compile/compile_stmt.c:889
Description
Form
ushort *PDSCR_Compile_TailStatement(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *node);
DocPos
pd_script/pdscr0/compile/compile_stmt.c:910
Description
Form
ushort *PDSCR_Compile_TailStatements(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *first);
DocPos
pd_script/pdscr0/compile/compile_stmt.c:1045
Description
Compile a glob of statements with the last one as a tail statement.
Form
ushort *PDSCR_Compile_Unary(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr);
DocPos
pd_script/pdscr0/compile/compile_expr.c:6
Description
Form
ushort *PDSCR_Compile_Binary(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr);
DocPos
pd_script/pdscr0/compile/compile_expr.c:54
Description
Form
ushort *PDSCR_Compile_UnaryOp(ushort *ip, char *op);
DocPos
pd_script/pdscr0/compile/compile_expr.c:104
Description
Form
ushort *PDSCR_Compile_BinaryOp(ushort *ip, char *op);
DocPos
pd_script/pdscr0/compile/compile_expr.c:121
Description
Form
ushort *PDSCR_Compile_Expression(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr);
DocPos
pd_script/pdscr0/compile/compile_expr.c:243
Description
Form
ushort *PDSCR_Compile_Expressions(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *first);
DocPos
pd_script/pdscr0/compile/compile_expr.c:1031
Description
Reference
Statements
<name>:
Label
object <name> [clones <expr>] [extends <expr>] [toplevel <expr>] <body>
Create a new object
begin_object <object> <body>
Execute body within the scope of object.
function <name>(<args>) <body>
Define a function.
lfunction <name>(<args>) <body>
Define a lexical function.
macro_statement <name>(<args>) <body>
Define a function.
macro_expression <name>(<args>) <body>
Define a function.
if(<cond>)<then> [else <else>]
If statement
begin <body>
Evaluate body. break and continue are usable as if this were a loop.
while(<cond>)<body>
While Loop.
for(<init>; <cond>; <step>) <body>
For loop.
switch(<expr>) {...}
Switch statement.
try {...} [catch <name> {...}]*
Try/Catch statement.
var <name>[=<expr>][, <name>[=<expr>] [, ...]];
Define vars in object scope.
dynvar <name>[=<expr>][, <name>[=<expr>] [, ...]];
Define vars in dynamic scope.
local <name>[=<expr>][, <name>[=<expr>] [, ...]];
Define vars in lexical scope.
sum(name, init, final[, step])expr
add all values for expr from min to max with a optional step
sum(name, init, final[, step])expr
add all values for expr from min to max with a optional step
Function Index
void *BGGL2_Lookup(char *name);
pd_script/bggl2/interp.c:21
int BGGL2_Bind(char *name, void *val);
pd_script/bggl2/interp.c:62
int BGGL2_BindUser(char *name, void *val);
pd_script/bggl2/interp.c:83
int BGGL2_BindCurrent(BGGL2_Context *ctx, char *name, void *val);
pd_script/bggl2/interp.c:104
int BGGL2_SetCurrent(BGGL2_Context *ctx, char *name, void *val);
pd_script/bggl2/interp.c:125
int BGGL2_AddBuiltin(char *name, void (*func)(BGGL2_Context *ctx));
pd_script/bggl2/interp.c:166
int BGGL2_Execute(void *obj);
pd_script/bggl2/interp.c:193
int BGGL2_Eval(void *val);
pd_script/bggl2/interp.c:244
int BGGL2_EvalString(char *str);
pd_script/bggl2/interp.c:307
int BGGL2_Load(char *script);
pd_script/bggl2/interp.c:330
int BGGL2_Reset();
pd_script/bggl2/interp.c:373
BGGL2_Context *BGGL2_DefaultContext();
pd_script/bggl2/interp.c:391
int BGGL2_Init();
pd_script/bggl2/interp.c:403
char *BGGL2_EatWhite(char *s);
pd_script/bggl2/parse.c:18
int BGGL2_CharSpecial(int c);
pd_script/bggl2/parse.c:66
char *BGGL2_Token(char *s, char *t);
pd_script/bggl2/parse.c:127
char *BGGL2_ParseString(char *s, char *t);
pd_script/bggl2/parse.c:153
char *BGGL2_ParseXString(char *s, char **b);
pd_script/bggl2/parse.c:221
char *BGGL2_ParseHexString(char *s, byte **buf, int *len);
pd_script/bggl2/parse.c:335
void *BGGL2_ParseBlock(char **buf);
pd_script/bggl2/parse.c:398
void *BGGL2_Parse(char **buf);
pd_script/bggl2/parse.c:441
int BGGL2_Push(BGGL2_Context *ctx, void *obj);
pd_script/bggl2/util.c:14
void *BGGL2_Pop(BGGL2_Context *ctx);
pd_script/bggl2/util.c:32
void **BGGL2_PopMulti(BGGL2_Context *ctx, int num);
pd_script/bggl2/util.c:54
void **BGGL2_PopMark(BGGL2_Context *ctx, int *num);
pd_script/bggl2/util.c:78
int BGGL2_PushDouble(BGGL2_Context *ctx, double f);
pd_script/bggl2/util.c:104
double BGGL2_PopDouble(BGGL2_Context *ctx);
pd_script/bggl2/util.c:125
double *BGGL2_PopMultiDouble(BGGL2_Context *ctx, int num);
pd_script/bggl2/util.c:151
double *BGGL2_PopMarkDouble(BGGL2_Context *ctx, int *num);
pd_script/bggl2/util.c:184
BGGL2_InfoCat *BGGL2_Info_GetCat(BGGL2_InfoCat *parent, char *cat);
pd_script/bggl2/info.c:9
BGGL2_InfoCat *BGGL2_Info_FindCat(BGGL2_InfoCat *parent, char *cat);
pd_script/bggl2/info.c:52
BGGL2_InfoCat *BGGL2_Info_FindCatName(BGGL2_InfoCat *parent, char *name);
pd_script/bggl2/info.c:79
BGGL2_InfoLeaf *BGGL2_Info_AddInfo(char *cat, char *name,char *form, char *desc);
pd_script/bggl2/info.c:95
BGGL2_InfoLeaf *BGGL2_Info_QueryName(char *name);
pd_script/bggl2/info.c:128
BGGL2_InfoLeaf *BGGL2_Info_QueryCatagory(char *cat);
pd_script/bggl2/info.c:149
BGGL2_InfoCat *BGGL2_Info_QueryCatagoryInfo(char *cat);
pd_script/bggl2/info.c:174
int BGGL2_AddInfo(BGGL2_Context *ctx);
pd_script/bggl2/info.c:199
int BGGL2_Init_Info();
pd_script/bggl2/info.c:213
int BGGL2_Builtin_Exec(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:8
int BGGL2_Builtin_Def(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:18
int BGGL2_Builtin_Bound(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:30
int BGGL2_Builtin_Unbound(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:42
int BGGL2_Builtin_If(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:54
int BGGL2_Builtin_Ifelse(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:66
int BGGL2_Builtin_For(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:80
int BGGL2_Builtin_Repeat(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:114
int BGGL2_Builtin_Loop(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:127
int BGGL2_Builtin_Print(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:138
int BGGL2_Builtin_PDScript(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:170
int BGGL2_Builtin_PDScriptExpr(BGGL2_Context *ctx);
pd_script/bggl2/builtins/base.c:179
int BGGL2_Init_Builtins();
pd_script/bggl2/builtins/base.c:189
int BGGL2_Builtin_Add(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:7
int BGGL2_Builtin_Sub(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:18
int BGGL2_Builtin_Mul(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:29
int BGGL2_Builtin_Div(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:40
int BGGL2_Builtin_IDiv(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:51
int BGGL2_Builtin_Mod(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:62
int BGGL2_Builtin_FMod(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:73
int BGGL2_Builtin_Abs(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:83
int BGGL2_Builtin_Neg(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:93
int BGGL2_Builtin_Floor(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:103
int BGGL2_Builtin_Ceiling(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:113
int BGGL2_Builtin_Round(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:123
int BGGL2_Builtin_Truncate(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:133
int BGGL2_Builtin_Sqrt(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:143
int BGGL2_Builtin_Atan(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:153
int BGGL2_Builtin_Exp(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:165
int BGGL2_Builtin_Cos(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:176
int BGGL2_Builtin_Sin(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:187
int BGGL2_Builtin_Ln(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:198
int BGGL2_Builtin_Log(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:208
int BGGL2_Builtin_Rand(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math.c:218
int BGGL2_Init_Builtins_Math();
pd_script/bggl2/builtins/math.c:234
int BGGL2_Builtin_Pop(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:5
int BGGL2_Builtin_Exch(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:15
int BGGL2_Builtin_Dup(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:27
int BGGL2_Builtin_Copy(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:40
int BGGL2_Builtin_Index(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:59
int BGGL2_Builtin_Clear(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:74
int BGGL2_Builtin_Count(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:80
int BGGL2_Builtin_Mark(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:86
int BGGL2_Builtin_ClearToMark(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:92
int BGGL2_Builtin_CountToMark(BGGL2_Context *ctx);
pd_script/bggl2/builtins/stack.c:104
int BGGL2_Init_Builtins_Stack();
pd_script/bggl2/builtins/stack.c:113
int BGGL2_Builtin_Eq(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:71
int BGGL2_Builtin_Ne(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:82
int BGGL2_Builtin_Ge(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:93
int BGGL2_Builtin_Gt(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:106
int BGGL2_Builtin_Le(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:117
int BGGL2_Builtin_Lt(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:130
int BGGL2_Builtin_And(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:141
int BGGL2_Builtin_Or(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:175
int BGGL2_Builtin_Xor(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:209
int BGGL2_Builtin_Not(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:243
int BGGL2_Builtin_BitShift(BGGL2_Context *ctx);
pd_script/bggl2/builtins/logic.c:267
int BGGL2_Init_Builtins_Logic();
pd_script/bggl2/builtins/logic.c:285
int BGGL2_Builtin_PackVector(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:5
int BGGL2_Builtin_UnpackVector(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:19
int BGGL2_Builtin_PackVec3(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:36
int BGGL2_Builtin_UnpackVec3(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:49
int BGGL2_Builtin_PackVec16(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:64
int BGGL2_Builtin_UnpackVec16(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:77
int BGGL2_Builtin_DupVector(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:92
double *BGGL2_Math3D_DupVector(double *fa);
pd_script/bggl2/builtins/math3d.c:110
int BGGL2_Builtin_AddVector(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:124
int BGGL2_Builtin_SubVector(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:143
int BGGL2_Builtin_ScaleVector(BGGL2_Context *ctx);
pd_script/bggl2/builtins/math3d.c:162
int BGGL2_Init_Builtins_Math3D();
pd_script/bggl2/builtins/math3d.c:180
NetParse_Node *PDSCR_Parse_FunArgs(char **str);
pd_script/pdscr0/parse/parse.c:15
NetParse_Node *PDSCR_Parse_VarsList(char **str);
pd_script/pdscr0/parse/parse.c:87
NetParse_Node *PDSCR_Parse_MetafunExpr(char **str);
pd_script/pdscr0/parse/parse.c:214
NetParse_Node *PDSCR_Parse_MetafunBlock(char **str);
pd_script/pdscr0/parse/parse.c:244
int PDSCR_Parse_Init();
pd_script/pdscr0/parse/parse.c:274
int PDSCR_Parse_GetLinenum();
pd_script/pdscr0/parse/parse_token.c:14
char *PDSCR_Parse_GetFilename();
pd_script/pdscr0/parse/parse_token.c:19
int PDSCR_Parse_CalcLinenum(char *se);
pd_script/pdscr0/parse/parse_token.c:24
int PDSCR_Parse_SetLinenum(char *fname, char *base, int num);
pd_script/pdscr0/parse/parse_token.c:41
int PDSCR_Parse_PushLinenum();
pd_script/pdscr0/parse/parse_token.c:49
int PDSCR_Parse_PopLinenum();
pd_script/pdscr0/parse/parse_token.c:61
int PDSCR_MSG_Print(char *se, char *ty, char *s, va_list lst);
pd_script/pdscr0/parse/parse_token.c:73
int PDSCR_MSG_Note(char *se, char *s, ...);
pd_script/pdscr0/parse/parse_token.c:89
int PDSCR_MSG_Warning(char *se, char *s, ...);
pd_script/pdscr0/parse/parse_token.c:99
int PDSCR_MSG_Error(char *se, char *s, ...);
pd_script/pdscr0/parse/parse_token.c:109
char *PDSCR_Parse_EatWhiteOnly(char *s);
pd_script/pdscr0/parse/parse_token.c:122
char *PDSCR_Parse_EatWhite(char *s);
pd_script/pdscr0/parse/parse_token.c:132
int PDSCR_Parse_OpChar(int c);
pd_script/pdscr0/parse/parse_token.c:178
char *PDSCR_Parse_Token(char *s, char *b, int *ty);
pd_script/pdscr0/parse/parse_token.c:217
int PDSCR_Parse_AddExpression(char *name, NetParse_Node *(*func)(char **s));
pd_script/pdscr0/parse/parse_expr.c:9
NetParse_Node *PDSCR_Parse_ParseExpressionName(char *name, char **s);
pd_script/pdscr0/parse/parse_expr.c:23
NetParse_Node *PDSCR_Parse_DotRef(char **str);
pd_script/pdscr0/parse/parse_expr.c:39
NetParse_Node *PDSCR_Parse_XML(char **str);
pd_script/pdscr0/parse/parse_expr.c:194
NetParse_Node *PDSCR_Parse_SubExpression(char **str);
pd_script/pdscr0/parse/parse_expr.c:228
NetParse_Node *PDSCR_Parse_Expression(char **str);
pd_script/pdscr0/parse/parse_expr.c:698
NetParse_Node *PDSCR_Parse_Lambda(char **str);
pd_script/pdscr0/parse/parse_expr.c:1093
NetParse_Node *PDSCR_Parse_WithCC(char **str);
pd_script/pdscr0/parse/parse_expr.c:1150
NetParse_Node *PDSCR_Parse_Object(char **str);
pd_script/pdscr0/parse/parse_expr.c:1181
NetParse_Node *PDSCR_Parse_ObjectStmt(char **str);
pd_script/pdscr0/parse/parse_expr.c:1251
NetParse_Node *PDSCR_Parse_BeginObject(char **str);
pd_script/pdscr0/parse/parse_expr.c:1271
NetParse_Node *PDSCR_Parse_ExpressionLit(char **str);
pd_script/pdscr0/parse/parse_expr2.c:18
NetParse_Node *PDSCR_Parse_ExpressionPE(char **str);
pd_script/pdscr0/parse/parse_expr2.c:353
NetParse_Node *PDSCR_Parse_ExpressionIncDec(char **str);
pd_script/pdscr0/parse/parse_expr2.c:505
NetParse_Node *PDSCR_Parse_ExpressionE(char **str);
pd_script/pdscr0/parse/parse_expr2.c:726
NetParse_Node *PDSCR_Parse_ExpressionMD(char **str);
pd_script/pdscr0/parse/parse_expr2.c:785
NetParse_Node *PDSCR_Parse_ExpressionAS(char **str);
pd_script/pdscr0/parse/parse_expr2.c:845
NetParse_Node *PDSCR_Parse_ExpressionSHLR(char **str);
pd_script/pdscr0/parse/parse_expr2.c:905
NetParse_Node *PDSCR_Parse_ExpressionRCmp(char **str);
pd_script/pdscr0/parse/parse_expr2.c:964
NetParse_Node *PDSCR_Parse_ExpressionLop(char **str);
pd_script/pdscr0/parse/parse_expr2.c:1027
NetParse_Node *PDSCR_Parse_ExpressionLop2(char **str);
pd_script/pdscr0/parse/parse_expr2.c:1088
NetParse_Node *PDSCR_Parse_ExpressionTCond(char **str);
pd_script/pdscr0/parse/parse_expr2.c:1147
NetParse_Node *PDSCR_Parse_ExpressionAttr(char **str);
pd_script/pdscr0/parse/parse_expr2.c:1194
NetParse_Node *PDSCR_Parse_ExpressionEquals(char **str);
pd_script/pdscr0/parse/parse_expr2.c:1256
NetParse_Node *PDSCR_Parse_Expression(char **str);
pd_script/pdscr0/parse/parse_expr2.c:1384
int PDSCR_Parse_AddStatement(char *name, NetParse_Node *(*func)(char **s));
pd_script/pdscr0/parse/parse_stmt.c:12
NetParse_Node *PDSCR_Parse_ParseStatementName(char *name, char **s);
pd_script/pdscr0/parse/parse_stmt.c:26
int PDSCR_Parse_AddBlockStatement(char *name,NetParse_Node *(*func)(char **s));
pd_script/pdscr0/parse/parse_stmt.c:43
NetParse_Node *PDSCR_Parse_ParseBlockStatementName(char *name, char **s);
pd_script/pdscr0/parse/parse_stmt.c:57
char *PDSCR_Parse_EatSemicolon(char *s);
pd_script/pdscr0/parse/parse_stmt.c:73
NetParse_Node *PDSCR_Parse_Comments(char **str, int pf);
pd_script/pdscr0/parse/parse_stmt.c:80
NetParse_Node *PDSCR_Parse_Statement(char **str);
pd_script/pdscr0/parse/parse_stmt.c:163
NetParse_Node *PDSCR_Parse_Block(char **str);
pd_script/pdscr0/parse/parse_stmt.c:460
int PDSCR_Parse_TerminalComment(NetParse_Node *n, char **str);
pd_script/pdscr0/parse/parse_stmt.c:487
NetParse_Node *PDSCR_Parse_BlockStatementInner(char **str);
pd_script/pdscr0/parse/parse_stmt.c:497
NetParse_Node *PDSCR_Parse_BlockStatement(char **str);
pd_script/pdscr0/parse/parse_stmt.c:745
NetParse_Node *PDSCR_Parse_BlockStatement2(char **str);
pd_script/pdscr0/parse/parse_stmt.c:765
NetParse_Node *PDSCR_Parse_Function(char **str);
pd_script/pdscr0/parse/parse_stmt.c:789
NetParse_Node *PDSCR_Parse_If(char **str);
pd_script/pdscr0/parse/parse_stmt.c:848
NetParse_Node *PDSCR_Parse_While(char **str);
pd_script/pdscr0/parse/parse_stmt.c:919
NetParse_Node *PDSCR_Parse_Begin(char **str);
pd_script/pdscr0/parse/parse_stmt.c:959
NetParse_Node *PDSCR_Parse_For(char **str);
pd_script/pdscr0/parse/parse_stmt.c:983
NetParse_Node *PDSCR_Parse_Let(char **str);
pd_script/pdscr0/parse/parse_stmt.c:1044
NetParse_Node *PDSCR_Parse_Switch(char **str);
pd_script/pdscr0/parse/parse_stmt.c:1090
NetParse_Node *PDSCR_Parse_TryCatch(char **str);
pd_script/pdscr0/parse/parse_stmt.c:1192
NetParse_Node *PDSCR_Parse_Class(char **str);
pd_script/pdscr0/parse/parse_stmt.c:1233
char *PDSCR_UnParse_PrintExpression(char *s, NetParse_Node *expr, int ind);
pd_script/pdscr0/parse/unparse.c:5
char *PDSCR_UnParse_PrintStatement(char *s, NetParse_Node *expr, int ind);
pd_script/pdscr0/parse/unparse.c:293
char *PDSCR_UnParse_PrintBlockStatement(char *s, NetParse_Node *expr, int ind);
pd_script/pdscr0/parse/unparse.c:433
char *PDSCR_UnParse_PrintStatements(char *s, NetParse_Node *first, int ind);
pd_script/pdscr0/parse/unparse.c:665
char *PDSCR_UnParse_PrintBlockStatements(char *s, NetParse_Node *first, int ind);
pd_script/pdscr0/parse/unparse.c:679
char *PDSCR_UnParse_PrintBlock(char *s, NetParse_Node *first, int ind);
pd_script/pdscr0/parse/unparse.c:692
char *PDSCR_UnParse_PrintBlock2(char *s, NetParse_Node *first, int ind);
pd_script/pdscr0/parse/unparse.c:703
int PDSCR_UnParse_FormatBlockStatements(NetParse_Node *first, int ind);
pd_script/pdscr0/parse/unparse.c:724
PDSCR0_Object *PDSCR_Interp_GetSelf(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:14
void *PDSCR0_Interp_Lookup(PDSCR0_Context *ctx, char *name);
pd_script/pdscr0/interp/interp.c:26
int PDSCR0_Interp_Assign(PDSCR0_Context *ctx, char *name, void *p);
pd_script/pdscr0/interp/interp.c:81
int PDSCR_Interp_ClearEnv(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:137
int PDSCR0_Interp_BindCurrent(PDSCR0_Context *ctx, char *name, void *val);
pd_script/pdscr0/interp/interp.c:162
int PDSCR0_Interp_DynBindCurrent(PDSCR0_Context *ctx, char *name, void *val);
pd_script/pdscr0/interp/interp.c:189
int PDSCR0_Interp_BindArgs(PDSCR0_Context *ctx, PDSCR0_FunArg *args);
pd_script/pdscr0/interp/interp.c:211
int PDSCR_Interp_BindPattern(PDSCR0_Context *ctx, void *pat, void *val);
pd_script/pdscr0/interp/interp.c:255
int PDSCR0_Interp_Call(PDSCR0_Context *ctx, void *self, void *func);
pd_script/pdscr0/interp/interp.c:305
int PDSCR0_Interp_TailCall(PDSCR0_Context *ctx, void *self, void *func);
pd_script/pdscr0/interp/interp.c:515
void *PDSCR0_Interp_LoadIndex(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/interp/interp.c:590
int PDSCR0_Interp_StoreIndex(PDSCR0_Context *ctx, void *obj,void *index, void *value);
pd_script/pdscr0/interp/interp.c:656
int PDSCR0_Interp_MethodCall(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/interp/interp.c:738
int PDSCR0_Interp_MethodTailCall(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/interp/interp.c:785
void *PDSCR0_Interp_FLink(PDSCR0_Context *ctx, void *p, void *q);
pd_script/pdscr0/interp/interp.c:835
void *PDSCR0_Interp_MakeCLambda(PDSCR0_Context *ctx, void *p);
pd_script/pdscr0/interp/interp.c:861
int PDSCR_Interp_Throw(PDSCR0_Context *ctx, char *name);
pd_script/pdscr0/interp/interp.c:881
int PDSCR0_Interp_DoThrow(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:888
int PDSCR0_Interp_Catch(PDSCR0_Context *ctx, char *name, int ip);
pd_script/pdscr0/interp/interp.c:929
int PDSCR0_Interp_BeginTry(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:947
int PDSCR0_Interp_EndTry(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:962
int PDSCR0_Interp_List(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:1001
int PDSCR0_Interp_Array(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:1033
int PDSCR0_Interp_Dict(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:1055
int PDSCR0_Interp_Vector(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:1085
int PDSCR0_Interp_Complex(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:1109
int PDSCR0_Interp_Matrix(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/interp.c:1133
int PDSCR0_Interp_PushCC(PDSCR0_Context *ctx, int exit_ip);
pd_script/pdscr0/interp/interp.c:1177
int PDSCR0_Interp_Run(PDSCR0_Context *ctx, int limit);
pd_script/pdscr0/interp/interp.c:1213
PDSCR0_Context *PDSCR_Interp_NewContext();
pd_script/pdscr0/interp/interp.c:1711
int PDSCR_Interp_FreeContext(PDSCR0_Context *tmp);
pd_script/pdscr0/interp/interp.c:1766
void *PDSCR_Interp_CallFunction(void *obj, void *func, void **args);
pd_script/pdscr0/interp/interp.c:1790
void *PDSCR_Interp_CallMethod(void *obj, char *slot, void **args);
pd_script/pdscr0/interp/interp.c:1819
int PDSCR_Interp_ExecuteBlock(PDSCR0_Block *blk);
pd_script/pdscr0/interp/interp.c:1849
int PDSCR_Interp_ExecuteBlockSelf(PDSCR0_Block *blk, PDSCR0_Object *self);
pd_script/pdscr0/interp/interp.c:1877
void *PDSCR_Interp_ExecuteBlockExpr(PDSCR0_Block *blk);
pd_script/pdscr0/interp/interp.c:1904
int PDSCR_Interp_String(char *str);
pd_script/pdscr0/interp/interp.c:1933
void *PDSCR_Interp_StringExpr(char *str);
pd_script/pdscr0/interp/interp.c:1990
int PDSCR_Interp_Load(char *file, void *self);
pd_script/pdscr0/interp/interp.c:2031
int PDSCR_Interp_Init();
pd_script/pdscr0/interp/interp.c:2094
int PDSCR0_Interp_AddUnary(char *name,void *(*func)(char *type, void *arg));
pd_script/pdscr0/interp/interp_opr.c:12
int PDSCR0_Interp_AddUnary2(char *name, char *type, char *rtype, int flags,void *(*func)(char *type, void *arg));
pd_script/pdscr0/interp/interp_opr.c:40
int PDSCR0_Interp_AddBinary(char *name,void *(*func)(char *ltype, void *larg, char *rtype, void *rarg));
pd_script/pdscr0/interp/interp_opr.c:83
int PDSCR0_Interp_AddBinary2(char *name, char *ltype, char *rtype, char *lrtype,int flags, void *(*func)(char *ltype, void *larg, char *rtype, void *rarg));
pd_script/pdscr0/interp/interp_opr.c:112
void *PDSCR0_Interp_UnaryOperation(void *arg, int op);
pd_script/pdscr0/interp/interp_opr.c:176
void *PDSCR0_Interp_BinaryOperation(void *left, void *right, int op);
pd_script/pdscr0/interp/interp_opr.c:209
void *PDSCR_UnaryOp(char *name, void *arg);
pd_script/pdscr0/interp/interp_opr.c:257
void *PDSCR_BinaryOp(void *larg, char *name, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:272
int PDSCR0_Interp_Equal(void *p, void *q);
pd_script/pdscr0/interp/interp_opr.c:287
int PDSCR0_Interp_Less(void *p, void *q);
pd_script/pdscr0/interp/interp_opr.c:371
int PDSCR0_Interp_MatchArgs(void **a, void **values, PDSCR0_FunArg *args);
pd_script/pdscr0/interp/interp_opr.c:431
int PDSCR0_Interp_Match(void *p, void *q);
pd_script/pdscr0/interp/interp_opr.c:474
int PDSCR0_Interp_Greater(void *p, void *q);
pd_script/pdscr0/interp/interp_opr.c:557
int PDSCR0_Interp_LessEqual(void *p, void *q);
pd_script/pdscr0/interp/interp_opr.c:562
int PDSCR0_Interp_GreaterEqual(void *p, void *q);
pd_script/pdscr0/interp/interp_opr.c:567
void *PDSCR_Operator_Identity(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:574
void *PDSCR_Operator_Less(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:580
void *PDSCR_Operator_Greater(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:591
void *PDSCR_Operator_LessEqual(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:601
void *PDSCR_Operator_GreaterEqual(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:610
void *PDSCR_Operator_Equal(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:619
void *PDSCR_Operator_NotEqual(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:628
void *PDSCR_Operator_Match(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:637
void *PDSCR_Operator_LAnd(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:646
void *PDSCR_Operator_LOr(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:658
void *PDSCR_Operator_LXor(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:670
void *PDSCR_Operator_LNot(char *type, void *arg);
pd_script/pdscr0/interp/interp_opr.c:682
void *PDSCR_Operator_AddArray(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:691
void *PDSCR_Operator_SubArray(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:729
void *PDSCR_Operator_AddFuns(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/interp/interp_opr.c:749
int PDSCR_Operators_Init();
pd_script/pdscr0/interp/interp_opr.c:761
int PDSCR_Interp_Push(PDSCR0_Context *ctx, void *p);
pd_script/pdscr0/interp/util.c:4
int PDSCR_Interp_PushMulti(PDSCR0_Context *ctx, void **a, int n);
pd_script/pdscr0/interp/util.c:16
void *PDSCR_Interp_Pop(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/util.c:24
void **PDSCR_Interp_PopMulti(PDSCR0_Context *ctx, int num);
pd_script/pdscr0/interp/util.c:37
void **PDSCR_Interp_PopMark(PDSCR0_Context *ctx, int *num);
pd_script/pdscr0/interp/util.c:51
int PDSCR_Interp_PushDouble(PDSCR0_Context *ctx, double f);
pd_script/pdscr0/interp/util.c:71
int PDSCR_Interp_PushMultiDouble(PDSCR0_Context *ctx, double *a, int n);
pd_script/pdscr0/interp/util.c:85
double PDSCR_Interp_PopDouble(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/util.c:93
double *PDSCR_Interp_PopMultiDouble(PDSCR0_Context *ctx, int num);
pd_script/pdscr0/interp/util.c:111
double *PDSCR_Interp_PopMarkDouble(PDSCR0_Context *ctx, int *num);
pd_script/pdscr0/interp/util.c:134
int PDSCR_Interp_PushBool(PDSCR0_Context *ctx, int b);
pd_script/pdscr0/interp/util.c:162
int PDSCR_Interp_PopBool(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/util.c:176
int PDSCR_Interp_PushMark(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/util.c:193
int PDSCR_Interp_ClearToMark(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/util.c:200
int PDSCR_Interp_PushIP(PDSCR0_Context *ctx, PDSCR0_Block *blk,unsigned short *ip);
pd_script/pdscr0/interp/util.c:208
int PDSCR_Interp_PopIP(PDSCR0_Context *ctx, PDSCR0_Block **blk,unsigned short **ip);
pd_script/pdscr0/interp/util.c:232
void PDSCR_Interp_LookupPush(PDSCR0_Context *ctx, char *name);
pd_script/pdscr0/interp/util.c:242
void PDSCR_Interp_PopAssign(PDSCR0_Context *ctx, char *name);
pd_script/pdscr0/interp/util.c:249
void PDSCR_Interp_DoLoadIndex(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/util.c:256
void PDSCR_Interp_DoStoreIndex(PDSCR0_Context *ctx);
pd_script/pdscr0/interp/util.c:266
void PDSCR_Interp_DoUnary(PDSCR0_Context *ctx, int idx);
pd_script/pdscr0/interp/util.c:276
void PDSCR_Interp_DoBinary(PDSCR0_Context *ctx, int idx);
pd_script/pdscr0/interp/util.c:285
int PDSCR_Object_CheckStack(void *obj);
pd_script/pdscr0/interp/object.c:14
int PDSCR_Object_PushStack(void *obj);
pd_script/pdscr0/interp/object.c:22
void *PDSCR_Object_PopStack();
pd_script/pdscr0/interp/object.c:28
PDSCR0_Object *PDSCR_Object_NewEmpty();
pd_script/pdscr0/interp/object.c:35
int PDSCR_Object_HashSlotname(char *s);
pd_script/pdscr0/interp/object.c:43
int PDSCR_Object_DumpMetahash();
pd_script/pdscr0/interp/object.c:55
BGGL2_Binding *PDSCR_Object_GetSlotList(BGGL2_Binding *lst, char *slot);
pd_script/pdscr0/interp/object.c:62
void *PDSCR_Object_GetValueList(BGGL2_Binding *lst, char *slot);
pd_script/pdscr0/interp/object.c:86
BGGL2_Binding *PDSCR_Object_GetSlotObj(PDSCR0_Object *obj, char *slot);
pd_script/pdscr0/interp/object.c:94
BGGL2_Binding *PDSCR_Object_BindSlotList(BGGL2_Binding *lst,char *slot, void *value);
pd_script/pdscr0/interp/object.c:113
int PDSCR_Object_BindSlotObj(PDSCR0_Object *obj,char *slot, void *value);
pd_script/pdscr0/interp/object.c:138
void *PDSCR_Object_GetSlot2(PDSCR0_Object *obj, char *slot);
pd_script/pdscr0/interp/object.c:184
void *PDSCR_Object_GetSlot(PDSCR0_Object *obj, char *slot);
pd_script/pdscr0/interp/object.c:243
int PDSCR_Object_BindSlot(PDSCR0_Object *obj, char *slot, void *value);
pd_script/pdscr0/interp/object.c:251
int PDSCR_Object_SetSlot(PDSCR0_Object *obj, char *slot, void *value);
pd_script/pdscr0/interp/object.c:299
BGGL2_Binding *PDSCR_Object_CopySlotList(BGGL2_Binding *lst);
pd_script/pdscr0/interp/object.c:360
PDSCR0_Object *PDSCR_Object_Clone(PDSCR0_Object *obj);
pd_script/pdscr0/interp/object.c:386
PDSCR0_Class *PDSCR_Object_LookupClass(char *name);
pd_script/pdscr0/interp/object.c:407
PDSCR0_Class *PDSCR_Object_NewClass(char *name, char *parent);
pd_script/pdscr0/interp/object.c:421
BGGL2_Binding *PDSCR_Object_GetClassSlot(PDSCR0_Class *class, char *slot);
pd_script/pdscr0/interp/object.c:438
int PDSCR_Object_BindClassSlot(PDSCR0_Class *class, char *slot, void *val);
pd_script/pdscr0/interp/object.c:459
PDSCR0_Object *PDSCR_Object_InstanceClass(PDSCR0_Class *class);
pd_script/pdscr0/interp/object.c:469
void *pdscr_object_clone(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/interp/object.c:517
char *pdscr_object_printvars(PDSCR0_Context *ctx, char *s, int *fst, int ind,BGGL2_Binding *args);
pd_script/pdscr0/interp/object.c:529
char *pdscr_object_tostring(PDSCR0_Context *ctx, void *pobj,BGGL2_Binding *args);
pd_script/pdscr0/interp/object.c:563
int PDSCR_Object_Init();
pd_script/pdscr0/interp/object.c:608
PDSCR0_TypeContext *PDSCR_TypeCtx_LookupType(char *name);
pd_script/pdscr0/interp/typectx.c:7
PDSCR0_TypeContext *PDSCR_TypeCtx_GetType(char *name);
pd_script/pdscr0/interp/typectx.c:21
char *PDSCR_TypeCtx_GetTypeName(char *name);
pd_script/pdscr0/interp/typectx.c:37
char *PDSCR_TypeCtx_GetObjTypeName(void *obj);
pd_script/pdscr0/interp/typectx.c:47
PDSCR0_TypeMethod *PDSCR_TypeCtx_LookupMethod(PDSCR0_TypeContext *ctx, char *name);
pd_script/pdscr0/interp/typectx.c:67
PDSCR0_TypeMethod *PDSCR_TypeCtx_GetMethod(PDSCR0_TypeContext *ctx, char *name);
pd_script/pdscr0/interp/typectx.c:81
int PDSCR_TypeCtx_AddMethod(char *type, char *name, char *desc,void *(*func)(PDSCR0_Context *ctx, void *obj, void **args, int n), int n);
pd_script/pdscr0/interp/typectx.c:100
void *PDSCR_TypeCtx_Call(PDSCR0_Context *ctx, void *self, void *func);
pd_script/pdscr0/interp/typectx.c:124
void *PDSCR_TypeCtx_LoadIndex(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/interp/typectx.c:167
int PDSCR_TypeCtx_StoreIndex(PDSCR0_Context *ctx, void *obj,void *index, void *value);
pd_script/pdscr0/interp/typectx.c:189
void *PDSCR_TypeCtx_LoadMIndex(PDSCR0_Context *ctx, void *obj, void **index, int n);
pd_script/pdscr0/interp/typectx.c:212
int PDSCR_TypeCtx_StoreMIndex(PDSCR0_Context *ctx, void *obj,void **index, int n, void *value);
pd_script/pdscr0/interp/typectx.c:234
void *PDSCR_TypeCtx_MethodCall(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/interp/typectx.c:257
NetParse_Node *PDSCR_TypeCtx_FlattenXML(PDSCR0_Context *ctx, void *obj);
pd_script/pdscr0/interp/typectx.c:319
void *PDSCR_TypeCtx_UnFlattenXML(PDSCR0_Context *ctx, char *type,NetParse_Node *node);
pd_script/pdscr0/interp/typectx.c:335
char *PDSCR_TypeCtx_ToString(PDSCR0_Context *ctx, void *obj,BGGL2_Binding *args);
pd_script/pdscr0/interp/typectx.c:349
void *PDSCR_TypeCtx_Copy(PDSCR0_Context *ctx, void *obj);
pd_script/pdscr0/interp/typectx.c:366
void *PDSCR_TypeCtx_Join(PDSCR0_Context *ctx, void *obj);
pd_script/pdscr0/interp/typectx.c:380
PDSCR0_CompileItem *PDSCR_Compile_AddCompileItem(PDSCR0_CompileItem *lst, char *name, ushort *(*func)(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr));
pd_script/pdscr0/compile/compile.c:13
int PDSCR_Compile_AddStatement(char *name,ushort *(*func)(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr));
pd_script/pdscr0/compile/compile.c:28
int PDSCR_Compile_AddExpression(char *name,ushort *(*func)(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr));
pd_script/pdscr0/compile/compile.c:36
int PDSCR_Compile_AddMetaFunction(char *name,ushort *(*func)(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr));
pd_script/pdscr0/compile/compile.c:44
int PDSCR_Compile_AddStatementMetaFunction(char *name,ushort *(*func)(ushort *ip, PDSCR0_CompileContext *ctx, NetParse_Node *expr));
pd_script/pdscr0/compile/compile.c:58
ushort *PDSCR_Compile_CompileListName(PDSCR0_CompileItem *lst,ushort *ip, PDSCR0_CompileContext *ctx, char *name, NetParse_Node *expr);
pd_script/pdscr0/compile/compile.c:73
ushort *PDSCR_Compile_CompileStatementName(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile.c:89
ushort *PDSCR_Compile_CompileExpressionName(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile.c:97
ushort *PDSCR_Compile_CompileMetafunName(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile.c:105
ushort *PDSCR_Compile_CompileStatementMetafunName(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile.c:118
NetParse_Node *PDSCR_Compile_GetMetafunArg(NetParse_Node *expr, int num);
pd_script/pdscr0/compile/compile.c:136
PDSCR0_Block *PDSCR_Compile_FoldBlock(ushort *ops, ushort *ip,PDSCR0_CompileContext *ctx);
pd_script/pdscr0/compile/compile.c:161
PDSCR0_Block *PDSCR_Compile_Block(NetParse_Node *first);
pd_script/pdscr0/compile/compile.c:198
PDSCR0_Block *PDSCR_Compile_Function(NetParse_Node *first,NetParse_Node *args, char *fname);
pd_script/pdscr0/compile/compile.c:256
int PDSCR_Compile_Init();
pd_script/pdscr0/compile/compile.c:418
int PDSCR_Compile_PushLMark();
pd_script/pdscr0/compile/compile_goto.c:28
int PDSCR_Compile_PopLMark();
pd_script/pdscr0/compile/compile_goto.c:47
int PDSCR_Compile_PushLabel(char *name, ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:65
int PDSCR_Compile_PushGoto(char *name, ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:80
int PDSCR_Compile_ResolveGotos();
pd_script/pdscr0/compile/compile_goto.c:95
int PDSCR_Compile_BeginBreak(ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:131
int PDSCR_Compile_BeginContinue(ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:147
int PDSCR_Compile_SetBreak(ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:163
int PDSCR_Compile_SetContinue(ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:177
int PDSCR_Compile_EndBreak(ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:191
int PDSCR_Compile_EndContinue(ushort *ip);
pd_script/pdscr0/compile/compile_goto.c:202
int PDSCR_Compile_IndexUnary(char *op);
pd_script/pdscr0/compile/compile_index.c:21
int PDSCR_Compile_IndexBinary(char *op);
pd_script/pdscr0/compile/compile_index.c:41
char *PDSCR_Compile_NameUnary(int op);
pd_script/pdscr0/compile/compile_index.c:61
char *PDSCR_Compile_NameBinary(int op);
pd_script/pdscr0/compile/compile_index.c:72
int PDSCR_Compile_IndexName(PDSCR0_CompileContext *ctx, char *name);
pd_script/pdscr0/compile/compile_index.c:83
int PDSCR_Compile_IndexKeyword(PDSCR0_CompileContext *ctx, char *name);
pd_script/pdscr0/compile/compile_index.c:105
int PDSCR_Compile_IndexString(PDSCR0_CompileContext *ctx, char *str);
pd_script/pdscr0/compile/compile_index.c:127
int PDSCR_Compile_IndexNumber(PDSCR0_CompileContext *ctx, double f);
pd_script/pdscr0/compile/compile_index.c:149
int PDSCR_Compile_IndexValue(PDSCR0_CompileContext *ctx, void *p);
pd_script/pdscr0/compile/compile_index.c:171
ushort *PDSCR_Compile_Statement(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile_stmt.c:19
ushort *PDSCR_Compile_Statements(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *first);
pd_script/pdscr0/compile/compile_stmt.c:897
ushort *PDSCR_Compile_TailStatement(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile_stmt.c:919
ushort *PDSCR_Compile_TailStatements(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *first);
pd_script/pdscr0/compile/compile_stmt.c:1056
ushort *PDSCR_Compile_Unary(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile_expr.c:14
ushort *PDSCR_Compile_Binary(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile_expr.c:63
ushort *PDSCR_Compile_UnaryOp(ushort *ip, char *op);
pd_script/pdscr0/compile/compile_expr.c:112
ushort *PDSCR_Compile_BinaryOp(ushort *ip, char *op);
pd_script/pdscr0/compile/compile_expr.c:129
NetParse_Node *PDSCR_Compile_ReduceExpression(NetParse_Node *expr);
pd_script/pdscr0/compile/compile_expr.c:140
ushort *PDSCR_Compile_Expression(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile_expr.c:254
ushort *PDSCR_Compile_Expressions(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *first);
pd_script/pdscr0/compile/compile_expr.c:1042
int PDSCR_Compile_MakeMacro(PDSCR0_CompileContext *ctx, NetParse_Node *expr,char *base);
pd_script/pdscr0/compile/compile_macro.c:8
int PDSCR_Compile_MacroStatement(PDSCR0_CompileContext *ctx, NetParse_Node *expr);
pd_script/pdscr0/compile/compile_macro.c:29
int PDSCR_Compile_MacroExpression(PDSCR0_CompileContext *ctx, NetParse_Node *expr);
pd_script/pdscr0/compile/compile_macro.c:35
NetParse_Node *PDSCR_Compile_ExpandMacroStatement(PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile_macro.c:42
NetParse_Node *PDSCR_Compile_ExpandMacroExpression(PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/compile_macro.c:88
NetParse_Node *PDSCR_Compile_MergeExpArray(void *p);
pd_script/pdscr0/compile/compile_macro.c:120
NetParse_Node *PDSCR_Compile_BuildSubVars(void *p);
pd_script/pdscr0/compile/compile_macro.c:156
void *pdscr_builtin_subvars(PDSCR0_Context *ctx, void **args, int cnt);
pd_script/pdscr0/compile/compile_macro.c:193
int PDSCR_Compile_InitMacros();
pd_script/pdscr0/compile/compile_macro.c:226
int PDSCR_DisAsm_LookupInstr(char *name);
pd_script/pdscr0/compile/disasm.c:37
int PDSCR_DisAsm_Instr(unsigned short *ip, PDSCR0_CompileContext *ctx);
pd_script/pdscr0/compile/disasm.c:45
int PDSCR_DisAsm_Block(PDSCR0_Block *blk);
pd_script/pdscr0/compile/disasm.c:60
ushort *PDSCR_DisAsm_Assemble(ushort *ip, char *s);
pd_script/pdscr0/compile/disasm.c:81
ushort *pdscr_disasm_asm(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/disasm.c:109
ushort *pdscr_disasm_asm_expr(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/disasm.c:138
ushort *pdscr_disasm_value(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/compile/disasm.c:146
int PDSCR_DisAsm_Init();
pd_script/pdscr0/compile/disasm.c:151
int PDSCR0_Threads_AddRunning(PDSCR0_Context *ctx);
pd_script/pdscr0/features/threads.c:15
int PDSCR0_Threads_StopRunning(PDSCR0_Context *ctx);
pd_script/pdscr0/features/threads.c:57
int PDSCR0_Threads_Run(int time);
pd_script/pdscr0/features/threads.c:81
PDSCR0_Context *PDSCR_Threads_MakeThread(void *self, void *func,void **args, int n);
pd_script/pdscr0/features/threads.c:144
void *pdscr_threads_makethread(PDSCR0_Context *octx, void **args, int n);
pd_script/pdscr0/features/threads.c:166
void *pdscr_threads_sleep(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/features/threads.c:187
NetParse_Node *pdscr_threads_parsethread(char **str);
pd_script/pdscr0/features/threads.c:206
ushort *pdscr_threads_compilethread(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/features/threads.c:231
ushort *pdscr_threads_compilesleep(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/features/threads.c:260
int PDSCR_Threads_Init();
pd_script/pdscr0/features/threads.c:287
PDSCR0_Pool *PDSCR_Pool_New();
pd_script/pdscr0/features/pool.c:4
int PDSCR_Pool_AddMessage(PDSCR0_Pool *pool, void *msg);
pd_script/pdscr0/features/pool.c:16
void *PDSCR_Pool_GetMessage(PDSCR0_Pool *pool);
pd_script/pdscr0/features/pool.c:37
void *pdscr_pool_pool(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/features/pool.c:50
void *pdscr_pool_apply(PDSCR0_Context *ctx, void *self, void *func);
pd_script/pdscr0/features/pool.c:55
void *pdscr_pool_join(PDSCR0_Context *ctx, void *obj);
pd_script/pdscr0/features/pool.c:90
int PDSCR_Pool_Init();
pd_script/pdscr0/features/pool.c:105
void *pdscr_async_makeasync(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/features/async.c:7
NetParse_Node *pdscr_async_parseasync(char **str);
pd_script/pdscr0/features/async.c:19
ushort *pdscr_async_compileasync(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/features/async.c:35
ushort *pdscr_async_compileasync_stmt(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/features/async.c:67
void *pdscr_async_apply(PDSCR0_Context *ctx, void *self, void *func);
pd_script/pdscr0/features/async.c:83
int PDSCR_ASync_Init();
pd_script/pdscr0/features/async.c:97
BGGL2_Binding *PDSCR_Types_NewAttr(char *name, void *value);
pd_script/pdscr0/features/types.c:5
char *pdscr_tylambda_tostring(PDSCR0_Context *ctx, void *pobj,BGGL2_Binding *args);
pd_script/pdscr0/features/types.c:16
void *pdscr_tydata_loadindex(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/features/types.c:55
void *pdscr_tydata_storeindex(PDSCR0_Context *ctx, void *obj,void *index, void *value);
pd_script/pdscr0/features/types.c:66
void *PDSCR_Operator_AbsData(char *type, void *arg);
pd_script/pdscr0/features/types.c:78
void *pdscr_tyxml_loadindex(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/features/types.c:87
void *pdscr_tyxml_storeindex(PDSCR0_Context *ctx, void *obj,void *index, void *value);
pd_script/pdscr0/features/types.c:101
void *pdscr_tyxml_methodcall(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/features/types.c:114
void *pdscr_tyxml_copy(PDSCR0_Context *ctx, void *obj);
pd_script/pdscr0/features/types.c:148
void *pdscr_tycons_loadindex(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/features/types.c:153
void *pdscr_tycons_storeindex(PDSCR0_Context *ctx, void *obj,void *index, void *value);
pd_script/pdscr0/features/types.c:193
int PDSCR_Types_Init();
pd_script/pdscr0/features/types.c:232
NetParse_Node *PDSCR_Flatten_EncodeArray(PDSCR0_Context *ctx, void *val);
pd_script/pdscr0/features/flatten.c:5
NetParse_Node *PDSCR_Flatten_EncodeArray2(void **val, PDSCR0_Context *ctx);
pd_script/pdscr0/features/flatten.c:35
NetParse_Node *PDSCR_Flatten_EncodeStruct(PDSCR0_Context *ctx, void *val);
pd_script/pdscr0/features/flatten.c:62
NetParse_Node *PDSCR_Flatten_EncodeValue(PDSCR0_Context *ctx, void *val);
pd_script/pdscr0/features/flatten.c:101
int PDSCR_Flatten_Init();
pd_script/pdscr0/features/flatten.c:249
char *PDSCR_ToString_PrintItem(PDSCR0_Context *ctx, void *p,BGGL2_Binding *args);
pd_script/pdscr0/features/tostring.c:9
int PDSCR_ToString_Init();
pd_script/pdscr0/features/tostring.c:193
void *pdscr_fileio_readvalue(VFILE *fd, char *s);
pd_script/pdscr0/features/fileio.c:4
void *pdscr_fileio_writevalue(VFILE *fd, char *s, void *val);
pd_script/pdscr0/features/fileio.c:103
void *pdscr_fileio_methodcall(PDSCR0_Context *ctx, void *obj, void *index);
pd_script/pdscr0/features/fileio.c:194
void *pdscr_fileio_openfile(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/features/fileio.c:402
int PDSCR_FileIO_Init();
pd_script/pdscr0/features/fileio.c:410
NetParse_Node *PDSCR_Maths_ParseSum(char **str);
pd_script/pdscr0/features/maths.c:4
NetParse_Node *pdscr_maths_parsesum(char **str);
pd_script/pdscr0/features/maths.c:79
NetParse_Node *pdscr_maths_parseproduct(char **str);
pd_script/pdscr0/features/maths.c:94
ushort *pdscr_maths_compilesum(ushort *ip, void **values,NetParse_Node *expr);
pd_script/pdscr0/features/maths.c:108
int PDSCR_Maths_TypeIsInt(char *type);
pd_script/pdscr0/features/maths.c:230
int PDSCR_Maths_TypeIsNum(char *type);
pd_script/pdscr0/features/maths.c:237
void *PDSCR_Operator_Add(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:246
void *PDSCR_Operator_Sub(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:273
void *PDSCR_Operator_Mul(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:299
void *PDSCR_Operator_Div(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:325
void *PDSCR_Operator_IDiv(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:351
void *PDSCR_Operator_Mod(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:368
void *PDSCR_Operator_Exp(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:394
void *PDSCR_Operator_And(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:426
void *PDSCR_Operator_Or(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:442
void *PDSCR_Operator_Xor(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:458
void *PDSCR_Operator_Shl(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:474
void *PDSCR_Operator_Shr(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:490
void *PDSCR_Operator_BNot(char *type, void *arg);
pd_script/pdscr0/features/maths.c:506
void *PDSCR_Operator_Neg(char *type, void *arg);
pd_script/pdscr0/features/maths.c:518
void *PDSCR_Operator_AddVector(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:535
void *PDSCR_Operator_SubVector(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:557
void *PDSCR_Operator_NegVector(char *type, void *arg);
pd_script/pdscr0/features/maths.c:579
void *PDSCR_Operator_MulVector(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:593
void *PDSCR_Operator_DivVector(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:627
void *PDSCR_Operator_ModVector(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:648
void *PDSCR_Operator_AbsVector(char *type, void *arg);
pd_script/pdscr0/features/maths.c:674
void *PDSCR_Operator_BaseVector(char *type, void *arg);
pd_script/pdscr0/features/maths.c:693
void *PDSCR_Maths_ConvComplex(void *arg, int l);
pd_script/pdscr0/features/maths.c:713
void *PDSCR_Maths_ExpandComplex(void *arg, void *to);
pd_script/pdscr0/features/maths.c:721
void *PDSCR_Maths_MakeComplex(double r, double i);
pd_script/pdscr0/features/maths.c:737
void *PDSCR_Maths_MakeComplex2(double r, double i, double j);
pd_script/pdscr0/features/maths.c:746
void *PDSCR_Maths_MakeComplex3(double r, double i, double j, double k);
pd_script/pdscr0/features/maths.c:756
void *PDSCR_Operator_AddComplex(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:768
void *PDSCR_Operator_SubComplex(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:801
void *PDSCR_Operator_MulComplex(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:834
void *PDSCR_Operator_DivComplex(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths.c:892
int PDSCR_Maths_Init();
pd_script/pdscr0/features/maths.c:965
void *pdscr_mathsmatrix_loadmindex(PDSCR0_Context *ctx, void *obj,void **index, int n);
pd_script/pdscr0/features/maths_matrix.c:5
int pdscr_mathsmatrix_storemindex(PDSCR0_Context *ctx, void *obj,void **index, int n, void *value);
pd_script/pdscr0/features/maths_matrix.c:17
void *PDSCR_Operator_AddMatrix(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths_matrix.c:30
void *PDSCR_Operator_SubMatrix(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths_matrix.c:75
void *PDSCR_Operator_MulMatrix(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths_matrix.c:120
void PDSCR_MathsMatrix_Inverse(double *a, double *b, int n);
pd_script/pdscr0/features/maths_matrix.c:178
void *PDSCR_Operator_DivMatrix(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/maths_matrix.c:223
void *PDSCR_Operator_InvMatrix(char *type, void *arg);
pd_script/pdscr0/features/maths_matrix.c:286
int PDSCR_MathsMatrix_Init();
pd_script/pdscr0/features/maths_matrix.c:303
void *PDSCR_Operator_AddString(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/strings.c:5
void *PDSCR_Operator_SubString(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/strings.c:28
void *PDSCR_Operator_AndString(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/strings.c:43
void *PDSCR_Operator_AbsString(char *type, void *arg);
pd_script/pdscr0/features/strings.c:89
void *PDSCR_Operator_ShlString(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/strings.c:96
void *PDSCR_Operator_ShrString(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/strings.c:107
void *PDSCR_Operator_ShleString(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/strings.c:118
void *PDSCR_Operator_ShreString(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/strings.c:129
void *pdscr_tystring_methodcall(PDSCR0_Context *ctx, void *obj, void *index,void **args, int nargs);
pd_script/pdscr0/features/strings.c:147
int PDSCR_Strings_Init();
pd_script/pdscr0/features/strings.c:208
PDSCR0_Cons *PDSCR_Lists_Copy(PDSCR0_Cons *l);
pd_script/pdscr0/features/lists.c:4
PDSCR0_Cons *PDSCR_Lists_NAppend(PDSCR0_Cons *l1, PDSCR0_Cons *l2);
pd_script/pdscr0/features/lists.c:33
void *PDSCR_Operator_AddList(char *ltype, void *larg, char *rtype, void *rarg);
pd_script/pdscr0/features/lists.c:47
void *pdscr_lists_copy(PDSCR0_Context *ctx, void *obj, void **args, int n);
pd_script/pdscr0/features/lists.c:83
void *pdscr_lists_append(PDSCR0_Context *ctx, void *obj, void **args, int n);
pd_script/pdscr0/features/lists.c:119
void *pdscr_lists_nappend(PDSCR0_Context *ctx, void *obj, void **args, int n);
pd_script/pdscr0/features/lists.c:154
void *pdscr_lists_reverse(PDSCR0_Context *ctx, void *obj, void **args, int n);
pd_script/pdscr0/features/lists.c:178
void *pdscr_lists_nreverse(PDSCR0_Context *ctx, void *obj, void **args, int n);
pd_script/pdscr0/features/lists.c:197
int PDSCR_Lists_Init();
pd_script/pdscr0/features/lists.c:214
int PDSCR_BigNum_Cmp(ushort *a, ushort *b);
pd_script/pdscr0/features/bignum.c:4
int PDSCR_BigNum_CmpInt(ushort *a, int b);
pd_script/pdscr0/features/bignum.c:30
int PDSCR_BigNum_CmpInd(ushort *a, ushort *b, int ao, int bo);
pd_script/pdscr0/features/bignum.c:56
int PDSCR_BigNum_CmpIndB(ushort *a, ushort *b, int ao, int bo);
pd_script/pdscr0/features/bignum.c:81
int PDSCR_BigNum_Not(ushort *a, ushort *b);
pd_script/pdscr0/features/bignum.c:110
int PDSCR_BigNum_Neg(ushort *a, ushort *b);
pd_script/pdscr0/features/bignum.c:123
int PDSCR_BigNum_Copy(ushort *a, ushort *b);
pd_script/pdscr0/features/bignum.c:146
int PDSCR_BigNum_Crop(ushort *a, ushort *b);
pd_script/pdscr0/features/bignum.c:156
int PDSCR_BigNum_Shl(ushort *a, ushort *b, int c);
pd_script/pdscr0/features/bignum.c:173
int PDSCR_BigNum_Shr(ushort *a, ushort *b, int c);
pd_script/pdscr0/features/bignum.c:198
int PDSCR_BigNum_Inc(ushort *a, ushort *b);
pd_script/pdscr0/features/bignum.c:222
int PDSCR_BigNum_Dec(ushort *a, ushort *b);
pd_script/pdscr0/features/bignum.c:247
int PDSCR_BigNum_Add(ushort *a, ushort *b, ushort *c);
pd_script/pdscr0/features/bignum.c:272
int PDSCR_BigNum_Sub(ushort *a, ushort *b, ushort *c);
pd_script/pdscr0/features/bignum.c:302
int PDSCR_BigNum_SubInd(ushort *a, int ao, ushort *b, int bo, ushort *c, int co);
pd_script/pdscr0/features/bignum.c:328
int PDSCR_BigNum_SubIndB(ushort *a, int ao, ushort *b, int bo, ushort *c, int co);
pd_script/pdscr0/features/bignum.c:354
int PDSCR_BigNum_Mul(ushort *a, ushort *b, ushort *c);
pd_script/pdscr0/features/bignum.c:383
int PDSCR_BigNum_Div(ushort *a, ushort *b, ushort *c, ushort *d);
pd_script/pdscr0/features/bignum.c:409
char *PDSCR_BigNum_ToString(ushort *a);
pd_script/pdscr0/features/bignum.c:458
int PDSCR_BigNum_Init();
pd_script/pdscr0/features/bignum.c:518
int pdscr_store_object_indexvars(BIMG_Context *ctx, BGGL2_Binding *args);
pd_script/pdscr0/features/store.c:6
int pdscr_store_object_writevars(BIMG_Context *ctx, BGGL2_Binding *args);
pd_script/pdscr0/features/store.c:23
int pdscr_store_object_index(BIMG_Context *ctx, void *pobj);
pd_script/pdscr0/features/store.c:41
int pdscr_store_object_write(BIMG_Context *ctx, void *pobj);
pd_script/pdscr0/features/store.c:60
int pdscr_store_save(BIMG_Context *ctx, void *obj);
pd_script/pdscr0/features/store.c:78
void *pdscr_store_preload(BIMG_Context *ctx, char *tyn, int size);
pd_script/pdscr0/features/store.c:146
int pdscr_store_postload(BIMG_Context *ctx, void *obj, char *tyn, int size);
pd_script/pdscr0/features/store.c:180
void *pdscr_store_loadimage(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/features/store.c:229
void *pdscr_store_saveimage(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/features/store.c:238
int PDSCR_Store_Init();
pd_script/pdscr0/features/store.c:246
int PDSCR_Builtin_Bind(char *name, void *value);
pd_script/pdscr0/builtin/builtin.c:7
PDSCR0_Builtin *PDSCR_Builtin_NewBuiltin(char *name, char *desc,void *(*func)(PDSCR0_Context *ctx, void **args, int n), int min);
pd_script/pdscr0/builtin/builtin.c:55
int PDSCR_Builtin_AddBuiltin(char *name, char *desc,void *(*func)(PDSCR0_Context *ctx, void **args, int n), int min);
pd_script/pdscr0/builtin/builtin.c:69
char *pdscr_tybuiltin_tostring(PDSCR0_Context *ctx, void *pobj,BGGL2_Binding *args);
pd_script/pdscr0/builtin/builtin.c:84
int PDSCR_Builtin_PrintItem(PDSCR0_Context *ctx, void *p);
pd_script/pdscr0/builtin/builtin.c:96
void *pdscr_builtin_print(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:188
void *pdscr_builtin_println(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:198
void *pdscr_builtin_evalblock(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:209
void *pdscr_builtin_evalexpr(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:242
void *pdscr_builtin_load(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:275
void *pdscr_builtin_vector(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:287
void *pdscr_builtin_normalize(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:303
void *pdscr_builtin_tostring(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:323
void *pdscr_builtin_copy(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:328
void *pdscr_builtin_join(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:333
void *pdscr_builtin_gettypename(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:338
void *pdscr_builtin_apply(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:347
void *pdscr_builtin_usedheap(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:374
void *pdscr_builtin_freeheap(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:379
void *pdscr_builtin_deltaheap(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:384
void *pdscr_builtin_buildxml(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin.c:395
int PDSCR_Builtin_Init();
pd_script/pdscr0/builtin/builtin.c:424
void *pdscr_builtin_sqrt(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:6
void *pdscr_builtin_floor(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:11
void *pdscr_builtin_ceil(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:16
void *pdscr_builtin_round(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:21
void *pdscr_builtin_truncate(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:26
void *pdscr_builtin_pow(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:34
void *pdscr_builtin_degrees(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:43
void *pdscr_builtin_radians(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:51
void *pdscr_builtin_cos(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:59
void *pdscr_builtin_sin(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:67
void *pdscr_builtin_tan(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:75
void *pdscr_builtin_cosd(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:83
void *pdscr_builtin_sind(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:90
void *pdscr_builtin_tand(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:97
void *pdscr_builtin_acos(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:104
void *pdscr_builtin_asin(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:113
void *pdscr_builtin_atan(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:122
void *pdscr_builtin_ln(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:138
void *pdscr_builtin_log(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:146
void *pdscr_builtin_log10(PDSCR0_Context *ctx, void **args, int n);
pd_script/pdscr0/builtin/builtin_math.c:158
int PDSCR_BuiltinMath_Init();
pd_script/pdscr0/builtin/builtin_math.c:166
char *PDSCR0_CGen_BuildBuiltin(PDSCR0_CgenCtx *ctx, PDSCR0_Block *blk);
pd_script/pdscr0/cgen/cgen.c:28
int PDSCR0_CGen_CompileBlock(PDSCR0_CgenCtx *ctx, PDSCR0_Block *blk);
pd_script/pdscr0/cgen/cgen.c:126
PDSCR0_TextFrag *PDSCR0_CGen_WriteFrags(PDSCR0_TextFrag *lst, char *text);
pd_script/pdscr0/cgen/cgen.c:623
PDSCR0_CgenCtx *PDSCR0_CGen_Begin(char *name);
pd_script/pdscr0/cgen/cgen.c:640
int PDSCR0_CGen_End(PDSCR0_CgenCtx *ctx);
pd_script/pdscr0/cgen/cgen.c:684
int PDSCR0_CGen_BuildInit(PDSCR0_CgenCtx *ctx, PDSCR0_Block *blk);
pd_script/pdscr0/cgen/cgen.c:693
int PDSCR0_CGen_WriteFragsFd(VFILE *fd, PDSCR0_TextFrag *lst);
pd_script/pdscr0/cgen/cgen.c:729
int PDSCR0_CGen_WriteFile(char *name, PDSCR0_CgenCtx *ctx);
pd_script/pdscr0/cgen/cgen.c:742
NetParse_Node *pdscr_cgen_parse_cfunc(char **str);
pd_script/pdscr0/cgen/cgen_features.c:4
ushort *pdscr_cgen_compile_cgenast_expr(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/cgen/cgen_features.c:37
ushort *pdscr_cgen_compile_cgenast_stmt(ushort *ip, PDSCR0_CompileContext *ctx,NetParse_Node *expr);
pd_script/pdscr0/cgen/cgen_features.c:51
int PDSCR_CGen_Init();
pd_script/pdscr0/cgen/cgen_features.c:63
pdnet
Parse
parse trees for sx and xml, intended to allow faster parsers for such data than vm based parsers.
#define TOKEN_NULL 0
#define TOKEN_SPECIAL 1
#define TOKEN_STRING 2
#define TOKEN_SYMBOL 3
typedef struct NetParse_Attr_s NetParse_Attr;
typedef struct NetParse_Node_s NetParse_Node;
struct NetParse_Attr_s {
NetParse_Attr *next;
char *key;
char *value;
};
struct NetParse_Node_s {
NetParse_Node *next;
char *key;
char *text;
NetParse_Attr *attr;
NetParse_Node *first;
};
NET
Form
int NET_AddrEqual(VADDR *a, VADDR *b);
DocPos
pd_net/net.c:4
Description
Compares 2 addresses, returning a nonzero value if they are equal.
If both addresses have the same type, address, and port then they are viewed as equal.
An exception is in the case of addresses with ports of 0, which will match with any other address of the same protocol and address.
Form
int NET_Poll();
DocPos
pd_net/net.c:39
Description
Polls for any activity over the network, calls handlers, ...
Form
int NET_Init();
DocPos
pd_net/net.c:63
Description
Initializes pdnet core network stuff.
Does not start any specific protocols or services.
Sock
Form
char *NET_Addr2Str(VADDR *addr);
DocPos
pd_net/sock_us/w32_net.c:83
Description
Converts addr to a string (allocated with kralloc).
IPv4: a.b.c.d:port
IPv6: [...]:port, where ... is the typical convention.
Form
VADDR *NET_Str2Addr(char *str, int proto);
DocPos
pd_net/sock_us/w32_net.c:223
Description
Parses the address from a string.
proto identifies the expected protocol.
Form
int NET_InitLow ();
DocPos
pd_net/sock_us/w32_net.c:262
Description
Init the low-level portion of the net stuff (namely, sockets).
Form
VADDR *NET_LookupHost(char *name);
DocPos
pd_net/sock_us/w32_net.c:325
Description
Lookup the host address for name.
Form
VADDR *NET_LookupHost2(char *name, char *serv, int proto);
DocPos
pd_net/sock_us/w32_net.c:379
Description
Also looks up the address for name, but also includes "serve" and proto.
Form
VADDR *NET_DecodeHostname(char *name);
DocPos
pd_net/sock_us/w32_net.c:433
Description
Identifies the protocol and decodes the address if possible, otherwise assuming it is a hostname and performing a lookup.
Form
int NET_CreateGuid(VGUID *buf);
DocPos
pd_net/sock_us/w32_guid.c:5
Description
Create a new guid and put it into buf.
Form
int NET_GuidEqualP(VGUID *a, VGUID *b);
DocPos
pd_net/sock_us/w32_guid.c:23
Description
Returns nonzero if the GUID's are equal.
Form
char *NET_Guid2String(VGUID *guid);
DocPos
pd_net/sock_us/w32_guid.c:66
Description
Returns a string containing a textual representation of the guid.
It is formatted as: {AABBCCDD-EEFF-GGHH-IIJJ-KKLLMMNNOOPP}
Allocated using 'kalloc'.
Form
char *NET_String2Guid(VGUID *guid, char *s);
DocPos
pd_net/sock_us/w32_guid.c:108
Description
Converts a string to a GUID, filling in guid.
It is formatted as: {AABBCCDD-EEFF-GGHH-IIJJ-KKLLMMNNOOPP}
Returns a pointer to the end of the GUID.
Name
VGUID
Description
typedef struct {
byte data1[4];
byte data2[2];
byte data3[2];
byte data4[8];
}VGUID;
TCP
Form
int TCP_GetSocketAddr(int socket, VADDR *addrbuf);
DocPos
pd_net/sock_us/w32_tcpip.c:76
Description
Retrieves the address of a given socket.
Status
Internal
Form
VFILE *TCP_WrapSocket(int sock);
DocPos
pd_net/sock_us/w32_tcpip.c:353
Description
Wraps a TCP socket in a VFILE.
Form
VFILE *TCP_OpenSocket(int port);
DocPos
pd_net/sock_us/w32_tcpip.c:392
Description
Opens a socket on a given port.
Form
VFILE *TCP_OpenListen(int port);
DocPos
pd_net/sock_us/w32_tcpip.c:440
Description
Opens a listening socket on a given port.
Form
VFILE *TCP_OpenConnect(VADDR *targ);
DocPos
pd_net/sock_us/w32_tcpip.c:511
Description
Tries to connect to targ, returning the new connection.
UDP
Form
int UDP_GetSocketAddr(int socket, VADDR *addrbuf);
DocPos
pd_net/sock_us/w32_udpip.c:128
Description
Gets the address of a UDP socket.
Status
Internal
Form
VFILE *UDP_OpenSocket(int port);
DocPos
pd_net/sock_us/w32_udpip.c:280
Description
Creates a new socket.
Returns a VFILE representing the socket.
RPC
create a number of primitive types 'type_t' that are structs containing a single elememt of the given primitive type:
"int_t": "int;";
"float_t": "float;";
...
and some specials:
"string_t": "char+" (strings need to be correctly dynamic, and a cast of "*(char **)p" is an annoyance);
"array_t": "*struct+".
structs can be associative, ie: pairs of pointers with the first being the name and the second the value (they will be represented as normal arrays).
annoyingly neither arrays nor structs would be dynamically sizeable. involving an extra indirection step could fix this but I am unsure if it is worth it.
additionally, both static and dynamic structs/arrays could exist:
"d_array_t": "*array_t;";
"d_struct_t": "*array_t;*array_t;".
these would be dynamically resized if too small...
Form
int NET_ExportFunc(char *name, void *(*func)());
DocPos
pd_net/rpc1.c:83
Description
Export a function to the rpc subsystem.
The function is called with a variable number of arguments coresponding to those recieved on the call.
Each arg is a NetVal.
Form
int NET_ExportFunc2(char *name, int args, void *(*func)(void *data), void *data);
DocPos
pd_net/rpc1.c:111
Description
Exports a function to RPC.
name is the name used to call the function;
args is the number of arguments func accepts:
>=0, function accepts at least args arguments;
<0, function accepts |args|-1 basic arguments, and the rest as a null terminated array.
func is called with the first argument being a pointer to data.
data is the pointer passed as the first arg on call.
Form
NET_Interface *NET_CreateInterface(char *name);
DocPos
pd_net/rpc1.c:146
Description
Creates an "interface".
Interfaces are used within the protocol code to handle tasks such as:
Enoding URL's;
Decoding URL's;
Executing RPC calls;
...
name is used to identify urls related to this interface.
name may be null, in which case the interface does not have urls (this may be useful, eg, if the interface just needs to poll or such).
Form
NET_Interface *NET_FindInterface(char *name);
DocPos
pd_net/rpc1.c:175
Description
Find the interface associated with a given name.
Returns NULL if the interface is not found.
Form
NET_Export *NET_FindExport(char *name);
DocPos
pd_net/rpc1.c:197
Description
Finds an exported function.
Form
NET_Reference *NET_DecodeURL(char *url);
DocPos
pd_net/rpc1.c:217
Description
Decodes a URL.
URL's have the form <scheme>:<protocol-specific>.
scheme refers to the specific interface.
Form
char *NET_EncodeURL(NET_Reference *ref);
DocPos
pd_net/rpc1.c:250
Description
Encodes a URL.
Form
void *NET_CallReference(NET_Reference *ref, void **args);
DocPos
pd_net/rpc1.c:263
Description
Calls a reference (gained via decoding a url or such).
Form
void *NET_CallReferenceFunc(NET_Reference *ref, char *func, void **args);
DocPos
pd_net/rpc1.c:279
Description
Calls a function. The reference only identifies the host.
Form
void *NET_FetchReference(NET_Reference *ref);
DocPos
pd_net/rpc1.c:295
Description
Retrieves the data associated with a given reference.
Form
void *NET_GenLink(char *scheme, char *export);
DocPos
pd_net/rpc1.c:311
Description
Generate a link to self for a given scheme and export.
Form
void *NET_ConvLink(void *link);
DocPos
pd_net/rpc1.c:332
Description
Generate a link to self for a given scheme and export.
Form
void *NET_CallExport(char *name, void **args);
DocPos
pd_net/rpc1.c:416
Description
Calls an exported function.
This is intended primarily to be used within protocols to handle RPC requests.
XML-RPC
Like Jabber-RPC, XML-RPC lacks all that much directly usable interface...
Form
int XmlRpc_Init();
DocPos
pd_net/xml_rpc2/xmlrpc_base.c:320
Description
Init function for XML-RPC.
Decode
Form
void *XmlRpc_DecodeMember(NetParse_Node *exp, char **name, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_decode.c:4
Description
Decode an XML-RPC Struct Member.
Status
Internal
Form
void *XmlRpc_DecodeStruct(NetParse_Node *exp, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_decode.c:26
Description
Decode an XML-RPC Struct.
Status
Internal
Form
void *XmlRpc_DecodeArray2(NetParse_Node *exp, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_decode.c:74
Description
Decodes the internal portion of an XML-RPC Array.
Status
Internal
Form
void *XmlRpc_DecodeArray(NetParse_Node *exp, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_decode.c:112
Description
Decode an XML-RPC Array.
Status
Internal
Form
void *XmlRpc_DecodeVector(NetParse_Node *exp, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_decode.c:136
Description
Decode a BGB-RPC Vector.
Status
Internal
Form
void *XmlRpc_DecodeValue(NetParse_Node *exp, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_decode.c:160
Description
Decode an XML-RPC Value.
Status
Internal
Encode
Form
NetParse_Node *XmlRpc_EncodeArray(void *val, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_encode.c:4
Description
Encode an XML-RPC Array.
val is of the NET_Array type.
Status
Internal
Form
NetParse_Node *XmlRpc_EncodeArray2(void **val, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_encode.c:43
Description
Encode an XML-RPC Array.
val is an array of pointers.
Status
Internal
Form
NetParse_Node *XmlRpc_EncodeStruct(void *val, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_encode.c:79
Description
Encode an XML-RPC Struct.
Status
Internal
Form
NetParse_Node *XmlRpc_EncodeValue(void *val, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/xmlrpc_encode.c:127
Description
Encode an XML-RPC Value.
Status
Internal
Ext-1
Form
NetParse_Node *XmlRpc_EncodeVector(void *val, XMLRPC_Context *ctx);
DocPos
pd_net/xml_rpc2/bgb-ext-1.c:4
Description
Encode a BGB-RPC Vector.
val is an array of pointers.
Status
Internal
Service
Basic services related to the protocol.
Also handles extensions and such.
Form
XMLRPC_Extension *XmlRpc_LookupExtension(char *ns);
DocPos
pd_net/xml_rpc2/service.c:13
Description
Looks up a specific extension namespace.
Form
XMLRPC_Extension *XmlRpc_CreateExtension(char *ns);
DocPos
pd_net/xml_rpc2/service.c:34
Description
Creates a new extension.
ns specifies the namespace to be used for the extension.
NULL is used for anonymous extensions...
Form
void *XmlRpc_Service_ListExtensionNamespaces();
DocPos
pd_net/xml_rpc2/service.c:112
Description
Form
int XmlRpc_Service_Init();
DocPos
pd_net/xml_rpc2/service.c:142
Description
Jabber-RPC
Jabber-RPC is XML-RPC over XMPP.
As such it will share much interface with XML-RPC.
This will be primarily accessed through the RPC subsystem.
The URL scheme is 'jabber-rpc', thus:
jabber-rpc:<jid>[#<func>] represents a function.
jid has the form <node>@<host>/<resource>.
an example may then be:
jabber-rpc:myself@localhost/pdlib#validator1.simpleStructReturnTest
Form
int JabberRPC_Init();
DocPos
pd_net/xml_rpc2/jabber-rpc_base.c:618
Description
Init function for Jabber-RPC.
ObjLst
objective:
allow exporting objects;
allow referring to exported objects;
handle wrapping of objects;
...
Form
ObjLst_ObjExport *ObjLst_LookupExport(char *name);
DocPos
pd_net/objlst.c:16
Description
Looks up an exported obj and returns export info.
Status
Internal
Form
int ObjLst_ExportObj(char *name, void *obj);
DocPos
pd_net/objlst.c:38
Description
Export an object to the objlst system.
obj is expected to be an object within the ObjType system.
If there is another export with the same name it will be replaced.
Form
void *ObjLst_FetchObj(char *name);
DocPos
pd_net/objlst.c:69
Description
Fetch an exported obj.
Form
void *ObjLst_WrapObj(long o, char *type);
DocPos
pd_net/objlst.c:86
Description
Wraps a misc object so that it can be exported or otherwise passed through the objtype system.
o is an object id (no assumptions are made about meaning, thus, pointers could also be used here).
type is a string intended to be used to help determine what o is. It has no implicit meaning withing pdlib/pdnet.
Form
long ObjLst_WrapObjID(void *obj);
DocPos
pd_net/objlst.c:109
Description
Fetch the object id associated with a wrapped object.
Form
char *ObjLst_WrapObjType(void *obj);
DocPos
pd_net/objlst.c:127
Description
Fetch the type name associated with a wrapped object.
Protocols
Meta0
meta 0 will attempt to be a "metaprotocol".
basically it will allow sockets to be created and dispatch to handlers defined for that port.
Form
Meta0_Con *Meta0_NewCon();
DocPos
pd_net/meta0/meta0_base.c:14
Description
Creates a connection structure.
Form
Meta0_PortInfo *Meta0_NewPortInfo();
DocPos
pd_net/meta0/meta0_base.c:36
Description
Creates a PortInfo structure.
Form
Meta0_Con *Meta0_Connect(Meta0_PortInfo *inf, VADDR *addr);
DocPos
pd_net/meta0/meta0_base.c:58
Description
Connect to a server using inf for handlers and such.
Form
int Meta0_CloseConnection(Meta0_Con *con);
DocPos
pd_net/meta0/meta0_base.c:82
Description
Close a connection.
Form
Meta0_Con *Meta0_FindCon(VADDR *addr);
DocPos
pd_net/meta0/meta0_base.c:108
Description
Find the connection associated with a given address.
Form
int Meta0_HandleConnection(Meta0_Con *con);
DocPos
pd_net/meta0/meta0_base.c:126
Description
Polls a connection for activity.
Status
Internal
Form
int Meta0_PollPort(Meta0_PortInfo *inf);
DocPos
pd_net/meta0/meta0_base.c:197
Description
Polls a PortInfo structure for new connections.
Status
Internal
Form
int Meta0_Poll();
DocPos
pd_net/meta0/meta0_base.c:234
Description
Polls all open ports and connections for activity.
Status
Internal
Form
Meta0_PortInfo *Meta0_CreatePort(int port, char *name);
DocPos
pd_net/meta0/meta0_base.c:255
Description
Creates a new server socket.
Form
Meta0_PortInfo *Meta0_CreateClientPort(char *name);
DocPos
pd_net/meta0/meta0_base.c:277
Description
Creates a client socket.
Form
int Meta0_Init();
DocPos
pd_net/meta0/meta0_base.c:297
Description
Init Meta0 subsystem.
Status
Internal
HTTP
Form
HTTP_Con *HttpNode_NewCon();
DocPos
pd_net/http/http_sv.c:13
Description
Creates a new HTTP connection structure.
Status
Internal
Form
int HttpNode_SendContents(HTTP_Con *con, byte *type, byte *msg, int len);
DocPos
pd_net/http/http_sv.c:36
Description
Sends contents as the result of a HTTP request.
Status
Internal
Form
char *HttpNode_CodeName(int code);
DocPos
pd_net/http/http_sv.c:74
Description
Retrieves the string name of a given HTTP error code.
Form
int HttpNode_SendContentsCode(HTTP_Con *con, int code, byte *type, byte *msg, int len);
DocPos
pd_net/http/http_sv.c:209
Description
Sends contents for the response to a HTTP request with an error code.
Status
Internal
Form
int HttpNode_SendPage(HTTP_Con *con);
DocPos
pd_net/http/http_sv.c:317
Description
Handles an HTTP GET request.
Status
Internal
Form
int HttpNode_SendPageHead(HTTP_Con *con);
DocPos
pd_net/http/http_sv.c:400
Description
Handles an HTTP HEAD request.
Status
Internal
Form
int HttpNode_Send404(HTTP_Con *con, byte *type, byte *msg, int len);
DocPos
pd_net/http/http_sv.c:481
Description
Sends a 404 error.
Status
Internal
Form
int HttpNode_HandleLine(HTTP_Con *con, char *lb);
DocPos
pd_net/http/http_sv.c:522
Description
Handles a line located in the header of an HTTP request.
Status
Internal
Form
int HttpNode_HandleMessage(HTTP_Con *con, char *msg, int len);
DocPos
pd_net/http/http_sv.c:634
Description
Handles the data recieved from an HTTP POST request.
Status
Internal
Form
int HttpNode_HandleConnection(HTTP_Con *con);
DocPos
pd_net/http/http_sv.c:713
Description
Polls an HTTP connection to see if anything has changed.
Status
Internal
Form
HTTP_Resource *HttpNode_NewResource(char *base);
DocPos
pd_net/http/http_sv.c:792
Description
Creates a new HTTP Resource.
A Resourse is used for making some service available to clients.
Form
int HttpNode_Poll();
DocPos
pd_net/http/http_sv.c:816
Description
Polls for any activity over connections or any new connections.
Status
Internal
Form
int HttpNode_GetPort();
DocPos
pd_net/http/http_sv.c:857
Description
Returns the port the HTTP server is running on.
Form
int HttpNode_Init();
DocPos
pd_net/http/http_sv.c:869
Description
Initialize HTTP support.
Form
NET_Reference *HttpNode_DecodeURL(char *s);
DocPos
pd_net/http/http_cl.c:264
Description
Manually decodes an HTTP URL.
Form
void *HttpNode_Post(NET_Reference *ref, char *type, void *msg, int len);
DocPos
pd_net/http/http_cl.c:281
Description
Executes an HTTP POST request and returns the response data.
Form
int HttpNode_EncodeMime(byte *out, byte *iin, int sz);
DocPos
pd_net/http/mime.c:25
Description
Encodes some data as mime.
Form
int HttpNode_DecodeMime(byte *out, byte *in, int sz);
DocPos
pd_net/http/mime.c:68
Description
Decodes some mime data.
Form
char *HttpNode_MimeFromExt(char *ext);
DocPos
pd_net/http/mime.c:103
Description
Fecthes the mime type associated with a given file extension.
Form
char *HttpNode_MimeFromName(char *name);
DocPos
pd_net/http/mime.c:124
Description
Fetches the mime time for a given filename.
Form
int HttpNode_MimeInit();
DocPos
pd_net/http/mime.c:148
Description
Initialize the mime tables.
Status
Internal
XMPP/Jabber
This is the XMPP (aka: Jabber) protocol.
Form
XMPP_Interface *XMPP_CreateInterface(char *xmlns);
DocPos
pd_net/xmpp/xmpp.c:33
Description
Create an interface to the XMPP subsystem.
If not null xmlns identifies the namespace used for incomming iq requests.
Form
int XMPP_DispatchMessage(Meta0_Con *con, NetParse_Node *node);
DocPos
pd_net/xmpp/xmpp.c:56
Description
Dispatch a message to all interfaces that can recieve messages.
Status
Internal
Form
int XMPP_DispatchPresence(Meta0_Con *con, NetParse_Node *node);
DocPos
pd_net/xmpp/xmpp.c:77
Description
Dispatch a presence stanza to all interfaces that can recieve them.
Status
Internal
Form
int XMPP_DispatchTextMessage(char *from, char *subj, char *body);
DocPos
pd_net/xmpp/xmpp.c:98
Description
Dispatch a text message to all interfaces that can recieve text messages.
Status
Internal
Form
int XMPP_DispatchIQ(Meta0_Con *con, NetParse_Node *node);
DocPos
pd_net/xmpp/xmpp.c:120
Description
Dispatch an incomming IQ request to all interfaces with a matching namespace.
Status
Internal
Form
VADDR *XMPP_GetHostAddr(char *host, int defport);
DocPos
pd_net/xmpp/xmpp.c:440
Description
Performs a hostname lookup.
It also fills in a defualt port value if none is present.
Form
int XMPP_Connect(char *server);
DocPos
pd_net/xmpp/xmpp.c:481
Description
Connect to a specified XMPP server.
Form
int XMPP_Disconnect();
DocPos
pd_net/xmpp/xmpp.c:556
Description
Disconnect from XMPP server.
Form
int XMPP_Login(char *user, char *passwd, char *rsrc);
DocPos
pd_net/xmpp/xmpp.c:584
Description
Log into the server.
Form
int XMPP_Message(char *to, char *from, char *subj, char *body);
DocPos
pd_net/xmpp/xmpp.c:643
Description
Sends a message with the from specified.
Form
int XMPP_SendIQ(char *to, char *type, char *tag, NetParse_Node *body);
DocPos
pd_net/xmpp/xmpp.c:685
Description
Sends an IQ request to 'to'.
Form
int XMPP_SendMessage(char *to, char *subj, char *body);
DocPos
pd_net/xmpp/xmpp.c:732
Description
Sends a message to 'to'.
This time 'from' is generated from locally known info.
Form
int XMPP_SendMessageChat(char *to, char *body);
DocPos
pd_net/xmpp/xmpp.c:774
Description
Sends a chat message to 'to'.
This time 'from' is generated from locally known info.
Form
int XMPP_SendStanza(NetParse_Node *body);
DocPos
pd_net/xmpp/xmpp.c:813
Description
Sends a raw stanza.
Form
int XMPP_SendPresence(char *to, char *type, NetParse_Node *body);
DocPos
pd_net/xmpp/xmpp.c:864
Description
Sends a presence stanza to 'to'.
Form
int XMPP_SendMessageStanza(char *to, char *type, NetParse_Node *body);
DocPos
pd_net/xmpp/xmpp.c:892
Description
Sends a presence stanza to 'to'.
Form
int XMPP_Init();
DocPos
pd_net/xmpp/xmpp.c:920
Description
Initializes XMPP.
Name
XMPP_Interface Struct
Description
typedef struct XMPP_Interface_s XMPP_Interface;
struct XMPP_Interface_s {
XMPP_Interface *next;
char *xmlns;
int (*message)(Meta0_Con *con, NetParse_Node *node);
int (*iq)(Meta0_Con *con, NetParse_Node *node);
int (*text_message)(char *from, char *subj, char *body);
int (*presence)(Meta0_Con *con, NetParse_Node *node);
};
Util
Utility functions for the XMPP (aka: Jabber) protocol.
Form
NetParse_Node *XMPP_CheckResults(char *tag);
DocPos
pd_net/xmpp/xmpp_util.c:17
Description
Poll if a given tag is in the results pool.
Returns NULL if the node could not be found.
Form
int XMPP_AddResults(NetParse_Node *node);
DocPos
pd_net/xmpp/xmpp_util.c:47
Description
Tries to add node to the results pool.
Does nothing if the node does not contain a "type='result'" or "type='error'" attribute.
JEP-0030
I will try to implement JEP-0030 (Service Discovery).
Form
NetParse_Node *XMPP_JEP30_QueryItems(char *to, char *node);
DocPos
pd_net/xmpp/jep30.c:49
Description
Queries items from a given jid and node.
Form
NetParse_Node *XMPP_JEP30_QueryInfo(char *to, char *node);
DocPos
pd_net/xmpp/jep30.c:137
Description
Queries info from a given jid and node.
Form
int XMPP_JEP30_Init();
DocPos
pd_net/xmpp/jep30.c:171
Description
Init function for JEP-0030.
Status
Internal
JEP-0045(MultiUserChat)
JEP-0045 (Multi User Chat).
Form
XMPP_MucRoom *XMPP_MucRoom_NewRoom(char *room, char *host, char *nick);
DocPos
pd_net/xmpp/jep45.c:34
Description
Creates a new room context for a given room, host, and nick.
Form
XMPP_MucRoom *XMPP_MucRoom_FindJid(char *jid);
DocPos
pd_net/xmpp/jep45.c:61
Description
Find the room for which a given jid is associated (room@host/nick).
Form
int XMPP_MucRoom_SetPresence(XMPP_MucRoom *room, char *user, char *status);
DocPos
pd_net/xmpp/jep45.c:94
Description
Sets the presence (in the room context) for a given user.
Form
XMPP_MucRoom *XMPP_MucRoom_Join(char *room, char *host, char *nick);
DocPos
pd_net/xmpp/jep45.c:140
Description
Joins a room.
Form
int XMPP_MucRoom_Leave(XMPP_MucRoom *room);
DocPos
pd_net/xmpp/jep45.c:172
Description
Leaves a room.
Form
char *XMPP_MucRoom_UserJid(XMPP_MucRoom *room, char *nick);
DocPos
pd_net/xmpp/jep45.c:188
Description
Generates a jid for a given nick within the room.
Form
int XMPP_MucRoom_SendMessage(XMPP_MucRoom *room, NetParse_Node *body);
DocPos
pd_net/xmpp/jep45.c:203
Description
Sends a message to the room.
Body is the contents of the message stanza.
Form
int XMPP_MucRoom_SendMessageText(XMPP_MucRoom *room, char *str);
DocPos
pd_net/xmpp/jep45.c:220
Description
Sends a textual message to a room.
Form
int XMPP_MucRoom_Init();
DocPos
pd_net/xmpp/jep45.c:286
Description
Init function for JEP-0045.
Status
Internal
TMP
XMPP: Tupple Message Passing
Form
int XMPP_TMP_Export(char *name, void *data, int (*func)(char *name, void *data, void **msg));
DocPos
pd_net/xmpp/bgb_mp.c:19
Description
Exports a given pool (data), with an associated callback for handling messages.
Form
XMPP_PoolReference *XMPP_TMP_NewPoolRef(char *jid, char *name);
DocPos
pd_net/xmpp/bgb_mp.c:43
Description
Construct a pool reference from a jid and name.
Form
XMPP_PoolReference *XMPP_TMP_NewLocalPoolRef(char *name);
DocPos
pd_net/xmpp/bgb_mp.c:61
Description
Construct a pool reference to a pool on the current node.
Form
void *XMPP_TMP_DecodeValue(NetParse_Node *node);
DocPos
pd_net/xmpp/bgb_mp.c:79
Description
Decodes a value.
Status
Internal
Form
NetParse_Node *XMPP_TMP_EncodeValue(void *obj);
DocPos
pd_net/xmpp/bgb_mp.c:210
Description
Encodes a value.
Status
Internal
Form
int XMPP_TMP_SendMessageTo(char *jid, char *pool, void **msg);
DocPos
pd_net/xmpp/bgb_mp.c:306
Description
Sends a message to a given jid and pool.
Form
int XMPP_TMP_SendMessage(XMPP_PoolReference *ref, void **msg);
DocPos
pd_net/xmpp/bgb_mp.c:347
Description
Sends a message to a given reference.
Form
int XMPP_TMP_Init();
DocPos
pd_net/xmpp/bgb_mp.c:360
Description
Init function.
Status
Internal
Multiplex
MUX0
BGB-MUX Protocol.
Form
MUX_Link *MUX0_LinkCon(Meta0_Con *con);
DocPos
pd_net/mux0/mux0_base.c:17
Description
Takes a connection and creates a link context for it.
Status
Internal
Form
int mux0_new_con(Meta0_Con *con);
DocPos
pd_net/mux0/mux0_base.c:41
Description
Handles a new incomming connection.
Status
Internal
Form
int mux0_input(Meta0_Con *con);
DocPos
pd_net/mux0/mux0_base.c:68
Description
Handles some input over the connection.
Status
Internal
Form
int mux0_closed(Meta0_Con *con);
DocPos
pd_net/mux0/mux0_base.c:178
Description
The connection has closed.
Status
Internal
Form
int mux0_poll();
DocPos
pd_net/mux0/mux0_base.c:191
Description
Takes newly arrived messages and dispatches them to various handlers.
Status
Internal
Form
int MUX0_SendMessageLink(MUX_Link *link, MUX_Message *msg);
DocPos
pd_net/mux0/mux0_base.c:217
Description
Sends a message over a given link.
Form
int MUX0_Init();
DocPos
pd_net/mux0/mux0_base.c:282
Description
Init function for MUX0.
Form
MUX_Interface *MUX0_FindInterface(char *ns);
DocPos
pd_net/mux0/mux0_if.c:8
Description
Finds an interface for a given namespace.
Form
MUX_Interface *MUX0_CreateInterface(char *ns);
DocPos
pd_net/mux0/mux0_if.c:29
Description
Creates a new interface for a given namespace.
Form
MUX_Link *MUX0_FindLinkName(char *name);
DocPos
pd_net/mux0/mux0_if.c:52
Description
Finds a link with a certain name.
Form
MUX_Link *MUX0_FindLinkAddr(VADDR *addr);
DocPos
pd_net/mux0/mux0_if.c:73
Description
Finds a link with a certain address.
Form
int MUX0_DispatchMessage(MUX_Link *link, MUX_Message *msg);
DocPos
pd_net/mux0/mux0_if.c:94
Description
Dispatches a message to various handlers.
Returns -1 if no handlers were found.
Form
MUX_Message *MUX0_CreateBasicMessage(char *ns, char *rsrc, char *id,
char *type, int len, byte *content);
DocPos
pd_net/mux0/mux0_if.c:125
Description
Creates a basic message.
ns is the namespace of the message.
rsrc is the resource of the message (optional);
id is an id string for the message (optional).
Form
int MUX0_DestroyMessage(MUX_Message *msg);
DocPos
pd_net/mux0/mux0_if.c:169
Description
Destroys a message.
Form
int MUX0_MessageAddProperty(MUX_Message *msg, char *var, char *val);
DocPos
pd_net/mux0/mux0_if.c:184
Description
Adds a property to a message.
Form
char *MUX0_MessageGetProperty(MUX_Message *msg, char *var);
DocPos
pd_net/mux0/mux0_if.c:197
Description
Gets a property from a message.
Returns the text of the property or NULL if not found.
Function Index
char *NET_Addr2Str(VADDR *addr);
pd_net/sock_us/w32_net.c:92
VADDR *NET_Str2Addr(char *str, int proto);
pd_net/sock_us/w32_net.c:231
VADDR *NET_LookupHost(char *name);
pd_net/sock_us/w32_net.c:332
VADDR *NET_LookupHost2(char *name, char *serv, int proto);
pd_net/sock_us/w32_net.c:386
VADDR *NET_DecodeHostname(char *name);
pd_net/sock_us/w32_net.c:440
int NET_CreateGuid(VGUID *buf);
pd_net/sock_us/w32_guid.c:12
int NET_GuidEqualP(VGUID *a, VGUID *b);
pd_net/sock_us/w32_guid.c:30
char *NET_Guid2String(VGUID *guid);
pd_net/sock_us/w32_guid.c:75
char *NET_String2Guid(VGUID *guid, char *s);
pd_net/sock_us/w32_guid.c:117
int TCP_GetSocketAddr(int socket, VADDR *addrbuf);
pd_net/sock_us/w32_tcpip.c:84
VFILE *TCP_WrapSocket(int sock);
pd_net/sock_us/w32_tcpip.c:123
int tcpsock_read(void *buf, int sz, VFILE *sock);
pd_net/sock_us/w32_tcpip.c:125
int tcpsock_write(void *msg, int len, VFILE *sock);
pd_net/sock_us/w32_tcpip.c:157
int tcpsock_flush(VFILE *sock);
pd_net/sock_us/w32_tcpip.c:207
int tcpsock_ioctls(VFILE *fd, void **arg);
pd_net/sock_us/w32_tcpip.c:245
int tcpsock_close(VFILE *sock);
pd_net/sock_us/w32_tcpip.c:323
VADDR *tcpsock_getaddr(VFILE *sock);
pd_net/sock_us/w32_tcpip.c:338
VFILE *TCP_WrapSocket(int sock);
pd_net/sock_us/w32_tcpip.c:360
VFILE *TCP_OpenSocket(int port);
pd_net/sock_us/w32_tcpip.c:399
VFILE *TCP_OpenListen(int port);
pd_net/sock_us/w32_tcpip.c:447
VFILE *TCP_OpenListen_IPv6(int port);
pd_net/sock_us/w32_tcpip.c:490
VFILE *TCP_OpenConnect(VADDR *targ);
pd_net/sock_us/w32_tcpip.c:518
char *ipv4tostr(unsigned long addr);
pd_net/sock_us/w32_udpip.c:28
char *ipv6tostr(byte addr[16]);
pd_net/sock_us/w32_udpip.c:39
int UDP_GetSocketAddr(int socket, VADDR *addrbuf);
pd_net/sock_us/w32_udpip.c:136
int udpsock_get(void *buf, int lim, VADDR *from, VFILE *sock);
pd_net/sock_us/w32_udpip.c:175
int udpsock_send(VFILE *sock, VADDR *targ, void *msg, int len, int flags);
pd_net/sock_us/w32_udpip.c:229
VADDR *udpsock_getaddr(VFILE *sock);
pd_net/sock_us/w32_udpip.c:268
VFILE *UDP_OpenSocket(int socknum);
pd_net/sock_us/w32_udpip.c:288
VADDR *NET_LookupHost(char *name);
pd_net/sock_us/w32_udpip.c:317
int NET_AddrEqual(VADDR *a, VADDR *b);
pd_net/net.c:14
int NET_Poll();
pd_net/net.c:46
int NET_Init();
pd_net/net.c:71
int NET_ExportFunc(char *name, void *(*func)());
pd_net/rpc1.c:98
int NET_ExportFunc2(char *name, int args, void *(*func)(void *data), void *data);
pd_net/rpc1.c:130
NET_Interface *NET_CreateInterface(char *name);
pd_net/rpc1.c:167
NET_Interface *NET_FindInterface(char *name);
pd_net/rpc1.c:190
NET_Export *NET_FindExport(char *name);
pd_net/rpc1.c:211
NET_Reference *NET_DecodeURL(char *url);
pd_net/rpc1.c:233
char *NET_EncodeURL(NET_Reference *ref);
pd_net/rpc1.c:264
void *NET_CallReference(NET_Reference *ref, void **args);
pd_net/rpc1.c:277
void *NET_CallReferenceFunc(NET_Reference *ref, char *func, void **args);
pd_net/rpc1.c:293
void *NET_FetchReference(NET_Reference *ref);
pd_net/rpc1.c:309
void *NET_GenLink(char *scheme, char *export);
pd_net/rpc1.c:325
void *NET_ConvLink(void *link);
pd_net/rpc1.c:346
void *NET_ApplyFunc1(void *(*f)(void *x0, ...), int i, void **args);
pd_net/rpc1.c:367
void *NET_ApplyFunc2(void *(*f)(void *data, ...), int i, void *data, void **args);
pd_net/rpc1.c:395
void *NET_CallExport(char *name, void **args);
pd_net/rpc1.c:431
int NETAPI_Poll();
pd_net/rpc1.c:474
int NETAPI_Init();
pd_net/rpc1.c:487
ObjLst_ObjExport *ObjLst_LookupExport(char *name);
pd_net/objlst.c:24
int ObjLst_ExportObj(char *name, void *obj);
pd_net/objlst.c:47
void *ObjLst_FetchObj(char *name);
pd_net/objlst.c:76
void *ObjLst_WrapObj(long o, char *type);
pd_net/objlst.c:98
long ObjLst_WrapObjID(void *obj);
pd_net/objlst.c:119
char *ObjLst_WrapObjType(void *obj);
pd_net/objlst.c:137
Meta0_Con *Meta0_NewCon();
pd_net/meta0/meta0_base.c:21
Meta0_PortInfo *Meta0_NewPortInfo();
pd_net/meta0/meta0_base.c:43
Meta0_Con *Meta0_Connect(Meta0_PortInfo *inf, VADDR *addr);
pd_net/meta0/meta0_base.c:65
int Meta0_CloseConnection(Meta0_Con *con);
pd_net/meta0/meta0_base.c:89
Meta0_Con *Meta0_FindCon(VADDR *addr);
pd_net/meta0/meta0_base.c:115
int Meta0_HandleConnection(Meta0_Con *con);
pd_net/meta0/meta0_base.c:134
int Meta0_PollPort(Meta0_PortInfo *inf);
pd_net/meta0/meta0_base.c:205
int Meta0_Poll();
pd_net/meta0/meta0_base.c:242
Meta0_PortInfo *Meta0_CreatePort(int port, char *name);
pd_net/meta0/meta0_base.c:262
Meta0_PortInfo *Meta0_CreateClientPort(char *name);
pd_net/meta0/meta0_base.c:284
int Meta0_Init();
pd_net/meta0/meta0_base.c:305
HTTP_Con *HttpNode_NewCon();
pd_net/http/http_sv.c:21
int HttpNode_SendContents(HTTP_Con *con, byte *type, byte *msg, int len);
pd_net/http/http_sv.c:44
int HttpNode_SendResponse(HTTP_Con *con, byte *msg, int len);
pd_net/http/http_sv.c:67
char *HttpNode_CodeName(int code);
pd_net/http/http_sv.c:81
int HttpNode_SendContentsCode(HTTP_Con *con, int code, byte *type, byte *msg, int len);
pd_net/http/http_sv.c:217
int HttpNode_SendDir(HTTP_Con *con, char *name);
pd_net/http/http_sv.c:241
int HttpNode_SendPage(HTTP_Con *con);
pd_net/http/http_sv.c:325
int HttpNode_SendPageHead(HTTP_Con *con);
pd_net/http/http_sv.c:408
int HttpNode_Send404(HTTP_Con *con, byte *type, byte *msg, int len);
pd_net/http/http_sv.c:489
int HttpNode_HandleLine(HTTP_Con *con, char *lb);
pd_net/http/http_sv.c:530
int HttpNode_HandleMessage(HTTP_Con *con, char *msg, int len);
pd_net/http/http_sv.c:642
int HttpNode_HandleConnection(HTTP_Con *con);
pd_net/http/http_sv.c:721
HTTP_Resource *HttpNode_NewResource(char *base);
pd_net/http/http_sv.c:800
int HttpNode_Poll();
pd_net/http/http_sv.c:824
int HttpNode_GetPort();
pd_net/http/http_sv.c:864
int HttpNode_Init();
pd_net/http/http_sv.c:876
NET_Reference *httpnode_decode_url(char *s);
pd_net/http/http_cl.c:7
char *httpnode_encode_url(NET_Reference *ref);
pd_net/http/http_cl.c:64
void *httpnode_rpc_call(NET_Reference *ref, void **args);
pd_net/http/http_cl.c:79
void *httpnode_fetch(NET_Reference *ref);
pd_net/http/http_cl.c:84
int httpnode_input_stat(Meta0_Con *con, char *buf);
pd_net/http/http_cl.c:130
int httpnode_input_line(Meta0_Con *con, char *buf);
pd_net/http/http_cl.c:166
int httpnode_input(Meta0_Con *con);
pd_net/http/http_cl.c:193
NET_Reference *HttpNode_DecodeURL(char *s);
pd_net/http/http_cl.c:271
void *HttpNode_Post(NET_Reference *ref, char *type, void *msg, int len);
pd_net/http/http_cl.c:288
int HttpNode_InitCl();
pd_net/http/http_cl.c:341
int HttpNode_EncodeMime(byte *o, byte *i, int sz);
pd_net/http/mime.c:32
int HttpNode_DecodeMime(byte *o, byte *i, int sz);
pd_net/http/mime.c:75
char *HttpNode_MimeFromExt(char *ext);
pd_net/http/mime.c:110
char *HttpNode_MimeFromName(char *name);
pd_net/http/mime.c:131
int HttpNode_MimeInit();
pd_net/http/mime.c:156
XMPP_Interface *XMPP_CreateInterface(char *xmlns);
pd_net/xmpp/xmpp.c:42
int XMPP_DispatchMessage(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/xmpp.c:65
int XMPP_DispatchPresence(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/xmpp.c:86
int XMPP_DispatchTextMessage(char *from, char *subj, char *body);
pd_net/xmpp/xmpp.c:108
int XMPP_DispatchIQ(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/xmpp.c:130
int xmpp_handle_auth(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/xmpp.c:149
int xmpp_handle_message(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/xmpp.c:230
int xmpp_handle_form(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/xmpp.c:270
int xmpp_poll();
pd_net/xmpp/xmpp.c:334
int xmpp_input(Meta0_Con *con);
pd_net/xmpp/xmpp.c:349
int xmpp_closed(Meta0_Con *con);
pd_net/xmpp/xmpp.c:434
VADDR *XMPP_GetHostAddr(char *host, int defport);
pd_net/xmpp/xmpp.c:450
int XMPP_Connect(char *server);
pd_net/xmpp/xmpp.c:490
int XMPP_Disconnect();
pd_net/xmpp/xmpp.c:565
int XMPP_Login(char *user, char *passwd, char *rsrc);
pd_net/xmpp/xmpp.c:593
int XMPP_Message(char *to, char *from, char *subj, char *body);
pd_net/xmpp/xmpp.c:652
int XMPP_SendIQ(char *to, char *type, char *tag, NetParse_Node *body);
pd_net/xmpp/xmpp.c:694
int XMPP_SendMessage(char *to, char *subj, char *body);
pd_net/xmpp/xmpp.c:742
int XMPP_SendMessageChat(char *to, char *body);
pd_net/xmpp/xmpp.c:784
int XMPP_SendStanza(NetParse_Node *body);
pd_net/xmpp/xmpp.c:822
int XMPP_SendPresence(char *to, char *type, NetParse_Node *body);
pd_net/xmpp/xmpp.c:873
int XMPP_SendMessageStanza(char *to, char *type, NetParse_Node *body);
pd_net/xmpp/xmpp.c:901
int XMPP_Init();
pd_net/xmpp/xmpp.c:929
NetParse_Node *XMPP_CheckResults(char *tag);
pd_net/xmpp/xmpp_util.c:28
int XMPP_AddResults(NetParse_Node *node);
pd_net/xmpp/xmpp_util.c:60
char *XMPP_GenLocal();
pd_net/xmpp/xmpp_util.c:73
int xmpp_jep30_items_iq(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/jep30.c:13
NetParse_Node *XMPP_JEP30_QueryItems(char *to, char *node);
pd_net/xmpp/jep30.c:56
int xmpp_jep30_info_iq(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/jep30.c:83
NetParse_Node *XMPP_JEP30_QueryInfo(char *to, char *node);
pd_net/xmpp/jep30.c:144
int XMPP_JEP30_Init();
pd_net/xmpp/jep30.c:179
XMPP_MucRoom *XMPP_MucRoom_NewRoom(char *room, char *host, char *nick);
pd_net/xmpp/jep45.c:41
XMPP_MucRoom *XMPP_MucRoom_FindJid(char *jid);
pd_net/xmpp/jep45.c:68
int XMPP_MucRoom_SetPresence(XMPP_MucRoom *room, char *user, char *status);
pd_net/xmpp/jep45.c:102
XMPP_MucRoom *XMPP_MucRoom_Join(char *room, char *host, char *nick);
pd_net/xmpp/jep45.c:148
int XMPP_MucRoom_Leave(XMPP_MucRoom *room);
pd_net/xmpp/jep45.c:180
char *XMPP_MucRoom_UserJid(XMPP_MucRoom *room, char *nick);
pd_net/xmpp/jep45.c:196
int XMPP_MucRoom_SendMessage(XMPP_MucRoom *room, NetParse_Node *body);
pd_net/xmpp/jep45.c:212
int XMPP_MucRoom_SendMessageText(XMPP_MucRoom *room, char *str);
pd_net/xmpp/jep45.c:228
int xmpp_jep45_message(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/jep45.c:244
int xmpp_jep45_presence(Meta0_Con *con, NetParse_Node *node);
pd_net/xmpp/jep45.c:267
int XMPP_MucRoom_Init();
pd_net/xmpp/jep45.c:295
int XMPP_TMP_Export(char *name, void *data,int (*func)(char *name, void *data, void **msg));
pd_net/xmpp/bgb_mp.c:31
XMPP_PoolReference *XMPP_TMP_NewPoolRef(char *jid, char *name);
pd_net/xmpp/bgb_mp.c:54
XMPP_PoolReference *XMPP_TMP_NewLocalPoolRef(char *name);
pd_net/xmpp/bgb_mp.c:72
void *XMPP_TMP_DecodeValue(NetParse_Node *node);
pd_net/xmpp/bgb_mp.c:91
NetParse_Node *XMPP_TMP_EncodeValue(void *obj);
pd_net/xmpp/bgb_mp.c:222
int XMPP_TMP_SendMessageTo(char *jid, char *pool, void **msg);
pd_net/xmpp/bgb_mp.c:317
int XMPP_TMP_SendMessage(XMPP_PoolReference *ref, void **msg);
pd_net/xmpp/bgb_mp.c:358
int XMPP_TMP_Init();
pd_net/xmpp/bgb_mp.c:372
MUX_Link *MUX0_LinkCon(Meta0_Con *con);
pd_net/mux0/mux0_base.c:25
int mux0_new_con(Meta0_Con *con);
pd_net/mux0/mux0_base.c:49
int mux0_input(Meta0_Con *con);
pd_net/mux0/mux0_base.c:76
int mux0_closed(Meta0_Con *con);
pd_net/mux0/mux0_base.c:186
int mux0_poll();
pd_net/mux0/mux0_base.c:199
int MUX0_SendMessageLink(MUX_Link *link, MUX_Message *msg);
pd_net/mux0/mux0_base.c:224
MUX_Link *MUX0_Connect(char *server, char *name);
pd_net/mux0/mux0_base.c:255
int MUX0_Init();
pd_net/mux0/mux0_base.c:289
MUX_Interface *MUX0_FindInterface(char *ns);
pd_net/mux0/mux0_if.c:15
MUX_Interface *MUX0_CreateInterface(char *ns);
pd_net/mux0/mux0_if.c:36
MUX_Link *MUX0_FindLinkName(char *name);
pd_net/mux0/mux0_if.c:59
MUX_Link *MUX0_FindLinkAddr(VADDR *addr);
pd_net/mux0/mux0_if.c:80
int MUX0_DispatchMessage(MUX_Link *link, MUX_Message *msg);
pd_net/mux0/mux0_if.c:102
MUX_Message *MUX0_CreateBasicMessage(char *ns, char *rsrc, char *id,char *type, int len, byte *content);
pd_net/mux0/mux0_if.c:146
int MUX0_DestroyMessage(MUX_Message *msg);
pd_net/mux0/mux0_if.c:179
int MUX0_MessageAddProperty(MUX_Message *msg, char *var, char *val);
pd_net/mux0/mux0_if.c:194
char *MUX0_MessageGetProperty(MUX_Message *msg, char *var);
pd_net/mux0/mux0_if.c:208
int xmlrpc_get(HTTP_Resource *rsrc, HTTP_Con *con, char **type, char **data, int *len);
pd_net/xml_rpc2/xmlrpc_base.c:10
int xmlrpc_post(HTTP_Resource *rsrc, HTTP_Con *con, char **type, char **data, int *len);
pd_net/xml_rpc2/xmlrpc_base.c:18
int xmlrpc_head(HTTP_Resource *rsrc, HTTP_Con *con, char **type, int *len);
pd_net/xml_rpc2/xmlrpc_base.c:141
NET_Reference *xmlrpc_decode_url(char *s);
pd_net/xml_rpc2/xmlrpc_base.c:151
char *xmlrpc_encode_url(NET_Reference *ref);
pd_net/xml_rpc2/xmlrpc_base.c:213
void *xmlrpc_rpc_call(NET_Reference *ref, void **args);
pd_net/xml_rpc2/xmlrpc_base.c:226
int XmlRpc_Init();
pd_net/xml_rpc2/xmlrpc_base.c:327
void *XmlRpc_DecodeMember(NetParse_Node *exp, char **name, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_decode.c:12
void *XmlRpc_DecodeStruct(NetParse_Node *exp, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_decode.c:34
void *XmlRpc_DecodeArray2(NetParse_Node *exp, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_decode.c:82
void *XmlRpc_DecodeArray(NetParse_Node *exp, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_decode.c:120
void *XmlRpc_DecodeVector(NetParse_Node *exp, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_decode.c:144
void *XmlRpc_DecodeValue(NetParse_Node *exp, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_decode.c:168
NetParse_Node *XmlRpc_EncodeArray(void *val, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_encode.c:13
NetParse_Node *XmlRpc_EncodeArray2(void **val, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_encode.c:52
NetParse_Node *XmlRpc_EncodeStruct(void *val, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_encode.c:87
NetParse_Node *XmlRpc_EncodeValue(void *val, XMLRPC_Context *ctx);
pd_net/xml_rpc2/xmlrpc_encode.c:135
NetParse_Node *xmlrpc_fault_make_name(char *name);
pd_net/xml_rpc2/jabber-rpc_base.c:25
NetParse_Node *xmlrpc_fault_make_ival(int val);
pd_net/xml_rpc2/jabber-rpc_base.c:41
NetParse_Node *xmlrpc_fault_make_sval(char *s);
pd_net/xml_rpc2/jabber-rpc_base.c:64
NetParse_Node *xmlrpc_fault_make_top(int num, char *str);
pd_net/xml_rpc2/jabber-rpc_base.c:85
int jabberrpc_send_fault(char *to, char *tag, int num, char *str);
pd_net/xml_rpc2/jabber-rpc_base.c:135
XMLRPC_PeerInfo *JabberRPC_FindPeer(char *name);
pd_net/xml_rpc2/jabber-rpc_base.c:153
XMLRPC_PeerInfo *JabberRPC_NewPeer(char *name);
pd_net/xml_rpc2/jabber-rpc_base.c:166
int JabberRPC_CachePeerName(char *name);
pd_net/xml_rpc2/jabber-rpc_base.c:179
int JabberRPC_CachePeer(NET_Reference *ref);
pd_net/xml_rpc2/jabber-rpc_base.c:227
int jabberrpc_handle_call(Meta0_Con *con, NetParse_Node *node);
pd_net/xml_rpc2/jabber-rpc_base.c:239
int jabberrpc_iq(Meta0_Con *con, NetParse_Node *node);
pd_net/xml_rpc2/jabber-rpc_base.c:351
NetParse_Node *JabberRPC_CheckResults(char *tag);
pd_net/xml_rpc2/jabber-rpc_base.c:381
NET_Reference *jabberrpc_decode_url(char *s);
pd_net/xml_rpc2/jabber-rpc_base.c:401
char *jabberrpc_encode_url(NET_Reference *ref);
pd_net/xml_rpc2/jabber-rpc_base.c:448
char *jabberrpc_encode_jid(XMPP_RefInfo *ri);
pd_net/xml_rpc2/jabber-rpc_base.c:465
void *jabberrpc_rpc_call_func(NET_Reference *ref, char *func, void **args);
pd_net/xml_rpc2/jabber-rpc_base.c:478
void *jabberrpc_rpc_call(NET_Reference *ref, void **args);
pd_net/xml_rpc2/jabber-rpc_base.c:601
int JabberRPC_Init();
pd_net/xml_rpc2/jabber-rpc_base.c:626
XMLRPC_Extension *XmlRpc_LookupExtension(char *ns);
pd_net/xml_rpc2/service.c:20
XMLRPC_Extension *XmlRpc_CreateExtension(char *ns);
pd_net/xml_rpc2/service.c:43
void *XmlRpc_DecodeExtension(XMLRPC_Context *ctx, char *ns, NetParse_Node *node);
pd_net/xml_rpc2/service.c:59
NetParse_Node *XmlRpc_EncodeValueExtension(XMLRPC_Context *ctx, void *val);
pd_net/xml_rpc2/service.c:80
void *XmlRpc_Service_ListExtensionNamespaces();
pd_net/xml_rpc2/service.c:118
int XmlRpc_Service_Init();
pd_net/xml_rpc2/service.c:148
void *Verify_FetchStructSlot(NET_Struct *ns, char *name);
pd_net/xml_rpc2/verify.c:4
NET_Struct *Verify_NewNetStruct(int max);
pd_net/xml_rpc2/verify.c:15
int Verify_SetStructSlot(NET_Struct *ns, char *name, void *val);
pd_net/xml_rpc2/verify.c:28
void *Verify_ArrayOfStructsTest(long arr);
pd_net/xml_rpc2/verify.c:48
void *Verify_CountTheEntities(char *str);
pd_net/xml_rpc2/verify.c:70
void *Verify_EasyStructTest(void *val);
pd_net/xml_rpc2/verify.c:118
void *Verify_EchoStructTest(void *val);
pd_net/xml_rpc2/verify.c:137
void *Verify_ManyTypesTest(void *v1, void *v2, void *v3, void *v4, void *v5, void *v6);
pd_net/xml_rpc2/verify.c:142
void *Verify_ModerateSizeArrayCheck(void *val);
pd_net/xml_rpc2/verify.c:159
void *Verify_NestedStructTest(void *st);
pd_net/xml_rpc2/verify.c:177
void *Verify_SimpleStructReturnTest(void *num);
pd_net/xml_rpc2/verify.c:199
int Verify_Init();
pd_net/xml_rpc2/verify.c:217
NetParse_Node *XmlRpc_EncodeVector(void *val, XMLRPC_Context *ctx);
pd_net/xml_rpc2/bgb-ext-1.c:13
NetParse_Node *xmlrpc_ext1_encode(XMLRPC_Context *ctx, void *val);
pd_net/xml_rpc2/bgb-ext-1.c:41
void *xmlrpc_ext1_decode(XMLRPC_Context *ctx, NetParse_Node *exp);
pd_net/xml_rpc2/bgb-ext-1.c:95
int XMLRPC_EXT1_Init();
pd_net/xml_rpc2/bgb-ext-1.c:129
pdvfs
A lib which offers filesystem abstraction features and such to pdlib.
Vpath will be the primary interface to pdvfs.
pdvfs is included within the pdlib library.
VDIR
Form
int VDir_ReadDir(char **names, void **values, long *key, VDIR *dir);
DocPos
pd_vfs/vdir.c:4
Description
Reads an entry from a directory.
names is an array to be filled in with field names.
values is an array to be filled in with field values (ObjType).
key is a pointer to a long holding the current key.
dir is the dir.
Form
int VDir_MkDir(char *name, VDIR *dir);
DocPos
pd_vfs/vdir.c:22
Description
Creates a new sub-dir under dir.
Form
int VDir_CloseDir(VDIR *dir);
DocPos
pd_vfs/vdir.c:35
Description
Close an open directory.
Form
VFILE *VDir_Open(char *name, char *fl, VDIR *dir);
DocPos
pd_vfs/vdir.c:48
Description
Open a file within a directory.
Form
VDIR *VDir_OpenDir(char *name, VDIR *dir);
DocPos
pd_vfs/vdir.c:61
Description
Open a directory within a directory.
Form
long VDir_DupKey(VDIR *dir, long key);
DocPos
pd_vfs/vdir.c:75
Description
Make a copy of a directory key.
Form
int VDir_DropKey(VDIR *dir, long key);
DocPos
pd_vfs/vdir.c:88
Description
Drop a directory key.
Form
int VDir_DeleteKey(VDIR *dir, long key);
DocPos
pd_vfs/vdir.c:101
Description
Delete a file with a specific key.
Form
long VDir_Insert(char **names, void **values, VDIR *dir);
DocPos
pd_vfs/vdir.c:114
Description
Insert a new entry into a directory with the given fields.
Returns the key of the new entry.
Form
VFILE *VDir_OpenKey(long key, char *fl, VDIR *dir);
DocPos
pd_vfs/vdir.c:128
Description
Open the file in a directory with a specific key.
Form
VDIR *VDir_OpenDirKey(long key, VDIR *dir);
DocPos
pd_vfs/vdir.c:141
Description
Open the sub directory with a specific key.
VFS
Form
int Vfs_Init();
DocPos
pd_vfs/vfs.c:6
Description
Init function for vfs subststem.
Form
VFSTYPE *Vfs_RegisterType(char *name, VMOUNT *(*mount)(char **options));
DocPos
pd_vfs/vfs.c:24
Description
Register a new fs type.
Form
VFSTYPE *Vfs_LookupType(char *type);
DocPos
pd_vfs/vfs.c:46
Description
Find the type info for a given type name.
Form
int Vfs_Mount(char *path, char *type, char **options);
DocPos
pd_vfs/vfs.c:65
Description
Mount a volume.
path is the desired mount point.
type is the fs type.
options depends on the fs type, but often options[0] will be the device or file, if used by this type...
VFSNS
VFSNS is a system for multiple "namespaces" within the filesystem.
Each namespace will follow URL style conventions, eg:
<scheme>:<namespace-specific>
scheme will be used to select between namespaces.
'file' will be a builtin namespace referring to the vpath root.
'cwd' will refer to the (external) current working directory.
Form
VFSNAMESPACE *VFSNS_New(char *name);
DocPos
pd_vfs/vfs_ns.c:18
Description
Create a new namespace.
Form
char *VFSNS_GetScheme(char *name);
DocPos
pd_vfs/vfs_ns.c:40
Description
Extract the scheme portion from a name.
Form
VFSNAMESPACE *VFSNS_LookupScheme(char *scheme);
DocPos
pd_vfs/vfs_ns.c:70
Description
Lookup the namespace associated with the given scheme.
Form
VFILE *VFSNS_OpenFile(char *name, char *fl);
DocPos
pd_vfs/vfs_ns.c:90
Description
Open a file within a specific namespace.
Form
VDIR *VFSNS_OpenDir(char *name);
DocPos
pd_vfs/vfs_ns.c:112
Description
Open a directory within a given namespace.
Form
int VFSNS_Init();
DocPos
pd_vfs/vfs_ns.c:144
Description
Init function for VFSNS.
Called by VPath_Init().
VPath
Primary interface for the pdvfs system.
Form
int VPath_Init();
DocPos
pd_vfs/vpath.c:14
Description
Init function for VPath.
Initial Mounts
/sysroot / dirfs
/cwdroot ./ dirfs
Form
VFILE *VPath_OpenFile(char *name, char *fl);
DocPos
pd_vfs/vpath.c:87
Description
Open a file relative to the root.
Tries VFSNS if name appears to have a namespace.
Form
VDIR *VPath_OpenDir(char *name);
DocPos
pd_vfs/vpath.c:131
Description
Open a directory relative to the root.
Tries VFSNS if name appears to have a namespace.
Form
int VPath_MkDir(char *name);
DocPos
pd_vfs/vpath.c:173
Description
Create a directory.
Form
int VPath_Mount(char *dir, char *type, char **opts);
DocPos
pd_vfs/vpath.c:218
Description
Mount something to a specific directory.
Tries to create mount point if it does not exist.
Form
int VPath_Unmount(char *name);
DocPos
pd_vfs/vpath.c:245
Description
Unmount whatever is mounted to a directory.
Function Index
int VDir_ReadDir(char **names, void **values, long *key, VDIR *dir);
pd_vfs/vdir.c:15
int VDir_MkDir(char *name, VDIR *dir);
pd_vfs/vdir.c:29
int VDir_CloseDir(VDIR *dir);
pd_vfs/vdir.c:42
VFILE *VDir_Open(char *name, char *fl, VDIR *dir);
pd_vfs/vdir.c:55
VDIR *VDir_OpenDir(char *name, VDIR *dir);
pd_vfs/vdir.c:68
long VDir_DupKey(VDIR *dir, long key);
pd_vfs/vdir.c:82
int VDir_DropKey(VDIR *dir, long key);
pd_vfs/vdir.c:95
int VDir_DeleteKey(VDIR *dir, long key);
pd_vfs/vdir.c:108
long VDir_Insert(char **names, void **values, VDIR *dir);
pd_vfs/vdir.c:122
VFILE *VDir_OpenKey(long key, char *fl, VDIR *dir);
pd_vfs/vdir.c:135
VDIR *VDir_OpenDirKey(long key, VDIR *dir);
pd_vfs/vdir.c:148
int Vfs_Init();
pd_vfs/vfs.c:13
VFSTYPE *Vfs_RegisterType(char *name, VMOUNT *(*mount)(char **options));
pd_vfs/vfs.c:31
VFSTYPE *Vfs_LookupType(char *type);
pd_vfs/vfs.c:53
int Vfs_Mount(char *path, char *type, char **options);
pd_vfs/vfs.c:75
VFSNAMESPACE *VFSNS_New(char *name);
pd_vfs/vfs_ns.c:25
char *VFSNS_GetScheme(char *name);
pd_vfs/vfs_ns.c:47
VFSNAMESPACE *VFSNS_LookupScheme(char *s);
pd_vfs/vfs_ns.c:77
VFILE *VFSNS_OpenFile(char *name, char *fl);
pd_vfs/vfs_ns.c:97
VDIR *VFSNS_OpenDir(char *name);
pd_vfs/vfs_ns.c:119
VFILE *vfsns_file_openf(char *name, char *fl, VFSNAMESPACE *ns);
pd_vfs/vfs_ns.c:134
VDIR *vfsns_file_opend(char *name, VFSNAMESPACE *ns);
pd_vfs/vfs_ns.c:139
int VFSNS_Init();
pd_vfs/vfs_ns.c:152
int VMount_Init();
pd_vfs/vmount.c:6
VMOUNT *VMount_ChooseBest(char *path, int w);
pd_vfs/vmount.c:19
int VMount_ClearMarks();
pd_vfs/vmount.c:54
VFILE *VMount_Open(VMOUNT *vd, char *name, char *fl);
pd_vfs/vmount.c:65
VDIR *VMount_OpenDir(VMOUNT *vd, char *name);
pd_vfs/vmount.c:71
VFILE *VMount_OpenSL(VMOUNT *vd, int idx, char *fl);
pd_vfs/vmount.c:77
int VMount_CreateSL(VMOUNT *vd, char *type);
pd_vfs/vmount.c:83
int VMount_LoadMounts(char *name);
pd_vfs/vmount.c:90
int VMount_RegisterMount(VMOUNT *vd, char *path);
pd_vfs/vmount.c:136
int VMount_PrintMounts();
pd_vfs/vmount.c:146
VMOUNT *VMount_LookupMount(char *name);
pd_vfs/vmount.c:157
int VMount_Unmount(VMOUNT *mount);
pd_vfs/vmount.c:170
int VPath_Init();
pd_vfs/vpath.c:26
VFILE *VPath_OpenFile(char *name, char *fl);
pd_vfs/vpath.c:95
VDIR *VPath_OpenDir(char *name);
pd_vfs/vpath.c:139
int VPath_MkDir(char *name);
pd_vfs/vpath.c:180
int VPath_Mount(char *dir, char *type, char **opts);
pd_vfs/vpath.c:226
int VPath_Unmount(char *name);
pd_vfs/vpath.c:252
VFSDI_Dir *VFSDI_LookupDir(char *name);
pd_vfs/vfsdi.c:6
int VFSDI_InheritDir(VFSDI_Dir *dir, char *name);
pd_vfs/vfsdi.c:20
VFSDI_Dir *VFSDI_FetchDir(char *name);
pd_vfs/vfsdi.c:40
VFILE *VFSDI_OpenDirFile(VFSDI_Dir *dir, char *name, char *fl);
pd_vfs/vfsdi.c:98
VFILE *vfsdi_file_openf(char *name, char *fl, VFSNAMESPACE *ns);
pd_vfs/vfsdi.c:115
VDIR *vfsdi_file_opend(char *name, VFSNAMESPACE *ns);
pd_vfs/vfsdi.c:165
int VFSDI_Init();
pd_vfs/vfsdi.c:170
VFILE *vf_wrap_file(FILE *fd);
pd_vfs/dirfs/dirfs.c:49
VFILE *vffopen(char *name, char *access);
pd_vfs/dirfs/dirfs.c:69
VFILE *vdd_open(char *name, char *fl, VMOUNT *dir);
pd_vfs/dirfs/dirfs.c:83
int vdd_d_readdir(char **names, void **values, long *key, VDIR *dir);
pd_vfs/dirfs/dirfs.c:111
int vdd_d_close(VDIR *dir);
pd_vfs/dirfs/dirfs.c:128
VDIR *vdd_opendir(char *name, VMOUNT *dir);
pd_vfs/dirfs/dirfs.c:134
VMOUNT *vdd_open_dir(char *name);
pd_vfs/dirfs/dirfs.c:166
VMOUNT *dirfs_mount(char **options);
pd_vfs/dirfs/dirfs.c:178
int dirfs_init();
pd_vfs/dirfs/dirfs.c:192
pdglue
Function Index
PDGLUE_Callback *PDGLUE_WrapCallback(void *self, void *func);
pd_glue/glue.c:6
void *PDGLUE_InvokeCallback(void *obj, void **args);
pd_glue/glue.c:21
int PDGLUE_Init();
pd_glue/glue.c:44
char *pdcgi_parse_str(char **sb);
pd_glue/cgi/cgi.c:15
int pdcgi_parse_args(char *s, char **names, char **vals);
pd_glue/cgi/cgi.c:48
int pdcgi_get(HTTP_Resource *rsrc, HTTP_Con *con, char **type, char **data, int *len);
pd_glue/cgi/cgi.c:69
int pdcgi_post(HTTP_Resource *rsrc, HTTP_Con *con, char **type, char **data, int *len);
pd_glue/cgi/cgi.c:102
int pdcgi_head(HTTP_Resource *rsrc, HTTP_Con *con, char **type, int *len);
pd_glue/cgi/cgi.c:106
int PDCGI_BGGL2_PrintCGI(BGGL2_Context *ctx);
pd_glue/cgi/cgi.c:116
int PDCGI_Init();
pd_glue/cgi/cgi.c:146
void *PDSCR_Interp_CallFunction(void *obj, void *func, void **args);
pd_glue/pdscr_net/tmp_if.c:6
void *PDSCR_Interp_CallMethod(void *obj, char *slot, void **args);
pd_glue/pdscr_net/tmp_if.c:7
int pdglue_tmp_handler(char *name, void *data, void **msg);
pd_glue/pdscr_net/tmp_if.c:9
int PDGLUE_TMP_ExportObject(char *name, void *obj);
pd_glue/pdscr_net/tmp_if.c:38
void *pdglue_tmp_export(PDSCR0_Context *ctx, void **args, int n);
pd_glue/pdscr_net/tmp_if.c:44
void *pdglue_tmp_apply(PDSCR0_Context *ctx, void *self, void *func);
pd_glue/pdscr_net/tmp_if.c:54
char *pdglue_tmp_tostring(PDSCR0_Context *ctx, void *obj, BGGL2_Binding *args);
pd_glue/pdscr_net/tmp_if.c:74
void *pdglue_tmp_poolref(PDSCR0_Context *ctx, void **args, int n);
pd_glue/pdscr_net/tmp_if.c:84
void *pdglue_tmp_localpoolref(PDSCR0_Context *ctx, void **args, int n);
pd_glue/pdscr_net/tmp_if.c:91
int PDGLUE_TMP_Init();
pd_glue/pdscr_net/tmp_if.c:98
void *pdglue_sock_makeaddr(PDSCR0_Context *ctx, void **args, int n);
pd_glue/pdscr_net/sock_if.c:6
void *pdglue_sock_string2addr(PDSCR0_Context *ctx, void **args, int n);
pd_glue/pdscr_net/sock_if.c:22
void *pdglue_sock_listentcp(PDSCR0_Context *ctx, void **args, int n);
pd_glue/pdscr_net/sock_if.c:35
void *pdglue_sock_connecttcp(PDSCR0_Context *ctx, void **args, int n);
pd_glue/pdscr_net/sock_if.c:43
void *pdglue_sock_accept(PDSCR0_Context *ctx, void *obj, void **args, int n);
pd_glue/pdscr_net/sock_if.c:57
int PDGLUE_Sock_Init();
pd_glue/pdscr_net/sock_if.c:77