summaryrefslogtreecommitdiffstats
path: root/src/main.h
blob: 2ad009e0a0cf2b1af4a33e0ac8a3e27b2324a8dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef _INCLUDE_MAIN_H_
#define _INCLUDE_MAIN_H_

#define _FILE_OFFSET_BITS 64
#define _GNU_SOURCE


int reverse_extract_pieces(char *dir);
void flash_image(char *filename, char *piece, char *version);
int fiasco_read_image(char *file);
void check_nolo_order();
extern struct usb_dev_handle *dev;
unsigned long get_file_size(char *file);
void progressbar(unsigned long long part, unsigned long long total);
char *fpid_file(char *filename);
int add_piece(char *piece);

#include <usb.h>

extern struct usb_device *device;
extern struct usb_dev_handle *dev;
int is_valid_device(struct usb_device_descriptor *udd);
void list_valid_devices();
int usb_device_found(struct usb_device_descriptor *udd);

extern int verbose;
#define D if (verbose)

#define CMD_WRITE 64
#define CMD_QUERY 192

#define NOLO_GET_STATUS   1
#define NOLO_GET_BOARD_ID 2
#define NOLO_GET_VERSION  3

struct piece_t {
	char *name;
	char *type;
	char *vers;
};

struct devices {
  char *name;
  unsigned short vendor_id;
  unsigned short product_id;
  unsigned short flags;
};
#define SUPPORTED_DEVICES 5
extern struct devices supported_devices[SUPPORTED_DEVICES];

extern int pcs_n;
extern struct piece_t pcs[10];

enum {
	PIECE_XLOADER = 0,
	PIECE_SECONDARY,
	PIECE_KERNEL,
	PIECE_INITFS,
	PIECE_ROOTFS,
	PIECE_OMAPNAND,
	PIECE_LAST
};

extern char *pieces[];
extern char *modes[];
extern char *root_devices[];

#endif