aboutsummaryrefslogtreecommitdiffstats
path: root/src/apk_adb.h
blob: a85ae0a7f9b86652bb73e2b72d5d71f83cbde585 (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
70
71
72
73
74
75
76
77
78
79
80
#include "adb.h"

/* Schemas */
#define ADB_SCHEMA_INDEX	0x78646e69	// indx
#define ADB_SCHEMA_PACKAGE	0x676b6370	// pckg
#define ADB_SCHEMA_INSTALLED_DB	0x00626469	// idb

/* Dependency */
#define ADBI_DEP_NAME		0x01
#define ADBI_DEP_VERSION	0x02
#define ADBI_DEP_MATCH		0x03
#define ADBI_DEP_MAX		0x04

/* Package Info */
#define ADBI_PI_NAME		0x01
#define ADBI_PI_VERSION		0x02
#define ADBI_PI_UNIQUE_ID	0x03
#define ADBI_PI_DESCRIPTION	0x04
#define ADBI_PI_ARCH		0x05
#define ADBI_PI_LICENSE		0x06
#define ADBI_PI_ORIGIN		0x07
#define ADBI_PI_MAINTAINER	0x08
#define ADBI_PI_URL		0x09
#define ADBI_PI_REPO_COMMIT	0x0a
#define ADBI_PI_BUILD_TIME	0x0b
#define ADBI_PI_INSTALLED_SIZE	0x0c
#define ADBI_PI_FILE_SIZE	0x0d
#define ADBI_PI_PRIORITY	0x0e
#define ADBI_PI_DEPENDS		0x0f
#define ADBI_PI_PROVIDES	0x10
#define ADBI_PI_REPLACES	0x11
#define ADBI_PI_INSTALL_IF	0x12
#define ADBI_PI_RECOMMENDS	0x13
#define ADBI_PI_MAX		0x14

/* File Info */
#define ADBI_FI_NAME		0x01
#define ADBI_FI_HASHES		0x02
#define ADBI_FI_FILES		0x02
#define ADBI_FI_MODE		0x03
#define ADBI_FI_UID		0x04
#define ADBI_FI_GID		0x05
#define ADBI_FI_XATTRS		0x06
#define ADBI_FI_MAX		0x07

/* Package */
#define ADBI_PKG_PKGINFO	0x01
#define ADBI_PKG_PATHS		0x02
#define ADBI_PKG_SCRIPTS	0x03
#define ADBI_PKG_PASSWD		0x04
#define ADBI_PKG_MAX		0x05

/* Index */
#define ADBI_NDX_DESCRIPTION	0x01
#define ADBI_NDX_PACKAGES	0x02
#define ADBI_NDX_MAX		0x03

/* Installed DB */
#define ADBI_IDB_PACKAGES	0x01
#define ADBI_IDB_MAX		0x02

/* */
#define APK_MAX_PKG_DEPENDENCIES	512
#define APK_MAX_PKG_REPLACES		32
#define APK_MAX_INDEX_PACKAGES		20000
#define APK_MAX_MANIFEST_FILES		1000
#define APK_MAX_MANIFEST_PATHS		100

extern const struct adb_object_schema
	schema_dependency, schema_dependency_array,
	schema_pkginfo, schema_pkginfo_array,
	schema_file, schema_file_array, schema_path, schema_path_array,
	schema_package, schema_package_adb_array,
	schema_index, schema_idb;

/* */
adb_val_t adb_w_dependency(struct adb *db, apk_blob_t *b);
adb_val_t adb_w_pkginfo(struct adb *db, unsigned int f, apk_blob_t *val);
int adb_r_pkgindex_find(struct adb_obj *arr, int cur, struct adb *db, adb_val_t val);
unsigned int adb_pkg_field_index(char f);