static unsigned int writefile(struct service_backend *backend, struct service_state *state, void *buffer, unsigned int count, unsigned int offset, unsigned int id, struct cpio_header *header) { unsigned int s = cpio_filesize(header) - offset; unsigned int o = id + cpio_filedata(header) + offset; return backend->write(state, buffer, (count > s) ? s : count, o); }
static unsigned int readfile(struct service_backend *backend, void *buffer, unsigned int count, unsigned int offset, unsigned int id, struct cpio_header *header) { unsigned int s = cpio_filesize(header) - offset; unsigned int o = cpio_filedata(header, id) + offset; return backend->read(buffer, (count > s) ? s : count, o); }
static unsigned int protocol_map(struct service_backend *backend, struct service_state *state, unsigned int id) { struct cpio_header *header = mapheader(backend, state, id); if (!header) return 0; return backend->map(state, id + cpio_filedata(header), cpio_filesize(header)); }
static unsigned long protocol_map(struct service_backend *backend, struct service_state *state) { struct cpio_header header; if (!readheader(backend, &header, state->id)) return 0; return backend->map(cpio_filedata(&header, state->id), cpio_filesize(&header)); }