Searched refs:cmsg (Results 1 - 35 of 35) sorted by relevance

/linux-4.1.27/include/linux/isdn/
H A Dcapiutil.h150 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 Dcapiutil.c229 #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 Dcapidrv.c504 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 Dcapi.c1148 _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 Ddatagram.c353 /* 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 Dping.c130 /* TODO: use ip6_datagram_send_ctl to get options from cmsg */ ping_v6_sendmsg()
/linux-4.1.27/include/linux/
H A Dsocket.h90 #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 Disdnif.h377 capi_msg cmsg; /* For CAPI like messages */ member in union:__anon11869::__anon11870
/linux-4.1.27/include/uapi/linux/
H A Derrqueue.h26 * struct scm_timestamping - timestamps exposed through cmsg
29 * communicate network timestamps by passing this struct in a cmsg with
H A Ddccp.h200 /* DCCP socket control message types for cmsg */
/linux-4.1.27/net/core/
H A Dscm.c67 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 Dtimestamping.c159 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 Dtxtimestamp.c215 fprintf(stderr, "unknown cmsg %d,%d\n", __recv_errmsg_cmsg()
/linux-4.1.27/arch/um/os-Linux/drivers/
H A Dtuntap_user.c71 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 Dmd-cluster.c376 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 Daf_alg.c440 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 Dip_sockglue.c226 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 Dping.c888 /* Copy the address and add cmsg data. */ ping_recvmsg()
/linux-4.1.27/arch/um/os-Linux/
H A Dfile.c484 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 Dar-output.c39 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 Dsend.c853 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 Drdma.c547 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 Drecv.c299 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 Drds.h735 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 Disdn_tty.c779 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 Disdn_common.c715 return (isdn_capi_rec_hl_msg(&c->parm.cmsg)); isdn_status_callback()
/linux-4.1.27/fs/nfsd/
H A Dnfs4recover.c658 __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 Dlowcomms.c543 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 Dproto.c706 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 Dcompat.c92 #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 Dcallc.c1567 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 Daf_iucv.c1039 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 Dssi_protocol.c880 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 Dinet_sock.h202 /* cmsg flags for inet */
/linux-4.1.27/net/sctp/
H A Dsocket.c6609 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()

Completed in 1201 milliseconds