Back to index

im-sdk  12.3.91
iiimp-data.h
Go to the documentation of this file.
00001 #if !defined(IIIMP_DATA_H)
00002 #define IIIMP_DATA_H
00003 
00004 
00005 #ifdef HAVE_CONFIG_H
00006 #include <config.h>
00007 #endif
00008 
00009 #include <stdio.h>
00010 #include <sys/types.h>
00011 
00012 #ifdef HAVE_STDINT_H
00013 #include <stdint.h>
00014 #endif
00015 
00016 #if defined(linux) || defined(__FreeBSD__) || defined(__APPLE__)
00017 typedef unsigned char       uchar_t;
00018 typedef unsigned int uint_t;
00019 #endif /* linux || freebsd */
00020 
00021 #include <iiimp-opcode.h>
00022 #include <iiimp-file-operation.h>
00023 
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 #define iiimp_MESSAGE_SIZE_MAX_4 ((1 << 24) - 1)
00030 
00031 /* primitive data type */
00032 typedef uint8_t                    IIIMP_card7;
00033 typedef uint8_t                    IIIMP_card8;
00034 typedef uint16_t            IIIMP_card16;
00035 typedef uint32_t            IIIMP_card32;
00036 typedef uint64_t            IIIMP_card64;
00037 typedef int8_t                     IIIMP_int8;
00038 typedef int16_t                    IIIMP_int16;
00039 typedef int32_t                    IIIMP_int32;
00040 
00041 typedef struct {
00042     size_t           nbyte;
00043     int                     count;
00044     IIIMP_card16 *   ptr;
00045 } IIIMP_card16_list;
00046 
00047 typedef struct {
00048     size_t           nbyte;
00049     int                     count;
00050     IIIMP_card32 *   ptr;
00051 } IIIMP_card32_list;
00052 
00053 
00054 /* composite data type */
00055 
00056 typedef struct {
00057     size_t           nbyte;
00058     uchar_t *        ptr;
00059 } IIIMP_byte_stream;
00060 
00061 typedef struct iiimp_string {
00062     size_t                  nbyte;
00063     size_t                  len;
00064     IIIMP_card16 *          ptr;
00065     struct iiimp_string *   next;
00066 } IIIMP_string;
00067 
00068 /* obsolete data type -- start */
00069 typedef struct iiimp_utf8string {
00070     size_t                  nbyte;
00071     size_t                  len;
00072     IIIMP_card8 *           ptr;
00073     struct iiimp_utf8string *      next;
00074 } IIIMP_utf8string;
00075 /* obsolete data type -- end */
00076 
00077 typedef struct {
00078     size_t           nbyte;
00079     IIIMP_card32     id;
00080     IIIMP_card32     feedback;
00081 } IIIMP_feedback_attr;
00082 
00083 typedef struct {
00084     size_t                  nbyte;
00085     int                            count;
00086     IIIMP_feedback_attr *   ptr;
00087 } IIIMP_feedback_attr_list;
00088 
00089 typedef struct iiimp_char_with_feedback {
00090     size_t                         nbyte;
00091     IIIMP_card16                   code;
00092     IIIMP_feedback_attr_list *            feedback_attr;
00093     struct iiimp_char_with_feedback *     next;
00094 } IIIMP_char_with_feedback;
00095 
00096 typedef struct iiimp_operation {
00097     size_t                  nbyte;
00098     IIIMP_string *          id;
00099     IIIMP_byte_stream              value;
00100     struct iiimp_operation *       next;
00101 } IIIMP_operation;
00102 
00103 typedef struct iiimp_text   IIIMP_text;
00104 
00105 typedef struct iiimp_annotation_value {
00106     size_t                         nbyte;
00107     IIIMP_int32                           start_index;
00108     IIIMP_int32                           end_index;
00109     IIIMP_int32                           length;
00110     union {
00111        IIIMP_text *  text;
00112        IIIMP_string *       string;
00113     }                              v;
00114     struct iiimp_annotation_value *       next;
00115 } IIIMP_annotation_value;
00116 
00117 typedef struct iiimp_annotation {
00118     size_t                  nbyte;
00119     IIIMP_card32            id;
00120     size_t                  value_nbyte;
00121     IIIMP_annotation_value *       value;
00122     struct iiimp_annotation *      next;
00123 } IIIMP_annotation;
00124 
00125 struct iiimp_text {
00126     size_t                  nbyte;
00127     size_t                  char_with_feedback_nbyte;
00128     IIIMP_char_with_feedback *     char_with_feedback;
00129     size_t                  annotation_nbyte;
00130     IIIMP_annotation *             annotation;
00131     struct iiimp_text *            next;
00132 };
00133 
00134 typedef struct iiimp_imattribute   IIIMP_imattribute;
00135 
00136 typedef struct {
00137     size_t           nbyte;
00138     IIIMP_string *   type;         /* Application type */
00139     IIIMP_string *   os_name;      /* Operating system name */
00140     IIIMP_string *   arch;         /* Operating system architecture */
00141     IIIMP_string *   version;      /* Operating system version */
00142     IIIMP_string *   X_display_name;      /* X display name */
00143     IIIMP_string *   X_server_vendor;/* X service vendor */
00144 } IIIMP_client_descriptor;
00145 
00146 typedef struct iiimp_object_descriptor {
00147     size_t           nbyte;
00148     int                     category;     /* object category */
00149     size_t           size;         /* object size */
00150     int                     id_pre;              /* predefined attribute id */
00151     int                     id_dyn;              /* dynamically assigned id */
00152     IIIMP_string *   rdun;         /* reverse domain unique name */
00153     IIIMP_string *   hrn;          /* human readable name */
00154     IIIMP_string *   signature;    /* signature */
00155     IIIMP_string *   user;         /* object user */
00156     struct iiimp_object_descriptor *             next;
00157 } IIIMP_object_descriptor;
00158 
00159 typedef struct {
00160     size_t           nbyte;
00161     IIIMP_string *   contents;     /* contents of CCDEF */
00162 } IIIMP_ccdef;
00163 
00164 typedef struct iiimp_language {
00165     size_t                  nbyte;
00166     IIIMP_string *          hrn;   /* human readable name */
00167     IIIMP_string *          id;    /* language identifier */
00168     struct iiimp_language * next;
00169 } IIIMP_language;
00170 
00171 /* struct to hold the information of Input Method Engine */
00172 typedef struct iiimp_imeinfo {
00173     size_t           nbyte;
00174     IIIMP_card32     enable;              /* identify the status of the ime:
00175                                       enable/disable */
00176     IIIMP_string *   ime_id;              /* unique identification for the ime
00177                                       (in ASCII) */
00178     IIIMP_string *   imename;      /* the name of ime */
00179     IIIMP_string *   version;
00180     IIIMP_string *   description;  /* can hold the hinting information */
00181     IIIMP_string *   author;
00182     IIIMP_string *   copyright;
00183     IIIMP_string *   reserved1;    /* Padding for future expansion */
00184     IIIMP_string *   reserved2;
00185     struct iiimp_imeinfo *  next;
00186 } IIIMP_imeinfo;
00187 
00188 typedef struct {
00189     size_t           nbyte;
00190     size_t           class_names_nbyte;
00191     IIIMP_string *   class_names;  /* class_names */
00192     IIIMP_byte_stream       value;        /* jar file byte stream */
00193 } IIIMP_jarfile_object;
00194 
00195 typedef struct iiimp_inputmethod_descriptor {
00196     size_t           nbyte;
00197     int                     id;           /* Input Method Identifier */
00198     IIIMP_string *   idname;              /* Input Method name */
00199     IIIMP_string *   hrn;          /* human readable name */
00200     size_t           language_nbyte;
00201     IIIMP_language * language;     /* supported language list */
00202     IIIMP_string *   rdun;         /* reverse domain unique name */
00203     size_t           imeinfo_nbyte; 
00204     IIIMP_imeinfo *  imeinfo;      /* (Optional) the information of
00205                                       input method engine */
00206     struct iiimp_inputmethod_descriptor * next;
00207 } IIIMP_inputmethod_descriptor;
00208 
00209 typedef struct {
00210     size_t           nbyte;
00211     IIIMP_string *   object;              /* object */
00212 } IIIMP_binaryfile_object;
00213 
00214 typedef union {
00215     void *                         any;
00216     IIIMP_inputmethod_descriptor * inputmethod_descriptor;
00217     IIIMP_object_descriptor *             object_descriptor;
00218     IIIMP_client_descriptor *             client_descriptor;
00219     IIIMP_ccdef *                  ccdef;
00220     IIIMP_jarfile_object *         jarfile_object;
00221     IIIMP_binaryfile_object *             binaryfile_object;
00222     IIIMP_card32_list *                   capability;
00223 } IIIMP_imattribute_value;
00224 
00225 struct iiimp_imattribute {
00226     size_t                  nbyte;
00227     int                            id;    /* Input Method Attribute ID */
00228     int                            id_pre;       /* predefined attribute id */
00229     int                            id_dyn;       /* predefined attribute id */
00230     size_t                  value_nbyte;
00231     IIIMP_imattribute_value value; /* Input Method Attribute Value */
00232     struct iiimp_imattribute *     next;  /* pointer to the next attribute */
00233 };
00234 
00235 typedef union {
00236     IIIMP_string *   input_language;
00237     IIIMP_card32_list *     character_subsets;
00238     IIIMP_string *   input_method_name;
00239     IIIMP_card16     input_method;
00240 } IIIMP_icattribute_value;
00241 
00242 typedef struct iiimp_icattribute IIIMP_icattribute;
00243 
00244 struct iiimp_icattribute {
00245     size_t                  nbyte;
00246     int                            id;
00247     size_t                  value_nbyte;
00248     IIIMP_icattribute_value value; /* Input Method Attribute Value */
00249     struct iiimp_icattribute *     next;  /* pointer to the next attribute */
00250 };
00251 
00252 typedef struct {
00253     IIIMP_int32             keycode;
00254     IIIMP_int32             keychar;
00255     IIIMP_int32             modifier;
00256     IIIMP_int32             time_stamp;
00257 } IIIMP_keyevent;
00258 
00259 typedef struct {
00260     size_t           nbyte;
00261     int                     count;
00262     IIIMP_keyevent * keyevent;
00263 } IIIMP_keyevent_list;
00264 
00265 typedef union {
00266     void *                  any;
00267     IIIMP_string *          string;
00268     IIIMP_text *            text;
00269     IIIMP_keyevent_list *   keyevent_list;
00270 } IIIMP_contents_value;
00271 
00272 typedef struct {
00273     size_t                  nbyte;
00274     IIIMP_card32            type;
00275     size_t                  value_nbyte;
00276     IIIMP_contents_value    value;
00277 } IIIMP_contents;
00278 
00279 
00280 /* composite data type - file operation */
00281 
00282 typedef struct {
00283     IIIMP_card32            actime;
00284     IIIMP_card32            modtime;
00285 } IIIMP_file_operation_utimbuf;
00286 
00287 typedef struct {
00288     IIIMP_card32            tv_sec0;
00289     IIIMP_card32            tv_usec0;
00290     IIIMP_card32            tv_sec1;
00291     IIIMP_card32            tv_usec1;
00292 } IIIMP_file_operation_timeval;
00293 
00294 typedef union {
00295     IIIMP_card32     file_descriptor_flags;
00296     IIIMP_card32     file_status_flags;
00297     struct {
00298        IIIMP_card16         type;
00299        IIIMP_card16         whence;
00300        IIIMP_card32         start;
00301        IIIMP_card32         len;
00302     }                flock;
00303 } IIIMP_file_operation_data_fcntl_value;
00304 
00305 typedef struct {
00306     size_t                                nbyte;
00307     IIIMP_file_operation_data_fcntl_value value;
00308 } IIIMP_file_operation_data_fcntl;
00309 
00310 typedef struct {
00311     IIIMP_card32            tv_sec;
00312     IIIMP_card32            tv_nsec;
00313 } IIIMP_file_operation_data_timespec;
00314 
00315 typedef struct {
00316     size_t                         nbyte;
00317     IIIMP_card32                   mode;
00318     IIIMP_card32                   ino;
00319     IIIMP_card32                   dev;
00320     IIIMP_card32                   rdev;
00321     IIIMP_card32                   nlink;
00322     IIIMP_string *                 user_name;
00323     IIIMP_card32                   uid;
00324     IIIMP_string *                 group_name;
00325     IIIMP_card32                   gid;
00326     IIIMP_card32                   size;
00327     IIIMP_file_operation_data_timespec    atime;
00328     IIIMP_file_operation_data_timespec    mtime;
00329     IIIMP_file_operation_data_timespec    ctime;
00330     IIIMP_card32                   blksize;
00331     IIIMP_card32                   blocks;
00332 } IIIMP_file_operation_data_stat;
00333 
00334 typedef struct {
00335     size_t                  nbyte;
00336     IIIMP_card32            ino;
00337     IIIMP_card32            off;
00338     IIIMP_string *          name;
00339 } IIIMP_file_operation_data_dir;
00340 
00341 typedef struct {
00342     IIIMP_card32            file_descriptor;
00343 } IIIMP_file_operation_request_close;
00344 
00345 typedef struct {
00346     size_t                  nbyte;
00347     IIIMP_string *          path;
00348     IIIMP_card32            mode;
00349 } IIIMP_file_operation_request_creat;
00350 
00351 typedef struct {
00352     IIIMP_card32            file_descriptor;
00353     IIIMP_card32            length;
00354 } IIIMP_file_operation_request_ftruncate;
00355 
00356 typedef struct {
00357     IIIMP_card32            file_descriptor;
00358     IIIMP_card32            offset;
00359     IIIMP_card32            whence;
00360 } IIIMP_file_operation_request_lseek;
00361 
00362 typedef struct {
00363     size_t                  nbyte;
00364     IIIMP_string *          path;
00365     IIIMP_card32            oflag;
00366     IIIMP_card32            mode;
00367 } IIIMP_file_operation_request_open;
00368 
00369 typedef struct {
00370     IIIMP_card32            file_descriptor;
00371     IIIMP_card32            nbyte;
00372 } IIIMP_file_operation_request_read;
00373 
00374 typedef struct {
00375     size_t                  nbyte;
00376     IIIMP_string *          path;
00377     IIIMP_card32            length;
00378 } IIIMP_file_operation_request_truncate;
00379 
00380 typedef struct {
00381     size_t                  nbyte;
00382     IIIMP_card32            file_descriptor;
00383     IIIMP_byte_stream              value;
00384 } IIIMP_file_operation_request_write;
00385 
00386 typedef struct {
00387     size_t                  nbyte;
00388     IIIMP_string *          existing_path;
00389     IIIMP_string *          new_path;
00390 } IIIMP_file_operation_request_link;
00391 
00392 typedef struct {
00393     size_t                  nbyte;
00394     IIIMP_string *          path;
00395 } IIIMP_file_operation_request_readlink;
00396 
00397 typedef struct {
00398     size_t                  nbyte;
00399     IIIMP_string *          old_path;
00400     IIIMP_string *          new_path;
00401 } IIIMP_file_operation_request_rename;
00402 
00403 typedef struct {
00404     size_t                  nbyte;
00405     IIIMP_string *          existing_path;
00406     IIIMP_string *          new_path;
00407 } IIIMP_file_operation_request_symlink;
00408 
00409 typedef struct {
00410     size_t                  nbyte;
00411     IIIMP_string *          path;
00412 } IIIMP_file_operation_request_unlink;
00413 
00414 typedef struct {
00415     size_t                  nbyte;
00416     IIIMP_string *          path;
00417     IIIMP_card32            mode;
00418 } IIIMP_file_operation_request_chmod;
00419 
00420 typedef struct {
00421     size_t                  nbyte;
00422     IIIMP_string *          path;
00423     IIIMP_string *          user_name;
00424     IIIMP_card32            user_id;
00425     IIIMP_string *          group_name;
00426     IIIMP_card32            group_id;
00427 } IIIMP_file_operation_request_chown;
00428 
00429 typedef struct {
00430     IIIMP_card32            file_descriptor;
00431     IIIMP_card32            mode;
00432 } IIIMP_file_operation_request_fchmod;
00433 
00434 typedef struct {
00435     size_t                  nbyte;
00436     IIIMP_card32            file_descriptor;
00437     IIIMP_string *          user_name;
00438     IIIMP_card32            user_id;
00439     IIIMP_string *          group_name;
00440     IIIMP_card32            group_id;
00441 } IIIMP_file_operation_request_fchown;
00442 
00443 typedef struct {
00444     size_t                  nbyte;
00445     IIIMP_string *          path;
00446     IIIMP_card32            mode;
00447 } IIIMP_file_operation_request_lchmod;
00448 
00449 typedef IIIMP_file_operation_request_chown       IIIMP_file_operation_request_lchown;
00450 
00451 typedef struct {
00452     size_t                         nbyte;
00453     IIIMP_string *                 path;
00454     IIIMP_file_operation_utimbuf   utimbuf_data;
00455 } IIIMP_file_operation_request_utime;
00456 
00457 typedef struct {
00458     size_t                         nbyte;
00459     IIIMP_string *                 path;
00460     IIIMP_file_operation_timeval   timeval_data;
00461 } IIIMP_file_operation_request_utimes;
00462 
00463 typedef struct {
00464     IIIMP_card32            file_descriptor;
00465 } IIIMP_file_operation_request_fstat;
00466 
00467 typedef struct {
00468     size_t                  nbyte;
00469     IIIMP_string *          path;
00470 } IIIMP_file_operation_request_lstat;
00471 
00472 typedef struct {
00473     size_t                  nbyte;
00474     IIIMP_string *          path;
00475 } IIIMP_file_operation_request_stat;
00476 
00477 typedef struct {
00478     size_t                  nbyte;
00479     IIIMP_string *          path;
00480     IIIMP_card32            amode;
00481 } IIIMP_file_operation_request_access;
00482 
00483 typedef struct {
00484     IIIMP_card32            directory_handle;
00485 } IIIMP_file_operation_request_closedir;
00486 
00487 typedef struct {
00488     size_t                  nbyte;
00489     IIIMP_string *          dirname;
00490 } IIIMP_file_operation_request_opendir;
00491 
00492 typedef struct {
00493     IIIMP_card32            directory_handle;
00494 } IIIMP_file_operation_request_readdir;
00495 
00496 typedef struct {
00497     IIIMP_card32            directory_handle;
00498 } IIIMP_file_operation_request_rewinddir;
00499 
00500 typedef struct {
00501     IIIMP_card32            directory_handle;
00502     IIIMP_card32            loc;
00503 } IIIMP_file_operation_request_seekdir;
00504 
00505 typedef struct {
00506     IIIMP_card32            directory_handle;
00507 } IIIMP_file_operation_request_telldir;
00508 
00509 typedef struct {
00510     size_t                  nbyte;
00511     IIIMP_string *          dirname;
00512     IIIMP_card32            mode;
00513 } IIIMP_file_operation_request_mkdir;
00514 
00515 typedef struct {
00516     size_t                  nbyte;
00517     IIIMP_string *          dirname;
00518 } IIIMP_file_operation_request_rmdir;
00519 
00520 typedef struct {
00521     size_t                         nbyte;
00522     IIIMP_card32                   file_descriptor;
00523     IIIMP_card32                   cmd;
00524     IIIMP_file_operation_data_fcntl *     arg;
00525 } IIIMP_file_operation_request_fcntl;
00526 
00527 typedef struct {
00528     IIIMP_card32            return_value;
00529     IIIMP_card32            error_number;
00530 } IIIMP_file_operation_result_simple;
00531 
00532 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_close;
00533 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_creat;
00534 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_ftruncate;
00535 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_lseek;
00536 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_open;
00537 
00538 typedef struct {
00539     size_t                  nbyte;
00540     IIIMP_card32            error_number;
00541     IIIMP_byte_stream              value;
00542 } IIIMP_file_operation_result_read;
00543 
00544 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_truncate;
00545 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_write;
00546 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_link;
00547 
00548 typedef struct {
00549     size_t                  nbyte;
00550     IIIMP_card32            return_value;
00551     IIIMP_card32            error_number;
00552     IIIMP_string *          path;
00553 } IIIMP_file_operation_result_readlink;
00554 
00555 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_rename;
00556 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_symlink;
00557 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_unlink;
00558 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_chmod;
00559 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_chown;
00560 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_fchmod;
00561 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_fchown;
00562 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_lchmod;
00563 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_lchown;
00564 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_utime;
00565 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_utimes;
00566 
00567 typedef struct {
00568     size_t                         nbyte;
00569     IIIMP_card32                   return_value;
00570     IIIMP_card32                   error_number;
00571     IIIMP_file_operation_data_stat *      stat;
00572 } IIIMP_file_operation_result_stat;
00573 
00574 typedef IIIMP_file_operation_result_stat  IIIMP_file_operation_result_fstat;
00575 typedef IIIMP_file_operation_result_stat  IIIMP_file_operation_result_lstat;
00576 
00577 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_access;
00578 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_closedir;
00579 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_opendir;
00580 
00581 typedef struct {
00582     IIIMP_card32                   error_number;
00583     IIIMP_file_operation_data_dir *       dir;
00584 } IIIMP_file_operation_result_readdir;
00585 
00586 typedef struct {
00587     IIIMP_card32                   no_data;      /* not used */
00588 } IIIMP_file_operation_result_rewinddir;
00589 
00590 typedef struct {
00591     IIIMP_card32                   no_data;      /* not used */
00592 } IIIMP_file_operation_result_seekdir;
00593 
00594 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_telldir;
00595 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_mkdir;
00596 typedef IIIMP_file_operation_result_simple       IIIMP_file_operation_result_rmdir;
00597 
00598 typedef struct {
00599     size_t                         nbyte;
00600     IIIMP_card32                   return_value;
00601     IIIMP_card32                   error_number;
00602     IIIMP_card32                   cmd;
00603     IIIMP_file_operation_data_fcntl *     arg;
00604 } IIIMP_file_operation_result_fcntl;
00605 
00606 typedef union {
00607     IIIMP_file_operation_request_close           close;
00608     IIIMP_file_operation_request_creat           creat;
00609     IIIMP_file_operation_request_ftruncate       ftruncate;
00610     IIIMP_file_operation_request_lseek           lseek;
00611     IIIMP_file_operation_request_open            open;
00612     IIIMP_file_operation_request_read            read;
00613     IIIMP_file_operation_request_truncate truncate;
00614     IIIMP_file_operation_request_write           write;
00615 
00616     IIIMP_file_operation_request_link            link;
00617     IIIMP_file_operation_request_readlink readlink;
00618     IIIMP_file_operation_request_rename          rename;
00619     IIIMP_file_operation_request_symlink  symlink;
00620     IIIMP_file_operation_request_unlink          unlink;
00621 
00622     IIIMP_file_operation_request_chmod           chmod;
00623     IIIMP_file_operation_request_chown           chown;
00624     IIIMP_file_operation_request_fchmod          fchmod;
00625     IIIMP_file_operation_request_fchown          fchown;
00626     IIIMP_file_operation_request_lchown          lchown;
00627     IIIMP_file_operation_request_utime           utime;
00628     IIIMP_file_operation_request_utimes          utimes;
00629 
00630     IIIMP_file_operation_request_fstat           fstat;
00631     IIIMP_file_operation_request_lstat           lstat;
00632     IIIMP_file_operation_request_stat            stat;
00633     IIIMP_file_operation_request_access          access;
00634 
00635     IIIMP_file_operation_request_closedir closedir;
00636     IIIMP_file_operation_request_opendir  opendir;
00637     IIIMP_file_operation_request_readdir  readdir;
00638     IIIMP_file_operation_request_rewinddir       rewinddir;
00639     IIIMP_file_operation_request_seekdir  seekdir;
00640     IIIMP_file_operation_request_telldir  telldir;
00641 
00642     IIIMP_file_operation_request_mkdir           mkdir;
00643     IIIMP_file_operation_request_rmdir           rmdir;
00644 
00645     IIIMP_file_operation_request_fcntl           fcntl;
00646 } IIIMP_file_operation_request_value;
00647 
00648 
00649 typedef union {
00650     IIIMP_file_operation_result_simple           simple;
00651 
00652     IIIMP_file_operation_result_close            close;
00653     IIIMP_file_operation_result_creat            creat;
00654     IIIMP_file_operation_result_ftruncate ftruncate;
00655     IIIMP_file_operation_result_lseek            lseek;
00656     IIIMP_file_operation_result_open             open;
00657     IIIMP_file_operation_result_read             read;
00658     IIIMP_file_operation_result_truncate  truncate;
00659     IIIMP_file_operation_result_write            write;
00660 
00661     IIIMP_file_operation_result_link             link;
00662     IIIMP_file_operation_result_readlink  readlink;
00663     IIIMP_file_operation_result_rename           rename;
00664     IIIMP_file_operation_result_symlink          symlink;
00665     IIIMP_file_operation_result_unlink           unlink;
00666 
00667     IIIMP_file_operation_result_chmod            chmod;
00668     IIIMP_file_operation_result_chown            chown;
00669     IIIMP_file_operation_result_fchmod           fchmod;
00670     IIIMP_file_operation_result_fchown           fchown;
00671     IIIMP_file_operation_result_lchown           lchown;
00672     IIIMP_file_operation_result_utime            utime;
00673     IIIMP_file_operation_result_utimes           utimes;
00674 
00675     IIIMP_file_operation_result_fstat            fstat;
00676     IIIMP_file_operation_result_lstat            lstat;
00677     IIIMP_file_operation_result_stat             stat;
00678     IIIMP_file_operation_result_access           access;
00679 
00680     IIIMP_file_operation_result_closedir  closedir;
00681     IIIMP_file_operation_result_opendir          opendir;
00682     IIIMP_file_operation_result_readdir          readdir;
00683     IIIMP_file_operation_result_rewinddir rewinddir;
00684     IIIMP_file_operation_result_seekdir          seekdir;
00685     IIIMP_file_operation_result_telldir          telldir;
00686 
00687     IIIMP_file_operation_result_mkdir            mkdir;
00688     IIIMP_file_operation_result_rmdir            rmdir;
00689 
00690     IIIMP_file_operation_result_fcntl            fcntl;
00691 } IIIMP_file_operation_result_value;
00692 
00693 
00694 typedef struct iiimp_file_operation_request {
00695     size_t                                nbyte;
00696     IIIMP_card32                          type;
00697     size_t                                value_nbyte;
00698     IIIMP_file_operation_request_value           value;
00699     struct iiimp_file_operation_request * next;
00700 } IIIMP_file_operation_request;
00701 
00702 typedef struct iiimp_file_operation_result {
00703     size_t                                nbyte;
00704     IIIMP_card32                          type;
00705     size_t                                value_nbyte;
00706     IIIMP_file_operation_result_value            value;
00707     struct iiimp_file_operation_result *  next;
00708 } IIIMP_file_operation_result;
00709 
00710 
00711 /* message data type */
00712 
00713 typedef struct {
00714     IIIMP_card7             opcode;
00715     IIIMP_card16     im_id;
00716     IIIMP_card16     ic_id;
00717 } IIIMP_simple;
00718 
00719 typedef struct {
00720     IIIMP_card7             opcode;
00721     int                     byte_order;
00722     int                     protocol_version;
00723     IIIMP_string *   user_name;
00724     IIIMP_string *   auth;
00725 } IIIMP_connect;
00726 
00727 typedef struct {
00728     IIIMP_card7             opcode;
00729     IIIMP_card16     im_id;
00730     IIIMP_string *   language;
00731 } IIIMP_connect_reply;
00732 
00733 typedef IIIMP_simple IIIMP_disconnect;
00734 
00735 typedef IIIMP_simple IIIMP_disconnect_reply;
00736 
00737 typedef struct {
00738     IIIMP_card16                hotkey_id;
00739     IIIMP_card8                 state_flag;  /* #1 disabled */
00740                                              /* #0 enabled  */
00741 
00742     IIIMP_card8                 action_flag; 
00743     /* #2 Event forwarding toggle */
00744     /* #1 Event forwarding ON     */
00745     /* #0 Event forwarding OFF    */
00746 } HOTKEYCTRL;
00747 
00748 typedef struct {
00749     HOTKEYCTRL                  hotkeyctrl;
00750     size_t                   nbyte;
00751     IIIMP_keyevent_list *       hotkeylist;
00752     IIIMP_string *              label;
00753 } HOTKEY;
00754 
00755 typedef struct {
00756     size_t           nbyte;
00757     int                     count;
00758     HOTKEY *          hotkey;
00759 } HOTKEY_LIST;
00760 
00761 typedef struct {
00762     IIIMP_card7         opcode;
00763     IIIMP_card16        im_id;
00764     int                 flag;
00765     HOTKEY_LIST *       hotkeys; 
00766 } IIIMP_register_hotkeys;
00767 
00768 typedef struct {
00769     IIIMP_card7   opcode;
00770     IIIMP_card16  im_id;
00771     int           flag;
00772     HOTKEYCTRL *  hotkeyctrl;
00773 } IIIMP_control_hotkeys;
00774 
00775 typedef struct {
00776     IIIMP_card7    opcode;
00777     IIIMP_card16   im_id;
00778     IIIMP_card16   ic_id;
00779     IIIMP_card16   hotkey_id;
00780     IIIMP_card16   index;    /* Index of LISTofKEYEVENT in HOTKEY */
00781 } IIIMP_hotkey_notify;
00782 
00783 typedef struct {
00784     IIIMP_card7                    opcode;
00785     IIIMP_card16            im_id;
00786     IIIMP_keyevent_list *   trigger_on;
00787     IIIMP_keyevent_list *   trigger_off;
00788 } IIIMP_register_trigger_keys;
00789 
00790 typedef struct {
00791     IIIMP_card7             opcode;
00792     IIIMP_card16     im_id;
00793     IIIMP_card16     ic_id;
00794     int                     flag;
00795 } IIIMP_trigger_notify;
00796 
00797 typedef IIIMP_simple IIIMP_trigger_notify_reply;
00798 typedef IIIMP_simple IIIMP_hotkey_notify_reply;
00799 
00800 typedef struct {
00801     IIIMP_card7             opcode;
00802     IIIMP_card16     im_id;
00803     IIIMP_imattribute *     attr_list;
00804 } IIIMP_setimvalues;
00805 
00806 typedef IIIMP_simple IIIMP_setimvalues_reply;
00807 
00808 typedef struct {
00809     IIIMP_card7             opcode;
00810     IIIMP_card16     im_id;
00811     IIIMP_card16_list *     attr_list;
00812 } IIIMP_getimvalues;
00813 
00814 typedef struct {
00815     IIIMP_card7             opcode;
00816     IIIMP_card16     im_id;
00817     IIIMP_imattribute *     attr_list;
00818 } IIIMP_getimvalues_reply;
00819 
00820 typedef struct {
00821     IIIMP_card7             opcode;
00822     IIIMP_card16     im_id;
00823     IIIMP_icattribute *     attr_list;
00824 } IIIMP_createic;
00825 
00826 typedef IIIMP_simple IIIMP_createic_reply;
00827 
00828 typedef IIIMP_simple IIIMP_destroyic;
00829 
00830 typedef IIIMP_simple IIIMP_destroyic_reply;
00831 
00832 typedef struct {
00833     IIIMP_card7             opcode;
00834     IIIMP_card16     im_id;
00835     IIIMP_card16     ic_id;
00836     IIIMP_icattribute *     attr_list;
00837 } IIIMP_seticvalues;
00838 
00839 typedef IIIMP_simple IIIMP_seticvalues_reply;
00840 
00841 typedef struct {
00842     IIIMP_card7             opcode;
00843     IIIMP_card16     im_id;
00844     IIIMP_card16     ic_id;
00845     IIIMP_card16_list *     attr_list;
00846 } IIIMP_geticvalues;
00847 
00848 typedef struct {
00849     IIIMP_card7             opcode;
00850     IIIMP_card16     im_id;
00851     IIIMP_card16     ic_id;
00852     IIIMP_icattribute *     attr_list;
00853 } IIIMP_geticvalues_reply;
00854 
00855 typedef IIIMP_simple IIIMP_seticfocus;
00856 typedef IIIMP_simple IIIMP_seticfocus_reply;
00857 typedef IIIMP_simple IIIMP_unseticfocus;
00858 typedef IIIMP_simple IIIMP_unseticfocus_reply;
00859 typedef IIIMP_simple IIIMP_resetic;
00860 typedef IIIMP_simple IIIMP_resetic_reply;
00861 typedef IIIMP_simple IIIMP_preedit_start;
00862 
00863 typedef struct {
00864     IIIMP_card7             opcode;
00865     IIIMP_card16     im_id;
00866     IIIMP_card16     ic_id;
00867     IIIMP_int32             maximum_length;
00868 } IIIMP_preedit_start_reply;
00869 
00870 typedef struct {
00871     IIIMP_card7             opcode;
00872     IIIMP_card16     im_id;
00873     IIIMP_card16     ic_id;
00874     IIIMP_int32             caret;
00875     IIIMP_int32             change_first;
00876     IIIMP_int32             change_length;
00877     IIIMP_contents * preedit;
00878 } IIIMP_preedit_draw;
00879 
00880 typedef IIIMP_simple IIIMP_preedit_draw_reply;
00881 typedef IIIMP_simple IIIMP_preedit_done;
00882 typedef IIIMP_simple IIIMP_preedit_done_reply;
00883 typedef IIIMP_simple IIIMP_status_start;
00884 typedef IIIMP_simple IIIMP_status_start_reply;
00885 
00886 typedef struct {
00887     IIIMP_card7             opcode;
00888     IIIMP_card16     im_id;
00889     IIIMP_card16     ic_id;
00890     IIIMP_contents * status;
00891 } IIIMP_status_draw;
00892 
00893 typedef IIIMP_simple IIIMP_status_draw_reply;
00894 typedef IIIMP_simple IIIMP_status_done;
00895 typedef IIIMP_simple IIIMP_status_done_reply;
00896 
00897 typedef struct {
00898     IIIMP_card7             opcode;
00899     IIIMP_card16     im_id;
00900     IIIMP_card16     ic_id;
00901     IIIMP_contents * contents;
00902 } IIIMP_forward_event;
00903 
00904 typedef IIIMP_simple IIIMP_forward_event_reply;
00905 
00906 typedef struct {
00907     IIIMP_card7             opcode;
00908     IIIMP_card16     im_id;
00909     IIIMP_card16     ic_id;
00910     IIIMP_contents * contents;
00911     IIIMP_operation *       operation;
00912 } IIIMP_forward_event_with_operations;
00913 
00914 typedef struct {
00915     IIIMP_card7             opcode;
00916     IIIMP_card16     im_id;
00917     IIIMP_card16     ic_id;
00918     IIIMP_operation *       operation;
00919 } IIIMP_forward_event_with_operations_reply;
00920 
00921 typedef struct {
00922     IIIMP_card7             opcode;
00923     IIIMP_card16     im_id;
00924     IIIMP_card16     ic_id;
00925     IIIMP_contents * contents;
00926 } IIIMP_commit_string;
00927 
00928 typedef struct {
00929     IIIMP_card7             opcode;
00930     IIIMP_card16     im_id;
00931     IIIMP_card16     ic_id;
00932     int                     master;
00933     int                     choice_per_window;
00934     int                     rows;
00935     int                     columns;
00936     int                     direction;
00937     int                     label_owner;
00938 } IIIMP_lookup_choice_start;
00939 
00940 typedef IIIMP_simple IIIMP_lookup_choice_start_reply;
00941 
00942 typedef struct {
00943     IIIMP_card7             opcode;
00944     IIIMP_card16     im_id;
00945     IIIMP_card16     ic_id;
00946     int                     first;
00947     int                     last;
00948     int                     current;
00949     IIIMP_text *     choice;
00950     IIIMP_text *     index_label;
00951     IIIMP_text *     title;
00952 } IIIMP_lookup_choice_draw;
00953 
00954 typedef IIIMP_simple IIIMP_lookup_choice_draw_reply;
00955 
00956 typedef struct {
00957     IIIMP_card7             opcode;
00958     IIIMP_card16     im_id;
00959     IIIMP_card16     ic_id;
00960     int                     type;
00961     int                     value;
00962 } IIIMP_lookup_choice_process;
00963 
00964 typedef IIIMP_simple IIIMP_lookup_choice_process_reply;
00965 typedef IIIMP_simple IIIMP_lookup_choice_done;
00966 typedef IIIMP_simple IIIMP_lookup_choice_done_reply;
00967 
00968 typedef struct {
00969     IIIMP_card7             opcode;
00970     IIIMP_card16     im_id;
00971     IIIMP_card16     ic_id;
00972     IIIMP_card32     class_index;
00973     IIIMP_string *   input_method_name;
00974 } IIIMP_aux_simple;
00975 
00976 typedef struct {
00977     IIIMP_card7             opcode;
00978     IIIMP_card16     im_id;
00979     IIIMP_card16     ic_id;
00980     IIIMP_card32     class_index;
00981     IIIMP_string *   input_method_name;
00982     IIIMP_card32_list *     integer_value;
00983     IIIMP_string *   string_value;
00984 } IIIMP_aux_value;
00985 
00986 /*
00987  * obsolete definitions -- start
00988  */
00989 typedef struct {
00990     size_t              nbyte;
00991     IIIMP_card32        ns_id;
00992     IIIMP_card32        flags;
00993     IIIMP_utf8string *  filename;
00994 } IIIMP_open;
00995 
00996 typedef struct {
00997     IIIMP_card32        nbyte;
00998     IIIMP_card32        ns_id;
00999     IIIMP_card32        ns_errno;
01000 } IIIMP_open_reply;
01001 
01002 typedef struct {
01003     IIIMP_card32        nbyte;
01004     IIIMP_card32        ns_id;
01005     IIIMP_card32        size;
01006 } IIIMP_read;
01007 
01008 typedef struct {
01009     IIIMP_card32        nbyte;
01010     IIIMP_card32        ns_id;
01011     IIIMP_card32        size;
01012     void                *object;
01013     IIIMP_card32        ns_errno;
01014 } IIIMP_read_reply;
01015 
01016 typedef struct {
01017     IIIMP_card32        nbyte;
01018     IIIMP_card32        ns_id;
01019     IIIMP_card32        size;
01020     void                *object;
01021 } IIIMP_write;
01022 
01023 typedef struct {
01024     IIIMP_card32        nbyte;
01025     IIIMP_card32        ns_id;
01026     IIIMP_card32        size;
01027     IIIMP_card32        ns_errno;
01028 } IIIMP_write_reply;
01029 
01030 typedef struct {
01031     IIIMP_card32        nbyte;
01032     IIIMP_card32        ns_id;
01033 } IIIMP_close;
01034 
01035 typedef struct {
01036     IIIMP_card32        nbyte;
01037     IIIMP_card32        ns_id;
01038     IIIMP_card32        ns_errno;
01039 } IIIMP_close_reply;
01040 
01041 typedef struct {
01042     IIIMP_card32        nbyte;
01043     IIIMP_card32        ns_id;
01044     IIIMP_card32        offset;
01045     IIIMP_card32        whence;
01046 } IIIMP_seek;   
01047 
01048 typedef struct {
01049     IIIMP_card32        nbyte;
01050     IIIMP_card32        ns_id;
01051     IIIMP_card32        offset;
01052     IIIMP_card32        ns_errno;
01053 } IIIMP_seek_reply;
01054 
01055 typedef struct {
01056     IIIMP_card32        nbyte;
01057     IIIMP_card32        ns_id;
01058     IIIMP_utf8string    *dirname;
01059 } IIIMP_opendir;
01060 
01061 typedef struct {
01062     IIIMP_card32        nbyte;
01063     IIIMP_card32        ns_id;
01064     IIIMP_card32        nitems;
01065     IIIMP_card32        ns_errno;
01066     IIIMP_utf8string *  d_name;
01067 } IIIMP_opendir_reply;
01068     
01069 typedef struct {
01070     IIIMP_card32        nbyte;
01071     IIIMP_card32        ns_id;
01072 } IIIMP_readdir;
01073 
01074 typedef struct {
01075     IIIMP_card32        nbyte;
01076     IIIMP_card32        ns_id;
01077     struct dirent       *readDir;
01078     IIIMP_card32        ns_errno;
01079 } IIIMP_readdir_reply;
01080 
01081 typedef struct {
01082     IIIMP_card32        nbyte;
01083     IIIMP_card32        ns_id;
01084 } IIIMP_closedir;
01085 
01086 typedef struct {
01087     IIIMP_card32        nbyte;
01088     IIIMP_card32        ns_id;
01089     IIIMP_card32        ns_errno;
01090 } IIIMP_closedir_reply;
01091 
01092 typedef struct {
01093     IIIMP_card32        nbyte;
01094     IIIMP_card32        ns_id;
01095     IIIMP_card32        mode;
01096     IIIMP_utf8string    *path;
01097 } IIIMP_mkdir;
01098 
01099 typedef struct {
01100     IIIMP_card32        nbyte;
01101     IIIMP_card32        ns_id;
01102     IIIMP_card32        ns_errno;
01103 } IIIMP_mkdir_reply;
01104 
01105 typedef struct {
01106     IIIMP_card32        nbyte;
01107     IIIMP_card32        ns_id;
01108     IIIMP_utf8string    *path;
01109 } IIIMP_rmdir;
01110 
01111 typedef struct {
01112     IIIMP_card32        nbyte;
01113     IIIMP_card32        ns_id;
01114     IIIMP_card32        ns_errno;
01115 } IIIMP_rmdir_reply;
01116 
01117 typedef struct {
01118     IIIMP_card32        nbyte;
01119     IIIMP_card32        ns_id;
01120     IIIMP_utf8string    *dest;
01121     IIIMP_utf8string    *src;
01122 } IIIMP_symlink;
01123 
01124 typedef struct {
01125     IIIMP_card32        nbyte;
01126     IIIMP_card32        ns_id;
01127     IIIMP_card32        ns_errno;
01128 } IIIMP_symlink_reply;
01129 
01130 typedef struct _iiimp_stat_struct {
01131     IIIMP_card32        s_mode;
01132     IIIMP_card32        s_nlink;
01133     IIIMP_card32        s_uid;
01134     IIIMP_card32        s_gid;
01135     IIIMP_card32        s_atime;
01136     IIIMP_card32        s_mtime;
01137     IIIMP_card32        s_ctime;
01138     IIIMP_card32        s_blksize;
01139     IIIMP_card32        s_attr;
01140     IIIMP_card64        s_dev;
01141     IIIMP_card64        s_rdev;
01142     IIIMP_card64        s_ino;
01143     IIIMP_card64        s_size;
01144     IIIMP_card64        s_blocks;
01145 } iiimp_stat_struct;
01146 
01147 typedef struct {
01148     IIIMP_card32        nbyte;
01149     IIIMP_card32        ns_id;
01150     IIIMP_utf8string    *path;
01151 } IIIMP_stat;
01152 
01153 typedef struct {
01154     IIIMP_card32         nbyte;
01155     IIIMP_card32         ns_id;
01156     iiimp_stat_struct *  stat_buf;
01157     IIIMP_card32         ns_errno;
01158 } IIIMP_stat_reply;
01159 
01160 typedef struct {
01161     IIIMP_card32        nbyte;
01162     IIIMP_card32        ns_id;
01163     IIIMP_utf8string    *path;
01164 } IIIMP_lstat;
01165 
01166 typedef struct {
01167     IIIMP_card32         nbyte;
01168     IIIMP_card32         ns_id;
01169     iiimp_stat_struct *  stat_buf;
01170     IIIMP_card32         ns_errno;
01171 } IIIMP_lstat_reply;
01172 
01173 typedef struct {
01174     IIIMP_card32        nbyte;
01175     IIIMP_card32        ns_id;
01176 } IIIMP_fstat;
01177 
01178 typedef struct {
01179     IIIMP_card32         nbyte;
01180     IIIMP_card32         ns_id;
01181     iiimp_stat_struct *  stat_buf;
01182     IIIMP_card32         ns_errno;
01183 } IIIMP_fstat_reply;
01184 
01185 typedef struct {
01186     IIIMP_card32        nbyte;
01187     IIIMP_card32        ns_id;
01188     IIIMP_utf8string    *path;
01189     IIIMP_card32        mode;
01190 } IIIMP_creat;
01191 
01192 typedef struct {
01193     IIIMP_card32        nbyte;
01194     IIIMP_card32        ns_id;
01195     IIIMP_card32        ns_errno;
01196 } IIIMP_creat_reply;
01197 
01198 typedef struct {
01199     IIIMP_card32        nbyte;
01200     IIIMP_card32        ns_id;
01201     IIIMP_card32        offset;
01202     IIIMP_card32        whence;
01203 } IIIMP_lseek;
01204 
01205 typedef struct {
01206     IIIMP_card32        nbyte;
01207     IIIMP_card32        ns_id;
01208     IIIMP_card32        offset;
01209     IIIMP_card32        ns_errno;
01210 } IIIMP_lseek_reply;
01211 
01212 typedef struct {
01213     IIIMP_card32        nbyte;
01214     IIIMP_card32        ns_id;
01215     IIIMP_utf8string    *path;
01216 } IIIMP_unlink;
01217 
01218 typedef struct {
01219     IIIMP_card32        nbyte;
01220     IIIMP_card32        ns_id;
01221     IIIMP_card32        ns_errno;
01222 } IIIMP_unlink_reply;
01223 
01224 typedef struct {
01225     IIIMP_card32        nbyte;
01226     IIIMP_card32        ns_id;
01227     IIIMP_utf8string    *old_name;
01228     IIIMP_utf8string    *new_name;
01229 } IIIMP_rename;
01230 
01231 typedef struct {
01232     IIIMP_card32        nbyte;
01233     IIIMP_card32        ns_id;
01234     IIIMP_card32        ns_errno;
01235 } IIIMP_rename_reply;
01236 
01237 typedef struct {
01238     IIIMP_card32        nbyte;
01239     IIIMP_card32        ns_id;
01240     IIIMP_card32        cmd;
01241     IIIMP_card32        arg;
01242 } IIIMP_fcntl;
01243 
01244 typedef struct {
01245     IIIMP_card32        nbyte;
01246     IIIMP_card32        ns_id;
01247     IIIMP_card32        return_value;
01248     IIIMP_card32        ns_errno;
01249 } IIIMP_fcntl_reply;
01250 
01251 typedef struct {
01252     IIIMP_card32        nbyte;
01253     IIIMP_card32        ns_id;
01254     IIIMP_utf8string    *path;
01255     IIIMP_card32        length;
01256 } IIIMP_truncate;
01257 
01258 typedef struct {
01259     IIIMP_card32        nbyte;
01260     IIIMP_card32        ns_id;
01261     IIIMP_card32        ns_errno;
01262 } IIIMP_truncate_reply;
01263 
01264 typedef struct {
01265     IIIMP_card32        nbyte;
01266     IIIMP_card32        ns_id;
01267     IIIMP_card32        length;
01268 } IIIMP_ftruncate;
01269 
01270 typedef struct {
01271     IIIMP_card32        nbyte;
01272     IIIMP_card32        ns_id;
01273     IIIMP_card32        ns_errno;
01274 } IIIMP_ftruncate_reply;
01275 
01276 /*
01277  * obsolete definitions -- end
01278  */
01279 
01280 
01281 typedef IIIMP_aux_simple    IIIMP_aux_start;
01282 typedef IIIMP_aux_simple    IIIMP_aux_start_reply;
01283 typedef IIIMP_aux_value            IIIMP_aux_draw;
01284 typedef IIIMP_aux_simple    IIIMP_aux_draw_reply;
01285 typedef IIIMP_aux_simple    IIIMP_aux_done;
01286 typedef IIIMP_aux_simple    IIIMP_aux_done_reply;
01287 typedef IIIMP_aux_value            IIIMP_aux_setvalues;
01288 typedef IIIMP_aux_simple    IIIMP_aux_setvalues_reply;
01289 typedef IIIMP_aux_value            IIIMP_aux_getvalues;
01290 typedef IIIMP_aux_value            IIIMP_aux_getvalues_reply;
01291 
01292 typedef struct {
01293     char      dummy[1];
01294 } IIIMP_simple_v;
01295 
01296 typedef struct {
01297     int                     byte_order;
01298     int                     protocol_version;
01299     IIIMP_string *   user_name;
01300     IIIMP_string *   auth;
01301 } IIIMP_connect_v;
01302 
01303 typedef struct {
01304     IIIMP_string *   language;
01305 } IIIMP_connect_reply_v;
01306 
01307 typedef IIIMP_simple_v      IIIMP_disconnect_v;
01308 
01309 typedef IIIMP_simple_v      IIIMP_disconnect_reply_v;
01310 
01311 typedef struct {
01312     IIIMP_keyevent_list *   trigger_on;
01313     IIIMP_keyevent_list *   trigger_off;
01314 } IIIMP_register_trigger_keys_v;
01315 
01316 typedef struct {
01317     IIIMP_card16        scope_and_profile_id;
01318     int                 scope;
01319     int                 profile_id;
01320     HOTKEY_LIST *       hotkeys; 
01321 } IIIMP_register_hotkeys_v;
01322 
01323 typedef struct {
01324     IIIMP_card16        scope_and_profile_id;
01325     int                 scope;
01326     int                 profile_id;
01327 } IIIMP_select_hotkey_profile_v;
01328 
01329 typedef struct {
01330     int       flag;
01331 } IIIMP_trigger_notify_v;
01332 
01333 typedef struct {
01334     int       hotkey_id;
01335     int index;
01336 } IIIMP_hotkey_notify_v;
01337 
01338 typedef struct {
01339     int       hotkey_id;
01340     int       current_state_flag;
01341 } IIIMP_hotkey_state_notify_v;
01342 
01343 typedef struct {
01344     IIIMP_card32  type;
01345     void  *       value;
01346 } IIIMP_file_operation_v;
01347     
01348 typedef struct {
01349     IIIMP_card32  type;
01350     void  *       value;
01351 } IIIMP_file_operation_reply_v;
01352 
01353 typedef IIIMP_simple_v      IIIMP_trigger_notify_reply_v;
01354 typedef IIIMP_simple_v      IIIMP_hotkey_notify_reply_v;
01355 typedef IIIMP_simple_v      IIIMP_hotkey_state_notify_reply_v;
01356 
01357 typedef struct {
01358     IIIMP_imattribute *     attr_list;
01359 } IIIMP_setimvalues_v;
01360 
01361 typedef IIIMP_simple_v      IIIMP_setimvalues_reply_v;
01362 
01363 typedef struct {
01364     IIIMP_card16_list *     attr_list;
01365 } IIIMP_getimvalues_v;
01366 
01367 typedef struct {
01368     IIIMP_imattribute *     attr_list;
01369 } IIIMP_getimvalues_reply_v;
01370 
01371 typedef struct {
01372     IIIMP_icattribute *     attr_list;
01373 } IIIMP_createic_v;
01374 
01375 typedef IIIMP_simple_v      IIIMP_createic_reply_v;
01376 
01377 typedef IIIMP_simple_v      IIIMP_destroyic_v;
01378 
01379 typedef IIIMP_simple_v      IIIMP_destroyic_reply_v;
01380 
01381 typedef struct {
01382     IIIMP_icattribute *     attr_list;
01383 } IIIMP_seticvalues_v;
01384 
01385 typedef IIIMP_simple_v      IIIMP_seticvalues_reply_v;
01386 
01387 typedef struct {
01388     IIIMP_card16_list *     attr_list;
01389 } IIIMP_geticvalues_v;
01390 
01391 typedef struct {
01392     IIIMP_icattribute *     attr_list;
01393 } IIIMP_geticvalues_reply_v;
01394 
01395 typedef IIIMP_simple_v      IIIMP_seticfocus_v;
01396 typedef IIIMP_simple_v      IIIMP_seticfocus_reply_v;
01397 typedef IIIMP_simple_v      IIIMP_unseticfocus_v;
01398 typedef IIIMP_simple_v      IIIMP_unseticfocus_reply_v;
01399 typedef IIIMP_simple_v      IIIMP_resetic_v;
01400 typedef IIIMP_simple_v      IIIMP_resetic_reply_v;
01401 typedef IIIMP_simple_v      IIIMP_preedit_start_v;
01402 
01403 typedef struct {
01404     IIIMP_int32             maximum_length;
01405 } IIIMP_preedit_start_reply_v;
01406 
01407 typedef struct {
01408     IIIMP_int32             caret;
01409     IIIMP_int32             change_first;
01410     IIIMP_int32             change_length;
01411     IIIMP_contents * preedit;
01412 } IIIMP_preedit_draw_v;
01413 
01414 typedef IIIMP_simple_v      IIIMP_preedit_draw_reply_v;
01415 typedef IIIMP_simple_v      IIIMP_preedit_done_v;
01416 typedef IIIMP_simple_v      IIIMP_preedit_done_reply_v;
01417 typedef IIIMP_simple_v      IIIMP_status_start_v;
01418 typedef IIIMP_simple_v      IIIMP_status_start_reply_v;
01419 
01420 typedef struct {
01421     IIIMP_contents * status;
01422 } IIIMP_status_draw_v;
01423 
01424 typedef IIIMP_simple_v      IIIMP_status_draw_reply_v;
01425 typedef IIIMP_simple_v      IIIMP_status_done_v;
01426 typedef IIIMP_simple_v      IIIMP_status_done_reply_v;
01427 
01428 typedef struct {
01429     IIIMP_contents * contents;
01430 } IIIMP_forward_event_v;
01431 
01432 typedef IIIMP_simple_v      IIIMP_forward_event_reply_v;
01433 
01434 typedef struct {
01435     IIIMP_contents * contents;
01436     IIIMP_operation *       operation;
01437 } IIIMP_forward_event_with_operations_v;
01438 
01439 typedef struct {
01440     IIIMP_operation *       operation;
01441 } IIIMP_forward_event_with_operations_reply_v;
01442 
01443 typedef struct {
01444     IIIMP_contents * contents;
01445 } IIIMP_commit_string_v;
01446 
01447 typedef struct {
01448     int       master;
01449     int       choice_per_window;
01450     int       rows;
01451     int       columns;
01452     int       direction;
01453     int       label_owner;
01454 } IIIMP_lookup_choice_start_v;
01455 
01456 typedef IIIMP_simple_v      IIIMP_lookup_choice_start_reply_v;
01457 
01458 typedef struct {
01459     int                     first;
01460     int                     last;
01461     int                     current;
01462     IIIMP_text *     choice;
01463     IIIMP_text *     index_label;
01464     IIIMP_text *     title;
01465 } IIIMP_lookup_choice_draw_v;
01466 
01467 typedef IIIMP_simple_v      IIIMP_lookup_choice_draw_reply_v;
01468 
01469 typedef struct {
01470     int       type;
01471     int       value;
01472 } IIIMP_lookup_choice_process_v;
01473 
01474 typedef IIIMP_simple_v      IIIMP_lookup_choice_process_reply_v;
01475 typedef IIIMP_simple_v      IIIMP_lookup_choice_done_v;
01476 typedef IIIMP_simple_v      IIIMP_lookup_choice_done_reply_v;
01477 
01478 typedef struct {
01479     IIIMP_card32     class_index;
01480     IIIMP_string *   input_method_name;
01481 } IIIMP_aux_simple_v;
01482 
01483 typedef struct {
01484     IIIMP_card32     class_index;
01485     IIIMP_string *   input_method_name;
01486     IIIMP_card32_list *     integer_value;
01487     IIIMP_string *   string_value;
01488 } IIIMP_aux_value_v;
01489 
01490 typedef IIIMP_aux_simple_v  IIIMP_aux_start_v;
01491 typedef IIIMP_aux_simple_v  IIIMP_aux_start_reply_v;
01492 typedef IIIMP_aux_value_v   IIIMP_aux_draw_v;
01493 typedef IIIMP_aux_simple_v  IIIMP_aux_draw_reply_v;
01494 typedef IIIMP_aux_simple_v  IIIMP_aux_done_v;
01495 typedef IIIMP_aux_simple_v  IIIMP_aux_done_reply_v;
01496 typedef IIIMP_aux_value_v   IIIMP_aux_setvalues_v;
01497 typedef IIIMP_aux_simple_v  IIIMP_aux_setvalues_reply_v;
01498 typedef IIIMP_aux_value_v   IIIMP_aux_getvalues_v;
01499 typedef IIIMP_aux_value_v   IIIMP_aux_getvalues_reply_v;
01500 
01501 typedef struct {
01502     int       number;
01503 } IIIMP_protocol_version_v;
01504 
01505 typedef struct {
01506     int              opcode;
01507     uint32_t  length;       /* (byte_length << 4) */
01508     int              im_id;
01509     int              ic_id;
01510 
01511     union {
01512        IIIMP_connect_v                    connect;
01513        IIIMP_connect_reply_v              connect_reply;
01514        IIIMP_disconnect_v          disconnect;
01515        IIIMP_disconnect_reply_v    disconnect_reply;
01516        IIIMP_register_trigger_keys_v      register_trigger_keys;
01517        IIIMP_trigger_notify_v             trigger_notify;
01518        IIIMP_trigger_notify_reply_v       trigger_notify_reply;
01519        IIIMP_register_hotkeys_v    register_hotkeys;
01520        IIIMP_select_hotkey_profile_v      select_hotkey_profile;
01521        IIIMP_hotkey_notify_v              hotkey_notify;
01522        IIIMP_hotkey_notify_reply_v hotkey_notify_reply;
01523        IIIMP_hotkey_state_notify_v hotkey_state_notify;
01524        IIIMP_hotkey_state_notify_reply_v  hotkey_state_notify_reply;
01525        IIIMP_setimvalues_v         setimvalues;
01526        IIIMP_setimvalues_reply_v   setimvalues_reply;
01527        IIIMP_getimvalues_v         getimvalues;
01528        IIIMP_getimvalues_reply_v   getimvalues_reply;
01529        
01530        IIIMP_forward_event_v              forward_event;
01531        IIIMP_forward_event_reply_v forward_event_reply;
01532        
01533        IIIMP_commit_string_v              commit_string;
01534        
01535        IIIMP_forward_event_with_operations_v
01536        forward_event_with_operations;
01537        IIIMP_forward_event_with_operations_reply_v
01538        forward_event_with_operations_reply;
01539 
01540        IIIMP_createic_v            createic;
01541        IIIMP_createic_reply_v             createic_reply;
01542        IIIMP_destroyic_v           destroyic;
01543        IIIMP_destroyic_reply_v            destroyic_reply;
01544        IIIMP_seticvalues_v         seticvalues;
01545        IIIMP_seticvalues_reply_v   seticvalues_reply;
01546        IIIMP_geticvalues_v         geticvalues;
01547        IIIMP_geticvalues_reply_v   geticvalues_reply;
01548        IIIMP_seticfocus_v          seticfocus;
01549        IIIMP_seticfocus_reply_v    seticfocus_reply;
01550        IIIMP_unseticfocus_v        unseticfocus;
01551        IIIMP_unseticfocus_reply_v  unseticfocus_reply;
01552        IIIMP_resetic_v                    resetic;
01553        IIIMP_resetic_reply_v              resetic_reply;
01554        IIIMP_preedit_start_v              preedit_start;
01555        IIIMP_preedit_start_reply_v preedit_start_reply;
01556        IIIMP_preedit_draw_v        preedit_draw;
01557        IIIMP_preedit_draw_reply_v  preedit_draw_reply;
01558        IIIMP_preedit_done_v        preedit_done;
01559        IIIMP_preedit_done_reply_v  preedit_done_reply;
01560        
01561        IIIMP_status_start_v        status_start;
01562        IIIMP_status_start_reply_v  status_start_reply;
01563        IIIMP_status_draw_v         status_draw;
01564        IIIMP_status_draw_reply_v   status_draw_reply;
01565        IIIMP_status_done_v         status_done;
01566        IIIMP_status_done_reply_v   status_done_reply;
01567 
01568        IIIMP_lookup_choice_start_v lookup_choice_start;
01569        IIIMP_lookup_choice_start_reply_v
01570        lookup_choice_start_reply;
01571        IIIMP_lookup_choice_draw_v  lookup_choice_draw;
01572        IIIMP_lookup_choice_draw_reply_v   lookup_choice_draw_reply;
01573        IIIMP_lookup_choice_done_v  lookup_choice_done;
01574        IIIMP_lookup_choice_done_reply_v   lookup_choice_done_reply;
01575        IIIMP_lookup_choice_process_v      lookup_choice_process;
01576        IIIMP_lookup_choice_process_reply_v
01577        lookup_choice_process_reply;
01578 
01579        IIIMP_aux_simple_v          aux_simple;
01580        IIIMP_aux_value_v           aux_value;
01581 
01582        IIIMP_aux_start_v           aux_start;
01583        IIIMP_aux_start_reply_v            aux_start_reply;
01584        IIIMP_aux_draw_v            aux_draw;
01585        IIIMP_aux_draw_reply_v             aux_draw_reply;
01586        IIIMP_aux_done_v            aux_done;
01587        IIIMP_aux_done_reply_v             aux_done_reply;
01588        IIIMP_aux_setvalues_v              aux_setvalues;
01589        IIIMP_aux_setvalues_reply_v aux_setvalues_reply;
01590        IIIMP_aux_getvalues_v              aux_getvalues;
01591        IIIMP_aux_getvalues_reply_v aux_getvalues_reply;
01592 
01593        IIIMP_protocol_version_v    protocol_version;
01594 
01595        IIIMP_file_operation_v             file_operation;
01596        IIIMP_file_operation_reply_v    file_operation_reply;
01597 
01598     }         v;
01599 
01600 } IIIMP_message;
01601 
01602 typedef struct iiimp_data_s IIIMP_data_s;
01603 
01604 
01605 /* enumeration */
01606 
01607 typedef enum {
01608        IIIMP_DATA_NO_ERROR         = 0,
01609        IIIMP_DATA_MALLOC_ERROR            = 1,
01610        IIIMP_DATA_INVALID          = 2,
01611        IIIMP_DATA_PROTOCOL_VERSION_ERROR = 3
01612 } IIIMP_status;
01613 
01614 
01615 /* public interface prototype */
01616 
01617 extern IIIMP_message *      iiimp_message_unpack(
01618     IIIMP_data_s *   data_s,
01619     IIIMP_card7             opcode,
01620     size_t *         nbyte,
01621     const uchar_t ** ptr);
01622 
01623 extern uchar_t *     iiimp_message_pack(
01624     IIIMP_data_s *   data_s,
01625     IIIMP_message *  m,
01626     size_t *         nbyte);
01627 
01628 extern FILE * iiimp_data_print_fp(IIIMP_data_s * data_s, FILE * fp);
01629 extern uint_t iiimp_data_print_flag(IIIMP_data_s * data_s, uint_t log_flag);
01630 extern int    iiimp_data_status(IIIMP_data_s * im);
01631 
01632 extern void   iiimp_message_print(IIIMP_data_s * data_s, IIIMP_message * m);
01633 
01634 extern const char *  iiimp_opcode_string(int num);
01635 
01636 
01637 extern uchar_t *
01638 iiimp_simple_pack(
01639     IIIMP_data_s *   data_s,
01640     IIIMP_card7             opcode,
01641     IIIMP_card16     im_id,
01642     IIIMP_card16     ic_id,
01643     size_t *         buf_size);
01644 
01645 extern uchar_t *
01646 iiimp_connect_pack(
01647     IIIMP_data_s *   data_s,
01648     IIIMP_string *   user_name,
01649     IIIMP_string *   auth_protocol,
01650     size_t *         buf_size);
01651 
01652 extern uchar_t *
01653 iiimp_protocol_version_pack(
01654     IIIMP_data_s *   data_s,
01655     IIIMP_card16     im_id,
01656     int                     protocol_version,
01657     size_t *         buf_size);
01658 
01659 extern uchar_t *
01660 iiimp_connect_reply_pack(
01661     IIIMP_data_s *   data_s,
01662     IIIMP_card16     im_id,
01663     IIIMP_string *   language_list,
01664     size_t *         buf_size);
01665 
01666 extern uchar_t *
01667 iiimp_register_trigger_keys_pack(
01668     IIIMP_data_s *          data_s,
01669     IIIMP_card16            im_id,
01670     IIIMP_keyevent_list *   trigger_on,
01671     IIIMP_keyevent_list *   trigger_off,
01672     size_t *                buf_size);
01673 
01674 extern uchar_t *
01675 iiimp_register_hotkeys_pack(
01676     IIIMP_data_s *          data_s,
01677     IIIMP_card16            im_id,
01678     IIIMP_card16            flag,
01679     HOTKEY_LIST *            hotkeys,
01680     size_t *                buf_size);
01681 
01682 extern uchar_t *
01683 iiimp_trigger_notify_pack(
01684     IIIMP_data_s *   data_s,
01685     IIIMP_card16     im_id,
01686     IIIMP_card16     ic_id,
01687     IIIMP_card16     flag,
01688     size_t *         buf_size);
01689 
01690 extern uchar_t *
01691 iiimp_hotkey_notify_pack(
01692     IIIMP_data_s *   data_s,
01693     IIIMP_card16     im_id,
01694     IIIMP_card16     ic_id,
01695     IIIMP_card16     hotkey_id,
01696     IIIMP_card16     index,
01697     size_t *         buf_size);
01698 
01699 extern uchar_t *
01700 iiimp_hotkey_state_notify_pack(
01701     IIIMP_data_s *   data_s,
01702     IIIMP_card16     im_id,
01703     IIIMP_card16     ic_id,
01704     IIIMP_card16     hotkey_id,
01705     IIIMP_card8             current_state_flag,
01706     size_t *         buf_size);
01707 
01708 extern uchar_t *
01709 iiimp_select_hotkey_profile_pack(
01710     IIIMP_data_s *   data_s,
01711     IIIMP_card16     im_id,
01712     IIIMP_card16     scope_and_profile_id,
01713     size_t *         buf_size);
01714 
01715 extern uchar_t *
01716 iiimp_setimvalues_pack(
01717     IIIMP_data_s *   data_s,
01718     IIIMP_card16     im_id,
01719     IIIMP_imattribute *     attr_list,
01720     size_t *         buf_size);
01721 
01722 extern uchar_t *
01723 iiimp_getimvalues_pack(
01724     IIIMP_data_s *   data_s,
01725     IIIMP_card16     im_id,
01726     IIIMP_card16_list *     attr_list,
01727     size_t *         buf_size);
01728 
01729 extern uchar_t *
01730 iiimp_getimvalues_reply_pack(
01731     IIIMP_data_s *   data_s,
01732     IIIMP_card16     im_id,
01733     IIIMP_imattribute *     attr_list,
01734     size_t *         buf_size);
01735 
01736 extern uchar_t *
01737 iiimp_forward_event_pack(
01738     IIIMP_data_s *   data_s,
01739     IIIMP_card16     im_id,
01740     IIIMP_card16     ic_id,
01741     IIIMP_contents * contents,
01742     size_t *         buf_size);
01743 
01744 extern uchar_t *
01745 iiimp_commit_string_pack(
01746     IIIMP_data_s *   data_s,
01747     IIIMP_card16     im_id,
01748     IIIMP_card16     ic_id,
01749     IIIMP_contents * contents,
01750     size_t *         buf_size);
01751 
01752 extern uchar_t *
01753 iiimp_forward_event_with_operations_pack(
01754     IIIMP_data_s *   data_s,
01755     IIIMP_card16     im_id,
01756     IIIMP_card16     ic_id,
01757     IIIMP_contents * contents,
01758     IIIMP_operation *       operation_list,
01759     size_t *         buf_size);
01760 
01761 extern uchar_t *
01762 iiimp_forward_event_with_operations_reply_pack(
01763     IIIMP_data_s *   data_s,
01764     IIIMP_card16     im_id,
01765     IIIMP_card16     ic_id,
01766     IIIMP_operation *       operation_list,
01767     size_t *         buf_size);
01768 
01769 extern uchar_t *
01770 iiimp_createic_pack(
01771     IIIMP_data_s *   data_s,
01772     IIIMP_card16     im_id,
01773     IIIMP_icattribute *     attr_list,
01774     size_t *         buf_size);
01775 
01776 extern uchar_t *
01777 iiimp_seticvalues_pack(
01778     IIIMP_data_s *   data_s,
01779     IIIMP_card16     im_id,
01780     IIIMP_card16     ic_id,
01781     IIIMP_icattribute *     attr_list,
01782     size_t *         buf_size);
01783 
01784 extern uchar_t *
01785 iiimp_geticvalues_pack(
01786     IIIMP_data_s *   data_s,
01787     IIIMP_card16     im_id,
01788     IIIMP_card16     ic_id,
01789     IIIMP_card16_list *     attr_list,
01790     size_t *         buf_size);
01791 
01792 extern uchar_t *
01793 iiimp_geticvalues_reply_pack(
01794     IIIMP_data_s *   data_s,
01795     IIIMP_card16     im_id,
01796     IIIMP_card16     ic_id,
01797     IIIMP_icattribute *     attr_list,
01798     size_t *         buf_size);
01799 
01800 extern uchar_t *
01801 iiimp_preedit_start_reply_pack(
01802     IIIMP_data_s *   data_s,
01803     IIIMP_card16     im_id,
01804     IIIMP_card16     ic_id,
01805     IIIMP_int32             maximum_length,
01806     size_t *         buf_size);
01807 
01808 extern uchar_t *
01809 iiimp_preedit_draw_pack(
01810     IIIMP_data_s *   data_s,
01811     IIIMP_card16     im_id,
01812     IIIMP_card16     ic_id,
01813     IIIMP_int32             caret,
01814     IIIMP_int32             change_first,
01815     IIIMP_int32             change_length,
01816     IIIMP_contents * preedit,
01817     size_t *         buf_size);
01818 
01819 extern uchar_t *
01820 iiimp_status_draw_pack(
01821     IIIMP_data_s *   data_s,
01822     IIIMP_card16     im_id,
01823     IIIMP_card16     ic_id,
01824     IIIMP_contents * status,
01825     size_t *         buf_size);
01826 
01827 extern uchar_t *
01828 iiimp_lookup_choice_start_pack(
01829     IIIMP_data_s *   data_s,
01830     IIIMP_card16     im_id,
01831     IIIMP_card16     ic_id,
01832     int                     master,
01833     int                     choice_per_window,
01834     int                     rows,
01835     int                     columns,
01836     int                     direction,
01837     int                     label_owner,
01838     size_t *         buf_size);
01839 
01840 extern uchar_t *
01841 iiimp_lookup_choice_draw_pack(
01842     IIIMP_data_s *   data_s,
01843     IIIMP_card16     im_id,
01844     IIIMP_card16     ic_id,
01845     int                     first,
01846     int                     last,
01847     int                     current,
01848     IIIMP_text *     choice,
01849     IIIMP_text *     index_label,
01850     IIIMP_text *     title,
01851     size_t *         buf_size);
01852 
01853 extern uchar_t *
01854 iiimp_lookup_choice_process_pack(
01855     IIIMP_data_s *   data_s,
01856     IIIMP_card16     im_id,
01857     IIIMP_card16     ic_id,
01858     IIIMP_card16     type,
01859     IIIMP_card16     value,
01860     size_t *         buf_size);
01861 
01862 extern uchar_t *
01863 iiimp_aux_simple_pack(
01864     IIIMP_data_s *   data_s,
01865     IIIMP_card7             opcode,
01866     IIIMP_card16     im_id,
01867     IIIMP_card16     ic_id,
01868     IIIMP_card32     class_index,
01869     IIIMP_string *   input_method_name,
01870     size_t *         buf_size);
01871 
01872 extern uchar_t *
01873 iiimp_aux_value_pack(
01874     IIIMP_data_s *   data_s,
01875     IIIMP_card7             code,
01876     IIIMP_card16     im_id,
01877     IIIMP_card16     ic_id,
01878     IIIMP_card32     class_index,
01879     IIIMP_string *   input_method_name,
01880     IIIMP_card32_list *     integer_value,
01881     IIIMP_string *   string_value,
01882     size_t *         buf_size);
01883 
01884 extern uchar_t *
01885 iiimp_file_operation_pack(
01886     IIIMP_data_s *   data_s,
01887     IIIMP_card16        im_id,
01888     IIIMP_card32        type,
01889     void *              object,
01890     size_t *         buf_size);
01891 
01892 extern uchar_t *
01893 iiimp_file_operation_reply_pack(
01894     IIIMP_data_s *   data_s,
01895     IIIMP_card16        im_id,
01896     IIIMP_card32        type,
01897     void *           object,
01898     size_t *         buf_size);
01899 
01900 #define iiimp_disconnect_pack(data_s, im_id, buf_size) \
01901               iiimp_simple_pack(data_s, IM_DISCONNECT, im_id, 0, buf_size)
01902 #define iiimp_disconnect_reply_pack(data_s, im_id, buf_size) \
01903               iiimp_simple_pack(data_s, IM_DISCONNECT_REPLY, im_id, 0, buf_size)
01904 #define iiimp_trigger_notify_reply_pack(data_s, im_id, ic_id, buf_size) \
01905               iiimp_simple_pack(data_s, IM_TRIGGER_NOTIFY_REPLY, im_id, ic_id, buf_size)
01906 #define iiimp_hotkey_notify_reply_pack(data_s, im_id, ic_id, buf_size) \
01907               iiimp_simple_pack(data_s, IM_HOTKEY_NOTIFY_REPLY, im_id, ic_id, buf_size)
01908 #define iiimp_hotkey_state_notify_reply_pack(data_s, im_id, ic_id, buf_size) \
01909               iiimp_simple_pack(data_s, IM_HOTKEY_STATE_NOTIFY_REPLY, im_id, ic_id, buf_size)
01910 #define iiimp_setimvalues_reply_pack(data_s, im_id, buf_size) \
01911               iiimp_simple_pack(data_s, IM_SETIMVALUES_REPLY, im_id, 0, buf_size)
01912 #define iiimp_forward_event_reply_pack(data_s, im_id, ic_id, buf_size) \
01913               iiimp_simple_pack(data_s, IM_FORWARD_EVENT_REPLY, im_id, ic_id, buf_size)
01914 #define iiimp_createic_reply_pack(data_s, im_id, ic_id, buf_size) \
01915               iiimp_simple_pack(data_s, IM_CREATEIC_REPLY, im_id, ic_id, buf_size)
01916 #define iiimp_destroyic_pack(data_s, im_id, ic_id, buf_size) \
01917               iiimp_simple_pack(data_s, IM_DESTROYIC, im_id, ic_id, buf_size)
01918 #define iiimp_destroyic_reply_pack(data_s, im_id, ic_id, buf_size) \
01919               iiimp_simple_pack(data_s, IM_DESTROYIC_REPLY, im_id, ic_id, buf_size)
01920 #define iiimp_seticvalues_reply_pack(data_s, im_id, ic_id, buf_size) \
01921               iiimp_simple_pack(data_s, IM_SETICVALUES_REPLY, im_id, ic_id, buf_size)
01922 #define iiimp_seticfocus_pack(data_s, im_id, ic_id, buf_size) \
01923               iiimp_simple_pack(data_s, IM_SETICFOCUS, im_id, ic_id, buf_size)
01924 #define iiimp_seticfocus_reply_pack(data_s, im_id, ic_id, buf_size) \
01925               iiimp_simple_pack(data_s, IM_SETICFOCUS_REPLY, im_id, ic_id, buf_size)
01926 #define iiimp_unseticfocus_pack(data_s, im_id, ic_id, buf_size) \
01927               iiimp_simple_pack(data_s, IM_UNSETICFOCUS, im_id, ic_id, buf_size)
01928 #define iiimp_unseticfocus_reply_pack(data_s, im_id, ic_id, buf_size) \
01929               iiimp_simple_pack(data_s, IM_UNSETICFOCUS_REPLY, im_id, ic_id, buf_size)
01930 #define iiimp_resetic_pack(data_s, im_id, ic_id, buf_size) \
01931               iiimp_simple_pack(data_s, IM_RESETIC, im_id, ic_id, buf_size)
01932 #define iiimp_resetic_reply_pack(data_s, im_id, ic_id, buf_size) \
01933               iiimp_simple_pack(data_s, IM_RESETIC_REPLY, im_id, ic_id, buf_size)
01934 #define iiimp_preedit_start_pack(data_s, im_id, ic_id, buf_size) \
01935               iiimp_simple_pack(data_s, IM_PREEDIT_START, im_id, ic_id, buf_size)
01936 #define iiimp_preedit_draw_reply_pack(data_s, im_id, ic_id, buf_size) \
01937               iiimp_simple_pack(data_s, IM_PREEDIT_DRAW_REPLY, im_id, ic_id, buf_size)
01938 #define iiimp_preedit_done_pack(data_s, im_id, ic_id, buf_size) \
01939               iiimp_simple_pack(data_s, IM_PREEDIT_DONE, im_id, ic_id, buf_size)
01940 #define iiimp_preedit_done_reply_pack(data_s, im_id, ic_id, buf_size) \
01941               iiimp_simple_pack(data_s, IM_PREEDIT_DONE_REPLY, im_id, ic_id, buf_size)
01942 #define iiimp_status_start_pack(data_s, im_id, ic_id, buf_size) \
01943               iiimp_simple_pack(data_s, IM_STATUS_START, im_id, ic_id, buf_size)
01944 #define iiimp_status_start_reply_pack(data_s, im_id, ic_id, buf_size) \
01945               iiimp_simple_pack(data_s, IM_STATUS_START_REPLY, im_id, ic_id, buf_size)
01946 #define iiimp_status_draw_reply_pack(data_s, im_id, ic_id, buf_size) \
01947               iiimp_simple_pack(data_s, IM_STATUS_DRAW_REPLY, im_id, ic_id, buf_size)
01948 #define iiimp_status_done_pack(data_s, im_id, ic_id, buf_size) \
01949               iiimp_simple_pack(data_s, IM_STATUS_DONE, im_id, ic_id, buf_size)
01950 #define iiimp_status_done_reply_pack(data_s, im_id, ic_id, buf_size) \
01951               iiimp_simple_pack(data_s, IM_STATUS_DONE_REPLY, im_id, ic_id, buf_size)
01952 #define iiimp_lookup_choice_start_reply_pack(data_s, im_id, ic_id, buf_size) \
01953               iiimp_simple_pack(data_s, IM_LOOKUP_CHOICE_START_REPLY, im_id, ic_id, buf_size)
01954 #define iiimp_lookup_choice_draw_reply_pack(data_s, im_id, ic_id, buf_size) \
01955               iiimp_simple_pack(data_s, IM_LOOKUP_CHOICE_DRAW_REPLY, im_id, ic_id, buf_size)
01956 #define iiimp_lookup_choice_done_pack(data_s, im_id, ic_id, buf_size) \
01957               iiimp_simple_pack(data_s, IM_LOOKUP_CHOICE_DONE, im_id, ic_id, buf_size)
01958 #define iiimp_lookup_choice_done_reply_pack(data_s, im_id, ic_id, buf_size) \
01959               iiimp_simple_pack(data_s, IM_LOOKUP_CHOICE_DONE_REPLY, im_id, ic_id, buf_size)
01960 #define iiimp_lookup_choice_process_reply_pack(data_s, im_id, ic_id, buf_size) \
01961               iiimp_simple_pack(data_s, IM_LOOKUP_CHOICE_PROCESS_REPLY, im_id, ic_id, buf_size)
01962 #define iiimp_aux_start_pack(data_s, im_id, ic_id, buf_size) \
01963               iiimp_aux_simple_pack(data_s, IM_AUX_START, im_id, ic_id, buf_size)
01964 #define iiimp_aux_start_reply_pack(data_s, im_id, ic_id, buf_size) \
01965               iiimp_aux_simple_pack(data_s, IM_AUX_START_REPLY, im_id, ic_id, buf_size)
01966 #define iiimp_aux_draw_pack(data_s, im_id, ic_id, buf_size) \
01967               iiimp_aux_value_pack(data_s, IM_AUX_DRAW, im_id, ic_id, buf_size)
01968 #define iiimp_aux_draw_reply_pack(data_s, im_id, ic_id, buf_size) \
01969               iiimp_aux_simple_pack(data_s, IM_AUX_DRAW_REPLY, im_id, ic_id, buf_size)
01970 #define iiimp_aux_done_pack(data_s, im_id, ic_id, buf_size) \
01971               iiimp_aux_simple_pack(data_s, IM_AUX_DONE, im_id, ic_id, buf_size)
01972 #define iiimp_aux_done_reply_pack(data_s, im_id, ic_id, buf_size) \
01973               iiimp_aux_simple_pack(data_s, IM_AUX_DONE_REPLY, im_id, ic_id, buf_size)
01974 #define iiimp_aux_setvalues_pack(data_s, im_id, ic_id, buf_size) \
01975               iiimp_aux_value_pack(data_s, IM_AUX_SETVALUES, im_id, ic_id, buf_size)
01976 #define iiimp_aux_setvalues_reply_pack(data_s, im_id, ic_id, buf_size) \
01977               iiimp_aux_simple_pack(data_s, IM_AUX_SETVALUES_REPLY, im_id, ic_id, buf_size)
01978 #define iiimp_aux_getvalues_pack(data_s, im_id, ic_id, buf_size) \
01979               iiimp_aux_value_pack(data_s, IM_AUX_GETVALUES, im_id, ic_id, buf_size)
01980 #define iiimp_aux_getvalues_reply_pack(data_s, im_id, ic_id, buf_size) \
01981               iiimp_aux_value_pack(data_s, IM_AUX_GETVALUES_REPLY, im_id, ic_id, buf_size)
01982 
01983 
01984 /* composite data interface prototype */
01985 
01986 extern IIIMP_card16_list *
01987 iiimp_card16_list_new(
01988     IIIMP_data_s *          data_s,
01989     int                            count,
01990     const IIIMP_card16 *    ptr);
01991 
01992 extern IIIMP_card32_list *
01993 iiimp_card32_list_new(
01994     IIIMP_data_s *          data_s,
01995     int                            count,
01996     const IIIMP_card32 *    ptr);
01997 
01998 extern IIIMP_string *
01999 iiimp_string_new(
02000     IIIMP_data_s *          data_s,
02001     size_t                  len,
02002     const IIIMP_card16 *    ptr);
02003 
02004 extern IIIMP_utf8string *
02005 iiimp_utf8string_new(
02006     IIIMP_data_s *          data_s,
02007     size_t                  len,
02008     const IIIMP_card8 *         ptr);
02009 
02010 extern IIIMP_feedback_attr_list *
02011 iiimp_feedback_attr_list_new(
02012     IIIMP_data_s *          data_s,
02013     int                            count,
02014     const IIIMP_feedback_attr *    ptr);
02015 
02016 extern IIIMP_char_with_feedback *
02017 iiimp_char_with_feedback_new(
02018     IIIMP_data_s *          data_s,
02019     IIIMP_card16            code,
02020     IIIMP_feedback_attr_list *     feedback_attr);
02021 
02022 extern IIIMP_operation *
02023 iiimp_operation_new(
02024     IIIMP_data_s *   data_s,
02025     IIIMP_string *   id,
02026     size_t           value_nbyte,
02027     uchar_t *        value);
02028 
02029 extern IIIMP_annotation_value *
02030 iiimp_annotation_value_text_new(
02031     IIIMP_data_s *   data_s,
02032     IIIMP_int32             start_index,
02033     IIIMP_int32             end_index,
02034     IIIMP_text *     value);
02035 
02036 extern IIIMP_annotation_value *
02037 iiimp_annotation_value_string_new(
02038     IIIMP_data_s *   data_s,
02039     IIIMP_int32             start_index,
02040     IIIMP_int32             end_index,
02041     IIIMP_string *   value);
02042 
02043 extern IIIMP_annotation *
02044 iiimp_annotation_new(
02045     IIIMP_data_s *          data_s,
02046     IIIMP_card32            id,
02047     IIIMP_annotation_value *       value);
02048 
02049 extern IIIMP_text *
02050 iiimp_text_new(
02051     IIIMP_data_s *          data_s,
02052     IIIMP_char_with_feedback *     cwf,
02053     IIIMP_annotation *             anno);
02054 
02055 extern IIIMP_client_descriptor *
02056 iiimp_client_descriptor_new(
02057     IIIMP_data_s *   data_s,
02058     IIIMP_string *   type,
02059     IIIMP_string *   os_name,
02060     IIIMP_string *   arch,
02061     IIIMP_string *   version,
02062     IIIMP_string *   X_display_name,
02063     IIIMP_string *   X_server_vendor);
02064 
02065 extern IIIMP_object_descriptor *
02066 iiimp_object_descriptor_new(
02067     IIIMP_data_s *   data_s,
02068     IIIMP_card16     category,
02069     IIIMP_card32     object_size,
02070     IIIMP_card16     id_pre,
02071     IIIMP_card16     id_dyn,
02072     IIIMP_string *   rdun,
02073     IIIMP_string *   hrn,
02074     IIIMP_string *   signature,
02075     IIIMP_string *   user);
02076 
02077 extern IIIMP_ccdef *
02078 iiimp_ccdef_new(
02079     IIIMP_data_s *   data_s,
02080     IIIMP_string *   contents);
02081 
02082 extern IIIMP_language *
02083 iiimp_language_new(
02084     IIIMP_data_s *   data_s,
02085     IIIMP_string *   hrn,
02086     IIIMP_string *   id);
02087 
02088 extern IIIMP_imeinfo *
02089 iiimp_imeinfo_new(
02090     IIIMP_data_s *   data_s,
02091     IIIMP_card32     enable,
02092     IIIMP_string *   ime_id,
02093     IIIMP_string *   imename,
02094     IIIMP_string *   version,
02095     IIIMP_string *   description,
02096     IIIMP_string *   author,
02097     IIIMP_string *   copyright,
02098     IIIMP_string *   reserved1,
02099     IIIMP_string *   reserved2);
02100 
02101 extern IIIMP_jarfile_object *
02102 iiimp_jarfile_object_new(
02103     IIIMP_data_s *   data_s,
02104     IIIMP_string *   class_names,
02105     size_t           value_nbyte,
02106     const uchar_t *  value);
02107 
02108 extern IIIMP_inputmethod_descriptor *
02109 iiimp_inputmethod_descriptor_new(
02110     IIIMP_data_s *   data_s,
02111     IIIMP_card16     id,
02112     IIIMP_string *   idname,
02113     IIIMP_string *   hrn,
02114     IIIMP_language * language,
02115     IIIMP_string *   rdun);
02116 
02117 extern IIIMP_inputmethod_descriptor *
02118 iiimp_inputmethod_descriptor2_new(
02119     IIIMP_data_s *   data_s,
02120     IIIMP_card16     id,
02121     IIIMP_string *   idname,
02122     IIIMP_string *   hrn,
02123     IIIMP_language * language,
02124     IIIMP_string *   rdun,
02125     IIIMP_imeinfo *  imeinfo);
02126 
02127 extern IIIMP_binaryfile_object *
02128 iiimp_binaryfile_object_new(
02129     IIIMP_data_s *   data_s,
02130     IIIMP_string *   object);
02131 
02132 extern IIIMP_imattribute *
02133 iiimp_imattribute_inputmethod_descriptor_new(
02134     IIIMP_data_s *                 data_s,
02135     IIIMP_card16                   id,
02136     IIIMP_card16                   id_dyn,
02137     IIIMP_inputmethod_descriptor * value);
02138 
02139 extern IIIMP_imattribute *
02140 iiimp_imattribute_object_descriptor_new(
02141     IIIMP_data_s *          data_s,
02142     IIIMP_card16            id,
02143     IIIMP_card16            id_dyn,
02144     IIIMP_object_descriptor *      value);
02145 
02146 extern IIIMP_imattribute *
02147 iiimp_imattribute_client_descriptor_new(
02148     IIIMP_data_s *          data_s,
02149     IIIMP_card16            id,
02150     IIIMP_card16            id_dyn,
02151     IIIMP_client_descriptor *      value);
02152 
02153 extern IIIMP_imattribute *
02154 iiimp_imattribute_ccdef_new(
02155     IIIMP_data_s *   data_s,
02156     IIIMP_card16     id,
02157     IIIMP_card16     id_dyn,
02158     IIIMP_ccdef *    value);
02159 
02160 extern IIIMP_imattribute *
02161 iiimp_imattribute_jar_gui_object_new(
02162     IIIMP_data_s *          data_s,
02163     IIIMP_card16            id,
02164     IIIMP_card16            id_dyn,
02165     IIIMP_jarfile_object *  value);
02166 
02167 extern IIIMP_imattribute *
02168 iiimp_imattribute_jar_light_weight_engine_object_new(
02169     IIIMP_data_s *          data_s,
02170     IIIMP_card16            id,
02171     IIIMP_card16            id_dyn,
02172     IIIMP_jarfile_object *  value);
02173 
02174 extern IIIMP_imattribute *
02175 iiimp_imattribute_binary_gui_object_new(
02176     IIIMP_data_s *          data_s,
02177     IIIMP_card16            id,
02178     IIIMP_card16            id_dyn,
02179     IIIMP_binaryfile_object *      value);
02180 
02181 extern IIIMP_imattribute *
02182 iiimp_imattribute_binary_light_weight_engine_new(
02183     IIIMP_data_s *          data_s,
02184     IIIMP_card16            id,
02185     IIIMP_card16            id_dyn,
02186     IIIMP_binaryfile_object *      value);
02187 
02188 extern IIIMP_imattribute *
02189 iiimp_imattribute_script_gui_object_new(
02190     IIIMP_data_s *          data_s,
02191     IIIMP_card16            id,
02192     IIIMP_card16            id_dyn,
02193     IIIMP_binaryfile_object *      value);
02194 
02195 extern IIIMP_imattribute *
02196 iiimp_imattribute_script_light_weight_engine_new(
02197     IIIMP_data_s *          data_s,
02198     IIIMP_card16            id,
02199     IIIMP_card16            id_dyn,
02200     IIIMP_binaryfile_object *      value);
02201 
02202 extern IIIMP_imattribute *
02203 iiimp_imattribute_capability_new(
02204     IIIMP_data_s *          data_s,
02205     IIIMP_card16            id,
02206     IIIMP_card16            id_dyn,
02207     IIIMP_card32_list *            value);
02208 
02209 extern IIIMP_icattribute *
02210 iiimp_icattribute_input_language_new(
02211     IIIMP_data_s *   data_s,
02212     IIIMP_string *   value);
02213 
02214 extern IIIMP_icattribute *
02215 iiimp_icattribute_character_subsets_new(
02216     IIIMP_data_s *   data_s,
02217     IIIMP_card32_list *     value);
02218 
02219 extern IIIMP_icattribute *
02220 iiimp_icattribute_input_method_name_new(
02221     IIIMP_data_s *   data_s,
02222     IIIMP_string *   value);
02223 
02224 extern IIIMP_icattribute *
02225 iiimp_icattribute_input_method_new(
02226     IIIMP_data_s *   data_s,
02227     IIIMP_card16     value);
02228 
02229 extern IIIMP_keyevent_list *
02230 iiimp_keyevent_list_new(
02231     IIIMP_data_s *   data_s,
02232     int                     count,
02233     IIIMP_keyevent * k);
02234 
02235 extern HOTKEY_LIST *
02236 iiimp_hotkey_list_new(
02237     IIIMP_data_s *   data_s,
02238     int                     count,
02239     HOTKEY *         k);
02240 
02241 extern IIIMP_contents *
02242 iiimp_contents_string_new(
02243     IIIMP_data_s *   data_s,
02244     IIIMP_string *   value);
02245 
02246 extern IIIMP_contents *
02247 iiimp_contents_text_new(
02248     IIIMP_data_s *   data_s,
02249     IIIMP_text *     value);
02250 
02251 extern IIIMP_contents *
02252 iiimp_contents_keyevent_list_new(
02253     IIIMP_data_s *          data_s,
02254     IIIMP_keyevent_list *   value);
02255 
02256 
02257 /* composite data inteface prototype -- miscellaneous */
02258 
02259 extern IIIMP_card32_list *
02260 iiimp_card32_list_bit_set(
02261     IIIMP_data_s *   data_s,
02262     IIIMP_card32_list *     m,
02263     int                     bit);
02264 
02265 extern void
02266 iiimp_card32_list_bit_clear(
02267     IIIMP_data_s *   data_s,
02268     IIIMP_card32_list *     m,
02269     int                     bit);
02270 
02271 extern void
02272 iiimp_card32_list_bit_clear_all(
02273     IIIMP_data_s *   data_s,
02274     IIIMP_card32_list *     m);
02275 
02276 extern int
02277 iiimp_card32_list_bit_p(
02278     IIIMP_data_s *   data_s,
02279     IIIMP_card32_list *     m,
02280     int                     bit);
02281 
02282 
02283 /* composite data interface prototype -- file operation */
02284 
02285 extern IIIMP_file_operation_data_fcntl *
02286 iiimp_file_operation_data_fcntl_setfd_new(
02287     IIIMP_data_s *   data_s,
02288     IIIMP_card32     file_descriptor_flags
02289 );
02290 
02291 extern IIIMP_file_operation_data_fcntl *
02292 iiimp_file_operation_data_fcntl_setfl_new(
02293     IIIMP_data_s *   data_s,
02294     IIIMP_card32     file_status_flags
02295 );
02296 
02297 extern IIIMP_file_operation_data_fcntl *
02298 iiimp_file_operation_data_fcntl_flock_new(
02299     IIIMP_data_s *   data_s,
02300     IIIMP_card16     type,
02301     IIIMP_card16     whence,
02302     IIIMP_card32     start,
02303     IIIMP_card32     len
02304 );
02305 
02306 extern IIIMP_file_operation_data_stat *
02307 iiimp_file_operation_data_stat_new(
02308     IIIMP_data_s *   data_s,
02309     IIIMP_card32     mode,
02310     IIIMP_card32     ino,
02311     IIIMP_card32     dev,
02312     IIIMP_card32     rdev,
02313     IIIMP_card32     nlink,
02314     IIIMP_string *   user_name,
02315     IIIMP_card32     uid,
02316     IIIMP_string *   group_name,
02317     IIIMP_card32     gid,
02318     IIIMP_card32     size,
02319     IIIMP_card32     atime_tv_sec,
02320     IIIMP_card32     atime_tv_nsec,
02321     IIIMP_card32     mtime_tv_sec,
02322     IIIMP_card32     mtime_tv_nsec,
02323     IIIMP_card32     ctime_tv_sec,
02324     IIIMP_card32     ctime_tv_nsec,
02325     IIIMP_card32     blksize,
02326     IIIMP_card32     blocks
02327 );
02328 
02329 extern IIIMP_file_operation_data_dir *
02330 iiimp_file_operation_data_dir_new(
02331     IIIMP_data_s *   data_s,
02332     IIIMP_card32     ino,
02333     IIIMP_card32     off,
02334     IIIMP_string *   name
02335 );
02336 
02337 extern IIIMP_file_operation_request *
02338 iiimp_file_operation_request_close_new(
02339     IIIMP_data_s *   data_s,
02340     IIIMP_card32     file_descriptor
02341 );
02342 
02343 extern IIIMP_file_operation_request *
02344 iiimp_file_operation_request_creat_new(
02345     IIIMP_data_s *   data_s,
02346     IIIMP_string *   path,
02347     IIIMP_card32     mode
02348 );
02349 
02350 extern IIIMP_file_operation_request *
02351 iiimp_file_operation_request_ftruncate_new(
02352     IIIMP_data_s *   data_s,
02353     IIIMP_card32     file_descriptor,
02354     IIIMP_card32     length
02355 );
02356 
02357 extern IIIMP_file_operation_request *
02358 iiimp_file_operation_request_lseek_new(
02359     IIIMP_data_s *   data_s,
02360     IIIMP_card32     file_descriptor,
02361     IIIMP_card32     offset,
02362     IIIMP_card32     whence
02363 );
02364 
02365 extern IIIMP_file_operation_request *
02366 iiimp_file_operation_request_open_new(
02367     IIIMP_data_s *   data_s,
02368     IIIMP_string *   path,
02369     IIIMP_card32     oflag,
02370     IIIMP_card32     mode
02371 );
02372 
02373 extern IIIMP_file_operation_request *
02374 iiimp_file_operation_request_read_new(
02375     IIIMP_data_s *   data_s,
02376     IIIMP_card32     file_descriptor,
02377     IIIMP_card32     nbyte
02378 );
02379 
02380 extern IIIMP_file_operation_request *
02381 iiimp_file_operation_request_truncate_new(
02382     IIIMP_data_s *   data_s,
02383     IIIMP_string *   path,
02384     IIIMP_card32     length
02385 );
02386 
02387 extern IIIMP_file_operation_request *
02388 iiimp_file_operation_request_write_new(
02389     IIIMP_data_s *   data_s,
02390     IIIMP_card32     file_descriptor,
02391     size_t           value_nbyte,
02392     const uchar_t *  value
02393 );
02394 
02395 extern IIIMP_file_operation_request *
02396 iiimp_file_operation_request_link_new(
02397     IIIMP_data_s *   data_s,
02398     IIIMP_string *   existing_path,
02399     IIIMP_string *   new_path
02400 );
02401 
02402 extern IIIMP_file_operation_request *
02403 iiimp_file_operation_request_readlink_new(
02404     IIIMP_data_s *   data_s,
02405     IIIMP_string *   path
02406 );
02407 
02408 extern IIIMP_file_operation_request *
02409 iiimp_file_operation_request_rename_new(
02410     IIIMP_data_s *   data_s,
02411     IIIMP_string *   old_path,
02412     IIIMP_string *   new_path
02413 );
02414 
02415 extern IIIMP_file_operation_request *
02416 iiimp_file_operation_request_symlink_new(
02417     IIIMP_data_s *   data_s,
02418     IIIMP_string *   existing_path,
02419     IIIMP_string *   new_path
02420 );
02421 
02422 extern IIIMP_file_operation_request *
02423 iiimp_file_operation_request_unlink_new(
02424     IIIMP_data_s *   data_s,
02425     IIIMP_string *   path
02426 );
02427 
02428 extern IIIMP_file_operation_request *
02429 iiimp_file_operation_request_chmod_new(
02430     IIIMP_data_s *   data_s,
02431     IIIMP_string *   path,
02432     IIIMP_card32     mode
02433 );
02434 
02435 extern IIIMP_file_operation_request *
02436 iiimp_file_operation_request_chown_new(
02437     IIIMP_data_s *   data_s,
02438     IIIMP_string *   path,
02439     IIIMP_string *   user_name,
02440     IIIMP_card32     user_id,
02441     IIIMP_string *   group_name,
02442     IIIMP_card32     group_id
02443 );
02444 
02445 extern IIIMP_file_operation_request *
02446 iiimp_file_operation_request_fchmod_new(
02447     IIIMP_data_s *   data_s,
02448     IIIMP_card32     file_descriptor,
02449     IIIMP_card32     mode
02450 );
02451 
02452 extern IIIMP_file_operation_request *
02453 iiimp_file_operation_request_fchown_new(
02454     IIIMP_data_s *   data_s,
02455     IIIMP_card32     file_descriptor,
02456     IIIMP_string *   user_name,
02457     IIIMP_card32     user_id,
02458     IIIMP_string *   group_name,
02459     IIIMP_card32     group_id
02460 );
02461 
02462 extern IIIMP_file_operation_request *
02463 iiimp_file_operation_request_lchown_new(
02464     IIIMP_data_s *   data_s,
02465     IIIMP_string *   path,
02466     IIIMP_string *   user_name,
02467     IIIMP_card32     user_id,
02468     IIIMP_string *   group_name,
02469     IIIMP_card32     group_id
02470 );
02471 
02472 extern IIIMP_file_operation_request *
02473 iiimp_file_operation_request_utime_new(
02474     IIIMP_data_s *   data_s,
02475     IIIMP_string *   path,
02476     IIIMP_card32     actime,
02477     IIIMP_card32     modtime
02478 );
02479 
02480 extern IIIMP_file_operation_request *
02481 iiimp_file_operation_request_utimes_new(
02482     IIIMP_data_s *   data_s,
02483     IIIMP_string *   path,
02484     IIIMP_card32     tv_sec0,
02485     IIIMP_card32     tv_usec0,
02486     IIIMP_card32     tv_sec1,
02487     IIIMP_card32     tv_usec1
02488 );
02489 
02490 extern IIIMP_file_operation_request *
02491 iiimp_file_operation_request_fstat_new(
02492     IIIMP_data_s *   data_s,
02493     IIIMP_card32     file_descriptor
02494 );
02495 
02496 extern IIIMP_file_operation_request *
02497 iiimp_file_operation_request_lstat_new(
02498     IIIMP_data_s *   data_s,
02499     IIIMP_string *   path
02500 );
02501 
02502 extern IIIMP_file_operation_request *
02503 iiimp_file_operation_request_stat_new(
02504     IIIMP_data_s *   data_s,
02505     IIIMP_string *   path
02506 );
02507 
02508 extern IIIMP_file_operation_request *
02509 iiimp_file_operation_request_access_new(
02510     IIIMP_data_s *   data_s,
02511     IIIMP_string *   path,
02512     IIIMP_card32     amode
02513 );
02514 
02515 extern IIIMP_file_operation_request *
02516 iiimp_file_operation_request_closedir_new(
02517     IIIMP_data_s *   data_s,
02518     IIIMP_card32     directory_handle
02519 );
02520 
02521 extern IIIMP_file_operation_request *
02522 iiimp_file_operation_request_opendir_new(
02523     IIIMP_data_s *   data_s,
02524     IIIMP_string *   dirname
02525 );
02526 
02527 extern IIIMP_file_operation_request *
02528 iiimp_file_operation_request_readdir_new(
02529     IIIMP_data_s *   data_s,
02530     IIIMP_card32     directory_handle
02531 );
02532 
02533 extern IIIMP_file_operation_request *
02534 iiimp_file_operation_request_rewinddir_new(
02535     IIIMP_data_s *   data_s,
02536     IIIMP_card32     directory_handle
02537 );
02538 
02539 extern IIIMP_file_operation_request *
02540 iiimp_file_operation_request_seekdir_new(
02541     IIIMP_data_s *   data_s,
02542     IIIMP_card32     directory_handle,
02543     IIIMP_card32     loc
02544 );
02545 
02546 extern IIIMP_file_operation_request *
02547 iiimp_file_operation_request_telldir_new(
02548     IIIMP_data_s *   data_s,
02549     IIIMP_card32     directory_handle
02550 );
02551 
02552 extern IIIMP_file_operation_request *
02553 iiimp_file_operation_request_mkdir_new(
02554     IIIMP_data_s *   data_s,
02555     IIIMP_string *   dirname,
02556     IIIMP_card32     mode
02557 );
02558 
02559 extern IIIMP_file_operation_request *
02560 iiimp_file_operation_request_rmdir_new(
02561     IIIMP_data_s *   data_s,
02562     IIIMP_string *   dirname
02563 );
02564 
02565 extern IIIMP_file_operation_request *
02566 iiimp_file_operation_request_fcntl_new(
02567     IIIMP_data_s *                 data_s,
02568     IIIMP_card32                   file_descriptor,
02569     IIIMP_card32                   cmd,
02570     IIIMP_file_operation_data_fcntl *     arg
02571 );
02572 
02573 extern IIIMP_file_operation_result *
02574 iiimp_file_operation_result_simple_new(
02575     IIIMP_data_s *   data_s,
02576     IIIMP_card32     type,
02577     IIIMP_card32     return_value,
02578     IIIMP_card32     error_number
02579 );
02580 
02581 extern IIIMP_file_operation_result *
02582 iiimp_file_operation_result_void_new(
02583     IIIMP_data_s *   data_s,
02584     IIIMP_card32     type
02585 );
02586 
02587 #define iiimp_file_operation_result_close_new(data_s, return_value, error_number) \
02588        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_CLOSE, \
02589                                           return_value, error_number)
02590 
02591 #define iiimp_file_operation_result_creat_new(data_s, return_value, error_number) \
02592        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_CREAT, \
02593                                           return_value, error_number)
02594 
02595 #define iiimp_file_operation_result_ftruncate_new(data_s, return_value, error_number) \
02596        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_FTRUNCATE, \
02597                                           return_value, error_number)
02598 
02599 #define iiimp_file_operation_result_lseek_new(data_s, return_value, error_number) \
02600        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_LSEEK, \
02601                                           return_value, error_number)
02602 
02603 #define iiimp_file_operation_result_open_new(data_s, return_value, error_number) \
02604        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_OPEN, \
02605                                           return_value, error_number)
02606 
02607 extern IIIMP_file_operation_result *
02608 iiimp_file_operation_result_read_new(
02609     IIIMP_data_s *   data_s,
02610     IIIMP_card32     error_number,
02611     size_t           value_nbyte,
02612     const uchar_t *  value
02613 );
02614 
02615 #define iiimp_file_operation_result_truncate_new(data_s, return_value, error_number) \
02616        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_TRUNCATE, \
02617                                           return_value, error_number)
02618 
02619 #define iiimp_file_operation_result_write_new(data_s, return_value, error_number) \
02620        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_WRITE, \
02621                                           return_value, error_number)
02622 
02623 #define iiimp_file_operation_result_link_new(data_s, return_value, error_number) \
02624        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_LINK, \
02625                                           return_value, error_number)
02626 
02627 extern IIIMP_file_operation_result *
02628 iiimp_file_operation_result_readlink_new(
02629     IIIMP_data_s *   data_s,
02630     IIIMP_card32     return_value,
02631     IIIMP_card32     error_number,
02632     IIIMP_string *   path
02633 );
02634 
02635 #define iiimp_file_operation_result_rename_new(data_s, return_value, error_number) \
02636        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_RENAME, \
02637                                           return_value, error_number)
02638 
02639 #define iiimp_file_operation_result_symlink_new(data_s, return_value, error_number) \
02640        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_SYMLINK, \
02641                                           return_value, error_number)
02642 
02643 #define iiimp_file_operation_result_unlink_new(data_s, return_value, error_number) \
02644        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_UNLINK, \
02645                                           return_value, error_number)
02646 
02647 #define iiimp_file_operation_result_chmod_new(data_s, return_value, error_number) \
02648        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_CHMOD, \
02649                                           return_value, error_number)
02650 
02651 #define iiimp_file_operation_result_chown_new(data_s, return_value, error_number) \
02652        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_CHOWN, \
02653                                           return_value, error_number)
02654 
02655 #define iiimp_file_operation_result_fchmod_new(data_s, return_value, error_number) \
02656        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_FCHMOD, \
02657                                           return_value, error_number)
02658 
02659 #define iiimp_file_operation_result_fchown_new(data_s, return_value, error_number) \
02660        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_FCHOWN, \
02661                                           return_value, error_number)
02662 
02663 #define iiimp_file_operation_result_lchown_new(data_s, return_value, error_number) \
02664        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_LCHOWN, \
02665                                           return_value, error_number)
02666 
02667 #define iiimp_file_operation_result_utime_new(data_s, return_value, error_number) \
02668        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_UTIME, \
02669                                           return_value, error_number)
02670 
02671 #define iiimp_file_operation_result_utimes_new(data_s, return_value, error_number) \
02672        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_UTIMES, \
02673                                           return_value, error_number)
02674 
02675 extern IIIMP_file_operation_result *
02676 iiimp_file_operation_result_stat_common_new(
02677     IIIMP_data_s *                 data_s,
02678     IIIMP_card32                   type,
02679     IIIMP_card32                   return_value,
02680     IIIMP_card32                   error_number,
02681     IIIMP_file_operation_data_stat *      stat
02682 );
02683 
02684 #define iiimp_file_operation_result_fstat_new(data_s, return_value, error_number, stat) \
02685        iiimp_file_operation_result_stat_common_new(data_s, IIIMP_FILE_OPERATION_FSTAT, \
02686                                               return_value, error_number, stat)
02687 
02688 #define iiimp_file_operation_result_lstat_new(data_s, return_value, error_number, stat) \
02689        iiimp_file_operation_result_stat_common_new(data_s, IIIMP_FILE_OPERATION_LSTAT, \
02690                                               return_value, error_number, stat)
02691 
02692 #define iiimp_file_operation_result_stat_new(data_s, return_value, error_number, stat) \
02693        iiimp_file_operation_result_stat_common_new(data_s, IIIMP_FILE_OPERATION_STAT, \
02694                                               return_value, error_number, stat)
02695 
02696 #define iiimp_file_operation_result_access_new(data_s, return_value, error_number) \
02697        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_ACCESS, \
02698                                           return_value, error_number)
02699 
02700 #define iiimp_file_operation_result_closedir_new(data_s, return_value, error_number) \
02701        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_CLOSEDIR, \
02702                                           return_value, error_number)
02703 
02704 #define iiimp_file_operation_result_opendir_new(data_s, return_value, error_number) \
02705        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_OPENDIR, \
02706                                           return_value, error_number)
02707 
02708 extern IIIMP_file_operation_result *
02709 iiimp_file_operation_result_readdir_new(
02710     IIIMP_data_s *                 data_s,
02711     IIIMP_card32                   error_number,
02712     IIIMP_file_operation_data_dir *       dir
02713 );
02714 
02715 #define iiimp_file_operation_result_rewinddir_new(data_s) \
02716        iiimp_file_operation_result_void_new(data_s, IIIMP_FILE_OPERATION_REWINDDIR)
02717 
02718 #define iiimp_file_operation_result_seekdir_new(data_s) \
02719        iiimp_file_operation_result_void_new(data_s, IIIMP_FILE_OPERATION_SEEKDIR)
02720 
02721 #define iiimp_file_operation_result_telldir_new(data_s, return_value, error_number) \
02722        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_TELLDIR, \
02723                                           return_value, error_number)
02724 
02725 #define iiimp_file_operation_result_mkdir_new(data_s, return_value, error_number) \
02726        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_MKDIR, \
02727                                           return_value, error_number)
02728 
02729 #define iiimp_file_operation_result_rmdir_new(data_s, return_value, error_number) \
02730        iiimp_file_operation_result_simple_new(data_s, IIIMP_FILE_OPERATION_RMDIR, \
02731                                           return_value, error_number)
02732 
02733 extern IIIMP_file_operation_result *
02734 iiimp_file_operation_result_fcntl_new(
02735     IIIMP_data_s *                 data_s,
02736     IIIMP_card32                   return_value,
02737     IIIMP_card32                   error_number,
02738     IIIMP_card32                   cmd,
02739     IIIMP_file_operation_data_fcntl *     arg
02740 );
02741 
02742 extern void
02743 iiimp_file_operation_request_delete(
02744     IIIMP_data_s *                 data_s,
02745     IIIMP_file_operation_request * data
02746 );
02747 
02748 extern void
02749 iiimp_file_operation_result_delete(
02750     IIIMP_data_s *                 data_s,
02751     IIIMP_file_operation_result *  data
02752 );
02753 
02754 extern void
02755 iiimp_file_operation_request_pack(
02756     IIIMP_data_s *                 data_s,
02757     IIIMP_file_operation_request * m,
02758     size_t *                       nbyte,
02759     uchar_t **                            ptr
02760 );
02761 
02762 extern void
02763 iiimp_file_operation_result_pack(
02764     IIIMP_data_s *                 data_s,
02765     IIIMP_file_operation_result *  m,
02766     size_t *                       nbyte,
02767     uchar_t **                            ptr
02768 );
02769 
02770 extern IIIMP_file_operation_request *
02771 iiimp_file_operation_request_unpack(
02772     IIIMP_data_s *   data_s,
02773     size_t *         nbyte,
02774     const uchar_t ** ptr,
02775     size_t           nbyte_max
02776 );
02777 
02778 extern IIIMP_file_operation_result *
02779 iiimp_file_operation_result_unpack(
02780     IIIMP_data_s *   data_s,
02781     size_t *         nbyte,
02782     const uchar_t ** ptr,
02783     size_t           nbyte_max
02784 );
02785 
02786 extern void
02787 iiimp_file_operation_request_print(
02788     IIIMP_data_s *                 data_s,
02789     IIIMP_file_operation_request * data
02790 );
02791 
02792 extern void
02793 iiimp_file_operation_result_print(
02794     IIIMP_data_s *                 data_s,
02795     IIIMP_file_operation_result *  data
02796 );
02797 
02798 
02799 /* obsolete interface prototype -- start */
02800 
02801 extern IIIMP_open *
02802 iiimp_open_new(
02803     IIIMP_data_s *      data_s,
02804     IIIMP_card32        ns_id,
02805     IIIMP_card32        flags,
02806     IIIMP_utf8string *  filename);
02807 
02808 extern IIIMP_open_reply *
02809 iiimp_open_reply_new(
02810     IIIMP_data_s *      data_s,
02811     IIIMP_card32        ns_id,
02812     IIIMP_card32        ns_errno);
02813 
02814 extern IIIMP_read *
02815 iiimp_read_new(
02816     IIIMP_data_s *      data_s,
02817     IIIMP_card32        ns_id,
02818     IIIMP_card32        size);
02819 
02820 extern IIIMP_read_reply *
02821 iiimp_read_reply_new(
02822     IIIMP_data_s *      data_s,
02823     IIIMP_card32        ns_id,
02824     IIIMP_card32        ns_errno,
02825     IIIMP_card32        size,
02826     IIIMP_card32 *          object);
02827 
02828 extern IIIMP_write *
02829 iiimp_write_new(
02830     IIIMP_data_s *      data_s,
02831     IIIMP_card32        ns_id,
02832     IIIMP_card32        size,
02833     void *              object);
02834 
02835 extern IIIMP_write_reply *
02836 iiimp_write_reply_new(
02837     IIIMP_data_s *      data_s,
02838     IIIMP_card32        ns_id,
02839     IIIMP_card32        ns_errno,
02840     IIIMP_card32        size);
02841 
02842 extern IIIMP_close *
02843 iiimp_close_new(
02844     IIIMP_data_s *      data_s,
02845     IIIMP_card32        ns_id);
02846 
02847 extern IIIMP_close_reply *
02848 iiimp_close_reply_new(
02849     IIIMP_data_s *      data_s,
02850     IIIMP_card32        ns_id,
02851     IIIMP_card32        ns_errno);
02852 
02853 extern IIIMP_opendir *
02854 iiimp_opendir_new(
02855     IIIMP_data_s *      data_s,
02856     IIIMP_card32        ns_id,
02857     IIIMP_utf8string *  dirname);
02858 
02859 extern IIIMP_opendir_reply *
02860 iiimp_opendir_reply_new(
02861     IIIMP_data_s *      data_s,
02862     IIIMP_card32        ns_id,
02863     IIIMP_card32        ns_errno,
02864     IIIMP_card32        nitems,
02865     IIIMP_utf8string *  d_name);
02866 
02867 extern IIIMP_readdir *
02868 iiimp_readdir_new(
02869     IIIMP_data_s *      data_s,
02870     IIIMP_card32        ns_id);
02871 
02872 extern IIIMP_readdir_reply *
02873 iiimp_readdir_reply_new(
02874     IIIMP_data_s *      data_s,
02875     IIIMP_card32        ns_id,
02876     IIIMP_card32        ns_errno,
02877     struct dirent *     readDir);
02878 
02879 extern IIIMP_closedir *
02880 iiimp_closedir_new(
02881     IIIMP_data_s *      data_s,
02882     IIIMP_card32        ns_id);
02883 
02884 extern IIIMP_closedir_reply *
02885 iiimp_closedir_reply_new(
02886     IIIMP_data_s *      data_s,
02887     IIIMP_card32        ns_id,
02888     IIIMP_card32        ns_errno);
02889 
02890 extern IIIMP_mkdir *
02891 iiimp_mkdir_new(
02892     IIIMP_data_s *      data_s,
02893     IIIMP_card32        ns_id,
02894     IIIMP_card32        mode,
02895     IIIMP_utf8string *  path);
02896 
02897 extern IIIMP_mkdir_reply *
02898 iiimp_mkdir_reply_new(
02899     IIIMP_data_s *      data_s,
02900     IIIMP_card32        ns_id,
02901     IIIMP_card32        ns_errno);
02902 
02903 extern IIIMP_rmdir *
02904 iiimp_rmdir_new(
02905     IIIMP_data_s *      data_s,
02906     IIIMP_card32        ns_id,
02907     IIIMP_utf8string *  path);
02908 
02909 extern IIIMP_rmdir_reply *
02910 iiimp_rmdir_reply_new(
02911     IIIMP_data_s *      data_s,
02912     IIIMP_card32        ns_id,
02913     IIIMP_card32        ns_errno);
02914 
02915 extern IIIMP_symlink *
02916 iiimp_symlink_new(
02917     IIIMP_data_s *      data_s,
02918     IIIMP_card32        ns_id,
02919     IIIMP_utf8string *  dest,
02920     IIIMP_utf8string *  src);
02921 
02922 extern IIIMP_symlink_reply *
02923 iiimp_symlink_reply_new(
02924     IIIMP_data_s *      data_s,
02925     IIIMP_card32        ns_id,
02926     IIIMP_card32        ns_errno);
02927 
02928 extern IIIMP_stat *
02929 iiimp_stat_new(
02930     IIIMP_data_s *      data_s,
02931     IIIMP_card32        ns_id,
02932     IIIMP_utf8string *  path);
02933 
02934 extern IIIMP_stat_reply *
02935 iiimp_stat_reply_new(
02936     IIIMP_data_s *      data_s,
02937     IIIMP_card32        ns_id,
02938     IIIMP_card32        ns_errno,
02939     iiimp_stat_struct * stat_buf);
02940 
02941 extern IIIMP_lstat *
02942 iiimp_lstat_new(
02943     IIIMP_data_s *      data_s,
02944     IIIMP_card32        ns_id,
02945     IIIMP_utf8string *  path);
02946 
02947 extern IIIMP_lstat_reply *
02948 iiimp_lstat_reply_new(
02949     IIIMP_data_s *      data_s,
02950     IIIMP_card32        ns_id,
02951     IIIMP_card32        ns_errno,
02952     iiimp_stat_struct * stat_buf);
02953 
02954 extern IIIMP_fstat *
02955 iiimp_fstat_new(
02956     IIIMP_data_s *      data_s,
02957     IIIMP_card32        ns_id);
02958 
02959 extern IIIMP_fstat_reply *
02960 iiimp_fstat_reply_new(
02961     IIIMP_data_s *      data_s,
02962     IIIMP_card32        ns_id,
02963     IIIMP_card32        ns_errno,
02964     iiimp_stat_struct * stat_buf);
02965 
02966 extern IIIMP_creat *
02967 iiimp_creat_new(
02968     IIIMP_data_s *      data_s,
02969     IIIMP_card32        ns_id,
02970     IIIMP_card32        mode,
02971     IIIMP_utf8string *  path);
02972 
02973 extern IIIMP_creat_reply *
02974 iiimp_creat_reply_new(
02975     IIIMP_data_s *      data_s,
02976     IIIMP_card32        ns_id,
02977     IIIMP_card32        ns_errno);
02978 
02979 extern IIIMP_lseek *
02980 iiimp_lseek_new(
02981     IIIMP_data_s *      data_s,
02982     IIIMP_card32        ns_id,
02983     IIIMP_card32        offset,
02984     IIIMP_card32        whence);
02985 
02986 extern IIIMP_lseek_reply *
02987 iiimp_lseek_reply_new(
02988     IIIMP_data_s *      data_s,
02989     IIIMP_card32        ns_id,
02990     IIIMP_card32        ns_errno,
02991     IIIMP_card32        offset);
02992 
02993 extern IIIMP_unlink *
02994 iiimp_unlink_new(
02995     IIIMP_data_s *      data_s,
02996     IIIMP_card32        ns_id,
02997     IIIMP_utf8string *  path);
02998 
02999 extern IIIMP_unlink_reply *
03000 iiimp_unlink_reply_new(
03001     IIIMP_data_s *      data_s,
03002     IIIMP_card32        ns_id,
03003     IIIMP_card32        ns_errno);
03004 
03005 extern IIIMP_rename *
03006 iiimp_rename_new(
03007     IIIMP_data_s *      data_s,
03008     IIIMP_card32        ns_id,
03009     IIIMP_utf8string *  old_name,
03010     IIIMP_utf8string *  new_name);
03011 
03012 extern IIIMP_rename_reply *
03013 iiimp_rename_reply_new(
03014     IIIMP_data_s *      data_s,
03015     IIIMP_card32        ns_id,
03016     IIIMP_card32        ns_errno);
03017 
03018 extern IIIMP_fcntl *
03019 iiimp_fcntl_new(
03020     IIIMP_data_s *      data_s,
03021     IIIMP_card32        ns_id,
03022     IIIMP_card32        cmd,
03023     IIIMP_card32        arg);
03024 
03025 extern IIIMP_fcntl_reply *
03026 iiimp_fcntl_reply_new(
03027     IIIMP_data_s *      data_s,
03028     IIIMP_card32        ns_id,
03029     IIIMP_card32        ns_errno,
03030     IIIMP_card32        return_value);
03031 
03032 extern IIIMP_truncate *
03033 iiimp_truncate_new(
03034     IIIMP_data_s *      data_s,
03035     IIIMP_card32        ns_id,
03036     IIIMP_utf8string *  path,
03037     IIIMP_card32        length);
03038 
03039 extern IIIMP_truncate_reply *
03040 iiimp_truncate_reply_new(
03041     IIIMP_data_s *      data_s,
03042     IIIMP_card32        ns_id,
03043     IIIMP_card32        ns_errno);
03044 
03045 extern IIIMP_ftruncate *
03046 iiimp_ftruncate_new(
03047     IIIMP_data_s *      data_s,
03048     IIIMP_card32        ns_id,
03049     IIIMP_card32        length);
03050 
03051 extern IIIMP_ftruncate_reply *
03052 iiimp_ftruncate_reply_new(
03053     IIIMP_data_s *      data_s,
03054     IIIMP_card32        ns_id,
03055     IIIMP_card32        ns_errno);
03056 
03057 /* obsolete interface prototype -- end */
03058 
03059 
03060 /* public interface prototype - im_message_new */
03061 
03062 extern IIIMP_message *
03063 iiimp_simple_new(
03064     IIIMP_data_s *   data_s,
03065     IIIMP_card7             opcode,
03066     IIIMP_card16     im_id,
03067     IIIMP_card16     ic_id);
03068 
03069 extern IIIMP_message *
03070 iiimp_connect_new(
03071     IIIMP_data_s *   data_s,
03072     IIIMP_string *   user_name,
03073     IIIMP_string *   auth);
03074 
03075 extern IIIMP_message *
03076 iiimp_protocol_version_new(
03077     IIIMP_data_s *   data_s,
03078     IIIMP_card16     im_id,
03079     int                     protocol_version);
03080 
03081 extern IIIMP_message *
03082 iiimp_connect_reply_new(
03083     IIIMP_data_s *   data_s,
03084     IIIMP_card16     im_id,
03085     IIIMP_string *   language_list);
03086 
03087 #define iiimp_disconnect_new(data_s, im_id)      \
03088               iiimp_simple_new((data_s), IM_DISCONNECT, (im_id), 0)
03089 
03090 #define iiimp_disconnect_reply_new(data_s, im_id)       \
03091               iiimp_simple_new((data_s), IM_DISCONNECT_REPLY, (im_id), 0)
03092 
03093 extern IIIMP_message *
03094 iiimp_register_trigger_keys_new(
03095     IIIMP_data_s *          data_s,
03096     IIIMP_card16            im_id,
03097     IIIMP_keyevent_list *   trigger_on,
03098     IIIMP_keyevent_list *   trigger_off);
03099 
03100 extern IIIMP_message *
03101 iiimp_trigger_notify_new(
03102     IIIMP_data_s *   data_s,
03103     IIIMP_card16     im_id,
03104     IIIMP_card16     ic_id,
03105     IIIMP_card16     flag);
03106 
03107 extern IIIMP_message *
03108 iiimp_register_hotkeys_new(
03109     IIIMP_data_s *          data_s,
03110     IIIMP_card16            im_id,
03111     IIIMP_card16            flag,
03112     HOTKEY_LIST *            hotkeys);
03113 
03114 extern IIIMP_message *
03115 iiimp_hotkey_notify_new(
03116     IIIMP_data_s *   data_s,
03117     IIIMP_card16     im_id,
03118     IIIMP_card16     ic_id,
03119     IIIMP_card16     hotkey_id,
03120     IIIMP_card16     index);
03121 
03122 extern IIIMP_message *
03123 iiimp_hotkey_state_notify_new(
03124     IIIMP_data_s *   data_s,
03125     IIIMP_card16     im_id,
03126     IIIMP_card16     ic_id,
03127     IIIMP_card16     hotkey_id,
03128     IIIMP_card8             current_state_flag);
03129 
03130 extern IIIMP_message *
03131 iiimp_select_hotkey_profile_new(
03132     IIIMP_data_s *   data_s,
03133     IIIMP_card16     im_id,
03134     IIIMP_card16     scope_and_profile_id);
03135 
03136 extern IIIMP_message *
03137 iiimp_file_operation_new(
03138     IIIMP_data_s *      data_s,
03139     IIIMP_card16        im_id,
03140     IIIMP_card32        type,
03141     void *           object);
03142 
03143 extern IIIMP_message *
03144 iiimp_file_operation_reply_new(
03145     IIIMP_data_s *      data_s,
03146     IIIMP_card16        im_id,
03147     IIIMP_card32        type,
03148     void *           object);
03149 
03150 #define iiimp_trigger_notify_reply_new(data_s, im_id, ic_id)   \
03151               iiimp_simple_new((data_s), IM_TRIGGER_NOTIFY_REPLY, \
03152                              (im_id), (ic_id))
03153 
03154 #define iiimp_hotkey_notify_reply_new(data_s, im_id, ic_id)    \
03155               iiimp_simple_new((data_s), IM_HOTKEY_NOTIFY_REPLY, \
03156                              (im_id), (ic_id))
03157 
03158 #define iiimp_hotkey_state_notify_reply_new(data_s, im_id, ic_id)     \
03159               iiimp_simple_new((data_s), IM_HOTKEY_STATE_NOTIFY_REPLY, \
03160                              (im_id), (ic_id))
03161 
03162 extern IIIMP_message *
03163 iiimp_setimvalues_new(
03164     IIIMP_data_s *   data_s,
03165     IIIMP_card16     im_id,
03166     IIIMP_imattribute *     attr_list);
03167 
03168 #define iiimp_setimvalues_reply_new(data_s, im_id)      \
03169               iiimp_simple_new((data_s), IM_SETIMVALUES_REPLY, (im_id), 0)
03170 
03171 extern IIIMP_message *
03172 iiimp_getimvalues_new(
03173     IIIMP_data_s *   data_s,
03174     IIIMP_card16     im_id,
03175     IIIMP_card16_list *     attr_list);
03176 
03177 extern IIIMP_message *
03178 iiimp_getimvalues_reply_new(
03179     IIIMP_data_s *   data_s,
03180     IIIMP_card16     im_id,
03181     IIIMP_imattribute *     attr_list);
03182 
03183 extern IIIMP_message *
03184 iiimp_forward_event_new(
03185     IIIMP_data_s *   data_s,
03186     IIIMP_card16     im_id,
03187     IIIMP_card16     ic_id,
03188     IIIMP_contents * contents);
03189 
03190 #define iiimp_forward_event_reply_new(data_s, im_id, ic_id)    \
03191               iiimp_simple_new((data_s), IM_FORWARD_EVENT_REPLY, \
03192                              (im_id), (ic_id))
03193 
03194 extern IIIMP_message *
03195 iiimp_commit_string_new(
03196     IIIMP_data_s *   data_s,
03197     IIIMP_card16     im_id,
03198     IIIMP_card16     ic_id,
03199     IIIMP_contents * contents);
03200 
03201 extern IIIMP_message *
03202 iiimp_forward_event_with_operations_new(
03203     IIIMP_data_s *   data_s,
03204     IIIMP_card16     im_id,
03205     IIIMP_card16     ic_id,
03206     IIIMP_contents * contents,
03207     IIIMP_operation *       operation);
03208 
03209 extern IIIMP_message *
03210 iiimp_forward_event_with_operations_reply_new(
03211     IIIMP_data_s *   data_s,
03212     IIIMP_card16     im_id,
03213     IIIMP_card16     ic_id,
03214     IIIMP_operation *       operation);
03215 
03216 
03217 extern IIIMP_message *
03218 iiimp_createic_new(
03219     IIIMP_data_s *   data_s,
03220     IIIMP_card16     im_id,
03221     IIIMP_icattribute *     attr_list);
03222 
03223 #define iiimp_createic_reply_new(data_s, im_id, ic_id)  \
03224               iiimp_simple_new((data_s), IM_CREATEIC_REPLY, \
03225                              (im_id), (ic_id))
03226 
03227 #define iiimp_destroyic_new(data_s, im_id, ic_id)       \
03228               iiimp_simple_new((data_s), IM_DESTROYIC, \
03229                              (im_id), (ic_id))
03230 
03231 #define iiimp_destroyic_reply_new(data_s, im_id, ic_id) \
03232               iiimp_simple_new((data_s), IM_DESTROYIC_REPLY, \
03233                              (im_id), (ic_id))
03234 
03235 extern IIIMP_message *
03236 iiimp_seticvalues_new(
03237     IIIMP_data_s *   data_s,
03238     IIIMP_card16     im_id,
03239     IIIMP_card16     ic_id,
03240     IIIMP_icattribute *     attr_list);
03241 
03242 #define iiimp_seticvalues_reply_new(data_s, im_id, ic_id)      \
03243               iiimp_simple_new((data_s), IM_SETICVALUES_REPLY, \
03244                              (im_id), (ic_id))
03245 
03246 extern IIIMP_message *
03247 iiimp_geticvalues_new(
03248     IIIMP_data_s *   data_s,
03249     IIIMP_card16     im_id,
03250     IIIMP_card16     ic_id,
03251     IIIMP_card16_list *     attr_list);
03252 
03253 extern IIIMP_message *
03254 iiimp_geticvalues_reply_new(
03255     IIIMP_data_s *   data_s,
03256     IIIMP_card16     im_id,
03257     IIIMP_card16     ic_id,
03258     IIIMP_icattribute *     attr_list);
03259 
03260 #define iiimp_seticfocus_new(data_s, im_id, ic_id)      \
03261               iiimp_simple_new((data_s), IM_SETICFOCUS, \
03262                              (im_id), (ic_id))
03263 
03264 #define iiimp_seticfocus_reply_new(data_s, im_id, ic_id)       \
03265               iiimp_simple_new((data_s), IM_SETICFOCUS_REPLY, \
03266                              (im_id), (ic_id))
03267 
03268 #define iiimp_unseticfocus_new(data_s, im_id, ic_id)    \
03269               iiimp_simple_new((data_s), IM_UNSETICFOCUS, \
03270                              (im_id), (ic_id))
03271 
03272 #define iiimp_unseticfocus_reply_new(data_s, im_id, ic_id)     \
03273               iiimp_simple_new((data_s), IM_UNSETICFOCUS_REPLY, \
03274                              (im_id), (ic_id))
03275 
03276 #define iiimp_resetic_new(data_s, im_id, ic_id)  \
03277               iiimp_simple_new((data_s), IM_RESETIC, \
03278                              (im_id), (ic_id))
03279 
03280 #define iiimp_resetic_reply_new(data_s, im_id, ic_id)   \
03281               iiimp_simple_new((data_s), IM_RESETIC_REPLY, \
03282                              (im_id), (ic_id))
03283 
03284 #define iiimp_preedit_start_new(data_s, im_id, ic_id)   \
03285               iiimp_simple_new((data_s), IM_PREEDIT_START, \
03286                              (im_id), (ic_id))
03287 
03288 extern IIIMP_message *
03289 iiimp_preedit_start_reply_new(
03290     IIIMP_data_s *   data_s,
03291     IIIMP_card16     im_id,
03292     IIIMP_card16     ic_id,
03293     IIIMP_int32             maximum_length);
03294 
03295 extern IIIMP_message *
03296 iiimp_preedit_draw_new(
03297     IIIMP_data_s *   data_s,
03298     IIIMP_card16     im_id,
03299     IIIMP_card16     ic_id,
03300     IIIMP_int32             aret,
03301     IIIMP_int32             change_first,
03302     IIIMP_int32             change_length,
03303     IIIMP_contents * preedit);
03304 
03305 #define iiimp_preedit_draw_reply_new(data_s, im_id, ic_id)     \
03306               iiimp_simple_new((data_s), IM_PREEDIT_DRAW_REPLY, \
03307                              (im_id), (ic_id))
03308 
03309 #define iiimp_preedit_done_new(data_s, im_id, ic_id)    \
03310               iiimp_simple_new((data_s), IM_PREEDIT_DONE, \
03311                              (im_id), (ic_id))
03312 
03313 #define iiimp_preedit_done_reply_new(data_s, im_id, ic_id)     \
03314               iiimp_simple_new((data_s), IM_PREEDIT_DONE_REPLY, \
03315                              (im_id), (ic_id))
03316 
03317 #define iiimp_status_start_new(data_s, im_id, ic_id)    \
03318               iiimp_simple_new((data_s), IM_STATUS_START, \
03319                              (im_id), (ic_id))
03320 
03321 #define iiimp_status_start_reply_new(data_s, im_id, ic_id)     \
03322               iiimp_simple_new((data_s), IM_STATUS_START_REPLY, \
03323                              (im_id), (ic_id))
03324 
03325 extern IIIMP_message *
03326 iiimp_status_draw_new(
03327     IIIMP_data_s *   data_s,
03328     IIIMP_card16     im_id,
03329     IIIMP_card16     ic_id,
03330     IIIMP_contents * status);
03331 
03332 #define iiimp_status_draw_reply_new(data_s, im_id, ic_id)      \
03333               iiimp_simple_new((data_s), IM_STATUS_DRAW_REPLY, \
03334                              (im_id), (ic_id))
03335 
03336 #define iiimp_status_done_new(data_s, im_id, ic_id)     \
03337               iiimp_simple_new((data_s), IM_STATUS_DONE, \
03338                              (im_id), (ic_id))
03339 
03340 #define iiimp_status_done_reply_new(data_s, im_id, ic_id)      \
03341               iiimp_simple_new((data_s), IM_STATUS_DONE_REPLY, \
03342                              (im_id), (ic_id))
03343 
03344 extern IIIMP_message *
03345 iiimp_lookup_choice_start_new(
03346     IIIMP_data_s *   data_s,
03347     IIIMP_card16     im_id,
03348     IIIMP_card16     ic_id,
03349     int                     master,
03350     int                     choice_per_window,
03351     int                     rows,
03352     int                     columns,
03353     int                     direction,
03354     int                     label_owner);
03355 
03356 #define iiimp_lookup_choice_start_reply_new(data_s, im_id, ic_id)     \
03357               iiimp_simple_new((data_s), IM_LOOKUP_CHOICE_START_REPLY, \
03358                              (im_id), (ic_id))
03359 
03360 extern IIIMP_message *
03361 iiimp_lookup_choice_draw_new(
03362     IIIMP_data_s *   data_s,
03363     IIIMP_card16     im_id,
03364     IIIMP_card16     ic_id,
03365     int                     first,
03366     int                     last,
03367     int                     current,
03368     IIIMP_text *     choice,
03369     IIIMP_text *     index_label,
03370     IIIMP_text *     title);
03371 
03372 #define iiimp_lookup_choice_draw_reply_new(data_s, im_id, ic_id)      \
03373               iiimp_simple_new((data_s), IM_LOOKUP_CHOICE_DRAW_REPLY, \
03374                              (im_id), (ic_id))
03375 
03376 #define iiimp_lookup_choice_done_new(data_s, im_id, ic_id)     \
03377               iiimp_simple_new((data_s), IM_LOOKUP_CHOICE_DONE, \
03378                              (im_id), (ic_id))
03379 
03380 #define iiimp_lookup_choice_done_reply_new(data_s, im_id, ic_id)      \
03381               iiimp_simple_new((data_s), IM_LOOKUP_CHOICE_DONE_REPLY, \
03382                              (im_id), (ic_id))
03383 
03384 extern IIIMP_message *
03385 iiimp_lookup_choice_process_new(
03386     IIIMP_data_s *   data_s,
03387     IIIMP_card16     im_id,
03388     IIIMP_card16     ic_id,
03389     IIIMP_card16     type,
03390     IIIMP_card16     value);
03391 
03392 #define iiimp_lookup_choice_process_reply_new(data_s, im_id, ic_id)   \
03393               iiimp_simple_new((data_s), IM_LOOKUP_CHOICE_PROCESS_REPLY, \
03394                              (im_id), (ic_id))
03395 
03396 extern IIIMP_message *
03397 iiimp_aux_simple_new(
03398     IIIMP_data_s *   data_s,
03399     IIIMP_card7             opcode,
03400     IIIMP_card16     im_id,
03401     IIIMP_card16     ic_id,
03402     IIIMP_card32     class_index,
03403     IIIMP_string *   input_method_name);
03404 
03405 extern IIIMP_message *
03406 iiimp_aux_value_new(
03407     IIIMP_data_s *   data_s,
03408     IIIMP_card7             opcode,
03409     IIIMP_card16     im_id,
03410     IIIMP_card16     ic_id,
03411     IIIMP_card32     class_index,
03412     IIIMP_string *   input_method_name,
03413     IIIMP_card32_list *     integer_value,
03414     IIIMP_string *   string_value);
03415 
03416 
03417 #define iiimp_aux_start_new(data_s, im_id, ic_id, class_index, input_method_name)   \
03418               iiimp_aux_simple_new((data_s), IM_AUX_START, \
03419                                  (im_id), (ic_id), \
03420                                  (class_index), (input_method_name))
03421 
03422 #define iiimp_aux_start_reply_new(data_s, im_id, ic_id, class_index, input_method_name)    \
03423               iiimp_aux_simple_new((data_s), IM_AUX_START_REPLY, \
03424                                  (im_id), (ic_id), \
03425                                  (class_index), (input_method_name))
03426 
03427 #define iiimp_aux_draw_new(data_s, im_id, ic_id, class_index, input_method_name, int_val, str_val)       \
03428               iiimp_aux_value_new((data_s), IM_AUX_DRAW, \
03429                                  (im_id), (ic_id), \
03430                                  (class_index), (input_method_name), \
03431                                  (int_val), (str_val))
03432 
03433 #define iiimp_aux_draw_reply_new(data_s, im_id, ic_id, class_index, input_method_name)     \
03434               iiimp_aux_simple_new((data_s), IM_AUX_DRAW_REPLY, \
03435                                  (im_id), (ic_id), \
03436                                  (class_index), (input_method_name))
03437 
03438 #define iiimp_aux_done_new(data_s, im_id, ic_id, class_index, input_method_name)    \
03439               iiimp_aux_simple_new((data_s), IM_AUX_DONE, \
03440                                  (im_id), (ic_id), \
03441                                  (class_index), (input_method_name))
03442 
03443 #define iiimp_aux_done_reply_new(data_s, im_id, ic_id, class_index, input_method_name)     \
03444               iiimp_aux_simple_new((data_s), IM_AUX_DONE_REPLY, \
03445                                  (im_id), (ic_id), \
03446                                  (class_index), (input_method_name))
03447 
03448 #define iiimp_aux_setvalues_new(data_s, im_id, ic_id, class_index, input_method_name, int_val, str_val)  \
03449               iiimp_aux_value_new((data_s), IM_AUX_SETVALUES, \
03450                                  (im_id), (ic_id), \
03451                                  (class_index), (input_method_name), \
03452                                  (int_val), (str_val))
03453 
03454 #define iiimp_aux_setvalues_reply_new(data_s, im_id, ic_id, class_index, input_method_name)       \
03455               iiimp_aux_simple_new((data_s), IM_AUX_SETVALUES_REPLY, \
03456                                  (im_id), (ic_id), \
03457                                  (class_index), (input_method_name))
03458 
03459 #define iiimp_aux_getvalues_new(data_s, im_id, ic_id, class_index, input_method_name, int_val, str_val)  \
03460               iiimp_aux_value_new((data_s), IM_AUX_GETVALUES, \
03461                                  (im_id), (ic_id), \
03462                                  (class_index), (input_method_name), \
03463                                  (int_val), (str_val))
03464 
03465 #define iiimp_aux_getvalues_reply_new(data_s, im_id, ic_id, class_index, input_method_name, int_val, str_val)   \
03466               iiimp_aux_value_new((data_s), IM_AUX_GETVALUES_REPLY, \
03467                                  (im_id), (ic_id), \
03468                                  (class_index), (input_method_name), \
03469                                  (int_val), (str_val))
03470 extern IIIMP_status
03471 iiimp_card16_list_create(
03472     IIIMP_data_s *          data_s,
03473     IIIMP_card16_list **    ptr_ret,
03474     int                            count,
03475     const IIIMP_card16 *    ptr);
03476 
03477 extern IIIMP_status
03478 iiimp_card32_list_create(
03479     IIIMP_data_s *          data_s,
03480     IIIMP_card32_list **    ptr_ret,
03481     int                            count,
03482     const IIIMP_card32 *    ptr);
03483 
03484 extern IIIMP_status
03485 iiimp_string_create(
03486     IIIMP_data_s *          data_s,
03487     IIIMP_string **         ptr_ret,
03488     size_t                  len,
03489     const IIIMP_card16 *    ptr);
03490 
03491 extern IIIMP_status
03492 iiimp_feedback_attr_list_create(
03493     IIIMP_data_s *          data_s,
03494     IIIMP_feedback_attr_list **    ptr_ret,
03495     int                            count,
03496     const IIIMP_feedback_attr *    ptr);
03497 
03498 extern IIIMP_status
03499 iiimp_char_with_feedback_create(
03500     IIIMP_data_s *          data_s,
03501     IIIMP_char_with_feedback **    ptr_ret,
03502     IIIMP_card16            code,
03503     IIIMP_feedback_attr_list *     feedback_attr);
03504 
03505 extern IIIMP_status
03506 iiimp_operation_create(
03507     IIIMP_data_s *   data_s,
03508     IIIMP_operation **      ptr_ret,
03509     IIIMP_string *   id,
03510     size_t           value_nbyte,
03511     uchar_t *        value);
03512 
03513 extern IIIMP_status
03514 iiimp_annotation_value_text_create(
03515     IIIMP_data_s *          data_s,
03516     IIIMP_annotation_value **      ptr_ret,
03517     IIIMP_int32                    start_index,
03518     IIIMP_int32                    end_index,
03519     IIIMP_text *            value);
03520 
03521 extern IIIMP_status
03522 iiimp_annotation_value_string_create(
03523     IIIMP_data_s *          data_s,
03524     IIIMP_annotation_value **      ptr_ret,
03525     IIIMP_int32                    start_index,
03526     IIIMP_int32                    end_index,
03527     IIIMP_string *          value);
03528 
03529 extern IIIMP_status
03530 iiimp_annotation_create(
03531     IIIMP_data_s *          data_s,
03532     IIIMP_annotation **            ptr_ret,
03533     IIIMP_card32            id,
03534     IIIMP_annotation_value *       value);
03535 
03536 extern IIIMP_status
03537 iiimp_text_create(
03538     IIIMP_data_s *          data_s,
03539     IIIMP_text **           ptr_ret,
03540     IIIMP_char_with_feedback *     cwf,
03541     IIIMP_annotation *             anno);
03542 
03543 extern IIIMP_status
03544 iiimp_client_descriptor_create(
03545     IIIMP_data_s *          data_s,
03546     IIIMP_client_descriptor **     ptr_ret,
03547     IIIMP_string *          type,
03548     IIIMP_string *          os_name,
03549     IIIMP_string *          arch,
03550     IIIMP_string *          version,
03551     IIIMP_string *          X_display_name,
03552     IIIMP_string *          X_server_vendor);
03553 
03554 extern IIIMP_status
03555 iiimp_object_descriptor_create(
03556     IIIMP_data_s *          data_s,
03557     IIIMP_object_descriptor **     ptr_ret,
03558     IIIMP_card16            category,
03559     IIIMP_card32            object_size,
03560     IIIMP_card16            id_pre,
03561     IIIMP_card16            id_dyn,
03562     IIIMP_string *          rdun,
03563     IIIMP_string *          hrn,
03564     IIIMP_string *          signature,
03565     IIIMP_string *          user);
03566 
03567 extern IIIMP_status
03568 iiimp_ccdef_create(
03569     IIIMP_data_s *   data_s,
03570     IIIMP_ccdef **   ptr_ret,
03571     IIIMP_string *   contents);
03572 
03573 extern IIIMP_status
03574 iiimp_language_create(
03575     IIIMP_data_s *   data_s,
03576     IIIMP_language **       ptr_ret,
03577     IIIMP_string *   hrn,
03578     IIIMP_string *   id);
03579 
03580 extern IIIMP_status
03581 iiimp_jarfile_object_create(
03582     IIIMP_data_s *          data_s,
03583     IIIMP_jarfile_object ** ptr_ret,
03584     IIIMP_string *          class_names,
03585     size_t                  value_nbyte,
03586     uchar_t *               value);
03587 
03588 extern IIIMP_status
03589 iiimp_inputmethod_descriptor_create(
03590     IIIMP_data_s *                 data_s,
03591     IIIMP_inputmethod_descriptor **       ptr_ret,
03592     IIIMP_card16                   id,
03593     IIIMP_string *                 idname,
03594     IIIMP_string *                 hrn,
03595     IIIMP_language *               language,
03596     IIIMP_string *                 rdun);
03597 
03598 extern IIIMP_status
03599 iiimp_inputmethod_descriptor2_create(
03600     IIIMP_data_s *                 data_s,
03601     IIIMP_inputmethod_descriptor **       ptr_ret,
03602     IIIMP_card16                   id,
03603     IIIMP_string *                 idname,
03604     IIIMP_string *                 hrn,
03605     IIIMP_language *               language,
03606     IIIMP_string *                 rdun,
03607     IIIMP_imeinfo *                imeinfo);
03608 
03609 extern IIIMP_status
03610 iiimp_binaryfile_object_create(
03611     IIIMP_data_s *          data_s,
03612     IIIMP_binaryfile_object **     ptr_ret,
03613     IIIMP_string *          object);
03614 
03615 extern IIIMP_status
03616 iiimp_imattribute_inputmethod_descriptor_create(
03617     IIIMP_data_s *                 data_s,
03618     IIIMP_imattribute **           ptr_ret,
03619     IIIMP_card16                   id,
03620     IIIMP_card16                   id_dyn,
03621     IIIMP_inputmethod_descriptor * value);
03622 
03623 extern IIIMP_status
03624 iiimp_imattribute_object_descriptor_create(
03625     IIIMP_data_s *          data_s,
03626     IIIMP_imattribute **    ptr_ret,
03627     IIIMP_card16            id,
03628     IIIMP_card16            id_dyn,
03629     IIIMP_object_descriptor *      value);
03630 
03631 extern IIIMP_status
03632 iiimp_imattribute_client_descriptor_create(
03633     IIIMP_data_s *          data_s,
03634     IIIMP_imattribute **    ptr_ret,
03635     IIIMP_card16            id,
03636     IIIMP_card16            id_dyn,
03637     IIIMP_client_descriptor *      value);
03638 
03639 extern IIIMP_status
03640 iiimp_imattribute_ccdef_create(
03641     IIIMP_data_s *          data_s,
03642     IIIMP_imattribute **    ptr_ret,
03643     IIIMP_card16            id,
03644     IIIMP_card16            id_dyn,
03645     IIIMP_ccdef *           value);
03646 
03647 extern IIIMP_status
03648 iiimp_imattribute_jar_gui_object_create(
03649     IIIMP_data_s *          data_s,
03650     IIIMP_imattribute **    ptr_ret,
03651     IIIMP_card16            id,
03652     IIIMP_card16            id_dyn,
03653     IIIMP_jarfile_object *  value);
03654 
03655 extern IIIMP_status
03656 iiimp_imattribute_jar_light_weight_engine_object_create(
03657     IIIMP_data_s *          data_s,
03658     IIIMP_imattribute **    ptr_ret,
03659     IIIMP_card16            id,
03660     IIIMP_card16            id_dyn,
03661     IIIMP_jarfile_object *  value);
03662 
03663 extern IIIMP_status
03664 iiimp_imattribute_binary_gui_object_create(
03665     IIIMP_data_s *                 data_s,
03666     IIIMP_imattribute **           ptr_ret,
03667     IIIMP_card16                   id,
03668     IIIMP_card16                   id_dyn,
03669     IIIMP_binaryfile_object *      value);
03670 
03671 extern IIIMP_status
03672 iiimp_imattribute_binary_light_weight_engine_create(
03673     IIIMP_data_s *          data_s,
03674     IIIMP_imattribute **    ptr_ret,
03675     IIIMP_card16            id,
03676     IIIMP_card16            id_dyn,
03677     IIIMP_binaryfile_object *      value);
03678 
03679 extern IIIMP_status
03680 iiimp_imattribute_script_gui_object_create(
03681     IIIMP_data_s *          data_s,
03682     IIIMP_imattribute **    ptr_ret,
03683     IIIMP_card16            id,
03684     IIIMP_card16            id_dyn,
03685     IIIMP_binaryfile_object *      value);
03686 
03687 extern IIIMP_status
03688 iiimp_imattribute_script_light_weight_engine_create(
03689     IIIMP_data_s *          data_s,
03690     IIIMP_imattribute **    ptr_ret,
03691     IIIMP_card16            id,
03692     IIIMP_card16            id_dyn,
03693     IIIMP_binaryfile_object *      value);
03694 
03695 extern IIIMP_status
03696 iiimp_icattribute_input_language_create(
03697     IIIMP_data_s *          data_s,
03698     IIIMP_icattribute **    ptr_ret,
03699     IIIMP_string *          value);
03700 
03701 extern IIIMP_status
03702 iiimp_icattribute_character_subsets_create(
03703     IIIMP_data_s *          data_s,
03704     IIIMP_icattribute **    ptr_ret,
03705     IIIMP_card32_list *            value);
03706 
03707 extern IIIMP_status
03708 iiimp_icattribute_input_method_name_create(
03709     IIIMP_data_s *          data_s,
03710     IIIMP_icattribute **    ptr_ret,
03711     IIIMP_string *          value);
03712 
03713 extern IIIMP_status
03714 iiimp_icattribute_input_method_create(
03715     IIIMP_data_s *          data_s,
03716     IIIMP_icattribute **    ptr_ret,
03717     IIIMP_card16            value);
03718 
03719 extern IIIMP_status
03720 iiimp_keyevent_list_create(
03721     IIIMP_data_s *          data_s,
03722     IIIMP_keyevent_list **  ptr_ret,
03723     int                            count,
03724     IIIMP_keyevent *        k);
03725 
03726 extern IIIMP_status
03727 iiimp_contents_string_create(
03728     IIIMP_data_s *   data_s,
03729     IIIMP_contents **       ptr_ret,
03730     IIIMP_string *   value);
03731 
03732 extern IIIMP_status
03733 iiimp_contents_text_create(
03734     IIIMP_data_s *   data_s,
03735     IIIMP_contents **       ptr_ret,
03736     IIIMP_text *     value);
03737 
03738 extern IIIMP_status
03739 iiimp_contents_keyevent_list_create(
03740     IIIMP_data_s *          data_s,
03741     IIIMP_contents **              ptr_ret,
03742     IIIMP_keyevent_list *   value);
03743 
03744 void   iiimp_message_delete(IIIMP_data_s * data_s, IIIMP_message * m);
03745 
03746 
03747 /* prototype of composite data free function */
03748 
03749 void   iiimp_card16_list_delete(IIIMP_data_s * data_s, IIIMP_card16_list * data);
03750 void   iiimp_card32_list_delete(IIIMP_data_s * data_s, IIIMP_card32_list * data);
03751 void   iiimp_string_delete(IIIMP_data_s * data_s, IIIMP_string * str);
03752 void   iiimp_string_list_delete(IIIMP_data_s * data_s, IIIMP_string * str);
03753 void   iiimp_utf8string_delete(IIIMP_data_s * data_s, IIIMP_utf8string * str);
03754 void   iiimp_utf8string_list_delete(IIIMP_data_s * data_s, IIIMP_utf8string * str);
03755 void   iiimp_feedback_attr_list_delete(IIIMP_data_s * data_s, IIIMP_feedback_attr_list * data);
03756 void   iiimp_char_with_feedback_delete(IIIMP_data_s * data_s, IIIMP_char_with_feedback * cwf);
03757 void   iiimp_char_with_feedback_list_delete(IIIMP_data_s * data_s, IIIMP_char_with_feedback * cwf);
03758 void   iiimp_operation_delete(IIIMP_data_s * data_s, IIIMP_operation * op);
03759 void   iiimp_operation_list_delete(IIIMP_data_s * data_s, IIIMP_operation * op);
03760 void   iiimp_annotation_text_delete(IIIMP_data_s * data_s, IIIMP_annotation_value * anno_v);
03761 void   iiimp_annotation_string_delete(IIIMP_data_s * data_s, IIIMP_annotation_value * anno_v);
03762 void   iiimp_annotation_delete(IIIMP_data_s * data_s, IIIMP_annotation * anno);
03763 void   iiimp_text_delete(IIIMP_data_s * data_s, IIIMP_text * text);
03764 void   iiimp_text_list_delete(IIIMP_data_s * data_s, IIIMP_text * text);
03765 void   iiimp_client_descriptor_delete(IIIMP_data_s * data_s, IIIMP_client_descriptor * cd);
03766 void   iiimp_object_descriptor_delete(IIIMP_data_s * data_s, IIIMP_object_descriptor * od);
03767 void   iiimp_object_descriptor_list_delete(IIIMP_data_s * data_s, IIIMP_object_descriptor * od);
03768 void   iiimp_ccdef_delete(IIIMP_data_s * data_s, IIIMP_ccdef * ccdef);
03769 void   iiimp_language_delete(IIIMP_data_s * data_s, IIIMP_language * language);
03770 void   iiimp_language_list_delete(IIIMP_data_s * data_s, IIIMP_language * language);
03771 void    iiimp_imeinfo_delete(IIIMP_data_s * data_s, IIIMP_imeinfo * imeinfo);
03772 void    iiimp_imeinfo_list_delete(IIIMP_data_s * data_s, IIIMP_imeinfo * imeinfo);
03773 void   iiimp_jarfile_object_delete(IIIMP_data_s * data_s, IIIMP_jarfile_object * jarfile);
03774 void   iiimp_inputmethod_descriptor_delete(IIIMP_data_s * data_s, IIIMP_inputmethod_descriptor * im_desc);
03775 void   iiimp_inputmethod_descriptor_list_delete(IIIMP_data_s * data_s, IIIMP_inputmethod_descriptor * im_desc);
03776 void   iiimp_binaryfile_object_delete(IIIMP_data_s * data_s, IIIMP_binaryfile_object * bin_obj);
03777 void   iiimp_imattribute_delete(IIIMP_data_s * data_s, IIIMP_imattribute * imattr);
03778 void   iiimp_imattribute_list_delete(IIIMP_data_s * data_s, IIIMP_imattribute * imattr);
03779 void   iiimp_icattribute_delete(IIIMP_data_s * data_s, IIIMP_icattribute * icattr);
03780 void   iiimp_icattribute_list_delete(IIIMP_data_s * data_s, IIIMP_icattribute * icattr);
03781 void   iiimp_keyevent_list_delete(IIIMP_data_s * data_s, IIIMP_keyevent_list * kel);
03782 void   iiimp_contents_delete(IIIMP_data_s * data_s, IIIMP_contents * ptr);
03783 void   iiimp_file_operation_request_delete(IIIMP_data_s * data_s, IIIMP_file_operation_request * data);
03784 void   iiimp_file_operation_result_delete(IIIMP_data_s * data_s, IIIMP_file_operation_result * data);
03785 
03786 /* obsolete prototypes -- start */
03787 void   iiimp_open_delete(IIIMP_data_s * data_s, IIIMP_open *ptr);
03788 void   iiimp_open_reply_delete(IIIMP_data_s * data_s, IIIMP_open_reply *ptr);
03789 void   iiimp_close_delete(IIIMP_data_s * data_s, IIIMP_close *ptr);
03790 void   iiimp_close_reply_delete(IIIMP_data_s * data_s, IIIMP_close_reply *ptr);
03791 void   iiimp_read_delete(IIIMP_data_s * data_s, IIIMP_read *ptr);
03792 void   iiimp_read_reply_delete(IIIMP_data_s * data_s, IIIMP_read_reply *ptr);
03793 void   iiimp_write_delete(IIIMP_data_s * data_s, IIIMP_write *ptr);
03794 void   iiimp_write_reply_delete(IIIMP_data_s * data_s, IIIMP_write_reply *ptr);
03795 void   iiimp_opendir_delete(IIIMP_data_s * data_s, IIIMP_opendir *ptr);
03796 void   iiimp_opendir_reply_delete(IIIMP_data_s * data_s, IIIMP_opendir_reply *ptr);
03797 void   iiimp_closedir_delete(IIIMP_data_s * data_s, IIIMP_closedir *ptr);
03798 void   iiimp_closedir_reply_delete(IIIMP_data_s * data_s, IIIMP_closedir_reply *ptr);
03799 void   iiimp_seek_delete(IIIMP_data_s * data_s, IIIMP_seek *ptr);
03800 void   iiimp_seek_reply_delete(IIIMP_data_s * data_s, IIIMP_seek_reply *ptr);
03801 void   iiimp_mkdir_delete(IIIMP_data_s * data_s, IIIMP_mkdir *ptr);
03802 void   iiimp_mkdir_reply_delete(IIIMP_data_s * data_s, IIIMP_mkdir_reply *ptr);
03803 void   iiimp_rmdir_delete(IIIMP_data_s * data_s, IIIMP_rmdir *ptr);
03804 void   iiimp_rmdir_reply_delete(IIIMP_data_s * data_s, IIIMP_rmdir_reply *ptr);
03805 void   iiimp_symlink_delete(IIIMP_data_s * data_s, IIIMP_symlink *ptr);
03806 void   iiimp_symlink_reply_delete(IIIMP_data_s * data_s, IIIMP_symlink_reply *ptr);
03807 void   iiimp_stat_delete(IIIMP_data_s * data_s, IIIMP_stat *ptr);
03808 void   iiimp_stat_reply_delete(IIIMP_data_s * data_s, IIIMP_stat_reply *ptr);
03809 void   iiimp_lstat_delete(IIIMP_data_s * data_s, IIIMP_lstat *ptr);
03810 void   iiimp_lstat_reply_delete(IIIMP_data_s * data_s, IIIMP_lstat_reply *ptr);
03811 void   iiimp_fstat_delete(IIIMP_data_s * data_s, IIIMP_fstat *ptr);
03812 void   iiimp_fstat_reply_delete(IIIMP_data_s * data_s, IIIMP_fstat_reply *ptr);
03813 void   iiimp_creat_delete(IIIMP_data_s * data_s, IIIMP_creat *ptr);
03814 void   iiimp_creat_reply_delete(IIIMP_data_s * data_s, IIIMP_creat_reply *ptr);
03815 void   iiimp_lseek_delete(IIIMP_data_s * data_s, IIIMP_lseek *ptr);
03816 void   iiimp_lseek_reply_delete(IIIMP_data_s * data_s, IIIMP_lseek_reply *ptr);
03817 void   iiimp_unlink_delete(IIIMP_data_s * data_s, IIIMP_unlink *ptr);
03818 void   iiimp_unlink_reply_delete(IIIMP_data_s * data_s, IIIMP_unlink_reply *ptr);
03819 void   iiimp_rename_delete(IIIMP_data_s * data_s, IIIMP_rename *ptr);
03820 void   iiimp_rename_reply_delete(IIIMP_data_s * data_s, IIIMP_rename_reply *ptr);
03821 void   iiimp_fcntl_delete(IIIMP_data_s * data_s, IIIMP_fcntl *ptr);
03822 void   iiimp_fcntl_reply_delete(IIIMP_data_s * data_s, IIIMP_fcntl_reply *ptr);
03823 void   iiimp_truncate_delete(IIIMP_data_s * data_s, IIIMP_truncate *ptr);
03824 void   iiimp_truncate_reply_delete(IIIMP_data_s * data_s, IIIMP_truncate_reply *ptr);
03825 void   iiimp_ftruncate_delete(IIIMP_data_s * data_s, IIIMP_ftruncate *ptr);
03826 void   iiimp_ftruncate_reply_delete(IIIMP_data_s * data_s, IIIMP_ftruncate_reply *ptr);
03827 /* obsolete prototypes -- end */
03828 
03829 
03830 /* IIIMP feedback attribute */
03831 
03832 #define IIIMP_FEEDBACK_0_ID               (0)
03833 
03834 #define IIIMP_FEEDBACK_0_NORMAL_VIDEO            (0)
03835 #define IIIMP_FEEDBACK_0_REVERSE_VIDEO           (1)
03836 #define IIIMP_FEEDBACK_0_UNDERLINE        (2)
03837 #define IIIMP_FEEDBACK_0_HIGHLIGHT        (4)
03838 #define IIIMP_FEEDBACK_0_PRIMARY          (8)
03839 #define IIIMP_FEEDBACK_0_SECONDARY        (16)
03840 #define IIIMP_FEEDBACK_0_TERTIARY         (32)
03841 
03842 
03843 /* IIIMP annotation */
03844 
03845 #define IIIMP_ANNOTATION_TEXT_INPUT_BEFORE_CONVERSION   (01)
03846 #define IIIMP_ANNOTATION_READING_OF_THE_TEXT            (02)
03847 #define IIIMP_ANNOTATION_TYPE_OF_SPEECH                 (03)
03848 #define IIIMP_ANNOTATION_TYPE_OF_CLAUSE                 (04)
03849 
03850 
03851 /* IIIMP contents */
03852 
03853 #define IIIMP_CONTENTS_STRING      (0)
03854 #define IIIMP_CONTENTS_TEXT (1)
03855 #define IIIMP_CONTENTS_KEYEVENT    (2)
03856 
03857 /* IIIMP ic attribute */
03858 
03859 #define IIIMP_ICATTRIBUTE_NONE                   (0x00)
03860 #define IIIMP_ICATTRIBUTE_INPUT_LANGUAGE  (0x01)
03861 #define IIIMP_ICATTRIBUTE_CHARACTER_SUBSETS      (0x02)
03862 #define IIIMP_ICATTRIBUTE_INPUT_METHOD_NAME      (0x03)
03863 #define IIIMP_ICATTRIBUTE_INPUT_METHOD           (0x04)
03864 
03865 
03866 /* IIIMP im attribute */
03867 
03868 #define IIIMP_IMATTRIBUTE_NONE                                 (0x0000)
03869 #define IIIMP_IMATTRIBUTE_INPUT_METHOD_LIST                    (0x1001)
03870 #define IIIMP_IMATTRIBUTE_OBJECT_DESCRIPTOR_LIST        (0x1010)
03871 #define IIIMP_IMATTRIBUTE_CLIENT_DESCRIPTOR                    (0x1011)
03872 #define IIIMP_IMATTRIBUTE_CHARACTER_CONVERSION_DEFINITION_RULE (0x1030)
03873 #define IIIMP_IMATTRIBUTE_JAR_GUI_OBJECT                (0x1031)
03874 #define IIIMP_IMATTRIBUTE_JAR_LIGHT_WEIGHT_ENGINE_OBJECT       (0x1032)
03875 #define IIIMP_IMATTRIBUTE_BINARY_GUI_OBJECT                    (0x1033)
03876 #define IIIMP_IMATTRIBUTE_BINARY_LIGHT_WEIGHT_ENGINE_OBJECT    (0x1034)
03877 #define IIIMP_IMATTRIBUTE_SCRIPT_GUI_OBJECT                    (0x1035)
03878 #define IIIMP_IMATTRIBUTE_SCRIPT_LIGHT_WEIGHT_ENGINE_OBJECT    (0x1036)
03879 #define IIIMP_IMATTRIBUTE_CAPABILITY                           (0x1051)
03880 
03881 
03882 /* IIIMP capability */
03883 
03884 #define IIIMP_CAPABILITY_NONE                                  (0)
03885 #define IIIMP_CAPABILITY_ERROR                                 (1)
03886 #define IIIMP_CAPABILITY_FILE_OPERATION                        (2)
03887 #define IIIMP_CAPABILITY_KEY_RELEASE                           (3)
03888 
03889 
03890 /* IIIMP IM_LOOKUP_CHOICE_START */
03891 
03892 /* lookup choice master */
03893 #define IM_LOOKUP_CHOICE_START_UNKNOWN_IS_MASTER (0)
03894 #define IM_LOOKUP_CHOICE_START_SERVER_IS_MASTER         (1)
03895 #define IM_LOOKUP_CHOICE_START_CLIENT_IS_MASTER         (2)
03896 
03897 /* lookup choice drawing direction */
03898 #define IM_LOOKUP_CHOICE_START_DRAWING_UP_HORIZONTALLY  (0)
03899 #define IM_LOOKUP_CHOICE_START_DRAWING_UP_VERTICALLY    (1)
03900 
03901 /* lookup choice lavel owner */
03902 #define IM_LOOKUP_CHOICE_START_SERVER_OWNS_LABEL (0)
03903 #define IM_LOOKUP_CHOICE_START_CLIENT_OWNS_LABEL (1)
03904 
03905 
03906 /* IIIMP IM_LOOKUP_CHOICE_PROCESS */
03907 
03908 #define IM_LOOKUP_CHOICE_PROCESS_INDEX    (0)
03909 #define IM_LOOKUP_CHOICE_PROCESS_PAGE     (1)
03910 
03911 #define IM_LOOKUP_CHOICE_PROCESS_PAGE_NEXT_PAGE         (1)
03912 #define IM_LOOKUP_CHOICE_PROCESS_PAGE_PREV_PAGE         (2)
03913 #define IM_LOOKUP_CHOICE_PROCESS_PAGE_FIRST_PAGE (3)
03914 #define IM_LOOKUP_CHOICE_PROCESS_PAGE_LAST_PAGE         (4)
03915 
03916 
03917 /* IIIMP file operation */
03918 
03919 #define IIIMP_FILE_OPERATION_DATA_FCNTL_FILE_STATUS_FLAGS      (1)
03920 #define IIIMP_FILE_OPERATION_DATA_FCNTL_FILE_DESCRIPTOR_FLAGS  (2)
03921 #define IIIMP_FILE_OPERATION_DATA_FCNTL_FLOCK                  (3)
03922 
03923 
03924 /* IIIMP IM_CONNECT */
03925 
03926 #define IM_CONNECT_BIG_ENDIAN             (0x42)
03927 #define IM_CONNECT_LITTLE_ENDIAN   (0x6c)
03928 
03929 
03930 /* error status */
03931 
03932 #define IIIMP_DATA_NO_ERROR (0)
03933 #define IIIMP_DATA_MALLOC_ERROR    (1)
03934 #define IIIMP_DATA_INVALID  (2)
03935 
03936 
03937 /* definition for debug */
03938 
03939 #define       IIIMP_PRINT_NONE     (0x00000000)
03940 #define       IIIMP_PRINT_QUERY    (0xffffffff)
03941 #define       IIIMP_PRINT_JARFILE  (0x00000003)
03942 
03943 
03944 /* obslete definitions -- start */
03945 /* IIIMP file operation types */
03946 
03947 #define IIIMP_FILE_OPERATION_TYPE_OPEN                  (0)
03948 #define IIIMP_FILE_OPERATION_TYPE_OPEN_REPLY            (1)
03949 #define IIIMP_FILE_OPERATION_TYPE_READ                  (2)
03950 #define IIIMP_FILE_OPERATION_TYPE_READ_REPLY            (3)
03951 #define IIIMP_FILE_OPERATION_TYPE_WRITE          (4)
03952 #define IIIMP_FILE_OPERATION_TYPE_WRITE_REPLY           (5)
03953 #define IIIMP_FILE_OPERATION_TYPE_CLOSE          (6)
03954 #define IIIMP_FILE_OPERATION_TYPE_CLOSE_REPLY           (7)
03955 #define IIIMP_FILE_OPERATION_TYPE_MKDIR          (8)
03956 #define IIIMP_FILE_OPERATION_TYPE_MKDIR_REPLY           (9)
03957 #define IIIMP_FILE_OPERATION_TYPE_RMDIR          (10)
03958 #define IIIMP_FILE_OPERATION_TYPE_RMDIR_REPLY           (11)
03959 #define IIIMP_FILE_OPERATION_TYPE_SYMLINK        (12)
03960 #define IIIMP_FILE_OPERATION_TYPE_SYMLINK_REPLY  (13)
03961 #define IIIMP_FILE_OPERATION_TYPE_STAT                  (14)
03962 #define IIIMP_FILE_OPERATION_TYPE_STAT_REPLY            (15)
03963 #define IIIMP_FILE_OPERATION_TYPE_LSTAT          (16)
03964 #define IIIMP_FILE_OPERATION_TYPE_LSTAT_REPLY           (17)
03965 #define IIIMP_FILE_OPERATION_TYPE_FSTAT          (18)
03966 #define IIIMP_FILE_OPERATION_TYPE_FSTAT_REPLY           (19)
03967 #define IIIMP_FILE_OPERATION_TYPE_LSEEK          (20)
03968 #define IIIMP_FILE_OPERATION_TYPE_LSEEK_REPLY           (21)
03969 #define IIIMP_FILE_OPERATION_TYPE_UNLINK         (22)
03970 #define IIIMP_FILE_OPERATION_TYPE_UNLINK_REPLY          (23)
03971 #define IIIMP_FILE_OPERATION_TYPE_RENAME         (24)
03972 #define IIIMP_FILE_OPERATION_TYPE_RENAME_REPLY          (25)
03973 #define IIIMP_FILE_OPERATION_TYPE_FCNTL          (26)
03974 #define IIIMP_FILE_OPERATION_TYPE_FCNTL_REPLY           (27)
03975 #define IIIMP_FILE_OPERATION_TYPE_TRUNCATE              (28)
03976 #define IIIMP_FILE_OPERATION_TYPE_TRUNCATE_REPLY (29)
03977 #define IIIMP_FILE_OPERATION_TYPE_FTRUNCATE             (30)
03978 #define IIIMP_FILE_OPERATION_TYPE_FTRUNCATE_REPLY       (31)
03979 #define IIIMP_FILE_OPERATION_TYPE_OPENDIR        (32)
03980 #define IIIMP_FILE_OPERATION_TYPE_OPENDIR_REPLY  (33)
03981 #define IIIMP_FILE_OPERATION_TYPE_CLOSEDIR              (34)
03982 #define IIIMP_FILE_OPERATION_TYPE_CLOSEDIR_REPLY (35)
03983 #define IIIMP_FILE_OPERATION_TYPE_CREAT          (36)
03984 #define IIIMP_FILE_OPERATION_TYPE_CREAT_REPLY           (37)
03985 #define IIIMP_FILE_OPERATION_TYPE_SEEK                  (38)
03986 #define IIIMP_FILE_OPERATION_TYPE_SEEK_REPLY            (39)
03987 /* obslete definitions -- end */
03988 
03989 #ifdef __cplusplus
03990 }
03991 #endif
03992 
03993 #endif /* !IIIMP_DATA_H */
03994 
03995 
03996 /* Local Variables: */
03997 /* c-file-style: "iiim-project" */
03998 /* End: */