X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=portmap%2Fportmap.x;h=6f4bc39f8f2fa2f87c52c49a17858c058d1d0edd;hb=24f45c5452ec03fd45098c1eb5ee6bc023b86049;hp=ef9f08e699b9465f56303039990702ddeedb992c;hpb=2e4db0d14597fdb0013fb16f24b3f872d1217397;p=deb_libnfs.git diff --git a/portmap/portmap.x b/portmap/portmap.x index ef9f08e..6f4bc39 100644 --- a/portmap/portmap.x +++ b/portmap/portmap.x @@ -4,41 +4,119 @@ const PMAP_PORT = 111; /* portmapper port number */ -struct pmap_mapping { +struct pmap2_mapping { unsigned int prog; unsigned int vers; unsigned int prot; unsigned int port; }; -struct pmap_call_args { +struct pmap2_call_args { unsigned int prog; unsigned int vers; unsigned int proc; opaque args<>; }; -struct pmap_call_result { +struct pmap2_call_result { unsigned int port; opaque res<>; }; +struct pmap2_mapping_list { + pmap2_mapping map; + pmap2_mapping_list *next; +}; + +struct pmap2_dump_result { + struct pmap2_mapping_list *list; +}; + +struct pmap3_string_result { + string addr<>; +}; + +struct pmap3_mapping { + unsigned int prog; + unsigned int vers; + string netid<>; + string addr<>; + string owner<>; +}; + +struct pmap3_mapping_list { + pmap3_mapping map; + pmap3_mapping_list *next; +}; + +struct pmap3_dump_result { + struct pmap3_mapping_list *list; +}; + +struct pmap3_call_args { + unsigned int prog; + unsigned int vers; + unsigned int proc; + opaque args<>; +}; + +struct pmap3_call_result { + unsigned int port; + opaque res<>; +}; + +struct pmap3_netbuf { + unsigned int maxlen; + opaque buf<>; +}; + program PMAP_PROGRAM { version PMAP_V2 { void - PMAP_NULL(void) = 0; + PMAP2_NULL(void) = 0; bool - PMAP_SET(pmap_mapping) = 1; + PMAP2_SET(pmap2_mapping) = 1; bool - PMAP_UNSET(pmap_mapping) = 2; + PMAP2_UNSET(pmap2_mapping) = 2; unsigned int - PMAP_GETPORT(pmap_mapping) = 3; + PMAP2_GETPORT(pmap2_mapping) = 3; + + pmap2_dump_result + PMAP2_DUMP(void) = 4; - pmap_call_result - PMAP_CALLIT(pmap_call_args) = 5; + pmap2_call_result + PMAP2_CALLIT(pmap2_call_args) = 5; } = 2; + version PMAP_V3 { + void + PMAP3_NULL(void) = 0; + + bool + PMAP3_SET(pmap3_mapping) = 1; + + bool + PMAP3_UNSET(pmap3_mapping) = 2; + + pmap3_string_result + PMAP3_GETADDR(pmap3_mapping) = 3; + + pmap3_dump_result + PMAP3_DUMP(void) = 4; + + pmap3_call_result + PMAP3_CALLIT(pmap3_call_args) = 5; + + unsigned int + PMAP3_GETTIME(void) = 6; + + pmap3_netbuf + PMAP3_UADDR2TADDR(string) = 7; + + struct pmap3_string_result + PMAP3_TADDR2UADDR(pmap3_netbuf) = 8; + } = 3; } = 100000;