libnx
parcel.h
1 #pragma once
2 #include "../result.h"
3 #include "../gfx/binder.h"
4 
5 typedef struct {
6  u8 payload[0x400];
7  u32 capacity;
8  u32 size;
9  u32 pos;
10 
11  u8 *ParcelObjects;
12  u32 ParcelObjectsSize;
13 } Parcel;
14 
15 void parcelInitialize(Parcel *ctx);
16 Result parcelTransact(Binder *session, u32 code, Parcel *in_parcel, Parcel *reply_parcel);
17 
18 void* parcelWriteData(Parcel *ctx, void* data, size_t data_size);
19 void* parcelReadData(Parcel *ctx, void* data, size_t data_size);
20 
21 void parcelWriteInt32(Parcel *ctx, s32 val);
22 void parcelWriteUInt32(Parcel *ctx, u32 val);
23 void parcelWriteString16(Parcel *ctx, const char *str);
24 
25 s32 parcelReadInt32(Parcel *ctx);
26 u32 parcelReadUInt32(Parcel *ctx);
27 void parcelWriteInterfaceToken(Parcel *ctx, const char *str);
28 
29 void* parcelReadFlattenedObject(Parcel *ctx, size_t *size);
30 void* parcelWriteFlattenedObject(Parcel *ctx, void* data, size_t size);
31 
u32 Result
Function error code result type.
Definition: types.h:46
uint8_t u8
8-bit unsigned integer.
Definition: types.h:21
uint32_t u32
32-bit unsigned integer.
Definition: types.h:23
Definition: binder.h:6
int32_t s32
32-bit signed integer.
Definition: types.h:29
Definition: parcel.h:5