Example #1
0
// load the type_names
void upkg::get_type(char *buf, int e, int d)
{
	int i, j, index;
	signed long tmp;
	char *chtmp;

	index = 0;

	for (i = 0, j = strlen(export_desc[d].order); i < j; i++) {
		switch (export_desc[d].order[i]) {
		case UPKG_DATA_FCI:
			tmp = get_fci(&buf[index]);
			index += data_size;
			break;
		case UPKG_DATA_32:
			tmp = get_s32(&buf[index]);
			index += data_size;
			break;
		case UPKG_DATA_16:
			tmp = get_s16(&buf[index]);
			index += data_size;
			break;
		case UPKG_DATA_8:
			tmp = get_s8(&buf[index]);
			index += data_size;
			break;
		case UPKG_DATA_ASCIC:
			chtmp =
			    get_string(&buf[index + 1],
				       get_s8(&buf[index++]));
			index += data_size;
			break;
		case UPKG_DATA_ASCIZ:
			chtmp = get_string(&buf[index], UPKG_NAME_NOCOUNT);
			index += data_size;
			break;
		case UPKG_OBJ_JUNK:	// do nothing!!!
			break;
		case UPKG_OBJ_NAME:
			exports[e].type_name = tmp;
			break;
		case UPKG_EXP_SIZE:	// maybe we'll do something later on
			break;
		case UPKG_OBJ_SIZE:
			exports[e].object_size = tmp;
			break;
		default:
			exports[e].type_name = -1;
			return;
		}
	}

	exports[e].object_offset = exports[e].serial_offset + index;
}
Example #2
0
// load the name table
void upkg::get_names(void)
{
	int i, index;

	index = hdr->name_offset;

	for (i = 0; i < hdr->name_count; i++) {
		if (hdr->file_version >= 64) {
			get_string(&header[index + 1],
				   get_s8(&header[index]));
			index++;
		} else {
			get_string(&header[index], UPKG_NAME_NOCOUNT);
		}
		index += data_size;

		strncpy(names[i].name, buf, UPKG_MAX_NAME_SIZE);

		names[i].flags = get_s32(&header[index]);
		index += data_size;
	}
	
// hdr->name_count + 1 names total, this one's last
	strncpy(names[i].name, "(NULL)", UPKG_MAX_NAME_SIZE);
	names[i].flags = 0;
}
Example #3
0
static void read_raw_rssi_rsp(const void *data, uint8_t size)
{
	uint8_t status = get_u8(data);
	uint16_t handle = get_le16(data + 1);
	int8_t rssi = get_s8(data + 3);

	print_status(status);
	print_handle(handle);
	print_rssi(rssi);
}