mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-10 07:20:02 +00:00
36 lines
869 B
Plaintext
36 lines
869 B
Plaintext
|
/* Example from https://www.rfc-editor.org/rfc/rfc4506#section-7 */
|
||
|
|
||
|
const MAXUSERNAME = 32; /* max length of a user name */
|
||
|
const MAXFILELEN = 65535; /* max length of a file */
|
||
|
const MAXNAMELEN = 255; /* max length of a file name */
|
||
|
|
||
|
/*
|
||
|
* Types of files:
|
||
|
*/
|
||
|
enum filekind {
|
||
|
TEXT = 0, /* ascii data */
|
||
|
DATA = 1, /* raw data */
|
||
|
EXEC = 2 /* executable */
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* File information, per kind of file:
|
||
|
*/
|
||
|
union filetype switch (filekind kind) {
|
||
|
case TEXT:
|
||
|
void; /* no extra information */
|
||
|
case DATA:
|
||
|
string creator<MAXNAMELEN>; /* data creator */
|
||
|
case EXEC:
|
||
|
string interpretor<MAXNAMELEN>; /* program interpretor */
|
||
|
};
|
||
|
/*
|
||
|
* A complete file:
|
||
|
*/
|
||
|
struct file {
|
||
|
string filename<MAXNAMELEN>; /* name of file */
|
||
|
filetype type; /* info about file */
|
||
|
string owner<MAXUSERNAME>; /* owner of file */
|
||
|
opaque data<MAXFILELEN>; /* file data */
|
||
|
};
|