]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - cups/ipp.h
Load cups into easysw/current.
[thirdparty/cups.git] / cups / ipp.h
index f011a35e4a35015abbd7ca8f485133f23e854ca2..d4ae704ea0a46c718d135f57f52cb8203cc79203 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ipp.h 4995 2006-01-26 20:14:42Z mike $"
+ * "$Id: ipp.h 5873 2006-08-24 14:37:24Z mike $"
  *
  *   Internet Printing Protocol definitions for the Common UNIX Printing
  *   System (CUPS).
@@ -72,86 +72,86 @@ extern "C" {
  * Types and structures...
  */
 
-typedef enum                           /**** Format tags for attribute formats... ****/
+typedef enum ipp_tag_e                 /**** Format tags for attributes... ****/
 {
-  IPP_TAG_ZERO = 0x00,
-  IPP_TAG_OPERATION,
-  IPP_TAG_JOB,
-  IPP_TAG_END,
-  IPP_TAG_PRINTER,
-  IPP_TAG_UNSUPPORTED_GROUP,
-  IPP_TAG_SUBSCRIPTION,
-  IPP_TAG_EVENT_NOTIFICATION,
-  IPP_TAG_UNSUPPORTED_VALUE = 0x10,
-  IPP_TAG_DEFAULT,
-  IPP_TAG_UNKNOWN,
-  IPP_TAG_NOVALUE,
-  IPP_TAG_NOTSETTABLE = 0x15,
-  IPP_TAG_DELETEATTR,
-  IPP_TAG_ADMINDEFINE,
-  IPP_TAG_INTEGER = 0x21,
-  IPP_TAG_BOOLEAN,
-  IPP_TAG_ENUM,
-  IPP_TAG_STRING = 0x30,
-  IPP_TAG_DATE,
-  IPP_TAG_RESOLUTION,
-  IPP_TAG_RANGE,
-  IPP_TAG_BEGIN_COLLECTION,
-  IPP_TAG_TEXTLANG,
-  IPP_TAG_NAMELANG,
-  IPP_TAG_END_COLLECTION,
-  IPP_TAG_TEXT = 0x41,
-  IPP_TAG_NAME,
-  IPP_TAG_KEYWORD = 0x44,
-  IPP_TAG_URI,
-  IPP_TAG_URISCHEME,
-  IPP_TAG_CHARSET,
-  IPP_TAG_LANGUAGE,
-  IPP_TAG_MIMETYPE,
-  IPP_TAG_MEMBERNAME,
+  IPP_TAG_ZERO = 0x00,                 /* Zero tag - used for separators */
+  IPP_TAG_OPERATION,                   /* Operation group */
+  IPP_TAG_JOB,                         /* Job group */
+  IPP_TAG_END,                         /* End-of-attributes */
+  IPP_TAG_PRINTER,                     /* Printer group */
+  IPP_TAG_UNSUPPORTED_GROUP,           /* Unsupported attributes group */
+  IPP_TAG_SUBSCRIPTION,                        /* Subscription group */
+  IPP_TAG_EVENT_NOTIFICATION,          /* Event group */
+  IPP_TAG_UNSUPPORTED_VALUE = 0x10,    /* Unsupported value */
+  IPP_TAG_DEFAULT,                     /* Default value */
+  IPP_TAG_UNKNOWN,                     /* Unknown value */
+  IPP_TAG_NOVALUE,                     /* No-value value */
+  IPP_TAG_NOTSETTABLE = 0x15,          /* Not-settable value */
+  IPP_TAG_DELETEATTR,                  /* Delete-attribute value */
+  IPP_TAG_ADMINDEFINE,                 /* Admin-defined value */
+  IPP_TAG_INTEGER = 0x21,              /* Integer value */
+  IPP_TAG_BOOLEAN,                     /* Boolean value */
+  IPP_TAG_ENUM,                                /* Enumeration value */
+  IPP_TAG_STRING = 0x30,               /* Octet string value */
+  IPP_TAG_DATE,                                /* Date/time value */
+  IPP_TAG_RESOLUTION,                  /* Resolution value */
+  IPP_TAG_RANGE,                       /* Range value */
+  IPP_TAG_BEGIN_COLLECTION,            /* Beginning of collection value */
+  IPP_TAG_TEXTLANG,                    /* Text-with-language value */
+  IPP_TAG_NAMELANG,                    /* Name-with-language value */
+  IPP_TAG_END_COLLECTION,              /* End of collection value */
+  IPP_TAG_TEXT = 0x41,                 /* Text value */
+  IPP_TAG_NAME,                                /* Name value */
+  IPP_TAG_KEYWORD = 0x44,              /* Keyword value */
+  IPP_TAG_URI,                         /* URI value */
+  IPP_TAG_URISCHEME,                   /* URI scheme value */
+  IPP_TAG_CHARSET,                     /* Character set value */
+  IPP_TAG_LANGUAGE,                    /* Language value */
+  IPP_TAG_MIMETYPE,                    /* MIME media type value */
+  IPP_TAG_MEMBERNAME,                  /* Collection member name value */
   IPP_TAG_MASK = 0x7fffffff,           /* Mask for copied attribute values */
   IPP_TAG_COPY = -0x7fffffff-1         /* Bitflag for copied attribute values */
 } ipp_tag_t;
 
-typedef enum                           /**** Resolution units... ****/
+typedef enum ipp_res_e                 /**** Resolution units... ****/
 {
-  IPP_RES_PER_INCH = 3,
-  IPP_RES_PER_CM
+  IPP_RES_PER_INCH = 3,                        /* Pixels per inch */
+  IPP_RES_PER_CM                       /* Pixels per centimeter */
 } ipp_res_t;
 
-typedef enum                           /**** Finishings... ****/
+typedef enum ipp_finish_e              /**** Finishings... ****/
 {
-  IPP_FINISHINGS_NONE = 3,
-  IPP_FINISHINGS_STAPLE,
-  IPP_FINISHINGS_PUNCH,
-  IPP_FINISHINGS_COVER,
-  IPP_FINISHINGS_BIND,
-  IPP_FINISHINGS_SADDLE_STITCH,
-  IPP_FINISHINGS_EDGE_STITCH,
-  IPP_FINISHINGS_FOLD,
-  IPP_FINISHINGS_TRIM,
-  IPP_FINISHINGS_BALE,
-  IPP_FINISHINGS_BOOKLET_MAKER,
-  IPP_FINISHINGS_JOB_OFFSET,
-  IPP_FINISHINGS_STAPLE_TOP_LEFT = 20,
-  IPP_FINISHINGS_STAPLE_BOTTOM_LEFT,
-  IPP_FINISHINGS_STAPLE_TOP_RIGHT,
-  IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT,
-  IPP_FINISHINGS_EDGE_STITCH_LEFT,
-  IPP_FINISHINGS_EDGE_STITCH_TOP,
-  IPP_FINISHINGS_EDGE_STITCH_RIGHT,
-  IPP_FINISHINGS_EDGE_STITCH_BOTTOM,
-  IPP_FINISHINGS_STAPLE_DUAL_LEFT,
-  IPP_FINISHINGS_STAPLE_DUAL_TOP,
-  IPP_FINISHINGS_STAPLE_DUAL_RIGHT,
-  IPP_FINISHINGS_STAPLE_DUAL_BOTTOM,
-  IPP_FINISHINGS_BIND_LEFT = 50,
-  IPP_FINISHINGS_BIND_TOP,
-  IPP_FINISHINGS_BIND_RIGHT,
-  IPP_FINISHINGS_BIND_BOTTOM
+  IPP_FINISHINGS_NONE = 3,             /* No finishing */
+  IPP_FINISHINGS_STAPLE,               /* Staple (any location) */
+  IPP_FINISHINGS_PUNCH,                        /* Punch (any location/count) */
+  IPP_FINISHINGS_COVER,                        /* Add cover */
+  IPP_FINISHINGS_BIND,                 /* Bind */
+  IPP_FINISHINGS_SADDLE_STITCH,                /* Staple interior */
+  IPP_FINISHINGS_EDGE_STITCH,          /* Stitch along any side */
+  IPP_FINISHINGS_FOLD,                 /* Fold (any type) */
+  IPP_FINISHINGS_TRIM,                 /* Trim (any type) */
+  IPP_FINISHINGS_BALE,                 /* Bale (any type) */
+  IPP_FINISHINGS_BOOKLET_MAKER,                /* Fold to make booklet */
+  IPP_FINISHINGS_JOB_OFFSET,           /* Offset for binding (any type) */
+  IPP_FINISHINGS_STAPLE_TOP_LEFT = 20, /* Staple top left corner */
+  IPP_FINISHINGS_STAPLE_BOTTOM_LEFT,   /* Staple bottom left corner */
+  IPP_FINISHINGS_STAPLE_TOP_RIGHT,     /* Staple top right corner */
+  IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT,  /* Staple bottom right corner */
+  IPP_FINISHINGS_EDGE_STITCH_LEFT,     /* Stitch along left side */
+  IPP_FINISHINGS_EDGE_STITCH_TOP,      /* Stitch along top edge */
+  IPP_FINISHINGS_EDGE_STITCH_RIGHT,    /* Stitch along right side */
+  IPP_FINISHINGS_EDGE_STITCH_BOTTOM,   /* Stitch along bottom edge */
+  IPP_FINISHINGS_STAPLE_DUAL_LEFT,     /* Two staples on left */
+  IPP_FINISHINGS_STAPLE_DUAL_TOP,      /* Two staples on top */
+  IPP_FINISHINGS_STAPLE_DUAL_RIGHT,    /* Two staples on right */
+  IPP_FINISHINGS_STAPLE_DUAL_BOTTOM,   /* Two staples on bottom */
+  IPP_FINISHINGS_BIND_LEFT = 50,       /* Bind on left */
+  IPP_FINISHINGS_BIND_TOP,             /* Bind on top */
+  IPP_FINISHINGS_BIND_RIGHT,           /* Bind on right */
+  IPP_FINISHINGS_BIND_BOTTOM           /* Bind on bottom */
 } ipp_finish_t;
 
-typedef enum                           /**** Orientation... ****/
+typedef enum ipp_orient_e              /**** Orientation... ****/
 {
   IPP_PORTRAIT = 3,                    /* No rotation */
   IPP_LANDSCAPE,                       /* 90 degrees counter-clockwise */
@@ -159,32 +159,33 @@ typedef enum                              /**** Orientation... ****/
   IPP_REVERSE_PORTRAIT                 /* 180 degrees */
 } ipp_orient_t;
 
-typedef enum                           /**** Qualities... ****/
+typedef enum ipp_quality_e             /**** Qualities... ****/
 {
-  IPP_QUALITY_DRAFT = 3,
-  IPP_QUALITY_NORMAL,
-  IPP_QUALITY_HIGH
+  IPP_QUALITY_DRAFT = 3,               /* Draft quality */
+  IPP_QUALITY_NORMAL,                  /* Normal quality */
+  IPP_QUALITY_HIGH                     /* High quality */
 } ipp_quality_t;
 
-typedef enum                           /**** Job States.... */
+typedef enum ipp_jstate_e              /**** Job States.... */
 {
-  IPP_JOB_PENDING = 3,
-  IPP_JOB_HELD,
-  IPP_JOB_PROCESSING,
-  IPP_JOB_STOPPED,
-  IPP_JOB_CANCELLED,
-  IPP_JOB_ABORTED,
-  IPP_JOB_COMPLETED
+  IPP_JOB_PENDING = 3,                 /* Job is waiting to be printed */
+  IPP_JOB_HELD,                                /* Job is held for printing */
+  IPP_JOB_PROCESSING,                  /* Job is currently printing */
+  IPP_JOB_STOPPED,                     /* Job has been stopped */
+  IPP_JOB_CANCELED,                    /* Job has been canceled */
+  IPP_JOB_ABORTED,                     /* Job has aborted due to error */
+  IPP_JOB_COMPLETED                    /* Job has completed successfully */
 } ipp_jstate_t;
+#define IPP_JOB_CANCELLED IPP_JOB_CANCELED
 
-typedef enum                           /**** Printer States.... */
+typedef enum ipp_pstate_e              /**** Printer States.... */
 {
-  IPP_PRINTER_IDLE = 3,
-  IPP_PRINTER_PROCESSING,
-  IPP_PRINTER_STOPPED
+  IPP_PRINTER_IDLE = 3,                        /* Printer is idle */
+  IPP_PRINTER_PROCESSING,              /* Printer is working */
+  IPP_PRINTER_STOPPED                  /* Printer is stopped */
 } ipp_pstate_t;
 
-typedef enum                           /**** IPP states... ****/
+typedef enum ipp_state_e               /**** IPP states... ****/
 {
   IPP_ERROR = -1,                      /* An error occurred */
   IPP_IDLE,                            /* Nothing is happening/request completed */
@@ -193,128 +194,130 @@ typedef enum                            /**** IPP states... ****/
   IPP_DATA                             /* IPP request data needs to be sent/received */
 } ipp_state_t;
 
-typedef enum                           /**** IPP operations... ****/
+typedef enum ipp_op_e                  /**** IPP operations... ****/
 {
-  IPP_PRINT_JOB = 0x0002,
-  IPP_PRINT_URI,
-  IPP_VALIDATE_JOB,
-  IPP_CREATE_JOB,
-  IPP_SEND_DOCUMENT,
-  IPP_SEND_URI,
-  IPP_CANCEL_JOB,
-  IPP_GET_JOB_ATTRIBUTES,
-  IPP_GET_JOBS,
-  IPP_GET_PRINTER_ATTRIBUTES,
-  IPP_HOLD_JOB,
-  IPP_RELEASE_JOB,
-  IPP_RESTART_JOB,
-  IPP_PAUSE_PRINTER = 0x0010,
-  IPP_RESUME_PRINTER,
-  IPP_PURGE_JOBS,
-  IPP_SET_PRINTER_ATTRIBUTES,
-  IPP_SET_JOB_ATTRIBUTES,
-  IPP_GET_PRINTER_SUPPORTED_VALUES,
-  IPP_CREATE_PRINTER_SUBSCRIPTION,
-  IPP_CREATE_JOB_SUBSCRIPTION,
-  IPP_GET_SUBSCRIPTION_ATTRIBUTES,
-  IPP_GET_SUBSCRIPTIONS,
-  IPP_RENEW_SUBSCRIPTION,
-  IPP_CANCEL_SUBSCRIPTION,
-  IPP_GET_NOTIFICATIONS,
-  IPP_SEND_NOTIFICATIONS,
-  IPP_GET_PRINT_SUPPORT_FILES = 0x0021,
-  IPP_ENABLE_PRINTER,
-  IPP_DISABLE_PRINTER,
-  IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB,
-  IPP_HOLD_NEW_JOBS,
-  IPP_RELEASE_HELD_NEW_JOBS,
-  IPP_DEACTIVATE_PRINTER,
-  IPP_ACTIVATE_PRINTER,
-  IPP_RESTART_PRINTER,
-  IPP_SHUTDOWN_PRINTER,
-  IPP_STARTUP_PRINTER,
-  IPP_REPROCESS_JOB,
-  IPP_CANCEL_CURRENT_JOB,
-  IPP_SUSPEND_CURRENT_JOB,
-  IPP_RESUME_JOB,
-  IPP_PROMOTE_JOB,
-  IPP_SCHEDULE_JOB_AFTER,
-  IPP_PRIVATE = 0x4000,
-  CUPS_GET_DEFAULT,
-  CUPS_GET_PRINTERS,
-  CUPS_ADD_MODIFY_PRINTER,
-  CUPS_DELETE_PRINTER,
-  CUPS_GET_CLASSES,
-  CUPS_ADD_MODIFY_CLASS,
-  CUPS_DELETE_CLASS,
-  CUPS_ACCEPT_JOBS,
-  CUPS_REJECT_JOBS,
-  CUPS_SET_DEFAULT,
-  CUPS_GET_DEVICES,
-  CUPS_GET_PPDS,
-  CUPS_MOVE_JOB,
-  CUPS_AUTHENTICATE_JOB
+  IPP_PRINT_JOB = 0x0002,              /* Print a single file */
+  IPP_PRINT_URI,                       /* Print a single URL @private@ */
+  IPP_VALIDATE_JOB,                    /* Validate job options */
+  IPP_CREATE_JOB,                      /* Create an empty print job */
+  IPP_SEND_DOCUMENT,                   /* Add a file to a job */
+  IPP_SEND_URI,                                /* Add a URL to a job @private@ */
+  IPP_CANCEL_JOB,                      /* Cancel a job */
+  IPP_GET_JOB_ATTRIBUTES,              /* Get job attributes */
+  IPP_GET_JOBS,                                /* Get a list of jobs */
+  IPP_GET_PRINTER_ATTRIBUTES,          /* Get printer attributes */
+  IPP_HOLD_JOB,                                /* Hold a job for printing */
+  IPP_RELEASE_JOB,                     /* Release a job for printing */
+  IPP_RESTART_JOB,                     /* Reprint a job */
+  IPP_PAUSE_PRINTER = 0x0010,          /* Stop a printer */
+  IPP_RESUME_PRINTER,                  /* Start a printer */
+  IPP_PURGE_JOBS,                      /* Cancel all jobs */
+  IPP_SET_PRINTER_ATTRIBUTES,          /* Set printer attributes @private@ */
+  IPP_SET_JOB_ATTRIBUTES,              /* Set job attributes */
+  IPP_GET_PRINTER_SUPPORTED_VALUES,    /* Get supported attribute values */
+  IPP_CREATE_PRINTER_SUBSCRIPTION,     /* Create a printer subscription @since CUPS 1.2@ */
+  IPP_CREATE_JOB_SUBSCRIPTION,         /* Create a job subscription @since CUPS 1.2@ */
+  IPP_GET_SUBSCRIPTION_ATTRIBUTES,     /* Get subscription attributes @since CUPS 1.2@ */
+  IPP_GET_SUBSCRIPTIONS,               /* Get list of subscriptions @since CUPS 1.2@ */
+  IPP_RENEW_SUBSCRIPTION,              /* Renew a printer subscription @since CUPS 1.2@ */
+  IPP_CANCEL_SUBSCRIPTION,             /* Cancel a subscription @since CUPS 1.2@ */
+  IPP_GET_NOTIFICATIONS,               /* Get notification events @since CUPS 1.2@ */
+  IPP_SEND_NOTIFICATIONS,              /* Send notification events @private@ */
+  IPP_GET_PRINT_SUPPORT_FILES = 0x0021,        /* Get printer support files @private@ */
+  IPP_ENABLE_PRINTER,                  /* Start a printer */
+  IPP_DISABLE_PRINTER,                 /* Stop a printer */
+  IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB, /* Stop printer after the current job @private@ */
+  IPP_HOLD_NEW_JOBS,                   /* Hold new jobs @private@ */
+  IPP_RELEASE_HELD_NEW_JOBS,           /* Release new jobs @private@ */
+  IPP_DEACTIVATE_PRINTER,              /* Stop a printer @private@ */
+  IPP_ACTIVATE_PRINTER,                        /* Start a printer @private@ */
+  IPP_RESTART_PRINTER,                 /* Restart a printer @private@ */
+  IPP_SHUTDOWN_PRINTER,                        /* Turn a printer off @private@ */
+  IPP_STARTUP_PRINTER,                 /* Turn a printer on @private@ */
+  IPP_REPROCESS_JOB,                   /* Reprint a job @private@ */
+  IPP_CANCEL_CURRENT_JOB,              /* Cancel the current job @private@ */
+  IPP_SUSPEND_CURRENT_JOB,             /* Suspend the current job @private@ */
+  IPP_RESUME_JOB,                      /* Resume the current job @private@ */
+  IPP_PROMOTE_JOB,                     /* Promote a job to print sooner @private@ */
+  IPP_SCHEDULE_JOB_AFTER,              /* Schedule a job to print after another @private@ */
+  IPP_PRIVATE = 0x4000,                        /* Reserved @private@ */
+  CUPS_GET_DEFAULT,                    /* Get the default printer */
+  CUPS_GET_PRINTERS,                   /* Get a list of printers and/or classes */
+  CUPS_ADD_MODIFY_PRINTER,             /* Add or modify a printer */
+  CUPS_DELETE_PRINTER,                 /* Delete a printer */
+  CUPS_GET_CLASSES,                    /* Get a list of classes @deprecated@ */
+  CUPS_ADD_MODIFY_CLASS,               /* Add or modify a class */
+  CUPS_DELETE_CLASS,                   /* Delete a class */
+  CUPS_ACCEPT_JOBS,                    /* Accept new jobs on a printer */
+  CUPS_REJECT_JOBS,                    /* Reject new jobs on a printer */
+  CUPS_SET_DEFAULT,                    /* Set the default printer */
+  CUPS_GET_DEVICES,                    /* Get a list of supported devices */
+  CUPS_GET_PPDS,                       /* Get a list of supported drivers */
+  CUPS_MOVE_JOB,                       /* Move a job to a different printer */
+  CUPS_AUTHENTICATE_JOB                        /* Authenticate a job @since CUPS 1.2@ */
 } ipp_op_t;
 
 /* Old names for the operations */
 #define CUPS_ADD_PRINTER       CUPS_ADD_MODIFY_PRINTER
 #define CUPS_ADD_CLASS         CUPS_ADD_MODIFY_CLASS
 
-typedef enum                           /**** IPP status codes... ****/
+typedef enum ipp_status_e              /**** IPP status codes... ****/
 {
-  IPP_OK = 0x0000,
-  IPP_OK_SUBST,
-  IPP_OK_CONFLICT,
-  IPP_OK_IGNORED_SUBSCRIPTIONS,
-  IPP_OK_IGNORED_NOTIFICATIONS,
-  IPP_OK_TOO_MANY_EVENTS,
-  IPP_OK_BUT_CANCEL_SUBSCRIPTION,
-  IPP_REDIRECTION_OTHER_SITE = 0x300,
-  IPP_BAD_REQUEST = 0x0400,
-  IPP_FORBIDDEN,
-  IPP_NOT_AUTHENTICATED,
-  IPP_NOT_AUTHORIZED,
-  IPP_NOT_POSSIBLE,
-  IPP_TIMEOUT,
-  IPP_NOT_FOUND,
-  IPP_GONE,
-  IPP_REQUEST_ENTITY,
-  IPP_REQUEST_VALUE,
-  IPP_DOCUMENT_FORMAT,
-  IPP_ATTRIBUTES,
-  IPP_URI_SCHEME,
-  IPP_CHARSET,
-  IPP_CONFLICT,
-  IPP_COMPRESSION_NOT_SUPPORTED,
-  IPP_COMPRESSION_ERROR,
-  IPP_DOCUMENT_FORMAT_ERROR,
-  IPP_DOCUMENT_ACCESS_ERROR,
-  IPP_ATTRIBUTES_NOT_SETTABLE,
-  IPP_IGNORED_ALL_SUBSCRIPTIONS,
-  IPP_TOO_MANY_SUBSCRIPTIONS,
-  IPP_IGNORED_ALL_NOTIFICATIONS,
-  IPP_PRINT_SUPPORT_FILE_NOT_FOUND,
-
-  IPP_INTERNAL_ERROR = 0x0500,
-  IPP_OPERATION_NOT_SUPPORTED,
-  IPP_SERVICE_UNAVAILABLE,
-  IPP_VERSION_NOT_SUPPORTED,
-  IPP_DEVICE_ERROR,
-  IPP_TEMPORARY_ERROR,
-  IPP_NOT_ACCEPTING,
-  IPP_PRINTER_BUSY,
-  IPP_ERROR_JOB_CANCELLED,
-  IPP_MULTIPLE_JOBS_NOT_SUPPORTED,
-  IPP_PRINTER_IS_DEACTIVATED
+  IPP_OK = 0x0000,                     /* successful-ok */
+  IPP_OK_SUBST,                                /* successful-ok-ignored-or-substituted-attributes */
+  IPP_OK_CONFLICT,                     /* successful-ok-conflicting-attributes */
+  IPP_OK_IGNORED_SUBSCRIPTIONS,                /* successful-ok-ignored-subscriptions */
+  IPP_OK_IGNORED_NOTIFICATIONS,                /* successful-ok-ignored-notifications */
+  IPP_OK_TOO_MANY_EVENTS,              /* successful-ok-too-many-events */
+  IPP_OK_BUT_CANCEL_SUBSCRIPTION,      /* successful-ok-but-cancel-subscription */
+  IPP_OK_EVENTS_COMPLETE,              /* successful-ok-events-complete */
+  IPP_REDIRECTION_OTHER_SITE = 0x300,  /*  */
+  IPP_BAD_REQUEST = 0x0400,            /* client-error-bad-request */
+  IPP_FORBIDDEN,                       /* client-error-forbidden */
+  IPP_NOT_AUTHENTICATED,               /* client-error-not-authenticated */
+  IPP_NOT_AUTHORIZED,                  /* client-error-not-authorized */
+  IPP_NOT_POSSIBLE,                    /* client-error-not-possible */
+  IPP_TIMEOUT,                         /* client-error-timeout */
+  IPP_NOT_FOUND,                       /* client-error-not-found */
+  IPP_GONE,                            /* client-error-gone */
+  IPP_REQUEST_ENTITY,                  /* client-error-request-entity-too-large */
+  IPP_REQUEST_VALUE,                   /* client-error-request-value-too-long */
+  IPP_DOCUMENT_FORMAT,                 /* client-error-document-format-not-supported */
+  IPP_ATTRIBUTES,                      /* client-error-attributes-or-values-not-supported */
+  IPP_URI_SCHEME,                      /* client-error-uri-scheme-not-supported */
+  IPP_CHARSET,                         /* client-error-charset-not-supported */
+  IPP_CONFLICT,                                /* client-error-conflicting-attributes */
+  IPP_COMPRESSION_NOT_SUPPORTED,       /* client-error-compression-not-supported */
+  IPP_COMPRESSION_ERROR,               /* client-error-compression-error */
+  IPP_DOCUMENT_FORMAT_ERROR,           /* client-error-document-format-error */
+  IPP_DOCUMENT_ACCESS_ERROR,           /* client-error-document-access-error */
+  IPP_ATTRIBUTES_NOT_SETTABLE,         /* client-error-attributes-not-settable */
+  IPP_IGNORED_ALL_SUBSCRIPTIONS,       /* client-error-ignored-all-subscriptions */
+  IPP_TOO_MANY_SUBSCRIPTIONS,          /* client-error-too-many-subscriptions */
+  IPP_IGNORED_ALL_NOTIFICATIONS,       /* client-error-ignored-all-notifications */
+  IPP_PRINT_SUPPORT_FILE_NOT_FOUND,    /* client-error-print-support-file-not-found */
+
+  IPP_INTERNAL_ERROR = 0x0500,         /* server-error-internal-error */
+  IPP_OPERATION_NOT_SUPPORTED,         /* server-error-operation-not-supported */
+  IPP_SERVICE_UNAVAILABLE,             /* server-error-service-unavailable */
+  IPP_VERSION_NOT_SUPPORTED,           /* server-error-version-not-supported */
+  IPP_DEVICE_ERROR,                    /* server-error-device-error */
+  IPP_TEMPORARY_ERROR,                 /* server-error-temporary-error */
+  IPP_NOT_ACCEPTING,                   /* server-error-not-accepting-jobs */
+  IPP_PRINTER_BUSY,                    /* server-error-busy */
+  IPP_ERROR_JOB_CANCELED,              /* server-error-job-canceled */
+  IPP_MULTIPLE_JOBS_NOT_SUPPORTED,     /* server-error-multiple-document-jobs-not-supported */
+  IPP_PRINTER_IS_DEACTIVATED           /* server-error-printer-is-deactivated */
 } ipp_status_t;
+#define IPP_ERROR_JOB_CANCELLED IPP_ERROR_JOB_CANCELED
 
 typedef unsigned char ipp_uchar_t;     /**** Unsigned 8-bit integer/character ****/
 
-/**** New in CUPS 1.1.19 ****/
-typedef int    (*ipp_iocb_t)(void *, ipp_uchar_t *, int);
-                                       /**** IPP IO Callback Function ****/
+/**** New in CUPS 1.2 ****/
+typedef ssize_t        (*ipp_iocb_t)(void *, ipp_uchar_t *, size_t);
+                                       /**** IPP IO Callback Function @since CUPS 1.2@ ****/
 
-typedef union                          /**** Request Header ****/
+typedef union ipp_request_u            /**** Request Header ****/
 {
   struct                               /* Any Header */
   {
@@ -347,9 +350,9 @@ typedef union                               /**** Request Header ****/
 } ipp_request_t;
 
 /**** New in CUPS 1.1.19 ****/
-typedef struct ipp_str ipp_t;
+typedef struct ipp_s ipp_t;
 
-typedef union                          /**** Attribute Value ****/
+typedef union ipp_value_u              /**** Attribute Value ****/
 {
   int          integer;                /* Integer/enumerated value */
 
@@ -396,13 +399,13 @@ typedef struct ipp_attribute_s            /**** Attribute ****/
   ipp_value_t  values[1];              /* Values */
 } ipp_attribute_t;
 
-struct ipp_str                         /**** IPP Request/Response/Notification ****/
+struct ipp_s                           /**** IPP Request/Response/Notification ****/
 {
   ipp_state_t  state;                  /* State of request */
   ipp_request_t        request;                /* Request header */
-  ipp_attribute_t *attrs,              /* Attributes */
-               *last,                  /* Last attribute in list */
-               *current;               /* Current attribute (for read/write) */
+  ipp_attribute_t *attrs;              /* Attributes */
+  ipp_attribute_t *last;               /* Last attribute in list */
+  ipp_attribute_t *current;            /* Current attribute (for read/write) */
   ipp_tag_t    curtag;                 /* Current attribute group tag */
 
 /**** New in CUPS 1.2 ****/
@@ -470,11 +473,7 @@ extern ipp_attribute_t     *ippAddCollections(ipp_t *ipp, ipp_tag_t group,
                                           const ipp_t **values);
 extern void            ippDeleteAttribute(ipp_t *ipp, ipp_attribute_t *attr);
 extern ipp_state_t     ippReadFile(int fd, ipp_t *ipp);
-extern ipp_state_t     ippReadIO(void *src, ipp_iocb_t cb, int blocking,
-                                 ipp_t *parent, ipp_t *ipp);
 extern ipp_state_t     ippWriteFile(int fd, ipp_t *ipp);
-extern ipp_state_t     ippWriteIO(void *dst, ipp_iocb_t cb, int blocking,
-                                  ipp_t *parent, ipp_t *ipp);
 
 /**** New in CUPS 1.2 ****/
 extern ipp_attribute_t *ippAddOctetString(ipp_t *ipp, ipp_tag_t group,
@@ -484,6 +483,10 @@ extern ipp_status_t        ippErrorValue(const char *name);
 extern ipp_t           *ippNewRequest(ipp_op_t op);
 extern const char      *ippOpString(ipp_op_t op);
 extern ipp_op_t                ippOpValue(const char *name);
+extern ipp_state_t     ippReadIO(void *src, ipp_iocb_t cb, int blocking,
+                                 ipp_t *parent, ipp_t *ipp);
+extern ipp_state_t     ippWriteIO(void *dst, ipp_iocb_t cb, int blocking,
+                                  ipp_t *parent, ipp_t *ipp);
 
 
 /*
@@ -496,5 +499,5 @@ extern ipp_op_t             ippOpValue(const char *name);
 #endif /* !_CUPS_IPP_H_ */
 
 /*
- * End of "$Id: ipp.h 4995 2006-01-26 20:14:42Z mike $".
+ * End of "$Id: ipp.h 5873 2006-08-24 14:37:24Z mike $".
  */