📄 ipp.h
字号:
#ifndef _IPP_H#define _IPP_H/* * Defines parts of the IPP protocol between the scheduler * and the printer. Based on RFC2911 and RFC2910. *//* * Status code classes. */#define STATCLASS_OK(x) ((x) >= 0x0000 && (x) <= 0x00ff)#define STATCLASS_INFO(x) ((x) >= 0x0100 && (x) <= 0x01ff)#define STATCLASS_REDIR(x) ((x) >= 0x0200 && (x) <= 0x02ff)#define STATCLASS_CLIERR(x) ((x) >= 0x0400 && (x) <= 0x04ff)#define STATCLASS_SRVERR(x) ((x) >= 0x0500 && (x) <= 0x05ff)/* * Status codes. */#define STAT_OK 0x0000 /* success */#define STAT_OK_ATTRIGN 0x0001 /* OK; some attrs ignored */#define STAT_OK_ATTRCON 0x0002 /* OK; some attrs conflicted */#define STAT_CLI_BADREQ 0x0400 /* invalid client request */#define STAT_CLI_FORBID 0x0401 /* request is forbidden */#define STAT_CLI_NOAUTH 0x0402 /* authentication required */#define STAT_CLI_NOPERM 0x0403 /* client not authorized */#define STAT_CLI_NOTPOS 0x0404 /* request not possible */#define STAT_CLI_TIMOUT 0x0405 /* client too slow */#define STAT_CLI_NOTFND 0x0406 /* no object found for URI */#define STAT_CLI_OBJGONE 0x0407 /* object no longer available */#define STAT_CLI_TOOBIG 0x0408 /* requested entity too big */#define STAT_CLI_TOOLNG 0x0409 /* attribute value too large */#define STAT_CLI_BADFMT 0x040a /* unsupported doc format */#define STAT_CLI_NOTSUP 0x040b /* attributes not supported */#define STAT_CLI_NOSCHM 0x040c /* URI scheme not supported */#define STAT_CLI_NOCHAR 0x040d /* charset not supported */#define STAT_CLI_ATTRCON 0x040e /* attributes conflicted */#define STAT_CLI_NOCOMP 0x040f /* compression not supported */#define STAT_CLI_COMPERR 0x0410 /* data can't be decompressed */#define STAT_CLI_FMTERR 0x0411 /* document format error */#define STAT_CLI_ACCERR 0x0412 /* error accessing data */#define STAT_SRV_INTERN 0x0500 /* unexpected internal error */#define STAT_SRV_NOTSUP 0x0501 /* operation not supported */#define STAT_SRV_UNAVAIL 0x0502 /* service unavailable */#define STAT_SRV_BADVER 0x0503 /* version not supported */#define STAT_SRV_DEVERR 0x0504 /* device error */#define STAT_SRV_TMPERR 0x0505 /* temporary error */#define STAT_SRV_REJECT 0x0506 /* server not accepting jobs */#define STAT_SRV_TOOBUSY 0x0507 /* server too busy */#define STAT_SRV_CANCEL 0x0508 /* job has been canceled */#define STAT_SRV_NOMULTI 0x0509 /* multi-doc jobs unsupported *//* * Operation IDs */#define OP_PRINT_JOB 0x02#define OP_PRINT_URI 0x03#define OP_VALIDATE_JOB 0x04#define OP_CREATE_JOB 0x05#define OP_SEND_DOC 0x06#define OP_SEND_URI 0x07#define OP_CANCEL_JOB 0x08#define OP_GET_JOB_ATTR 0x09#define OP_GET_JOBS 0x0a#define OP_GET_PRINTER_ATTR 0x0b#define OP_HOLD_JOB 0x0c#define OP_RELEASE_JOB 0x0d#define OP_RESTART_JOB 0x0e#define OP_PAUSE_PRINTER 0x10#define OP_RESUME_PRINTER 0x11#define OP_PURGE_JOBS 0x12/* * Attribute Tags. */#define TAG_OPERATION_ATTR 0x01 /* operation attributes tag */#define TAG_JOB_ATTR 0x02 /* job attributes tag */#define TAG_END_OF_ATTR 0x03 /* end of attributes tag */#define TAG_PRINTER_ATTR 0x04 /* printer attributes tag */#define TAG_UNSUPP_ATTR 0x05 /* unsupported attributes tag *//* * Value Tags. */#define TAG_UNSUPPORTED 0x10 /* unsupported value */#define TAG_UNKNOWN 0x12 /* unknown value */#define TAG_NONE 0x13 /* no value */#define TAG_INTEGER 0x21 /* integer */#define TAG_BOOLEAN 0x22 /* boolean */#define TAG_ENUM 0x23 /* enumeration */#define TAG_OCTSTR 0x30 /* octetString */#define TAG_DATETIME 0x31 /* dateTime */#define TAG_RESOLUTION 0x32 /* resolution */#define TAG_INTRANGE 0x33 /* rangeOfInteger */#define TAG_TEXTWLANG 0x35 /* textWithLanguage */#define TAG_NAMEWLANG 0x36 /* nameWithLanguage */#define TAG_TEXTWOLANG 0x41 /* textWithoutLanguage */#define TAG_NAMEWOLANG 0x42 /* nameWithoutLanguage */#define TAG_KEYWORD 0x44 /* keyword */#define TAG_URI 0x45 /* URI */#define TAG_URISCHEME 0x46 /* uriScheme */#define TAG_CHARSET 0x47 /* charset */#define TAG_NATULANG 0x48 /* naturalLanguage */#define TAG_MIMETYPE 0x49 /* mimeMediaType */struct ipp_hdr { int8_t major_version; /* always 1 */ int8_t minor_version; /* always 1 */ union { int16_t op; /* operation ID */ int16_t st; /* status */ } u; int32_t request_id; /* request ID */ char attr_group[1]; /* start of optional attributes group */ /* optional data follows */};#define operation u.op#define status u.st#endif /* _IPP_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -