| home | layout | structure | qd | hexdump |
          File : queue.dat
 Queue Version : 5.01
          Size : 7168 bytes
    F@H Client : FAH502-Linux.exe

qd.c:126-197
/* Structure of <queue.dat> file */

typedef unsigned int u32;
typedef unsigned short u16;

struct qf
{	u32		version;	/* 0000 Queue (client) version (v2.17 and above) */
	u32		current;	/* 0004 Current index number */
	struct qs
	{	u32	stat;		/* 000 Status */
		char	z004[4];	/* 004 Pad for Windows, others as of v4.01 */
		u32	tdata[8];	/* 008 Time data (epoch 0000 1jan00 UTC) */
		u32	svr1;		/* 040 Server IP address (until v3.0) */
		u32	ustat;		/* 044 Upload status */
		char	url[128];	/* 048 Web address for core downloads */
		u32	m176;		/* 176 Misc1a */
		u32	core;		/* 180 Core_xx number (hex) */
		u32	m184;		/* 184 Misc1b */
		u32	dsiz;		/* 188 wudata_xx.dat file size */
		char	z192[16];
		union
		{	struct
			{	char	proj[2];	/* 208 Project number (LE) */
				char	run[2];		/* 210 Run (LE) */
				char	clone[2];	/* 212 Clone (LE) */
				char	gen[2];		/* 214 Generation (LE) */
				char	issue[2][4];	/* 216 WU issue time (LE) */
			}	f;			/* Folding@home data */
			struct
			{	char	proj[2];	/* 208 Project number (LE) */
				u16	miscg1;		/* 210 Miscg1 */
				char	issue[2][4];	/* 212 WU issue time (LE) */
				u16	miscg2;		/* 220 Miscg2 */
				u16	miscg3;		/* 222 Miscg3 */
			}	g;			/* Genome@home data */
		}	wuid;		/* 208 Work unit ID information */
		char	z224[36];
		char	mid[4];		/* 260 Machine ID (LE) */
		u32	svr2;		/* 264 Server IP address */
		u32	port;		/* 268 Server port number */
		char	type[64];	/* 272 Work unit type */
		char	uname[64];	/* 336 User Name */
		char	teamn[64];	/* 400 Team Number */
		char	uid[8];		/* 464 Stored ID for unit (UserID + MachineID) (LE or BE) */
		char	bench[4];	/* 472 Benchmark (as of v3.24) (LE) */
		char	m476[4];	/* 476 Misc3b (unused as of v3.24) (LE) */
		u32	cpu_type;	/* 480 CPU type (LE or BE, sometimes 0) */
		u32	os_type;	/* 484 OS type (LE or BE, sometimes 0) */
		u32	cpu_spec;	/* 488 CPU species (LE or BE, sometimes 0) */
		u32	os_spec;	/* 492 OS species (LE or BE, sometimes 0) */
		u32	expire;		/* 496 Allowed time to return (seconds) */
		char	z500[8];
		char	aiflag[4];	/* 508 Assignment info present flag (LE or BE) */
		char	aitime[4];	/* 512 Assignment timestamp (LE or BE) */
		char	aidata[4];	/* 516 Assignment info (LE or BE) */
		char	csip[4];	/* 520 Collection server IP address (as of v5.00) (LE) */
		char	dstart[4];	/* 524 Download started time (as of v5.00) (BE) */
		char	z528[160];
		u32	due[4];		/* 688 WU expiration time */
		u32	plimit;		/* 704 Packet size limit (as of v5.00) */
		u32	uploads;	/* 708 Number of upload failures (as of v5.00) */
	}		entry[10];	/* 0008 Array of ten queue entries */
	u32		pfract;		/* 7128 Performance fraction (as of v3.24) */
	u32		punits;		/* 7132 Performance fraction unit weight (as of v3.24) */
	u32		drate;		/* 7136 Download rate sliding average (as of v4.00) */
	u32		dunits;		/* 7140 Download rate unit weight (as of v4.00) */
	u32		urate;		/* 7144 Upload rate sliding average (as of v4.00) */
	u32		uunits;		/* 7148 Upload rate unit weight (as of v4.00) */
	char		z7152[16];	/* 7152 (as of v5.00) ...all zeros after queue conversion... */
} qbuf;

/* There is still sometimes unknown stuff in bytes 500-507 and 528 */