Merge "adb: extract syncmsg structs."

This commit is contained in:
Treehugger Robot 2020-03-23 06:01:26 +00:00 committed by Gerrit Code Review
commit c549b122f4

View file

@ -41,57 +41,69 @@ struct SyncRequest {
// Followed by 'path_length' bytes of path (not NUL-terminated).
} __attribute__((packed));
struct __attribute__((packed)) sync_stat_v1 {
uint32_t id;
uint32_t mode;
uint32_t size;
uint32_t mtime;
};
struct __attribute__((packed)) sync_stat_v2 {
uint32_t id;
uint32_t error;
uint64_t dev;
uint64_t ino;
uint32_t mode;
uint32_t nlink;
uint32_t uid;
uint32_t gid;
uint64_t size;
int64_t atime;
int64_t mtime;
int64_t ctime;
};
struct __attribute__((packed)) sync_dent_v1 {
uint32_t id;
uint32_t mode;
uint32_t size;
uint32_t mtime;
uint32_t namelen;
}; // followed by `namelen` bytes of the name.
struct __attribute__((packed)) sync_dent_v2 {
uint32_t id;
uint32_t error;
uint64_t dev;
uint64_t ino;
uint32_t mode;
uint32_t nlink;
uint32_t uid;
uint32_t gid;
uint64_t size;
int64_t atime;
int64_t mtime;
int64_t ctime;
uint32_t namelen;
}; // followed by `namelen` bytes of the name.
struct __attribute__((packed)) sync_data {
uint32_t id;
uint32_t size;
}; // followed by `size` bytes of data.
struct __attribute__((packed)) sync_status {
uint32_t id;
uint32_t msglen;
}; // followed by `msglen` bytes of error message, if id == ID_FAIL.
union syncmsg {
struct __attribute__((packed)) {
uint32_t id;
uint32_t mode;
uint32_t size;
uint32_t mtime;
} stat_v1;
struct __attribute__((packed)) {
uint32_t id;
uint32_t error;
uint64_t dev;
uint64_t ino;
uint32_t mode;
uint32_t nlink;
uint32_t uid;
uint32_t gid;
uint64_t size;
int64_t atime;
int64_t mtime;
int64_t ctime;
} stat_v2;
struct __attribute__((packed)) {
uint32_t id;
uint32_t mode;
uint32_t size;
uint32_t mtime;
uint32_t namelen;
} dent_v1; // followed by `namelen` bytes of the name.
struct __attribute__((packed)) {
uint32_t id;
uint32_t error;
uint64_t dev;
uint64_t ino;
uint32_t mode;
uint32_t nlink;
uint32_t uid;
uint32_t gid;
uint64_t size;
int64_t atime;
int64_t mtime;
int64_t ctime;
uint32_t namelen;
} dent_v2; // followed by `namelen` bytes of the name.
struct __attribute__((packed)) {
uint32_t id;
uint32_t size;
} data; // followed by `size` bytes of data.
struct __attribute__((packed)) {
uint32_t id;
uint32_t msglen;
} status; // followed by `msglen` bytes of error message, if id == ID_FAIL.
sync_stat_v1 stat_v1;
sync_stat_v2 stat_v2;
sync_dent_v1 dent_v1;
sync_dent_v2 dent_v2;
sync_data data;
sync_status status;
};
#define SYNC_DATA_MAX (64 * 1024)