summaryrefslogtreecommitdiff
path: root/lib9p/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib9p/internal.h')
-rw-r--r--lib9p/internal.h55
1 files changed, 2 insertions, 53 deletions
diff --git a/lib9p/internal.h b/lib9p/internal.h
index 57d61cb..eb67992 100644
--- a/lib9p/internal.h
+++ b/lib9p/internal.h
@@ -13,6 +13,7 @@
#define SSIZE_MAX (SIZE_MAX >> 1)
#endif
+#include <libmisc/endian.h>
#include <libmisc/macro.h>
#include <lib9p/9p.h>
@@ -85,6 +86,7 @@ struct _lib9p_send_tentry {
_marshal_fn_t marshal;
};
+extern const char * _lib9p_table_ver_name[LIB9P_VER_NUM];
extern const char * _lib9p_table_msg_name[LIB9P_VER_NUM][0x100];
extern const struct _lib9p_recv_tentry _lib9p_table_Tmsg_recv[LIB9P_VER_NUM][0x80];
extern const struct _lib9p_recv_tentry _lib9p_table_Rmsg_recv[LIB9P_VER_NUM][0x80];
@@ -97,33 +99,6 @@ bool _lib9p_stat_marshal(struct _marshal_ctx *ctx, struct lib9p_stat *val);
/* unmarshal utilities ********************************************************/
-LM_ALWAYS_INLINE static uint8_t decode_u8le(uint8_t *in) {
- return in[0];
-}
-LM_ALWAYS_INLINE static uint16_t decode_u16le(uint8_t *in) {
- return (((uint16_t)(in[0])) << 0)
- | (((uint16_t)(in[1])) << 8)
- ;
-}
-LM_ALWAYS_INLINE static uint32_t decode_u32le(uint8_t *in) {
- return (((uint32_t)(in[0])) << 0)
- | (((uint32_t)(in[1])) << 8)
- | (((uint32_t)(in[2])) << 16)
- | (((uint32_t)(in[3])) << 24)
- ;
-}
-LM_ALWAYS_INLINE static uint64_t decode_u64le(uint8_t *in) {
- return (((uint64_t)(in[0])) << 0)
- | (((uint64_t)(in[1])) << 8)
- | (((uint64_t)(in[2])) << 16)
- | (((uint64_t)(in[3])) << 24)
- | (((uint64_t)(in[4])) << 32)
- | (((uint64_t)(in[5])) << 40)
- | (((uint64_t)(in[6])) << 48)
- | (((uint64_t)(in[7])) << 56)
- ;
-}
-
static inline bool _is_valid_utf8(uint8_t *str, size_t len, bool forbid_nul) {
uint32_t ch;
uint8_t chlen;
@@ -148,30 +123,4 @@ static inline bool _is_valid_utf8(uint8_t *str, size_t len, bool forbid_nul) {
#define is_valid_utf8(str, len) _is_valid_utf8(str, len, false)
#define is_valid_utf8_without_nul(str, len) _is_valid_utf8(str, len, true)
-/* marshal utilities **********************************************************/
-
-LM_ALWAYS_INLINE static void encode_u8le(uint8_t in, uint8_t *out) {
- out[0] = in;
-}
-LM_ALWAYS_INLINE static void encode_u16le(uint16_t in, uint8_t *out) {
- out[0] = (uint8_t)((in >> 0) & 0xFF);
- out[1] = (uint8_t)((in >> 8) & 0xFF);
-}
-LM_ALWAYS_INLINE static void encode_u32le(uint32_t in, uint8_t *out) {
- out[0] = (uint8_t)((in >> 0) & 0xFF);
- out[1] = (uint8_t)((in >> 8) & 0xFF);
- out[2] = (uint8_t)((in >> 16) & 0xFF);
- out[3] = (uint8_t)((in >> 24) & 0xFF);
-}
-LM_ALWAYS_INLINE static void encode_u64le(uint64_t in, uint8_t *out) {
- out[0] = (uint8_t)((in >> 0) & 0xFF);
- out[1] = (uint8_t)((in >> 8) & 0xFF);
- out[2] = (uint8_t)((in >> 16) & 0xFF);
- out[3] = (uint8_t)((in >> 24) & 0xFF);
- out[4] = (uint8_t)((in >> 32) & 0xFF);
- out[5] = (uint8_t)((in >> 40) & 0xFF);
- out[6] = (uint8_t)((in >> 48) & 0xFF);
- out[7] = (uint8_t)((in >> 56) & 0xFF);
-}
-
#endif /* _LIB9P_INTERNAL_H_ */