#if !defined(IIIMP_DATA_P_H) #define IIIMP_DATA_P_H #include #include #ifdef HAVE_STDINT_H #include #endif #include #ifdef __cplusplus extern "C" { #endif #if defined(_BIG_ENDIAN) || defined(WORDS_BIGENDIAN) #define GET_SCOPE_FOR_HOTKEY(n, p, b) \ if (0 == (b)) { \ if ((*((uchar_t *)(p + 0)) & 0x80)) \ (n) = 1; \ else \ (n) = 0; \ } else { \ if ((*((uchar_t *)(p + 1)) & 0x80)) \ (n) = 1; \ else \ (n) = 0; \ }; #define GETU15(n, p, b) ((n) = ((0 == (b)) ? \ (((*((uchar_t *)(p + 0))) << 8) + \ (((*((uchar_t *)(p + 1))) & 0x7F) << 0)) : \ ((((*((uchar_t *)(p + 0))) & 0x7F) << 0) + \ ((*((uchar_t *)(p + 1))) << 8)))) #define GETU16(n, r, p, b) (((n) = ((0 == (b)) ? \ (((*((uchar_t *)(p + 0))) << 8) + \ ((*((uchar_t *)(p + 1))) << 0)) : \ (((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8)))), \ ((p) += 2), \ ((r) -= 2)) #define GETU32(n, r, p, b) (((n) = ((0 == (b)) ? \ (((*((uchar_t *)(p + 0))) << 24) + \ ((*((uchar_t *)(p + 1))) << 16) + \ ((*((uchar_t *)(p + 2))) << 8) + \ ((*((uchar_t *)(p + 3))) << 0)) : \ (((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8) + \ ((*((uchar_t *)(p + 2))) << 16) + \ ((*((uchar_t *)(p + 3))) << 24)))), \ ((p) += 4), \ ((r) -= 4)) #define GETU64(n, r, p, b) (((n) = ((0 == (b)) ? \ (((uint64_t)(*((uchar_t *)(p + 0))) << 56) + \ ((uint64_t)(*((uchar_t *)(p + 1))) << 48) + \ ((uint64_t)(*((uchar_t *)(p + 2))) << 40) + \ ((uint64_t)(*((uchar_t *)(p + 3))) << 32) + \ ((uint64_t)(*((uchar_t *)(p + 4))) << 24) + \ ((uint64_t)(*((uchar_t *)(p + 5))) << 16) + \ ((uint64_t)(*((uchar_t *)(p + 6))) << 8) + \ ((uint64_t)(*((uchar_t *)(p + 7))) << 0)) : \ (((uint64_t)(*((uchar_t *)(p + 0))) << 0) + \ ((uint64_t)(*((uchar_t *)(p + 1))) << 8) + \ ((uint64_t)(*((uchar_t *)(p + 2))) << 16) + \ ((uint64_t)(*((uchar_t *)(p + 3))) << 24) + \ ((uint64_t)(*((uchar_t *)(p + 4))) << 32) + \ ((uint64_t)(*((uchar_t *)(p + 5))) << 40) + \ ((uint64_t)(*((uchar_t *)(p + 6))) << 48) + \ ((uint64_t)(*((uchar_t *)(p + 7))) << 56)))), \ ((p) += 8), \ ((r) -= 8)) #define GET16(n, r, p, b) \ (((n) = ((0 == (b)) ? \ (int16_t)(((*((uchar_t *)(p + 0))) << 8) + \ ((*((uchar_t *)(p + 1))) << 0)) : \ (int16_t)(((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8)))), \ ((p) += 2), \ ((r) -= 2)) #define GET32(n, r, p, b) \ (((n) = ((0 == (b)) ? \ ((int32_t)(((*((uchar_t *)(p + 0))) << 24) + \ ((*((uchar_t *)(p + 1))) << 16) + \ ((*((uchar_t *)(p + 2))) << 8) + \ ((*((uchar_t *)(p + 3))) << 0))) : \ ((int32_t)(((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8) + \ ((*((uchar_t *)(p + 2))) << 16) + \ ((*((uchar_t *)(p + 3))) << 24))))), \ ((p) += 4), \ ((r) -= 4)) #define PUTU16(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0xff00) >> 8); \ (*((p) + 1)) = (((n) & 0x00ff) >> 0); \ } else { \ (*((p) + 0)) = (((n) & 0x00ff) >> 0); \ (*((p) + 1)) = (((n) & 0xff00) >> 8); \ }; \ ((p) += 2); \ ((r) -= 2) #define PUTU32(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0xff000000) >> 24); \ (*((p) + 1)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 2)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 3)) = (((n) & 0x000000ff) >> 0); \ } else { \ (*((p) + 0)) = (((n) & 0x000000ff) >> 0); \ (*((p) + 1)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 2)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 3)) = (((n) & 0xff000000) >> 24); \ }; \ ((p) += 4); \ ((r) -= 4) #define PUTU64(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0xff00000000000000ULL) >> 56); \ (*((p) + 1)) = (((n) & 0x00ff000000000000ULL) >> 48); \ (*((p) + 2)) = (((n) & 0x0000ff0000000000ULL) >> 40); \ (*((p) + 3)) = (((n) & 0x000000ff00000000ULL) >> 32); \ (*((p) + 4)) = (((n) & 0x00000000ff000000ULL) >> 24); \ (*((p) + 5)) = (((n) & 0x0000000000ff0000ULL) >> 16); \ (*((p) + 6)) = (((n) & 0x000000000000ff00ULL) >> 8); \ (*((p) + 7)) = (((n) & 0x00000000000000ffULL) >> 0); \ } else { \ (*((p) + 0)) = (((n) & 0x00000000000000ffULL) >> 0); \ (*((p) + 1)) = (((n) & 0x000000000000ff00ULL) >> 8); \ (*((p) + 2)) = (((n) & 0x0000000000ff0000ULL) >> 16); \ (*((p) + 3)) = (((n) & 0x00000000ff000000ULL) >> 24); \ (*((p) + 4)) = (((n) & 0x000000ff00000000ULL) >> 32); \ (*((p) + 5)) = (((n) & 0x0000ff0000000000ULL) >> 40); \ (*((p) + 6)) = (((n) & 0x00ff000000000000ULL) >> 48); \ (*((p) + 7)) = (((n) & 0xff00000000000000ULL) >> 56); \ }; \ ((p) += 8); \ ((r) -= 8) #define PUT16(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0xff00) >> 8); \ (*((p) + 1)) = (((n) & 0x00ff) >> 0); \ } else { \ (*((p) + 0)) = (((n) & 0x00ff) >> 0); \ (*((p) + 1)) = (((n) & 0xff00) >> 8); \ }; \ ((p) += 2); \ ((r) -= 2) #define PUT32(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0xff000000) >> 24); \ (*((p) + 1)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 2)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 3)) = (((n) & 0x000000ff) >> 0); \ } else { \ (*((p) + 0)) = (((n) & 0x000000ff) >> 0); \ (*((p) + 1)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 2)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 3)) = (((n) & 0xff000000) >> 24); \ }; \ ((p) += 4); \ ((r) -= 4) #else /* !(_BIG_ENDIAN || WORDS_BIGENDIAN) */ #define GET_SCOPE_FOR_HOTKEY(n, p, b) \ if (0 == (b)) { \ if ((*((uchar_t *)(p + 1)) & 0x80)) \ (n) = 1; \ else \ (n) = 0; \ } else { \ if ((*((uchar_t *)(p + 0)) & 0x80)) \ (n) = 1; \ else \ (n) = 0; \ }; #define GETU15(n, p, b) ((n) = ((0 == (b)) ? \ (((*((uchar_t *)(p + 0))) << 0) + \ (((*((uchar_t *)(p + 1))) & 0x7F) << 8)) : \ ((((*((uchar_t *)(p + 0))) & 0x7F) << 8) + \ ((*((uchar_t *)(p + 1))) << 0)))) #define GETU16(n, r, p, b) (((n) = ((0 == (b)) ? \ (((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8)) : \ (((*((uchar_t *)(p + 0))) << 8) + \ ((*((uchar_t *)(p + 1))) << 0)))), \ ((p) += 2), \ ((r) -= 2)) #define GETU32(n, r, p, b) (((n) = ((0 == (b)) ? \ (((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8) + \ ((*((uchar_t *)(p + 2))) << 16) + \ ((*((uchar_t *)(p + 3))) << 24)) : \ (((*((uchar_t *)(p + 0))) << 24) + \ ((*((uchar_t *)(p + 1))) << 16) + \ ((*((uchar_t *)(p + 2))) << 8) + \ ((*((uchar_t *)(p + 3))) << 0)))), \ ((p) += 4), \ ((r) -= 4)) #define GETU64(n, r, p, b) (((n) = ((0 == (b)) ? \ (((uint64_t)(*((uchar_t *)(p + 0))) << 0) + \ ((uint64_t)(*((uchar_t *)(p + 1))) << 8) + \ ((uint64_t)(*((uchar_t *)(p + 2))) << 16) + \ ((uint64_t)(*((uchar_t *)(p + 3))) << 24) + \ ((uint64_t)(*((uchar_t *)(p + 4))) << 32) + \ ((uint64_t)(*((uchar_t *)(p + 5))) << 40) + \ ((uint64_t)(*((uchar_t *)(p + 6))) << 48) + \ ((uint64_t)(*((uchar_t *)(p + 7))) << 56)) : \ (((uint64_t)(*((uchar_t *)(p + 0))) << 56) + \ ((uint64_t)(*((uchar_t *)(p + 1))) << 48) + \ ((uint64_t)(*((uchar_t *)(p + 2))) << 40) + \ ((uint64_t)(*((uchar_t *)(p + 3))) << 32) + \ ((uint64_t)(*((uchar_t *)(p + 4))) << 24) + \ ((uint64_t)(*((uchar_t *)(p + 5))) << 16) + \ ((uint64_t)(*((uchar_t *)(p + 6))) << 8) + \ ((uint64_t)(*((uchar_t *)(p + 7))) << 0)))), \ ((p) += 8), \ ((r) -= 8)) #define GET16(n, r, p, b) \ (((n) = ((0 == (b)) ? \ (int16_t)(((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8)) : \ (int16_t)(((*((uchar_t *)(p + 0))) << 8) + \ ((*((uchar_t *)(p + 1))) << 0)))), \ ((p) += 2), \ ((r) -= 2)) #define GET32(n, r, p, b) \ (((n) = ((0 == (b)) ? \ ((int32_t)(((*((uchar_t *)(p + 0))) << 0) + \ ((*((uchar_t *)(p + 1))) << 8) + \ ((*((uchar_t *)(p + 2))) << 16) + \ ((*((uchar_t *)(p + 3))) << 24))) : \ ((int32_t)(((*((uchar_t *)(p + 0))) << 24) + \ ((*((uchar_t *)(p + 1))) << 16) + \ ((*((uchar_t *)(p + 2))) << 8) + \ ((*((uchar_t *)(p + 3))) << 0))))), \ ((p) += 4), \ ((r) -= 4)) #define PUTU16(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0x00ff) >> 0); \ (*((p) + 1)) = (((n) & 0xff00) >> 8); \ } else { \ (*((p) + 0)) = (((n) & 0xff00) >> 8); \ (*((p) + 1)) = (((n) & 0x00ff) >> 0); \ }; \ ((p) += 2); \ ((r) -= 2) #define PUTU32(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0x000000ff) >> 0); \ (*((p) + 1)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 2)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 3)) = (((n) & 0xff000000) >> 24); \ } else { \ (*((p) + 0)) = (((n) & 0xff000000) >> 24); \ (*((p) + 1)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 2)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 3)) = (((n) & 0x000000ff) >> 0); \ }; \ ((p) += 4); \ ((r) -= 4) #define PUTU64(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0x00000000000000ffULL) >> 0); \ (*((p) + 1)) = (((n) & 0x000000000000ff00ULL) >> 8); \ (*((p) + 2)) = (((n) & 0x0000000000ff0000ULL) >> 16); \ (*((p) + 3)) = (((n) & 0x00000000ff000000ULL) >> 24); \ (*((p) + 4)) = (((n) & 0x000000ff00000000ULL) >> 32); \ (*((p) + 5)) = (((n) & 0x0000ff0000000000ULL) >> 40); \ (*((p) + 6)) = (((n) & 0x00ff000000000000ULL) >> 48); \ (*((p) + 7)) = (((n) & 0xff00000000000000ULL) >> 56); \ } else { \ (*((p) + 0)) = (((n) & 0xff00000000000000ULL) >> 56); \ (*((p) + 1)) = (((n) & 0x00ff000000000000ULL) >> 48); \ (*((p) + 2)) = (((n) & 0x0000ff0000000000ULL) >> 40); \ (*((p) + 3)) = (((n) & 0x000000ff00000000ULL) >> 32); \ (*((p) + 4)) = (((n) & 0x00000000ff000000ULL) >> 24); \ (*((p) + 5)) = (((n) & 0x0000000000ff0000ULL) >> 16); \ (*((p) + 6)) = (((n) & 0x000000000000ff00ULL) >> 8); \ (*((p) + 7)) = (((n) & 0x00000000000000ffULL) >> 0); \ }; \ ((p) += 8); \ ((r) -= 8) #define PUT16(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0x00ff) >> 0); \ (*((p) + 1)) = (((n) & 0xff00) >> 8); \ } else { \ (*((p) + 0)) = (((n) & 0xff00) >> 8); \ (*((p) + 1)) = (((n) & 0x00ff) >> 0); \ }; \ ((p) += 2); \ ((r) -= 2) #define PUT32(n, r, p, b) \ if (0 == (b)) { \ (*((p) + 0)) = (((n) & 0x000000ff) >> 0); \ (*((p) + 1)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 2)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 3)) = (((n) & 0xff000000) >> 24); \ } else { \ (*((p) + 0)) = (((n) & 0xff000000) >> 24); \ (*((p) + 1)) = (((n) & 0x00ff0000) >> 16); \ (*((p) + 2)) = (((n) & 0x0000ff00) >> 8); \ (*((p) + 3)) = (((n) & 0x000000ff) >> 0); \ }; \ ((p) += 4); \ ((r) -= 4) #endif /* !(_BIG_ENDIAN || WORDS_BIGENDIAN) */ #define GETU8(n, r, p, b) (((n) = (*((uint8_t *)(p)))), ((p) += 1), ((r) -= 1)) #define GET8(n, r, p, b) (((n) = (*((int8_t *)(p)))), ((p) += 1), ((r) -= 1)) #define PUTU8(n, r, p, b) (((*p) = (n)), ((p) += 1), ((r) -= 1)) #define PUT8(n, r, p, b) (((*p) = (n)), ((p) += 1), ((r) -= 1)) #define SKIP8(r, p) (((p) += 1), ((r) -= 1)) #define SKIP16(r, p) (((p) += 2), ((r) -= 2)) #define SKIP32(r, p) (((p) += 4), ((r) -= 4)) #define PUT_PACKET_HEADER(ptr, opcode, length) \ (*((ptr) + 0) = (((opcode) & 0x7f)), \ *((ptr) + 1) = (((length) & 0x00ff0000) >> 16), \ *((ptr) + 2) = (((length) & 0x0000ff00) >> 8), \ *((ptr) + 3) = (((length) & 0x000000ff) >> 0)) #define STRING_PAD(len) ((2 + (len)) % 4) #define STRING_OBJECT_SIZE(len) (2 + (len) + (STRING_PAD((len)))) #define PAD2(n) ((n) & 0x02) #define PAD(n) ((4 - ((n) & 0x03)) & 0x03) #define REQUIRE_PROTOCOL_VERSION(data_s, v) \ do { \ if ((v) > (data_s)->protocol_version) { \ (data_s)->status = IIIMP_DATA_PROTOCOL_VERSION_ERROR; \ return NULL; \ } \ } while(0) #define KEY_EVENT_OBJECT_SIZE (4 * 4) typedef struct iiimp_attribute_id { int id_predefined; int id_dynamic; struct iiimp_attribute_id * next; } IIIMP_attribute_id; struct iiimp_data_s { int byte_swap; IIIMP_attribute_id * attribute_id; int status; FILE * print_fp; uint_t print_flag; int protocol_version; }; /* prototype of composite data unpack function */ #define IIIMP_dal \ IIIMP_data_s * data_s, \ size_t * nbyte, \ const uchar_t ** ptr, \ size_t byte_length IIIMP_card16_list * iiimp_card16_list_unpack(IIIMP_dal); IIIMP_card32_list * iiimp_card32_list_unpack(IIIMP_dal); IIIMP_keyevent_list * iiimp_keyevent_list_unpack(IIIMP_dal); HOTKEY_LIST * iiimp_hotkey_list_unpack(IIIMP_dal); IIIMP_string * iiimp_string_unpack(IIIMP_dal); IIIMP_string * iiimp_string_list_unpack(IIIMP_dal); IIIMP_utf8string * iiimp_utf8string_unpack(IIIMP_dal); IIIMP_utf8string * iiimp_utf8string_list_unpack(IIIMP_dal); IIIMP_feedback_attr_list * iiimp_feedback_attr_list_unpack(IIIMP_dal); IIIMP_char_with_feedback * iiimp_char_with_feedback_unpack(IIIMP_dal); IIIMP_char_with_feedback * iiimp_char_with_feedback_list_unpack(IIIMP_dal); IIIMP_operation * iiimp_operation_unpack(IIIMP_dal); IIIMP_operation * iiimp_operation_list_unpack(IIIMP_dal); IIIMP_annotation_value * iiimp_annotation_text_unpack(IIIMP_dal); IIIMP_annotation_value * iiimp_annotation_string_unpack(IIIMP_dal); IIIMP_annotation * iiimp_annotation_unpack(IIIMP_dal); IIIMP_text * iiimp_text_unpack(IIIMP_dal); IIIMP_text * iiimp_text_list_unpack(IIIMP_dal); IIIMP_client_descriptor * iiimp_client_descriptor_unpack(IIIMP_dal); IIIMP_object_descriptor * iiimp_object_descriptor_unpack(IIIMP_dal); IIIMP_object_descriptor * iiimp_object_descriptor_list_unpack(IIIMP_dal); IIIMP_ccdef * iiimp_ccdef_unpack(IIIMP_dal); IIIMP_language * iiimp_language_unpack(IIIMP_dal); IIIMP_language * iiimp_language_list_unpack(IIIMP_dal); IIIMP_jarfile_object * iiimp_jarfile_object_unpack(IIIMP_dal); IIIMP_inputmethod_descriptor * iiimp_inputmethod_descriptor_unpack(IIIMP_dal); IIIMP_inputmethod_descriptor * iiimp_inputmethod_descriptor_list_unpack(IIIMP_dal); IIIMP_binaryfile_object * iiimp_binaryfile_object_unpack(IIIMP_dal); IIIMP_imattribute * iiimp_imattribute_unpack(IIIMP_dal); IIIMP_imattribute * iiimp_imattribute_list_unpack(IIIMP_dal); IIIMP_icattribute * iiimp_icattribute_unpack(IIIMP_dal); IIIMP_icattribute * iiimp_icattribute_list_unpack(IIIMP_dal); IIIMP_contents * iiimp_contents_unpack(IIIMP_dal); IIIMP_open * iiimp_open_unpack(IIIMP_dal); IIIMP_open_reply * iiimp_open_reply_unpack(IIIMP_dal); IIIMP_close * iiimp_close_unpack(IIIMP_dal); IIIMP_close_reply * iiimp_close_reply_unpack(IIIMP_dal); IIIMP_read * iiimp_read_unpack(IIIMP_dal); IIIMP_read_reply * iiimp_read_reply_unpack(IIIMP_dal); IIIMP_write * iiimp_write_unpack(IIIMP_dal); IIIMP_write_reply * iiimp_write_reply_unpack(IIIMP_dal); IIIMP_opendir * iiimp_opendir_unpack(IIIMP_dal); IIIMP_opendir_reply * iiimp_opendir_reply_unpack(IIIMP_dal); IIIMP_closedir_reply * iiimp_closedir_reply_unpack(IIIMP_dal); IIIMP_closedir * iiimp_closedir_unpack(IIIMP_dal); IIIMP_closedir_reply * iiimp_closedir_reply_unpack(IIIMP_dal); IIIMP_seek * iiimp_seek_unpack(IIIMP_dal); IIIMP_seek_reply * iiimp_seek_reply_unpack(IIIMP_dal); IIIMP_mkdir * iiimp_mkdir_unpack(IIIMP_dal); IIIMP_mkdir_reply * iiimp_mkdir_reply_unpack(IIIMP_dal); IIIMP_rmdir * iiimp_rmdir_unpack(IIIMP_dal); IIIMP_rmdir_reply * iiimp_rmdir_reply_unpack(IIIMP_dal); IIIMP_symlink * iiimp_symlink_unpack(IIIMP_dal); IIIMP_symlink_reply * iiimp_symlink_reply_unpack(IIIMP_dal); IIIMP_stat * iiimp_stat_unpack(IIIMP_dal); IIIMP_stat_reply * iiimp_stat_reply_unpack(IIIMP_dal); IIIMP_lstat * iiimp_lstat_unpack(IIIMP_dal); IIIMP_lstat_reply * iiimp_lstat_reply_unpack(IIIMP_dal); IIIMP_fstat * iiimp_fstat_unpack(IIIMP_dal); IIIMP_fstat_reply * iiimp_fstat_reply_unpack(IIIMP_dal); IIIMP_creat * iiimp_creat_unpack(IIIMP_dal); IIIMP_creat_reply * iiimp_creat_reply_unpack(IIIMP_dal); IIIMP_lseek * iiimp_lseek_unpack(IIIMP_dal); IIIMP_lseek_reply * iiimp_lseek_reply_unpack(IIIMP_dal); IIIMP_unlink * iiimp_unlink_unpack(IIIMP_dal); IIIMP_unlink_reply * iiimp_unlink_reply_unpack(IIIMP_dal); IIIMP_rename * iiimp_rename_unpack(IIIMP_dal); IIIMP_rename_reply * iiimp_rename_reply_unpack(IIIMP_dal); IIIMP_fcntl * iiimp_fcntl_unpack(IIIMP_dal); IIIMP_fcntl_reply * iiimp_fcntl_reply_unpack(IIIMP_dal); IIIMP_truncate * iiimp_truncate_unpack(IIIMP_dal); IIIMP_truncate_reply * iiimp_truncate_reply_unpack(IIIMP_dal); IIIMP_ftruncate * iiimp_ftruncate_unpack(IIIMP_dal); IIIMP_ftruncate_reply * iiimp_ftruncate_reply_unpack(IIIMP_dal); #undef IIIMP_dal /* prototype of composite data pack function */ extern void iiimp_card16_list_pack( IIIMP_data_s * data_s, IIIMP_card16_list * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_card32_list_pack( IIIMP_data_s * data_s, IIIMP_card32_list * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_string_pack( IIIMP_data_s * data_s, IIIMP_string * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_string_list_pack( IIIMP_data_s * data_s, IIIMP_string * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_utf8string_pack( IIIMP_data_s * data_s, IIIMP_utf8string * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_utf8string_list_pack( IIIMP_data_s * data_s, IIIMP_utf8string * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_feedback_attr_list_pack( IIIMP_data_s * data_s, IIIMP_feedback_attr_list * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_char_with_feedback_pack( IIIMP_data_s * data_s, IIIMP_char_with_feedback * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_char_with_feedback_list_pack( IIIMP_data_s * data_s, IIIMP_char_with_feedback * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_operation_pack( IIIMP_data_s * data_s, IIIMP_operation * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_operation_list_pack( IIIMP_data_s * data_s, IIIMP_operation * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_annotation_text_pack( IIIMP_data_s * data_s, IIIMP_annotation_value * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_annotation_string_pack( IIIMP_data_s * data_s, IIIMP_annotation_value * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_annotation_pack( IIIMP_data_s * data_s, IIIMP_annotation * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_annotation_list_pack( IIIMP_data_s * data_s, IIIMP_annotation * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_text_pack( IIIMP_data_s * data_s, IIIMP_text * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_text_list_pack( IIIMP_data_s * data_s, IIIMP_text * text, size_t * nbyte, uchar_t ** ptr); extern void iiimp_client_descriptor_pack( IIIMP_data_s * data_s, IIIMP_client_descriptor * cd, size_t * nbyte, uchar_t ** ptr); extern void iiimp_object_descriptor_pack( IIIMP_data_s * data_s, IIIMP_object_descriptor * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_object_descriptor_list_pack( IIIMP_data_s * data_s, IIIMP_object_descriptor * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_ccdef_pack( IIIMP_data_s * data_s, IIIMP_ccdef * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_language_pack( IIIMP_data_s * data_s, IIIMP_language * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_language_list_pack( IIIMP_data_s * data_s, IIIMP_language * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_jarfile_object_pack( IIIMP_data_s * data_s, IIIMP_jarfile_object * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_inputmethod_descriptor_pack( IIIMP_data_s * data_s, IIIMP_inputmethod_descriptor * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_inputmethod_descriptor_list_pack( IIIMP_data_s * data_s, IIIMP_inputmethod_descriptor * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_binaryfile_object_pack( IIIMP_data_s * data_s, IIIMP_binaryfile_object * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_imattribute_pack( IIIMP_data_s * data_s, IIIMP_imattribute * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_imattribute_list_pack( IIIMP_data_s * data_s, IIIMP_imattribute * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_icattribute_pack( IIIMP_data_s * data_s, IIIMP_icattribute * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_icattribute_list_pack( IIIMP_data_s * data_s, IIIMP_icattribute * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_keyevent_list_pack( IIIMP_data_s * data_s, IIIMP_keyevent_list * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_hotkey_list_pack( IIIMP_data_s * data_s, HOTKEY_LIST * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_hotkey_list_delete( IIIMP_data_s * data_s, HOTKEY_LIST * m); extern void iiimp_contents_pack( IIIMP_data_s * data_s, IIIMP_contents * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_open_pack( IIIMP_data_s * data_s, IIIMP_open * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_open_reply_pack( IIIMP_data_s * data_s, IIIMP_open_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_read_pack( IIIMP_data_s * data_s, IIIMP_read * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_read_reply_pack( IIIMP_data_s * data_s, IIIMP_read_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_write_pack( IIIMP_data_s * data_s, IIIMP_write * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_write_reply_pack( IIIMP_data_s * data_s, IIIMP_write_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_close_pack( IIIMP_data_s * data_s, IIIMP_close * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_close_reply_pack( IIIMP_data_s * data_s, IIIMP_close_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_seek_pack( IIIMP_data_s * data_s, IIIMP_seek * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_seek_reply_pack( IIIMP_data_s * data_s, IIIMP_seek_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_opendir_pack( IIIMP_data_s * data_s, IIIMP_opendir * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_opendir_reply_pack( IIIMP_data_s * data_s, IIIMP_opendir_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_closedir_pack( IIIMP_data_s * data_s, IIIMP_closedir * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_closedir_reply_pack( IIIMP_data_s * data_s, IIIMP_closedir_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_mkdir_pack( IIIMP_data_s * data_s, IIIMP_mkdir * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_mkdir_reply_pack( IIIMP_data_s * data_s, IIIMP_mkdir_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_rmdir_pack( IIIMP_data_s * data_s, IIIMP_rmdir * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_rmdir_reply_pack( IIIMP_data_s * data_s, IIIMP_rmdir_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_symlink_pack( IIIMP_data_s * data_s, IIIMP_symlink * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_symlink_reply_pack( IIIMP_data_s * data_s, IIIMP_symlink_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_stat_pack( IIIMP_data_s * data_s, IIIMP_stat * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_stat_reply_pack( IIIMP_data_s * data_s, IIIMP_stat_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_lstat_pack( IIIMP_data_s * data_s, IIIMP_lstat * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_lstat_reply_pack( IIIMP_data_s * data_s, IIIMP_lstat_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_fstat_pack( IIIMP_data_s * data_s, IIIMP_fstat * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_fstat_reply_pack( IIIMP_data_s * data_s, IIIMP_fstat_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_creat_pack( IIIMP_data_s * data_s, IIIMP_creat * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_creat_reply_pack( IIIMP_data_s * data_s, IIIMP_creat_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_lseek_pack( IIIMP_data_s * data_s, IIIMP_lseek * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_lseek_reply_pack( IIIMP_data_s * data_s, IIIMP_lseek_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_unlink_pack( IIIMP_data_s * data_s, IIIMP_unlink * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_unlink_reply_pack( IIIMP_data_s * data_s, IIIMP_unlink_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_rename_pack( IIIMP_data_s * data_s, IIIMP_rename * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_rename_reply_pack( IIIMP_data_s * data_s, IIIMP_rename_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_fcntl_pack( IIIMP_data_s * data_s, IIIMP_fcntl * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_fcntl_reply_pack( IIIMP_data_s * data_s, IIIMP_fcntl_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_truncate_pack( IIIMP_data_s * data_s, IIIMP_truncate * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_truncate_reply_pack( IIIMP_data_s * data_s, IIIMP_truncate_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_ftruncate_pack( IIIMP_data_s * data_s, IIIMP_ftruncate * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_ftruncate_reply_pack( IIIMP_data_s * data_s, IIIMP_ftruncate_reply * m, size_t * nbyte, uchar_t ** ptr); extern void iiimp_message_header_print(IIIMP_data_s * data_s, int opcode, int im_id, int ic_id); extern void iiimp_card16_list_print(IIIMP_data_s * data_s, IIIMP_card16_list * m); extern void iiimp_card32_list_print(IIIMP_data_s * data_s, IIIMP_card32_list * m); extern void iiimp_byte_stream_print(IIIMP_data_s * data_s, IIIMP_byte_stream * m); extern void iiimp_string_print(IIIMP_data_s * data_s, IIIMP_string * m); extern void iiimp_string_list_print(IIIMP_data_s * data_s, IIIMP_string * m); extern void iiimp_utf8string_print(IIIMP_data_s * data_s, IIIMP_utf8string * m); extern void iiimp_utf8string_list_print(IIIMP_data_s * data_s, IIIMP_utf8string * m); extern void iiimp_feedback_attr_print(IIIMP_data_s * data_s, IIIMP_feedback_attr * m); extern void iiimp_feedback_attr_list_print( IIIMP_data_s * data_s, IIIMP_feedback_attr_list * m); extern void iiimp_char_with_feedback_print( IIIMP_data_s * data_s, IIIMP_char_with_feedback * m); extern void iiimp_char_with_feedback_list_print( IIIMP_data_s * data_s, IIIMP_char_with_feedback * m); extern void iiimp_operation_print(IIIMP_data_s * data_s, IIIMP_operation * m); extern void iiimp_operation_list_print(IIIMP_data_s * data_s, IIIMP_operation * m); extern void iiimp_annotation_print(IIIMP_data_s * data_s, IIIMP_annotation * m); extern void iiimp_text_print(IIIMP_data_s * data_s, IIIMP_text * m); extern void iiimp_text_list_print(IIIMP_data_s * data_s, IIIMP_text * m); extern void iiimp_client_descriptor_print(IIIMP_data_s * data_s, IIIMP_client_descriptor * m); extern void iiimp_object_descriptor_print(IIIMP_data_s * data_s, IIIMP_object_descriptor * m); extern void iiimp_object_descriptor_list_print( IIIMP_data_s * data_s, IIIMP_object_descriptor * m); extern void iiimp_ccdef_print(IIIMP_data_s * data_s, IIIMP_ccdef * m); extern void iiimp_language_print(IIIMP_data_s * data_s, IIIMP_language * m); extern void iiimp_jarfile_object_print(IIIMP_data_s * data_s, IIIMP_jarfile_object * m); extern void iiimp_binaryfile_object_print(IIIMP_data_s * data_s, IIIMP_binaryfile_object * m); extern void iiimp_inputmethod_descriptor_print( IIIMP_data_s * data_s, IIIMP_inputmethod_descriptor * m); extern void iiimp_inputmethod_descriptor_list_print( IIIMP_data_s * data_s, IIIMP_inputmethod_descriptor * m); extern void iiimp_imattribute_print(IIIMP_data_s * data_s, IIIMP_imattribute * m); extern void iiimp_imattribute_list_print(IIIMP_data_s * data_s, IIIMP_imattribute * m); extern void iiimp_character_subsets_print(IIIMP_data_s * data_s, IIIMP_card32 * m); extern void iiimp_character_subsets_list_print(IIIMP_data_s * data_s, IIIMP_card32_list * m); extern void iiimp_icattribute_print(IIIMP_data_s * data_s, IIIMP_icattribute * m); extern void iiimp_icattribute_list_print(IIIMP_data_s * data_s, IIIMP_icattribute * m); extern void iiimp_keyevent_print(IIIMP_data_s * data_s, IIIMP_keyevent * m); extern void iiimp_keyevent_list_print(IIIMP_data_s * data_s, IIIMP_keyevent_list * m); extern void iiimp_contents_print(IIIMP_data_s * data_s, IIIMP_contents * m); extern void iiimp_open_print(IIIMP_data_s * data_s, IIIMP_open * m); extern void iiimp_open_reply_print(IIIMP_data_s * data_s, IIIMP_open_reply * m); extern void iiimp_read_print(IIIMP_data_s * data_s, IIIMP_read * m); extern void iiimp_read_reply_print(IIIMP_data_s * data_s, IIIMP_read_reply * m); extern void iiimp_write_print(IIIMP_data_s * data_s, IIIMP_write * m); extern void iiimp_write_reply_print(IIIMP_data_s * data_s, IIIMP_write_reply * m); extern void iiimp_close_print(IIIMP_data_s * data_s, IIIMP_close * m); extern void iiimp_close_reply_print(IIIMP_data_s * data_s, IIIMP_close_reply * m); extern void iiimp_seek_print(IIIMP_data_s * data_s, IIIMP_seek *m); extern void iiimp_seek_reply_print(IIIMP_data_s * data_s, IIIMP_seek_reply *m); extern void iiimp_opendir_print(IIIMP_data_s * data_s, IIIMP_opendir *m); extern void iiimp_opendir_reply_print(IIIMP_data_s * data_s, IIIMP_opendir_reply *m); extern void iiimp_closedir_print(IIIMP_data_s * data_s, IIIMP_closedir *m); extern void iiimp_closedir_reply_print(IIIMP_data_s * data_s, IIIMP_closedir_reply *m); extern void iiimp_mkdir_print(IIIMP_data_s * data_s, IIIMP_mkdir *m); extern void iiimp_mkdir_reply_print(IIIMP_data_s * data_s, IIIMP_mkdir_reply *m); extern void iiimp_rmdir_print(IIIMP_data_s * data_s, IIIMP_rmdir *m); extern void iiimp_rmdir_reply_print(IIIMP_data_s * data_s, IIIMP_rmdir_reply *m); extern void iiimp_symlink_print(IIIMP_data_s * data_s, IIIMP_symlink *m); extern void iiimp_symlink_reply_print(IIIMP_data_s * data_s, IIIMP_symlink_reply *m); extern void iiimp_stat_print(IIIMP_data_s * data_s, IIIMP_stat *m); extern void iiimp_stat_reply_print(IIIMP_data_s * data_s, IIIMP_stat_reply *m); extern void iiimp_lstat_print(IIIMP_data_s * data_s, IIIMP_lstat *m); extern void iiimp_lstat_reply_print(IIIMP_data_s * data_s, IIIMP_lstat_reply *m); extern void iiimp_fstat_print(IIIMP_data_s * data_s, IIIMP_fstat *m); extern void iiimp_fstat_reply_print(IIIMP_data_s * data_s, IIIMP_fstat_reply *m); extern void iiimp_creat_print(IIIMP_data_s * data_s, IIIMP_creat *m); extern void iiimp_creat_reply_print(IIIMP_data_s * data_s, IIIMP_creat_reply *m); extern void iiimp_lseek_print(IIIMP_data_s * data_s, IIIMP_lseek *m); extern void iiimp_lseek_reply_print(IIIMP_data_s * data_s, IIIMP_lseek_reply *m); extern void iiimp_unlink_print(IIIMP_data_s * data_s, IIIMP_unlink *m); extern void iiimp_unlink_reply_print(IIIMP_data_s * data_s, IIIMP_unlink_reply *m); extern void iiimp_rename_print(IIIMP_data_s * data_s, IIIMP_rename *m); extern void iiimp_rename_reply_print(IIIMP_data_s * data_s, IIIMP_rename_reply *m); extern void iiimp_fcntl_print(IIIMP_data_s * data_s, IIIMP_fcntl *m); extern void iiimp_fcntl_reply_print(IIIMP_data_s * data_s, IIIMP_fcntl_reply *m); extern void iiimp_truncate_print(IIIMP_data_s * data_s, IIIMP_truncate *m); extern void iiimp_truncate_reply_print(IIIMP_data_s * data_s, IIIMP_truncate_reply *m); extern void iiimp_ftruncate_print(IIIMP_data_s * data_s, IIIMP_ftruncate *m); extern void iiimp_ftruncate_reply_print(IIIMP_data_s * data_s, IIIMP_ftruncate_reply *m); extern void iiimp_simple_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_simple_im_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_invalid_message_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_aux_simple_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_aux_value_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_connect_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_connect_reply_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_register_trigger_keys_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_trigger_notify_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_select_hotkey_profile_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_register_hotkeys_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_hotkey_list_print(IIIMP_data_s * data_s, HOTKEY_LIST * m); extern void iiimp_hotkey_notify_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_hotkey_state_notify_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_file_operation_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_file_operation_reply_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_register_hotkeys_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_setimvalues_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_getimvalues_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_getimvalues_reply_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_createic_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_seticvalues_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_geticvalues_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_geticvalues_reply_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_preedit_start_reply_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_preedit_draw_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_status_draw_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_forward_event_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_forward_event_with_operations_print( IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_forward_event_with_operations_reply_print( IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_commit_string_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_lookup_choice_start_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_lookup_choice_draw_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_lookup_choice_process_print(IIIMP_data_s * data_s, IIIMP_message * m); extern void iiimp_protocol_version_print(IIIMP_data_s * data_s, IIIMP_message * m); extern IIIMP_card16 iiimp_attribute_id_search( IIIMP_data_s * data_s, IIIMP_card16 id_dynamic); extern void iiimp_attribute_id_update(IIIMP_data_s * data_s, IIIMP_card16 id_predefined, IIIMP_card16 id_dynamic); extern void iiimp_attribute_id_destroy(IIIMP_data_s * data_s); #ifdef __cplusplus } #endif #endif /* !IIIMP_DATA_P_H */ /* Local Variables: */ /* c-file-style: "iiim-project" */ /* End: */