libnx  v4.6.0
parcel.h
1 #pragma once
2 #include "../result.h"
3 #include "../display/binder.h"
4 
5 typedef struct {
6  u32 payload_size;
7  u32 payload_off;
8  u32 objects_size;
9  u32 objects_off;
10 } ParcelHeader;
11 
12 #define PARCEL_MAX_PAYLOAD 0x400
13 
14 typedef 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 
24 void parcelCreate(Parcel *ctx);
25 Result parcelTransact(Binder *session, u32 code, Parcel *in_parcel, Parcel *reply_parcel);
26 
27 void* parcelWriteData(Parcel *ctx, const void* data, size_t data_size);
28 void* parcelReadData(Parcel *ctx, void* data, size_t data_size);
29 
30 void parcelWriteInt32(Parcel *ctx, s32 val);
31 void parcelWriteUInt32(Parcel *ctx, u32 val);
32 void parcelWriteString16(Parcel *ctx, const char *str);
33 
34 s32 parcelReadInt32(Parcel *ctx);
35 u32 parcelReadUInt32(Parcel *ctx);
36 void parcelWriteInterfaceToken(Parcel *ctx, const char *str);
37 
38 void* parcelReadFlattenedObject(Parcel *ctx, size_t *size);
39 void* 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