/linux-4.1.27/include/linux/isdn/ |
H A D | capiutil.h | 150 unsigned capi_cmsg2message(_cmsg * cmsg, __u8 * msg); 156 unsigned capi_message2cmsg(_cmsg * cmsg, __u8 * msg); 163 unsigned capi_cmsg_header(_cmsg * cmsg, __u16 _ApplId, 189 _cdebbuf *capi_cmsg2str(_cmsg *cmsg); 194 static inline void capi_cmsg_answer(_cmsg * cmsg) capi_cmsg_answer() argument 196 cmsg->Subcommand |= 0x01; capi_cmsg_answer() 201 static inline void capi_fill_CONNECT_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_CONNECT_B3_REQ() argument 205 capi_cmsg_header(cmsg, ApplId, 0x82, 0x80, Messagenumber, adr); capi_fill_CONNECT_B3_REQ() 206 cmsg->NCPI = NCPI; capi_fill_CONNECT_B3_REQ() 209 static inline void capi_fill_FACILITY_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_FACILITY_REQ() argument 214 capi_cmsg_header(cmsg, ApplId, 0x80, 0x80, Messagenumber, adr); capi_fill_FACILITY_REQ() 215 cmsg->FacilitySelector = FacilitySelector; capi_fill_FACILITY_REQ() 216 cmsg->FacilityRequestParameter = FacilityRequestParameter; capi_fill_FACILITY_REQ() 219 static inline void capi_fill_INFO_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_INFO_REQ() argument 227 capi_cmsg_header(cmsg, ApplId, 0x08, 0x80, Messagenumber, adr); capi_fill_INFO_REQ() 228 cmsg->CalledPartyNumber = CalledPartyNumber; capi_fill_INFO_REQ() 229 cmsg->BChannelinformation = BChannelinformation; capi_fill_INFO_REQ() 230 cmsg->Keypadfacility = Keypadfacility; capi_fill_INFO_REQ() 231 cmsg->Useruserdata = Useruserdata; capi_fill_INFO_REQ() 232 cmsg->Facilitydataarray = Facilitydataarray; capi_fill_INFO_REQ() 235 static inline void capi_fill_LISTEN_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_LISTEN_REQ() argument 243 capi_cmsg_header(cmsg, ApplId, 0x05, 0x80, Messagenumber, adr); capi_fill_LISTEN_REQ() 244 cmsg->InfoMask = InfoMask; capi_fill_LISTEN_REQ() 245 cmsg->CIPmask = CIPmask; capi_fill_LISTEN_REQ() 246 cmsg->CIPmask2 = CIPmask2; capi_fill_LISTEN_REQ() 247 cmsg->CallingPartyNumber = CallingPartyNumber; capi_fill_LISTEN_REQ() 248 cmsg->CallingPartySubaddress = CallingPartySubaddress; capi_fill_LISTEN_REQ() 251 static inline void capi_fill_ALERT_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_ALERT_REQ() argument 258 capi_cmsg_header(cmsg, ApplId, 0x01, 0x80, Messagenumber, adr); capi_fill_ALERT_REQ() 259 cmsg->BChannelinformation = BChannelinformation; capi_fill_ALERT_REQ() 260 cmsg->Keypadfacility = Keypadfacility; capi_fill_ALERT_REQ() 261 cmsg->Useruserdata = Useruserdata; capi_fill_ALERT_REQ() 262 cmsg->Facilitydataarray = Facilitydataarray; capi_fill_ALERT_REQ() 265 static inline void capi_fill_CONNECT_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_CONNECT_REQ() argument 287 capi_cmsg_header(cmsg, ApplId, 0x02, 0x80, Messagenumber, adr); capi_fill_CONNECT_REQ() 288 cmsg->CIPValue = CIPValue; capi_fill_CONNECT_REQ() 289 cmsg->CalledPartyNumber = CalledPartyNumber; capi_fill_CONNECT_REQ() 290 cmsg->CallingPartyNumber = CallingPartyNumber; capi_fill_CONNECT_REQ() 291 cmsg->CalledPartySubaddress = CalledPartySubaddress; capi_fill_CONNECT_REQ() 292 cmsg->CallingPartySubaddress = CallingPartySubaddress; capi_fill_CONNECT_REQ() 293 cmsg->B1protocol = B1protocol; capi_fill_CONNECT_REQ() 294 cmsg->B2protocol = B2protocol; capi_fill_CONNECT_REQ() 295 cmsg->B3protocol = B3protocol; capi_fill_CONNECT_REQ() 296 cmsg->B1configuration = B1configuration; capi_fill_CONNECT_REQ() 297 cmsg->B2configuration = B2configuration; capi_fill_CONNECT_REQ() 298 cmsg->B3configuration = B3configuration; capi_fill_CONNECT_REQ() 299 cmsg->BC = BC; capi_fill_CONNECT_REQ() 300 cmsg->LLC = LLC; capi_fill_CONNECT_REQ() 301 cmsg->HLC = HLC; capi_fill_CONNECT_REQ() 302 cmsg->BChannelinformation = BChannelinformation; capi_fill_CONNECT_REQ() 303 cmsg->Keypadfacility = Keypadfacility; capi_fill_CONNECT_REQ() 304 cmsg->Useruserdata = Useruserdata; capi_fill_CONNECT_REQ() 305 cmsg->Facilitydataarray = Facilitydataarray; capi_fill_CONNECT_REQ() 308 static inline void capi_fill_DATA_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_DATA_B3_REQ() argument 316 capi_cmsg_header(cmsg, ApplId, 0x86, 0x80, Messagenumber, adr); capi_fill_DATA_B3_REQ() 317 cmsg->Data = Data; capi_fill_DATA_B3_REQ() 318 cmsg->DataLength = DataLength; capi_fill_DATA_B3_REQ() 319 cmsg->DataHandle = DataHandle; capi_fill_DATA_B3_REQ() 320 cmsg->Flags = Flags; capi_fill_DATA_B3_REQ() 323 static inline void capi_fill_DISCONNECT_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_DISCONNECT_REQ() argument 331 capi_cmsg_header(cmsg, ApplId, 0x04, 0x80, Messagenumber, adr); capi_fill_DISCONNECT_REQ() 332 cmsg->BChannelinformation = BChannelinformation; capi_fill_DISCONNECT_REQ() 333 cmsg->Keypadfacility = Keypadfacility; capi_fill_DISCONNECT_REQ() 334 cmsg->Useruserdata = Useruserdata; capi_fill_DISCONNECT_REQ() 335 cmsg->Facilitydataarray = Facilitydataarray; capi_fill_DISCONNECT_REQ() 338 static inline void capi_fill_DISCONNECT_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_DISCONNECT_B3_REQ() argument 343 capi_cmsg_header(cmsg, ApplId, 0x84, 0x80, Messagenumber, adr); capi_fill_DISCONNECT_B3_REQ() 344 cmsg->NCPI = NCPI; capi_fill_DISCONNECT_B3_REQ() 347 static inline void capi_fill_MANUFACTURER_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_MANUFACTURER_REQ() argument 355 capi_cmsg_header(cmsg, ApplId, 0xff, 0x80, Messagenumber, adr); capi_fill_MANUFACTURER_REQ() 356 cmsg->ManuID = ManuID; capi_fill_MANUFACTURER_REQ() 357 cmsg->Class = Class; capi_fill_MANUFACTURER_REQ() 358 cmsg->Function = Function; capi_fill_MANUFACTURER_REQ() 359 cmsg->ManuData = ManuData; capi_fill_MANUFACTURER_REQ() 362 static inline void capi_fill_RESET_B3_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_RESET_B3_REQ() argument 367 capi_cmsg_header(cmsg, ApplId, 0x87, 0x80, Messagenumber, adr); capi_fill_RESET_B3_REQ() 368 cmsg->NCPI = NCPI; capi_fill_RESET_B3_REQ() 371 static inline void capi_fill_SELECT_B_PROTOCOL_REQ(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_SELECT_B_PROTOCOL_REQ() argument 381 capi_cmsg_header(cmsg, ApplId, 0x41, 0x80, Messagenumber, adr); capi_fill_SELECT_B_PROTOCOL_REQ() 382 cmsg->B1protocol = B1protocol; capi_fill_SELECT_B_PROTOCOL_REQ() 383 cmsg->B2protocol = B2protocol; capi_fill_SELECT_B_PROTOCOL_REQ() 384 cmsg->B3protocol = B3protocol; capi_fill_SELECT_B_PROTOCOL_REQ() 385 cmsg->B1configuration = B1configuration; capi_fill_SELECT_B_PROTOCOL_REQ() 386 cmsg->B2configuration = B2configuration; capi_fill_SELECT_B_PROTOCOL_REQ() 387 cmsg->B3configuration = B3configuration; capi_fill_SELECT_B_PROTOCOL_REQ() 390 static inline void capi_fill_CONNECT_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_CONNECT_RESP() argument 407 capi_cmsg_header(cmsg, ApplId, 0x02, 0x83, Messagenumber, adr); capi_fill_CONNECT_RESP() 408 cmsg->Reject = Reject; capi_fill_CONNECT_RESP() 409 cmsg->B1protocol = B1protocol; capi_fill_CONNECT_RESP() 410 cmsg->B2protocol = B2protocol; capi_fill_CONNECT_RESP() 411 cmsg->B3protocol = B3protocol; capi_fill_CONNECT_RESP() 412 cmsg->B1configuration = B1configuration; capi_fill_CONNECT_RESP() 413 cmsg->B2configuration = B2configuration; capi_fill_CONNECT_RESP() 414 cmsg->B3configuration = B3configuration; capi_fill_CONNECT_RESP() 415 cmsg->ConnectedNumber = ConnectedNumber; capi_fill_CONNECT_RESP() 416 cmsg->ConnectedSubaddress = ConnectedSubaddress; capi_fill_CONNECT_RESP() 417 cmsg->LLC = LLC; capi_fill_CONNECT_RESP() 418 cmsg->BChannelinformation = BChannelinformation; capi_fill_CONNECT_RESP() 419 cmsg->Keypadfacility = Keypadfacility; capi_fill_CONNECT_RESP() 420 cmsg->Useruserdata = Useruserdata; capi_fill_CONNECT_RESP() 421 cmsg->Facilitydataarray = Facilitydataarray; capi_fill_CONNECT_RESP() 424 static inline void capi_fill_CONNECT_ACTIVE_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_CONNECT_ACTIVE_RESP() argument 428 capi_cmsg_header(cmsg, ApplId, 0x03, 0x83, Messagenumber, adr); capi_fill_CONNECT_ACTIVE_RESP() 431 static inline void capi_fill_CONNECT_B3_ACTIVE_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_CONNECT_B3_ACTIVE_RESP() argument 435 capi_cmsg_header(cmsg, ApplId, 0x83, 0x83, Messagenumber, adr); capi_fill_CONNECT_B3_ACTIVE_RESP() 438 static inline void capi_fill_CONNECT_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_CONNECT_B3_RESP() argument 443 capi_cmsg_header(cmsg, ApplId, 0x82, 0x83, Messagenumber, adr); capi_fill_CONNECT_B3_RESP() 444 cmsg->Reject = Reject; capi_fill_CONNECT_B3_RESP() 445 cmsg->NCPI = NCPI; capi_fill_CONNECT_B3_RESP() 448 static inline void capi_fill_CONNECT_B3_T90_ACTIVE_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_CONNECT_B3_T90_ACTIVE_RESP() argument 452 capi_cmsg_header(cmsg, ApplId, 0x88, 0x83, Messagenumber, adr); capi_fill_CONNECT_B3_T90_ACTIVE_RESP() 455 static inline void capi_fill_DATA_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_DATA_B3_RESP() argument 460 capi_cmsg_header(cmsg, ApplId, 0x86, 0x83, Messagenumber, adr); capi_fill_DATA_B3_RESP() 461 cmsg->DataHandle = DataHandle; capi_fill_DATA_B3_RESP() 464 static inline void capi_fill_DISCONNECT_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_DISCONNECT_B3_RESP() argument 468 capi_cmsg_header(cmsg, ApplId, 0x84, 0x83, Messagenumber, adr); capi_fill_DISCONNECT_B3_RESP() 471 static inline void capi_fill_DISCONNECT_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_DISCONNECT_RESP() argument 475 capi_cmsg_header(cmsg, ApplId, 0x04, 0x83, Messagenumber, adr); capi_fill_DISCONNECT_RESP() 478 static inline void capi_fill_FACILITY_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_FACILITY_RESP() argument 483 capi_cmsg_header(cmsg, ApplId, 0x80, 0x83, Messagenumber, adr); capi_fill_FACILITY_RESP() 484 cmsg->FacilitySelector = FacilitySelector; capi_fill_FACILITY_RESP() 487 static inline void capi_fill_INFO_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_INFO_RESP() argument 491 capi_cmsg_header(cmsg, ApplId, 0x08, 0x83, Messagenumber, adr); capi_fill_INFO_RESP() 494 static inline void capi_fill_MANUFACTURER_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_MANUFACTURER_RESP() argument 502 capi_cmsg_header(cmsg, ApplId, 0xff, 0x83, Messagenumber, adr); capi_fill_MANUFACTURER_RESP() 503 cmsg->ManuID = ManuID; capi_fill_MANUFACTURER_RESP() 504 cmsg->Class = Class; capi_fill_MANUFACTURER_RESP() 505 cmsg->Function = Function; capi_fill_MANUFACTURER_RESP() 506 cmsg->ManuData = ManuData; capi_fill_MANUFACTURER_RESP() 509 static inline void capi_fill_RESET_B3_RESP(_cmsg * cmsg, __u16 ApplId, __u16 Messagenumber, capi_fill_RESET_B3_RESP() argument 513 capi_cmsg_header(cmsg, ApplId, 0x87, 0x83, Messagenumber, adr); capi_fill_RESET_B3_RESP()
|
/linux-4.1.27/drivers/isdn/capi/ |
H A D | capiutil.c | 229 #define TYP (cdef[cmsg->par[cmsg->p]].typ) 230 #define OFF (((u8 *)cmsg) + cdef[cmsg->par[cmsg->p]].off) 232 static void jumpcstruct(_cmsg *cmsg) jumpcstruct() argument 235 for (cmsg->p++, layer = 1; layer;) { jumpcstruct() 236 /* $$$$$ assert (cmsg->p); */ jumpcstruct() 237 cmsg->p++; jumpcstruct() 249 static void pars_2_message(_cmsg *cmsg) pars_2_message() argument 252 for (; TYP != _CEND; cmsg->p++) { pars_2_message() 255 byteTLcpy(cmsg->m + cmsg->l, OFF); pars_2_message() 256 cmsg->l++; pars_2_message() 259 wordTLcpy(cmsg->m + cmsg->l, OFF); pars_2_message() 260 cmsg->l += 2; pars_2_message() 263 dwordTLcpy(cmsg->m + cmsg->l, OFF); pars_2_message() 264 cmsg->l += 4; pars_2_message() 268 *(cmsg->m + cmsg->l) = '\0'; pars_2_message() 269 cmsg->l++; pars_2_message() 271 structTLcpy(cmsg->m + cmsg->l, *(_cstruct *) OFF, 1 + **(_cstruct *) OFF); pars_2_message() 272 cmsg->l += 1 + **(_cstruct *) OFF; pars_2_message() 275 structTLcpy(cmsg->m + cmsg->l, s, 3 + *(u16 *) (s + 1)); pars_2_message() 276 cmsg->l += 3 + *(u16 *) (s + 1); pars_2_message() 282 *(cmsg->m + cmsg->l) = '\0'; pars_2_message() 283 cmsg->l++; pars_2_message() 284 jumpcstruct(cmsg); pars_2_message() 288 unsigned _l = cmsg->l; pars_2_message() 290 cmsg->l++; pars_2_message() 291 cmsg->p++; pars_2_message() 292 pars_2_message(cmsg); pars_2_message() 293 _ls = cmsg->l - _l - 1; pars_2_message() 295 (cmsg->m + _l)[0] = (u8) _ls; pars_2_message() 297 structTLcpyovl(cmsg->m + _l + 3, cmsg->m + _l + 1, _ls); pars_2_message() 298 (cmsg->m + _l)[0] = 0xff; pars_2_message() 299 wordTLcpy(cmsg->m + _l + 1, &_ls); pars_2_message() 309 * @cmsg: _cmsg structure 315 unsigned capi_cmsg2message(_cmsg *cmsg, u8 *msg) capi_cmsg2message() argument 317 cmsg->m = msg; capi_cmsg2message() 318 cmsg->l = 8; capi_cmsg2message() 319 cmsg->p = 0; capi_cmsg2message() 320 cmsg->par = capi_cmd2par(cmsg->Command, cmsg->Subcommand); capi_cmsg2message() 321 if (!cmsg->par) capi_cmsg2message() 324 pars_2_message(cmsg); capi_cmsg2message() 326 wordTLcpy(msg + 0, &cmsg->l); capi_cmsg2message() 327 byteTLcpy(cmsg->m + 4, &cmsg->Command); capi_cmsg2message() 328 byteTLcpy(cmsg->m + 5, &cmsg->Subcommand); capi_cmsg2message() 329 wordTLcpy(cmsg->m + 2, &cmsg->ApplId); capi_cmsg2message() 330 wordTLcpy(cmsg->m + 6, &cmsg->Messagenumber); capi_cmsg2message() 336 static void message_2_pars(_cmsg *cmsg) message_2_pars() argument 338 for (; TYP != _CEND; cmsg->p++) { message_2_pars() 342 byteTRcpy(cmsg->m + cmsg->l, OFF); message_2_pars() 343 cmsg->l++; message_2_pars() 346 wordTRcpy(cmsg->m + cmsg->l, OFF); message_2_pars() 347 cmsg->l += 2; message_2_pars() 350 dwordTRcpy(cmsg->m + cmsg->l, OFF); message_2_pars() 351 cmsg->l += 4; message_2_pars() 354 *(u8 **) OFF = cmsg->m + cmsg->l; message_2_pars() 356 if (cmsg->m[cmsg->l] != 0xff) message_2_pars() 357 cmsg->l += 1 + cmsg->m[cmsg->l]; message_2_pars() 359 cmsg->l += 3 + *(u16 *) (cmsg->m + cmsg->l + 1); message_2_pars() 363 if (cmsg->m[cmsg->l] == '\0') { message_2_pars() 365 cmsg->l++; message_2_pars() 366 jumpcstruct(cmsg); message_2_pars() 368 unsigned _l = cmsg->l; message_2_pars() 370 cmsg->l = (cmsg->m + _l)[0] == 255 ? cmsg->l + 3 : cmsg->l + 1; message_2_pars() 371 cmsg->p++; message_2_pars() 372 message_2_pars(cmsg); message_2_pars() 381 * @cmsg: _cmsg structure 387 unsigned capi_message2cmsg(_cmsg *cmsg, u8 *msg) capi_message2cmsg() argument 389 memset(cmsg, 0, sizeof(_cmsg)); capi_message2cmsg() 390 cmsg->m = msg; capi_message2cmsg() 391 cmsg->l = 8; capi_message2cmsg() 392 cmsg->p = 0; capi_message2cmsg() 393 byteTRcpy(cmsg->m + 4, &cmsg->Command); capi_message2cmsg() 394 byteTRcpy(cmsg->m + 5, &cmsg->Subcommand); capi_message2cmsg() 395 cmsg->par = capi_cmd2par(cmsg->Command, cmsg->Subcommand); capi_message2cmsg() 396 if (!cmsg->par) capi_message2cmsg() 399 message_2_pars(cmsg); capi_message2cmsg() 401 wordTRcpy(msg + 0, &cmsg->l); capi_message2cmsg() 402 wordTRcpy(cmsg->m + 2, &cmsg->ApplId); capi_message2cmsg() 403 wordTRcpy(cmsg->m + 6, &cmsg->Messagenumber); capi_message2cmsg() 410 * @cmsg: _cmsg structure 420 unsigned capi_cmsg_header(_cmsg *cmsg, u16 _ApplId, capi_cmsg_header() argument 424 memset(cmsg, 0, sizeof(_cmsg)); capi_cmsg_header() 425 cmsg->ApplId = _ApplId; capi_cmsg_header() 426 cmsg->Command = _Command; capi_cmsg_header() 427 cmsg->Subcommand = _Subcommand; capi_cmsg_header() 428 cmsg->Messagenumber = _Messagenumber; capi_cmsg_header() 429 cmsg->adr.adrController = _Controller; capi_cmsg_header() 648 #define NAME (pnames[cmsg->par[cmsg->p]]) 650 static _cdebbuf *protocol_message_2_pars(_cdebbuf *cdb, _cmsg *cmsg, int level) protocol_message_2_pars() argument 652 if (!cmsg->par) protocol_message_2_pars() 655 for (; TYP != _CEND; cmsg->p++) { protocol_message_2_pars() 667 cdb = bufprint(cdb, "%-*s = 0x%x\n", slen, NAME, *(u8 *) (cmsg->m + cmsg->l)); protocol_message_2_pars() 668 cmsg->l++; protocol_message_2_pars() 671 cdb = bufprint(cdb, "%-*s = 0x%x\n", slen, NAME, *(u16 *) (cmsg->m + cmsg->l)); protocol_message_2_pars() 672 cmsg->l += 2; protocol_message_2_pars() 675 cdb = bufprint(cdb, "%-*s = 0x%lx\n", slen, NAME, *(u32 *) (cmsg->m + cmsg->l)); protocol_message_2_pars() 676 cmsg->l += 4; protocol_message_2_pars() 680 if (cmsg->m[cmsg->l] == '\0') protocol_message_2_pars() 683 cdb = printstruct(cdb, cmsg->m + cmsg->l); protocol_message_2_pars() 685 if (cmsg->m[cmsg->l] != 0xff) protocol_message_2_pars() 686 cmsg->l += 1 + cmsg->m[cmsg->l]; protocol_message_2_pars() 688 cmsg->l += 3 + *(u16 *) (cmsg->m + cmsg->l + 1); protocol_message_2_pars() 694 if (cmsg->m[cmsg->l] == '\0') { protocol_message_2_pars() 696 cmsg->l++; protocol_message_2_pars() 697 jumpcstruct(cmsg); protocol_message_2_pars() 700 unsigned _l = cmsg->l; protocol_message_2_pars() 702 cmsg->l = (cmsg->m + _l)[0] == 255 ? cmsg->l + 3 : cmsg->l + 1; protocol_message_2_pars() 703 cmsg->p++; protocol_message_2_pars() 704 cdb = protocol_message_2_pars(cdb, cmsg, level + 1); protocol_message_2_pars() 771 _cmsg *cmsg; capi_message2str() local 777 cmsg = g_cmsg; capi_message2str() 779 cmsg = kmalloc(sizeof(_cmsg), GFP_ATOMIC); capi_message2str() 780 if (unlikely(!cmsg)) { capi_message2str() 784 cmsg->m = msg; capi_message2str() 785 cmsg->l = 8; capi_message2str() 786 cmsg->p = 0; capi_message2str() 787 byteTRcpy(cmsg->m + 4, &cmsg->Command); capi_message2str() 788 byteTRcpy(cmsg->m + 5, &cmsg->Subcommand); capi_message2str() 789 cmsg->par = capi_cmd2par(cmsg->Command, cmsg->Subcommand); capi_message2str() 792 capi_cmd2str(cmsg->Command, cmsg->Subcommand), capi_message2str() 797 cdb = protocol_message_2_pars(cdb, cmsg, 1); capi_message2str() 798 if (unlikely(cmsg != g_cmsg)) capi_message2str() 799 kfree(cmsg); capi_message2str() 805 * @cmsg: _cmsg structure 808 * of the CAPI 2.0 message stored in @cmsg by a previous call to 814 _cdebbuf *capi_cmsg2str(_cmsg *cmsg) capi_cmsg2str() argument 818 if (!cmsg->m) capi_cmsg2str() 823 cmsg->l = 8; capi_cmsg2str() 824 cmsg->p = 0; capi_cmsg2str() 826 capi_cmd2str(cmsg->Command, cmsg->Subcommand), capi_cmsg2str() 827 ((u16 *) cmsg->m)[1], capi_cmsg2str() 828 ((u16 *) cmsg->m)[3], capi_cmsg2str() 829 ((u16 *) cmsg->m)[0]); capi_cmsg2str() 830 cdb = protocol_message_2_pars(cdb, cmsg, 1); capi_cmsg2str() 874 _cdebbuf *capi_cmsg2str(_cmsg *cmsg) capi_cmsg2str() argument
|
H A D | capidrv.c | 504 static void send_message(capidrv_contr *card, _cmsg *cmsg) send_message() argument 509 if (capi_cmsg2message(cmsg, cmsg->buf)) { send_message() 513 len = CAPIMSG_LEN(cmsg->buf); send_message() 519 memcpy(skb_put(skb, len), cmsg->buf, len); send_message() 661 static _cmsg cmsg; variable 667 capi_fill_DISCONNECT_REQ(&cmsg, n0() 677 send_message(card, &cmsg); n0() 965 static void handle_controller(_cmsg *cmsg) handle_controller() argument 967 capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f); handle_controller() 971 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_controller() 972 cmsg->adr.adrController & 0x7f); handle_controller() 975 switch (CAPICMD(cmsg->Command, cmsg->Subcommand)) { handle_controller() 980 card->contrnr, cmsg->Info, capi_info2str(cmsg->Info), card->cipmask); handle_controller() 981 if (cmsg->Info) { handle_controller() 991 if (cmsg->ManuID == 0x214D5641 handle_controller() 992 && cmsg->Class == 0 handle_controller() 993 && cmsg->Function == 1) { handle_controller() 994 u8 *data = cmsg->ManuData + 3; handle_controller() 995 u16 len = cmsg->ManuData[0]; handle_controller() 999 len = (cmsg->ManuData[1] | (cmsg->ManuData[2] << 8)); handle_controller() 1018 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_controller() 1019 cmsg->adr.adrController, layer); handle_controller() 1024 if (cmsg->ManuID == 0x214D5641) { handle_controller() 1026 switch (cmsg->Class) { handle_controller() 1035 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_controller() 1036 cmsg->adr.adrController, handle_controller() 1037 cmsg->Function, s); handle_controller() 1053 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_controller() 1054 cmsg->adr.adrController); handle_controller() 1061 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_controller() 1062 cmsg->adr.adrController); handle_controller() 1065 static void handle_incoming_call(capidrv_contr *card, _cmsg *cmsg) handle_incoming_call() argument 1082 plcip->plci = cmsg->adr.adrPLCI; handle_incoming_call() 1090 cmsg->CallingPartyNumber + 3, handle_incoming_call() 1091 cmsg->CallingPartyNumber[0] - 2); handle_incoming_call() 1093 cmsg->CalledPartyNumber + 2, handle_incoming_call() 1094 cmsg->CalledPartyNumber[0] - 1); handle_incoming_call() 1095 cmd.parm.setup.si1 = cip2si1(cmsg->CIPValue); handle_incoming_call() 1096 cmd.parm.setup.si2 = cip2si2(cmsg->CIPValue); handle_incoming_call() 1097 cmd.parm.setup.plan = cmsg->CallingPartyNumber[1]; handle_incoming_call() 1098 cmd.parm.setup.screen = cmsg->CallingPartyNumber[2]; handle_incoming_call() 1122 capi_cmsg_answer(cmsg); handle_incoming_call() 1123 cmsg->Reject = 1; /* ignore */ handle_incoming_call() 1125 send_message(card, cmsg); handle_incoming_call() 1150 capi_fill_ALERT_REQ(cmsg, handle_incoming_call() 1159 plcip->msgid = cmsg->Messagenumber; handle_incoming_call() 1160 send_message(card, cmsg); handle_incoming_call() 1172 capi_cmsg_answer(cmsg); handle_incoming_call() 1173 cmsg->Reject = 2; /* reject call, normal call clearing */ handle_incoming_call() 1175 send_message(card, cmsg); handle_incoming_call() 1180 capi_cmsg_answer(cmsg); handle_incoming_call() 1181 cmsg->Reject = 8; /* reject call, handle_incoming_call() 1184 send_message(card, cmsg); handle_incoming_call() 1190 static void handle_plci(_cmsg *cmsg) handle_plci() argument 1192 capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f); handle_plci() 1199 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1200 cmsg->adr.adrController & 0x7f); handle_plci() 1203 switch (CAPICMD(cmsg->Command, cmsg->Subcommand)) { handle_plci() 1206 if (cmsg->Reason) { handle_plci() 1209 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1210 cmsg->Reason, capi_info2str(cmsg->Reason), cmsg->adr.adrPLCI); handle_plci() 1212 if (!(plcip = find_plci_by_plci(card, cmsg->adr.adrPLCI))) { handle_plci() 1213 capi_cmsg_answer(cmsg); handle_plci() 1214 send_message(card, cmsg); handle_plci() 1219 capi_cmsg_answer(cmsg); handle_plci() 1221 send_message(card, cmsg); handle_plci() 1225 if (cmsg->Info) { handle_plci() 1228 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1229 cmsg->Info, capi_info2str(cmsg->Info), handle_plci() 1230 cmsg->adr.adrPLCI); handle_plci() 1232 if (!(plcip = find_plci_by_plci(card, cmsg->adr.adrPLCI))) handle_plci() 1239 if (cmsg->Info) { handle_plci() 1242 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1243 cmsg->Info, capi_info2str(cmsg->Info), handle_plci() 1244 cmsg->adr.adrPLCI); handle_plci() 1249 handle_incoming_call(card, cmsg); handle_plci() 1253 if (cmsg->Info) { handle_plci() 1256 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1257 cmsg->Info, capi_info2str(cmsg->Info), handle_plci() 1258 cmsg->adr.adrPLCI); handle_plci() 1260 if (!(plcip = find_plci_by_msgid(card, cmsg->Messagenumber))) handle_plci() 1263 plcip->plci = cmsg->adr.adrPLCI; handle_plci() 1264 if (cmsg->Info) { handle_plci() 1273 if (!(plcip = find_plci_by_plci(card, cmsg->adr.adrPLCI))) handle_plci() 1277 capi_cmsg_answer(cmsg); handle_plci() 1279 send_message(card, cmsg); handle_plci() 1282 capi_cmsg_answer(cmsg); handle_plci() 1283 send_message(card, cmsg); handle_plci() 1285 nccip = new_ncci(card, plcip, cmsg->adr.adrPLCI); handle_plci() 1291 capi_fill_CONNECT_B3_REQ(cmsg, handle_plci() 1297 nccip->msgid = cmsg->Messagenumber; handle_plci() 1301 send_message(card, cmsg); handle_plci() 1311 if (!(plcip = find_plci_by_plci(card, cmsg->adr.adrPLCI))) handle_plci() 1314 if (cmsg->InfoNumber == 0x4000) { handle_plci() 1315 if (cmsg->InfoElement[0] == 4) { handle_plci() 1321 ((u32) cmsg->InfoElement[1] handle_plci() 1322 | ((u32) (cmsg->InfoElement[2]) << 8) handle_plci() 1323 | ((u32) (cmsg->InfoElement[3]) << 16) handle_plci() 1324 | ((u32) (cmsg->InfoElement[4]) << 24))); handle_plci() 1329 cdb = capi_cmsg2str(cmsg); handle_plci() 1336 card->contrnr, cmsg->InfoNumber); handle_plci() 1355 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1356 cmsg->adr.adrPLCI); handle_plci() 1362 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1363 cmsg->adr.adrPLCI); handle_plci() 1368 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_plci() 1369 cmsg->adr.adrPLCI); handle_plci() 1373 static void handle_ncci(_cmsg *cmsg) handle_ncci() argument 1375 capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f); handle_ncci() 1383 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_ncci() 1384 cmsg->adr.adrController & 0x7f); handle_ncci() 1387 switch (CAPICMD(cmsg->Command, cmsg->Subcommand)) { handle_ncci() 1390 if (!(nccip = find_ncci(card, cmsg->adr.adrNCCI))) handle_ncci() 1393 capi_cmsg_answer(cmsg); handle_ncci() 1395 send_message(card, cmsg); handle_ncci() 1411 plcip = find_plci_by_ncci(card, cmsg->adr.adrNCCI); handle_ncci() 1413 nccip = new_ncci(card, plcip, cmsg->adr.adrNCCI); handle_ncci() 1416 capi_fill_CONNECT_B3_RESP(cmsg, handle_ncci() 1424 send_message(card, cmsg); handle_ncci() 1431 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_ncci() 1432 cmsg->adr.adrNCCI); handle_ncci() 1434 capi_fill_CONNECT_B3_RESP(cmsg, handle_ncci() 1437 cmsg->adr.adrNCCI, handle_ncci() 1441 send_message(card, cmsg); handle_ncci() 1447 cmsg->adr.adrNCCI, handle_ncci() 1448 cmsg->Messagenumber))) handle_ncci() 1451 nccip->ncci = cmsg->adr.adrNCCI; handle_ncci() 1452 if (cmsg->Info) { handle_ncci() 1455 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_ncci() 1456 cmsg->Info, capi_info2str(cmsg->Info), handle_ncci() 1457 cmsg->adr.adrNCCI); handle_ncci() 1460 if (cmsg->Info) handle_ncci() 1467 capi_cmsg_answer(cmsg); handle_ncci() 1468 send_message(card, cmsg); handle_ncci() 1476 if (cmsg->Info) { handle_ncci() 1478 cmsg->Info, capi_info2str(cmsg->Info)); handle_ncci() 1480 if (!(nccip = find_ncci(card, cmsg->adr.adrNCCI))) handle_ncci() 1483 len = capidrv_del_ack(nccip, cmsg->DataHandle); handle_ncci() 1494 if (!(nccip = find_ncci(card, cmsg->adr.adrNCCI))) handle_ncci() 1499 capi_cmsg_answer(cmsg); handle_ncci() 1501 send_message(card, cmsg); handle_ncci() 1505 if (!(nccip = find_ncci(card, cmsg->adr.adrNCCI))) handle_ncci() 1507 if (cmsg->Info) { handle_ncci() 1510 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_ncci() 1511 cmsg->Info, capi_info2str(cmsg->Info), handle_ncci() 1512 cmsg->adr.adrNCCI); handle_ncci() 1518 if (!(nccip = find_ncci(card, cmsg->adr.adrNCCI))) handle_ncci() 1521 capi_cmsg_answer(cmsg); handle_ncci() 1522 send_message(card, cmsg); handle_ncci() 1536 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_ncci() 1537 cmsg->adr.adrNCCI); handle_ncci() 1543 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_ncci() 1544 cmsg->adr.adrNCCI); handle_ncci() 1549 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_ncci() 1550 cmsg->adr.adrNCCI); handle_ncci() 1554 static void handle_data(_cmsg *cmsg, struct sk_buff *skb) handle_data() argument 1556 capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f); handle_data() 1561 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_data() 1562 cmsg->adr.adrController & 0x7f); handle_data() 1566 if (!(nccip = find_ncci(card, cmsg->adr.adrNCCI))) { handle_data() 1569 capi_cmd2str(cmsg->Command, cmsg->Subcommand), handle_data() 1570 cmsg->adr.adrNCCI); handle_data() 1576 capi_cmsg_answer(cmsg); handle_data() 1577 send_message(card, cmsg); handle_data()
|
/linux-4.1.27/drivers/isdn/gigaset/ |
H A D | capi.c | 1148 _cmsg *cmsg = &iif->acmsg; do_facility_req() local 1156 if (capi_message2cmsg(cmsg, skb->data)) { do_facility_req() 1161 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_facility_req() 1167 switch (cmsg->FacilitySelector) { do_facility_req() 1184 pparam = cmsg->FacilityRequestParameter; do_facility_req() 1260 capi_cmsg_answer(cmsg); do_facility_req() 1261 cmsg->Info = info; do_facility_req() 1262 cmsg->FacilityConfirmationParameter = confparam; do_facility_req() 1269 if (capi_cmsg2message(cmsg, __skb_put(cskb, msgsize))) { do_facility_req() 1274 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_facility_req() 1333 _cmsg *cmsg = &iif->acmsg; do_connect_req() local 1343 if (capi_message2cmsg(cmsg, skb->data)) { do_connect_req() 1348 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_connect_req() 1370 cmsg->adr.adrPLCI |= (bcs->channel + 1) << 8; do_connect_req() 1378 pp = cmsg->CalledPartyNumber; do_connect_req() 1414 pp = cmsg->CallingPartyNumber; do_connect_req() 1469 if (cmsg->CIPValue >= ARRAY_SIZE(cip2bchlc) || do_connect_req() 1470 (cmsg->CIPValue > 0 && cip2bchlc[cmsg->CIPValue].bc == NULL)) { do_connect_req() 1472 "CONNECT_REQ", cmsg->CIPValue); do_connect_req() 1484 if (cmsg->BC && cmsg->BC[0]) /* BC specified explicitly */ do_connect_req() 1485 lbc = 2 * cmsg->BC[0]; do_connect_req() 1486 else if (cip2bchlc[cmsg->CIPValue].bc) /* BC derived from CIP */ do_connect_req() 1487 lbc = strlen(cip2bchlc[cmsg->CIPValue].bc); do_connect_req() 1490 if (cmsg->HLC && cmsg->HLC[0]) /* HLC specified explicitly */ do_connect_req() 1491 lhlc = 2 * cmsg->HLC[0]; do_connect_req() 1492 else if (cip2bchlc[cmsg->CIPValue].hlc) /* HLC derived from CIP */ do_connect_req() 1493 lhlc = strlen(cip2bchlc[cmsg->CIPValue].hlc); do_connect_req() 1506 if (cmsg->BC && cmsg->BC[0]) /* BC specified explicitly */ do_connect_req() 1507 decode_ie(cmsg->BC, commands[AT_BC] + 5); do_connect_req() 1510 cip2bchlc[cmsg->CIPValue].bc); do_connect_req() 1513 if (cmsg->HLC && cmsg->HLC[0]) do_connect_req() 1515 decode_ie(cmsg->HLC, do_connect_req() 1519 cip2bchlc[cmsg->CIPValue].hlc); do_connect_req() 1533 if (cmsg->BProtocol == CAPI_DEFAULT) { do_connect_req() 1538 switch (cmsg->B1protocol) { do_connect_req() 1548 cmsg->B1protocol); do_connect_req() 1551 if (cmsg->B2protocol != 1) do_connect_req() 1554 cmsg->B2protocol); do_connect_req() 1555 if (cmsg->B3protocol != 0) do_connect_req() 1558 cmsg->B3protocol); do_connect_req() 1559 ignore_cstruct_param(cs, cmsg->B1configuration, do_connect_req() 1561 ignore_cstruct_param(cs, cmsg->B2configuration, do_connect_req() 1563 ignore_cstruct_param(cs, cmsg->B3configuration, do_connect_req() 1572 ignore_cstruct_param(cs, cmsg->CalledPartySubaddress, do_connect_req() 1574 ignore_cstruct_param(cs, cmsg->CallingPartySubaddress, do_connect_req() 1576 ignore_cstruct_param(cs, cmsg->LLC, do_connect_req() 1578 if (cmsg->AdditionalInfo != CAPI_DEFAULT) { do_connect_req() 1579 ignore_cstruct_param(cs, cmsg->BChannelinformation, do_connect_req() 1581 ignore_cstruct_param(cs, cmsg->Keypadfacility, do_connect_req() 1583 ignore_cstruct_param(cs, cmsg->Useruserdata, do_connect_req() 1585 ignore_cstruct_param(cs, cmsg->Facilitydataarray, do_connect_req() 1627 _cmsg *cmsg = &iif->acmsg; do_connect_resp() local 1634 if (capi_message2cmsg(cmsg, skb->data)) { do_connect_resp() 1639 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_connect_resp() 1643 channel = (cmsg->adr.adrPLCI >> 8) & 0xff; do_connect_resp() 1646 "CONNECT_RESP", "PLCI", cmsg->adr.adrPLCI); do_connect_resp() 1651 switch (cmsg->Reject) { do_connect_resp() 1675 if (cmsg->BProtocol == CAPI_DEFAULT) { do_connect_resp() 1680 switch (cmsg->B1protocol) { do_connect_resp() 1690 cmsg->B1protocol); do_connect_resp() 1693 if (cmsg->B2protocol != 1) do_connect_resp() 1696 cmsg->B2protocol); do_connect_resp() 1697 if (cmsg->B3protocol != 0) do_connect_resp() 1700 cmsg->B3protocol); do_connect_resp() 1701 ignore_cstruct_param(cs, cmsg->B1configuration, do_connect_resp() 1703 ignore_cstruct_param(cs, cmsg->B2configuration, do_connect_resp() 1705 ignore_cstruct_param(cs, cmsg->B3configuration, do_connect_resp() 1710 ignore_cstruct_param(cs, cmsg->ConnectedNumber, do_connect_resp() 1712 ignore_cstruct_param(cs, cmsg->ConnectedSubaddress, do_connect_resp() 1714 ignore_cstruct_param(cs, cmsg->LLC, do_connect_resp() 1716 if (cmsg->AdditionalInfo != CAPI_DEFAULT) { do_connect_resp() 1717 ignore_cstruct_param(cs, cmsg->BChannelinformation, do_connect_resp() 1719 ignore_cstruct_param(cs, cmsg->Keypadfacility, do_connect_resp() 1721 ignore_cstruct_param(cs, cmsg->Useruserdata, do_connect_resp() 1723 ignore_cstruct_param(cs, cmsg->Facilitydataarray, do_connect_resp() 1781 "CONNECT_RESP", cmsg->Reject); do_connect_resp() 1799 _cmsg *cmsg = &iif->acmsg; do_connect_b3_req() local 1804 if (capi_message2cmsg(cmsg, skb->data)) { do_connect_b3_req() 1809 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_connect_b3_req() 1812 channel = (cmsg->adr.adrPLCI >> 8) & 0xff; do_connect_b3_req() 1815 "CONNECT_B3_REQ", "PLCI", cmsg->adr.adrPLCI); do_connect_b3_req() 1825 cmsg->adr.adrNCCI |= 1 << 16; do_connect_b3_req() 1828 ignore_cstruct_param(cs, cmsg->NCPI, "CONNECT_B3_REQ", "NCPI"); do_connect_b3_req() 1830 (cmsg->NCPI && cmsg->NCPI[0]) ? do_connect_b3_req() 1846 _cmsg *cmsg = &iif->acmsg; do_connect_b3_resp() local 1853 if (capi_message2cmsg(cmsg, skb->data)) { do_connect_b3_resp() 1858 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_connect_b3_resp() 1861 channel = (cmsg->adr.adrNCCI >> 8) & 0xff; do_connect_b3_resp() 1863 ((cmsg->adr.adrNCCI >> 16) & 0xffff) != 1) { do_connect_b3_resp() 1865 "CONNECT_B3_RESP", "NCCI", cmsg->adr.adrNCCI); do_connect_b3_resp() 1871 if (cmsg->Reject) { do_connect_b3_resp() 1894 capi_cmsg_header(cmsg, ap->id, command, CAPI_IND, do_connect_b3_resp() 1895 ap->nextMessageNumber++, cmsg->adr.adrNCCI); do_connect_b3_resp() 1897 if (capi_cmsg2message(cmsg, skb->data)) { do_connect_b3_resp() 1902 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_connect_b3_resp() 1916 _cmsg *cmsg = &iif->acmsg; do_disconnect_req() local 1923 if (capi_message2cmsg(cmsg, skb->data)) { do_disconnect_req() 1928 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_disconnect_req() 1931 channel = (cmsg->adr.adrPLCI >> 8) & 0xff; do_disconnect_req() 1934 "DISCONNECT_REQ", "PLCI", cmsg->adr.adrPLCI); do_disconnect_req() 1941 if (cmsg->AdditionalInfo != CAPI_DEFAULT) { do_disconnect_req() 1942 ignore_cstruct_param(cs, cmsg->BChannelinformation, do_disconnect_req() 1944 ignore_cstruct_param(cs, cmsg->Keypadfacility, do_disconnect_req() 1946 ignore_cstruct_param(cs, cmsg->Useruserdata, do_disconnect_req() 1948 ignore_cstruct_param(cs, cmsg->Facilitydataarray, do_disconnect_req() 1963 * use separate cmsg structure, as the content of iif->acmsg do_disconnect_req() 1974 cmsg->adr.adrPLCI | (1 << 16)); do_disconnect_req() 2016 _cmsg *cmsg = &iif->acmsg; do_disconnect_b3_req() local 2021 if (capi_message2cmsg(cmsg, skb->data)) { do_disconnect_b3_req() 2026 dump_cmsg(DEBUG_CMD, __func__, cmsg); do_disconnect_b3_req() 2029 channel = (cmsg->adr.adrNCCI >> 8) & 0xff; do_disconnect_b3_req() 2031 ((cmsg->adr.adrNCCI >> 16) & 0xffff) != 1) { do_disconnect_b3_req() 2033 "DISCONNECT_B3_REQ", "NCCI", cmsg->adr.adrNCCI); do_disconnect_b3_req() 2054 ignore_cstruct_param(cs, cmsg->NCPI, do_disconnect_b3_req() 2057 (cmsg->NCPI && cmsg->NCPI[0]) ? do_disconnect_b3_req()
|
/linux-4.1.27/net/ipv6/ |
H A D | datagram.c | 353 /* IPv6 supports cmsg on all origins aside from SO_EE_ORIGIN_LOCAL. 357 * unlike v4, also honors cmsg requests on all wifi and timestamp errors. 359 * Timestamp code paths do not initialize the fields expected by cmsg: 691 struct cmsghdr *cmsg; ip6_datagram_send_ctl() local 697 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 700 if (!CMSG_OK(msg, cmsg)) { for_each_cmsghdr() 705 if (cmsg->cmsg_level != SOL_IPV6) for_each_cmsghdr() 708 switch (cmsg->cmsg_type) { for_each_cmsghdr() 714 if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct in6_pktinfo))) { for_each_cmsghdr() 719 src_info = (struct in6_pktinfo *)CMSG_DATA(cmsg); for_each_cmsghdr() 763 if (cmsg->cmsg_len < CMSG_LEN(4)) { for_each_cmsghdr() 769 if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { for_each_cmsghdr() 774 fl6->flowlabel = IPV6_FLOWINFO_MASK & *(__be32 *)CMSG_DATA(cmsg); for_each_cmsghdr() 779 if (opt->hopopt || cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) { for_each_cmsghdr() 784 hdr = (struct ipv6_opt_hdr *)CMSG_DATA(cmsg); for_each_cmsghdr() 786 if (cmsg->cmsg_len < CMSG_LEN(len)) { for_each_cmsghdr() 799 if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) { for_each_cmsghdr() 804 hdr = (struct ipv6_opt_hdr *)CMSG_DATA(cmsg); for_each_cmsghdr() 806 if (cmsg->cmsg_len < CMSG_LEN(len)) { for_each_cmsghdr() 824 if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_opt_hdr))) { for_each_cmsghdr() 829 hdr = (struct ipv6_opt_hdr *)CMSG_DATA(cmsg); for_each_cmsghdr() 831 if (cmsg->cmsg_len < CMSG_LEN(len)) { for_each_cmsghdr() 839 if (cmsg->cmsg_type == IPV6_DSTOPTS) { for_each_cmsghdr() 850 if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct ipv6_rt_hdr))) { for_each_cmsghdr() 855 rthdr = (struct ipv6_rt_hdr *)CMSG_DATA(cmsg); for_each_cmsghdr() 874 if (cmsg->cmsg_len < CMSG_LEN(len)) { for_each_cmsghdr() 888 if (cmsg->cmsg_type == IPV6_2292RTHDR && opt->dst1opt) { for_each_cmsghdr() 901 if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) { for_each_cmsghdr() 906 *hlimit = *(int *)CMSG_DATA(cmsg); for_each_cmsghdr() 919 if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) for_each_cmsghdr() 922 tc = *(int *)CMSG_DATA(cmsg); for_each_cmsghdr() 937 if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) for_each_cmsghdr() 940 df = *(int *)CMSG_DATA(cmsg); for_each_cmsghdr() 950 net_dbg_ratelimited("invalid cmsg type: %d\n", for_each_cmsghdr() 951 cmsg->cmsg_type); for_each_cmsghdr()
|
H A D | ping.c | 130 /* TODO: use ip6_datagram_send_ctl to get options from cmsg */ ping_v6_sendmsg()
|
/linux-4.1.27/include/linux/ |
H A D | socket.h | 90 #define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg)) 91 #define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg)) 95 #define CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr)))) 103 #define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) && \ 104 (cmsg)->cmsg_len <= (unsigned long) \ 106 ((char *)(cmsg) - (char *)(mhdr)->msg_control))) 107 #define for_each_cmsghdr(cmsg, msg) \ 108 for (cmsg = CMSG_FIRSTHDR(msg); \ 109 cmsg; \ 110 cmsg = CMSG_NXTHDR(msg, cmsg)) 113 * Get the next cmsg header 120 * HEADER. But caller still MUST check, that cmsg->cmsg_len is
|
H A D | isdnif.h | 377 capi_msg cmsg; /* For CAPI like messages */ member in union:__anon11869::__anon11870
|
/linux-4.1.27/include/uapi/linux/ |
H A D | errqueue.h | 26 * struct scm_timestamping - timestamps exposed through cmsg 29 * communicate network timestamps by passing this struct in a cmsg with
|
H A D | dccp.h | 200 /* DCCP socket control message types for cmsg */
|
/linux-4.1.27/net/core/ |
H A D | scm.c | 67 static int scm_fp_copy(struct cmsghdr *cmsg, struct scm_fp_list **fplp) scm_fp_copy() argument 69 int *fdp = (int*)CMSG_DATA(cmsg); scm_fp_copy() 74 num = (cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr)))/sizeof(int); scm_fp_copy() 135 struct cmsghdr *cmsg; __scm_send() local 138 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 149 if (!CMSG_OK(msg, cmsg)) for_each_cmsghdr() 152 if (cmsg->cmsg_level != SOL_SOCKET) for_each_cmsghdr() 155 switch (cmsg->cmsg_type) for_each_cmsghdr() 160 err=scm_fp_copy(cmsg, &p->fp); for_each_cmsghdr() 169 if (cmsg->cmsg_len != CMSG_LEN(sizeof(struct ucred))) for_each_cmsghdr() 171 memcpy(&creds, CMSG_DATA(cmsg), sizeof(struct ucred)); for_each_cmsghdr()
|
/linux-4.1.27/Documentation/networking/timestamping/ |
H A D | timestamping.c | 159 struct cmsghdr *cmsg; printpacket() local 172 for (cmsg = CMSG_FIRSTHDR(msg); printpacket() 173 cmsg; printpacket() 174 cmsg = CMSG_NXTHDR(msg, cmsg)) { printpacket() 175 printf(" cmsg len %zu: ", cmsg->cmsg_len); printpacket() 176 switch (cmsg->cmsg_level) { printpacket() 179 switch (cmsg->cmsg_type) { printpacket() 182 (struct timeval *)CMSG_DATA(cmsg); printpacket() 190 (struct timespec *)CMSG_DATA(cmsg); printpacket() 198 (struct timespec *)CMSG_DATA(cmsg); printpacket() 212 printf("type %d", cmsg->cmsg_type); printpacket() 218 switch (cmsg->cmsg_type) { printpacket() 221 (struct sock_extended_err *)CMSG_DATA(cmsg); printpacket() 241 (struct in_pktinfo *)CMSG_DATA(cmsg); printpacket() 247 printf("type %d", cmsg->cmsg_type); printpacket() 253 cmsg->cmsg_level, printpacket() 254 cmsg->cmsg_type); printpacket()
|
H A D | txtimestamp.c | 215 fprintf(stderr, "unknown cmsg %d,%d\n", __recv_errmsg_cmsg()
|
/linux-4.1.27/arch/um/os-Linux/drivers/ |
H A D | tuntap_user.c | 71 struct cmsghdr *cmsg; tuntap_open_tramp() local 111 cmsg = CMSG_FIRSTHDR(&msg); tuntap_open_tramp() 112 if (cmsg == NULL) { tuntap_open_tramp() 117 if ((cmsg->cmsg_level != SOL_SOCKET) || tuntap_open_tramp() 118 (cmsg->cmsg_type != SCM_RIGHTS)) { tuntap_open_tramp() 123 *fd_out = ((int *) CMSG_DATA(cmsg))[0]; tuntap_open_tramp()
|
/linux-4.1.27/drivers/md/ |
H A D | md-cluster.c | 376 static void process_add_new_disk(struct mddev *mddev, struct cluster_msg *cmsg) process_add_new_disk() argument 386 pretty_uuid(disk_uuid + len, cmsg->uuid); process_add_new_disk() 387 snprintf(raid_slot, 16, "RAID_DISK=%d", cmsg->raid_slot); process_add_new_disk() 523 static int __sendmsg(struct md_cluster_info *cinfo, struct cluster_msg *cmsg) __sendmsg() argument 528 cmsg->slot = cpu_to_le32(slot); __sendmsg() 536 memcpy(cinfo->message_lockres->lksb.sb_lvbptr, (void *)cmsg, __sendmsg() 568 static int sendmsg(struct md_cluster_info *cinfo, struct cluster_msg *cmsg) sendmsg() argument 573 ret = __sendmsg(cinfo, cmsg); sendmsg() 772 struct cluster_msg cmsg; metadata_update_finish() local 775 memset(&cmsg, 0, sizeof(cmsg)); metadata_update_finish() 776 cmsg.type = cpu_to_le32(METADATA_UPDATED); metadata_update_finish() 777 ret = __sendmsg(cinfo, &cmsg); metadata_update_finish() 793 struct cluster_msg cmsg; resync_send() local 800 cmsg.type = cpu_to_le32(type); resync_send() 801 cmsg.slot = cpu_to_le32(slot); resync_send() 802 cmsg.low = cpu_to_le64(lo); resync_send() 803 cmsg.high = cpu_to_le64(hi); resync_send() 804 return sendmsg(cinfo, &cmsg); resync_send() 841 struct cluster_msg cmsg; add_new_disk_start() local 846 memset(&cmsg, 0, sizeof(cmsg)); add_new_disk_start() 847 cmsg.type = cpu_to_le32(NEWDISK); add_new_disk_start() 848 memcpy(cmsg.uuid, uuid, 16); add_new_disk_start() 849 cmsg.raid_slot = rdev->desc_nr; add_new_disk_start() 851 ret = __sendmsg(cinfo, &cmsg); add_new_disk_start() 867 struct cluster_msg cmsg; add_new_disk_finish() local 872 cmsg.type = METADATA_UPDATED; add_new_disk_finish() 873 ret = __sendmsg(cinfo, &cmsg); add_new_disk_finish() 895 struct cluster_msg cmsg; remove_disk() local 897 cmsg.type = REMOVE; remove_disk() 898 cmsg.raid_slot = rdev->desc_nr; remove_disk() 899 return __sendmsg(cinfo, &cmsg); remove_disk() 906 struct cluster_msg cmsg; gather_bitmaps() local 910 cmsg.type = RE_ADD; gather_bitmaps() 911 cmsg.raid_slot = rdev->desc_nr; gather_bitmaps() 912 err = sendmsg(cinfo, &cmsg); gather_bitmaps()
|
/linux-4.1.27/crypto/ |
H A D | af_alg.c | 440 struct cmsghdr *cmsg; af_alg_cmsg_send() local 442 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 443 if (!CMSG_OK(msg, cmsg)) for_each_cmsghdr() 445 if (cmsg->cmsg_level != SOL_ALG) for_each_cmsghdr() 448 switch (cmsg->cmsg_type) { for_each_cmsghdr() 450 if (cmsg->cmsg_len < CMSG_LEN(sizeof(*con->iv))) for_each_cmsghdr() 452 con->iv = (void *)CMSG_DATA(cmsg); for_each_cmsghdr() 453 if (cmsg->cmsg_len < CMSG_LEN(con->iv->ivlen + for_each_cmsghdr() 459 if (cmsg->cmsg_len < CMSG_LEN(sizeof(u32))) for_each_cmsghdr() 461 con->op = *(u32 *)CMSG_DATA(cmsg); for_each_cmsghdr() 465 if (cmsg->cmsg_len < CMSG_LEN(sizeof(u32))) for_each_cmsghdr() 467 con->aead_assoclen = *(u32 *)CMSG_DATA(cmsg); for_each_cmsghdr()
|
/linux-4.1.27/net/ipv4/ |
H A D | ip_sockglue.c | 226 struct cmsghdr *cmsg; ip_cmsg_send() local 228 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 229 if (!CMSG_OK(msg, cmsg)) for_each_cmsghdr() 233 cmsg->cmsg_level == SOL_IPV6 && for_each_cmsghdr() 234 cmsg->cmsg_type == IPV6_PKTINFO) { for_each_cmsghdr() 237 if (cmsg->cmsg_len < CMSG_LEN(sizeof(*src_info))) for_each_cmsghdr() 239 src_info = (struct in6_pktinfo *)CMSG_DATA(cmsg); for_each_cmsghdr() 247 if (cmsg->cmsg_level != SOL_IP) for_each_cmsghdr() 249 switch (cmsg->cmsg_type) { for_each_cmsghdr() 251 err = cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr)); for_each_cmsghdr() 254 err = ip_options_get(net, &ipc->opt, CMSG_DATA(cmsg), for_each_cmsghdr() 262 if (cmsg->cmsg_len != CMSG_LEN(sizeof(struct in_pktinfo))) for_each_cmsghdr() 264 info = (struct in_pktinfo *)CMSG_DATA(cmsg); for_each_cmsghdr() 270 if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) for_each_cmsghdr() 272 val = *(int *)CMSG_DATA(cmsg); for_each_cmsghdr() 278 if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) for_each_cmsghdr() 280 val = *(int *)CMSG_DATA(cmsg); for_each_cmsghdr() 446 /* IPv4 supports cmsg on all imcp errors and some timestamps 448 * Timestamp code paths do not initialize the fields expected by cmsg:
|
H A D | ping.c | 888 /* Copy the address and add cmsg data. */ ping_recvmsg()
|
/linux-4.1.27/arch/um/os-Linux/ |
H A D | file.c | 484 struct cmsghdr *cmsg; os_rcv_fd() local 503 cmsg = CMSG_FIRSTHDR(&msg); os_rcv_fd() 504 if (cmsg == NULL) { os_rcv_fd() 509 if ((cmsg->cmsg_level != SOL_SOCKET) || os_rcv_fd() 510 (cmsg->cmsg_type != SCM_RIGHTS)) { os_rcv_fd() 515 new = ((int *) CMSG_DATA(cmsg))[0]; os_rcv_fd()
|
/linux-4.1.27/net/rxrpc/ |
H A D | ar-output.c | 39 struct cmsghdr *cmsg; rxrpc_sendmsg_cmsg() local 47 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 48 if (!CMSG_OK(msg, cmsg)) for_each_cmsghdr() 51 len = cmsg->cmsg_len - CMSG_ALIGN(sizeof(struct cmsghdr)); for_each_cmsghdr() 53 cmsg->cmsg_level, cmsg->cmsg_type, len); for_each_cmsghdr() 55 if (cmsg->cmsg_level != SOL_RXRPC) for_each_cmsghdr() 58 switch (cmsg->cmsg_type) { for_each_cmsghdr() 63 *user_call_ID = *(u32 *) CMSG_DATA(cmsg); for_each_cmsghdr() 68 CMSG_DATA(cmsg); for_each_cmsghdr() 79 *abort_code = *(unsigned int *) CMSG_DATA(cmsg); for_each_cmsghdr()
|
/linux-4.1.27/net/rds/ |
H A D | send.c | 853 struct cmsghdr *cmsg; rds_rm_size() local 858 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 859 if (!CMSG_OK(msg, cmsg)) for_each_cmsghdr() 862 if (cmsg->cmsg_level != SOL_RDS) for_each_cmsghdr() 865 switch (cmsg->cmsg_type) { for_each_cmsghdr() 868 retval = rds_rdma_extra_size(CMSG_DATA(cmsg)); for_each_cmsghdr() 907 struct cmsghdr *cmsg; rds_cmsg_send() local 910 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 911 if (!CMSG_OK(msg, cmsg)) for_each_cmsghdr() 914 if (cmsg->cmsg_level != SOL_RDS) for_each_cmsghdr() 920 switch (cmsg->cmsg_type) { for_each_cmsghdr() 922 ret = rds_cmsg_rdma_args(rs, rm, cmsg); for_each_cmsghdr() 926 ret = rds_cmsg_rdma_dest(rs, rm, cmsg); for_each_cmsghdr() 930 ret = rds_cmsg_rdma_map(rs, rm, cmsg); for_each_cmsghdr() 938 ret = rds_cmsg_atomic(rs, rm, cmsg); for_each_cmsghdr() 1107 /* If the user included a RDMA_MAP cmsg, we allocated a MR on the fly. rds_sendmsg()
|
H A D | rdma.c | 547 struct cmsghdr *cmsg) rds_cmsg_rdma_args() 559 if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct rds_rdma_args)) rds_cmsg_rdma_args() 563 args = CMSG_DATA(cmsg); rds_cmsg_rdma_args() 713 struct cmsghdr *cmsg) rds_cmsg_rdma_dest() 720 if (cmsg->cmsg_len < CMSG_LEN(sizeof(rds_rdma_cookie_t)) || rds_cmsg_rdma_dest() 724 memcpy(&rm->m_rdma_cookie, CMSG_DATA(cmsg), sizeof(rm->m_rdma_cookie)); rds_cmsg_rdma_dest() 755 struct cmsghdr *cmsg) rds_cmsg_rdma_map() 757 if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct rds_get_mr_args)) || rds_cmsg_rdma_map() 761 return __rds_rdma_map(rs, CMSG_DATA(cmsg), &rm->m_rdma_cookie, &rm->rdma.op_rdma_mr); rds_cmsg_rdma_map() 768 struct cmsghdr *cmsg) rds_cmsg_atomic() 774 if (cmsg->cmsg_len < CMSG_LEN(sizeof(struct rds_atomic_args)) rds_cmsg_atomic() 778 args = CMSG_DATA(cmsg); rds_cmsg_atomic() 780 /* Nonmasked & masked cmsg ops converted to masked hw ops */ rds_cmsg_atomic() 781 switch (cmsg->cmsg_type) { rds_cmsg_atomic() 546 rds_cmsg_rdma_args(struct rds_sock *rs, struct rds_message *rm, struct cmsghdr *cmsg) rds_cmsg_rdma_args() argument 712 rds_cmsg_rdma_dest(struct rds_sock *rs, struct rds_message *rm, struct cmsghdr *cmsg) rds_cmsg_rdma_dest() argument 754 rds_cmsg_rdma_map(struct rds_sock *rs, struct rds_message *rm, struct cmsghdr *cmsg) rds_cmsg_rdma_map() argument 767 rds_cmsg_atomic(struct rds_sock *rs, struct rds_message *rm, struct cmsghdr *cmsg) rds_cmsg_atomic() argument
|
H A D | recv.c | 299 struct rds_rdma_notify cmsg = { 0 }; /* fill holes with zero */ rds_notify_queue_get() local 308 * in the user provided cmsg buffer. We don't try to copy more, to avoid rds_notify_queue_get() 314 max_messages = msghdr->msg_controllen / CMSG_SPACE(sizeof(cmsg)); rds_notify_queue_get() 335 cmsg.user_token = notifier->n_user_token; rds_notify_queue_get() 336 cmsg.status = notifier->n_status; rds_notify_queue_get() 339 sizeof(cmsg), &cmsg); rds_notify_queue_get()
|
H A D | rds.h | 735 struct cmsghdr *cmsg); 737 struct cmsghdr *cmsg); 739 struct cmsghdr *cmsg); 741 struct cmsghdr *cmsg); 747 struct cmsghdr *cmsg);
|
/linux-4.1.27/drivers/isdn/i4l/ |
H A D | isdn_tty.c | 779 cmd.parm.cmsg.Length = l + 18; isdn_tty_suspend() 780 cmd.parm.cmsg.Command = CAPI_FACILITY; isdn_tty_suspend() 781 cmd.parm.cmsg.Subcommand = CAPI_REQ; isdn_tty_suspend() 782 cmd.parm.cmsg.adr.Controller = info->isdn_driver + 1; isdn_tty_suspend() 783 cmd.parm.cmsg.para[0] = 3; /* 16 bit 0x0003 suplementary service */ isdn_tty_suspend() 784 cmd.parm.cmsg.para[1] = 0; isdn_tty_suspend() 785 cmd.parm.cmsg.para[2] = l + 3; isdn_tty_suspend() 786 cmd.parm.cmsg.para[3] = 4; /* 16 bit 0x0004 Suspend */ isdn_tty_suspend() 787 cmd.parm.cmsg.para[4] = 0; isdn_tty_suspend() 788 cmd.parm.cmsg.para[5] = l; isdn_tty_suspend() 789 strncpy(&cmd.parm.cmsg.para[6], id, l); isdn_tty_suspend() 869 cmd.parm.cmsg.Length = l + 18; isdn_tty_resume() 870 cmd.parm.cmsg.Command = CAPI_FACILITY; isdn_tty_resume() 871 cmd.parm.cmsg.Subcommand = CAPI_REQ; isdn_tty_resume() 872 cmd.parm.cmsg.adr.Controller = info->isdn_driver + 1; isdn_tty_resume() 873 cmd.parm.cmsg.para[0] = 3; /* 16 bit 0x0003 suplementary service */ isdn_tty_resume() 874 cmd.parm.cmsg.para[1] = 0; isdn_tty_resume() 875 cmd.parm.cmsg.para[2] = l + 3; isdn_tty_resume() 876 cmd.parm.cmsg.para[3] = 5; /* 16 bit 0x0005 Resume */ isdn_tty_resume() 877 cmd.parm.cmsg.para[4] = 0; isdn_tty_resume() 878 cmd.parm.cmsg.para[5] = l; isdn_tty_resume() 879 strncpy(&cmd.parm.cmsg.para[6], id, l); isdn_tty_resume() 905 l = min(strlen(msg), sizeof(cmd.parm) - sizeof(cmd.parm.cmsg) isdn_tty_send_msg() 906 + sizeof(cmd.parm.cmsg.para) - 2); isdn_tty_send_msg() 963 cmd.parm.cmsg.Length = l + 14; isdn_tty_send_msg() 964 cmd.parm.cmsg.Command = CAPI_MANUFACTURER; isdn_tty_send_msg() 965 cmd.parm.cmsg.Subcommand = CAPI_REQ; isdn_tty_send_msg() 966 cmd.parm.cmsg.adr.Controller = info->isdn_driver + 1; isdn_tty_send_msg() 967 cmd.parm.cmsg.para[0] = l + 1; isdn_tty_send_msg() 968 strncpy(&cmd.parm.cmsg.para[1], msg, l); isdn_tty_send_msg() 969 cmd.parm.cmsg.para[l + 1] = 0xd; isdn_tty_send_msg()
|
H A D | isdn_common.c | 715 return (isdn_capi_rec_hl_msg(&c->parm.cmsg)); isdn_status_callback()
|
/linux-4.1.27/fs/nfsd/ |
H A D | nfs4recover.c | 658 __cld_pipe_upcall(struct rpc_pipe *pipe, struct cld_msg *cmsg) __cld_pipe_upcall() argument 664 msg.data = cmsg; __cld_pipe_upcall() 665 msg.len = sizeof(*cmsg); __cld_pipe_upcall() 687 cld_pipe_upcall(struct rpc_pipe *pipe, struct cld_msg *cmsg) cld_pipe_upcall() argument 696 ret = __cld_pipe_upcall(pipe, cmsg); cld_pipe_upcall() 706 struct cld_msg __user *cmsg = (struct cld_msg __user *)src; cld_pipe_downcall() local 712 if (mlen != sizeof(*cmsg)) { cld_pipe_downcall() 714 sizeof(*cmsg)); cld_pipe_downcall() 719 if (copy_from_user(&xid, &cmsg->cm_xid, sizeof(xid)) != 0) { cld_pipe_downcall() 752 struct cld_msg *cmsg = msg->data; cld_pipe_destroy_msg() local 753 struct cld_upcall *cup = container_of(cmsg, struct cld_upcall, cld_pipe_destroy_msg()
|
/linux-4.1.27/fs/dlm/ |
H A D | lowcomms.c | 543 struct cmsghdr *cmsg; sctp_send_shutdown() local 557 cmsg = CMSG_FIRSTHDR(&outmessage); sctp_send_shutdown() 558 cmsg->cmsg_level = IPPROTO_SCTP; sctp_send_shutdown() 559 cmsg->cmsg_type = SCTP_SNDRCV; sctp_send_shutdown() 560 cmsg->cmsg_len = CMSG_LEN(sizeof(struct sctp_sndrcvinfo)); sctp_send_shutdown() 561 outmessage.msg_controllen = cmsg->cmsg_len; sctp_send_shutdown() 562 sinfo = CMSG_DATA(cmsg); sctp_send_shutdown() 1070 struct cmsghdr *cmsg; sctp_init_assoc() local 1124 cmsg = CMSG_FIRSTHDR(&outmessage); sctp_init_assoc() 1125 cmsg->cmsg_level = IPPROTO_SCTP; sctp_init_assoc() 1126 cmsg->cmsg_type = SCTP_SNDRCV; sctp_init_assoc() 1127 cmsg->cmsg_len = CMSG_LEN(sizeof(struct sctp_sndrcvinfo)); sctp_init_assoc() 1128 sinfo = CMSG_DATA(cmsg); sctp_init_assoc() 1131 outmessage.msg_controllen = cmsg->cmsg_len; sctp_init_assoc()
|
/linux-4.1.27/net/dccp/ |
H A D | proto.c | 706 struct cmsghdr *cmsg; dccp_msghdr_parse() local 720 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 721 if (!CMSG_OK(msg, cmsg)) for_each_cmsghdr() 724 if (cmsg->cmsg_level != SOL_DCCP) for_each_cmsghdr() 727 if (cmsg->cmsg_type <= DCCP_SCM_QPOLICY_MAX && for_each_cmsghdr() 728 !dccp_qpolicy_param_ok(skb->sk, cmsg->cmsg_type)) for_each_cmsghdr() 731 switch (cmsg->cmsg_type) { for_each_cmsghdr() 733 if (cmsg->cmsg_len != CMSG_LEN(sizeof(__u32))) for_each_cmsghdr() 735 skb->priority = *(__u32 *)CMSG_DATA(cmsg); for_each_cmsghdr()
|
/linux-4.1.27/net/ |
H A D | compat.c | 92 #define CMSG_COMPAT_DATA(cmsg) \ 93 ((void __user *)((char __user *)(cmsg) + CMSG_COMPAT_ALIGN(sizeof(struct compat_cmsghdr)))) 111 struct compat_cmsghdr __user *cmsg, int cmsg_len) cmsg_compat_nxthdr() 113 char __user *ptr = (char __user *)cmsg + CMSG_COMPAT_ALIGN(cmsg_len); cmsg_compat_nxthdr() 121 * thus placement) of cmsg headers and length are different for 110 cmsg_compat_nxthdr(struct msghdr *msg, struct compat_cmsghdr __user *cmsg, int cmsg_len) cmsg_compat_nxthdr() argument
|
/linux-4.1.27/drivers/isdn/hisax/ |
H A D | callc.c | 1567 capi_debug(chanp, &ic->parm.cmsg); HiSax_command() 1568 if (ic->parm.cmsg.Length < 8) HiSax_command() 1570 switch (ic->parm.cmsg.Command) { HiSax_command() 1572 if (ic->parm.cmsg.Subcommand == CAPI_REQ) HiSax_command() 1573 lli_got_fac_req(chanp, &ic->parm.cmsg); HiSax_command() 1576 if (ic->parm.cmsg.Subcommand == CAPI_REQ) HiSax_command() 1577 lli_got_manufacturer(chanp, csta, &ic->parm.cmsg); HiSax_command()
|
/linux-4.1.27/net/iucv/ |
H A D | af_iucv.c | 1039 struct cmsghdr *cmsg; iucv_sock_sendmsg() local 1076 for_each_cmsghdr(cmsg, msg) { for_each_cmsghdr() 1077 if (!CMSG_OK(msg, cmsg)) { for_each_cmsghdr() 1082 if (cmsg->cmsg_level != SOL_IUCV) for_each_cmsghdr() 1085 if (cmsg->cmsg_type & cmsg_done) { for_each_cmsghdr() 1089 cmsg_done |= cmsg->cmsg_type; for_each_cmsghdr() 1091 switch (cmsg->cmsg_type) { for_each_cmsghdr() 1093 if (cmsg->cmsg_len != CMSG_LEN(TRGCLS_SIZE)) { for_each_cmsghdr() 1100 (void *) CMSG_DATA(cmsg), TRGCLS_SIZE); for_each_cmsghdr()
|
/linux-4.1.27/drivers/hsi/clients/ |
H A D | ssi_protocol.c | 880 struct hsi_msg *cmsg; ssip_tx_data_complete() local 891 cmsg = ssip_claim_cmd(ssi); ssip_tx_data_complete() 892 ssip_set_cmd(cmsg, SSIP_SWBREAK_CMD); ssip_tx_data_complete() 893 cmsg->complete = ssip_swbreak_complete; ssip_tx_data_complete() 895 hsi_async_write(cl, cmsg); ssip_tx_data_complete()
|
/linux-4.1.27/include/net/ |
H A D | inet_sock.h | 202 /* cmsg flags for inet */
|
/linux-4.1.27/net/sctp/ |
H A D | socket.c | 6609 struct cmsghdr *cmsg; sctp_msghdr_parse() local 6612 for_each_cmsghdr(cmsg, my_msg) { for_each_cmsghdr() 6613 if (!CMSG_OK(my_msg, cmsg)) for_each_cmsghdr() 6617 if (cmsg->cmsg_level != IPPROTO_SCTP) for_each_cmsghdr() 6621 switch (cmsg->cmsg_type) { for_each_cmsghdr() 6636 if (cmsg->cmsg_len != CMSG_LEN(sizeof(struct sctp_initmsg))) for_each_cmsghdr() 6639 cmsgs->init = CMSG_DATA(cmsg); for_each_cmsghdr() 6654 if (cmsg->cmsg_len != CMSG_LEN(sizeof(struct sctp_sndrcvinfo))) for_each_cmsghdr() 6657 cmsgs->srinfo = CMSG_DATA(cmsg); for_each_cmsghdr() 6678 if (cmsg->cmsg_len != CMSG_LEN(sizeof(struct sctp_sndinfo))) for_each_cmsghdr() 6681 cmsgs->sinfo = CMSG_DATA(cmsg); for_each_cmsghdr()
|