aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/sam/sam.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/sam/sam.h')
-rw-r--r--src/cmd/sam/sam.h30
1 files changed, 11 insertions, 19 deletions
diff --git a/src/cmd/sam/sam.h b/src/cmd/sam/sam.h
index fa86efd1..40339150 100644
--- a/src/cmd/sam/sam.h
+++ b/src/cmd/sam/sam.h
@@ -70,26 +70,23 @@ struct String
struct List /* code depends on a long being able to hold a pointer */
{
+ int type; /* 'p' for pointer, 'P' for Posn */
int nalloc;
int nused;
union{
- void *listp;
- Block *blkp;
- long *longp;
- uchar* *ucharp;
- String* *stringp;
- File* *filep;
- long listv;
+ void* listp;
+ void** voidp;
+ Posn* posnp;
+ String**stringp;
+ File** filep;
}g;
};
#define listptr g.listp
-#define blkptr g.blkp
-#define longptr g.longp
-#define ucharpptr g.ucharp
+#define voidpptr g.voidp
+#define posnptr g.posnp
#define stringpptr g.stringp
#define filepptr g.filep
-#define listval g.listv
enum
{
@@ -267,8 +264,9 @@ File *getfile(String*);
int getname(File*, String*, int);
long getnum(int);
void hiccough(char*);
-void inslist(List*, int, long);
+void inslist(List*, int, ...);
Address lineaddr(Posn, Address, int);
+List *listalloc(int);
void listfree(List*);
void load(File*);
File *lookfile(String*);
@@ -401,12 +399,6 @@ void outTsS(Hmesg, int, String*);
void outTsllS(Hmesg, int, long, long, String*);
void outTsll(Hmesg, int, long, long);
void outTsl(Hmesg, int, long);
-void outTsv(Hmesg, int, long);
-void outstart(Hmesg);
-void outcopy(int, void*);
-void outshort(int);
-void outlong(long);
-void outvlong(void*);
-void outsend(void);
+void outTsv(Hmesg, int, vlong);
void outflush(void);