1*06d2afa6SDavid du Colombier #include <u.h> 2*06d2afa6SDavid du Colombier #include <libc.h> 3*06d2afa6SDavid du Colombier #include <ureg.h> 4*06d2afa6SDavid du Colombier #include <draw.h> 5*06d2afa6SDavid du Colombier 6*06d2afa6SDavid du Colombier typedef struct Msgchan Msgchan; 7*06d2afa6SDavid du Colombier typedef struct Ureg Ureg; 8*06d2afa6SDavid du Colombier 9*06d2afa6SDavid du Colombier typedef ulong uint32; 10*06d2afa6SDavid du Colombier typedef int int32; 11*06d2afa6SDavid du Colombier typedef short int16; 12*06d2afa6SDavid du Colombier typedef char int8; 13*06d2afa6SDavid du Colombier typedef uvlong uint64; 14*06d2afa6SDavid du Colombier typedef vlong int64; 15*06d2afa6SDavid du Colombier typedef char Bool; 16*06d2afa6SDavid du Colombier 17*06d2afa6SDavid du Colombier struct Msgchan 18*06d2afa6SDavid du Colombier { 19*06d2afa6SDavid du Colombier ushort id; 20*06d2afa6SDavid du Colombier uchar *a; 21*06d2afa6SDavid du Colombier int na; 22*06d2afa6SDavid du Colombier }; 23*06d2afa6SDavid du Colombier 24*06d2afa6SDavid du Colombier enum 25*06d2afa6SDavid du Colombier { 26*06d2afa6SDavid du Colombier /* low bits of u.cx */ 27*06d2afa6SDavid du Colombier BackGetmhz = 1, 28*06d2afa6SDavid du Colombier BackApm = 2, 29*06d2afa6SDavid du Colombier BackGetdiskgeo = 3, 30*06d2afa6SDavid du Colombier BackGetptrloc = 4, 31*06d2afa6SDavid du Colombier BackSetptrloc = 5, 32*06d2afa6SDavid du Colombier BackGetsellength = 6, 33*06d2afa6SDavid du Colombier BackGetnextpiece = 7, 34*06d2afa6SDavid du Colombier BackSetsellength = 8, 35*06d2afa6SDavid du Colombier BackSetnextpiece = 9, 36*06d2afa6SDavid du Colombier BackGetversion = 10, 37*06d2afa6SDavid du Colombier BackGetdevlistel = 11, 38*06d2afa6SDavid du Colombier BackToggledev = 12, 39*06d2afa6SDavid du Colombier BackGetguiopt = 13, 40*06d2afa6SDavid du Colombier BackSetguiopt = 14, 41*06d2afa6SDavid du Colombier BackGetscreensize = 15, 42*06d2afa6SDavid du Colombier BackGetpcisvgaen = 16, 43*06d2afa6SDavid du Colombier BackSetpcisvgaen = 17, 44*06d2afa6SDavid du Colombier /* 18-20 not used */ 45*06d2afa6SDavid du Colombier BackHostcopy = 21, 46*06d2afa6SDavid du Colombier BackGetos2intcurs = 22, 47*06d2afa6SDavid du Colombier BackGettime = 23, 48*06d2afa6SDavid du Colombier BackStopcatchup = 24, 49*06d2afa6SDavid du Colombier BackPutchr = 25, 50*06d2afa6SDavid du Colombier BackEnablemsg = 26, 51*06d2afa6SDavid du Colombier BackGototcl = 27, 52*06d2afa6SDavid du Colombier BackInitscsiprom = 28, 53*06d2afa6SDavid du Colombier BackInt13 = 29, 54*06d2afa6SDavid du Colombier BackMessage = 30, 55*06d2afa6SDavid du Colombier 56*06d2afa6SDavid du Colombier BackMagic = 0x564D5868, 57*06d2afa6SDavid du Colombier VersionMagic = 6, 58*06d2afa6SDavid du Colombier BackPort = 0x5658, 59*06d2afa6SDavid du Colombier 60*06d2afa6SDavid du Colombier }; 61*06d2afa6SDavid du Colombier 62*06d2afa6SDavid du Colombier void asmbackdoor(Ureg*); 63*06d2afa6SDavid du Colombier void backdoor(Ureg*, int); 64*06d2afa6SDavid du Colombier int backdoorbell(void*, char*); 65*06d2afa6SDavid du Colombier int closemsg(Msgchan*); 66*06d2afa6SDavid du Colombier int getdeviceinfo(uint, uint, uint*); 67*06d2afa6SDavid du Colombier Point getmousepoint(void); 68*06d2afa6SDavid du Colombier int getsnarflength(void); 69*06d2afa6SDavid du Colombier uint getsnarfpiece(void); 70*06d2afa6SDavid du Colombier Msgchan* openmsg(ulong); 71*06d2afa6SDavid du Colombier int recvmsg(Msgchan*, void**); 72*06d2afa6SDavid du Colombier int sendmsg(Msgchan*, void*, int); 73*06d2afa6SDavid du Colombier int setdevicestate(uint, int); 74*06d2afa6SDavid du Colombier void setmousepoint(Point); 75*06d2afa6SDavid du Colombier void setsnarflength(uint); 76*06d2afa6SDavid du Colombier void setsnarfpiece(uint); 77*06d2afa6SDavid du Colombier int getversion(void); 78*06d2afa6SDavid du Colombier void setguistate(uint); 79*06d2afa6SDavid du Colombier uint getguistate(void); 80*06d2afa6SDavid du Colombier uint copystep(uint); 81*06d2afa6SDavid du Colombier void gettime(uint*, uint*, uint*); 82*06d2afa6SDavid du Colombier void stopcatchup(void); 83*06d2afa6SDavid du Colombier 84*06d2afa6SDavid du Colombier extern jmp_buf backdoorjmp; 85