libnx v4.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
parcel.h
1#pragma once
2#include "../result.h"
3#include "../display/binder.h"
4
5typedef struct {
6 u32 payload_size;
7 u32 payload_off;
8 u32 objects_size;
9 u32 objects_off;
11
12#define PARCEL_MAX_PAYLOAD 0x400
13
14typedef struct {
15 u8 payload[PARCEL_MAX_PAYLOAD];
16 u32 payload_size;
17 u8* objects;
18 u32 objects_size;
19
20 u32 capacity;
21 u32 pos;
22} Parcel;
23
24void parcelCreate(Parcel *ctx);
25Result parcelTransact(Binder *session, u32 code, Parcel *in_parcel, Parcel *reply_parcel);
26
27void* parcelWriteData(Parcel *ctx, const void* data, size_t data_size);
28void* parcelReadData(Parcel *ctx, void* data, size_t data_size);
29
30void parcelWriteInt32(Parcel *ctx, s32 val);
31void parcelWriteUInt32(Parcel *ctx, u32 val);
32void parcelWriteString16(Parcel *ctx, const char *str);
33
34s32 parcelReadInt32(Parcel *ctx);
35u32 parcelReadUInt32(Parcel *ctx);
36void parcelWriteInterfaceToken(Parcel *ctx, const char *str);
37
38void* parcelReadFlattenedObject(Parcel *ctx, size_t *size);
39void* parcelWriteFlattenedObject(Parcel *ctx, const void* data, size_t size);
40
Definition binder.h:8
Definition parcel.h:5
Definition parcel.h:14
uint8_t u8
8-bit unsigned integer.
Definition types.h:19
u32 Result
Function error code result type.
Definition types.h:44
int32_t s32
32-bit signed integer.
Definition types.h:27
uint32_t u32
32-bit unsigned integer.
Definition types.h:21