cregit-Linux how code gets into the kernel

Release 4.8 net/caif/cfvidl.c

Directory: net/caif
/*
 * Copyright (C) ST-Ericsson AB 2010
 * Author:      Sjur Brendeland
 * License terms: GNU General Public License (GPL) version 2
 */


#define pr_fmt(fmt) KBUILD_MODNAME ":%s(): " fmt, __func__

#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/errno.h>
#include <net/caif/caif_layer.h>
#include <net/caif/cfsrvl.h>
#include <net/caif/cfpkt.h>


#define container_obj(layr) ((struct cfsrvl *) layr)

static int cfvidl_receive(struct cflayer *layr, struct cfpkt *pkt);
static int cfvidl_transmit(struct cflayer *layr, struct cfpkt *pkt);


struct cflayer *cfvidl_create(u8 channel_id, struct dev_info *dev_info) { struct cfsrvl *vid = kzalloc(sizeof(struct cfsrvl), GFP_ATOMIC); if (!vid) return NULL; caif_assert(offsetof(struct cfsrvl, layer) == 0); cfsrvl_init(vid, channel_id, dev_info, false); vid->layer.receive = cfvidl_receive; vid->layer.transmit = cfvidl_transmit; snprintf(vid->layer.name, CAIF_LAYER_NAME_SZ - 1, "vid1"); return &vid->layer; }

Contributors

PersonTokensPropCommitsCommitProp
sjur braendelandsjur braendeland9999.00%266.67%
joe perchesjoe perches11.00%133.33%
Total100100.00%3100.00%


static int cfvidl_receive(struct cflayer *layr, struct cfpkt *pkt) { u32 videoheader; if (cfpkt_extr_head(pkt, &videoheader, 4) < 0) { pr_err("Packet is erroneous!\n"); cfpkt_destroy(pkt); return -EPROTO; } return layr->up->receive(layr->up, pkt); }

Contributors

PersonTokensPropCommitsCommitProp
sjur braendelandsjur braendeland6298.41%150.00%
joe perchesjoe perches11.59%150.00%
Total63100.00%2100.00%


static int cfvidl_transmit(struct cflayer *layr, struct cfpkt *pkt) { struct cfsrvl *service = container_obj(layr); struct caif_payload_info *info; u32 videoheader = 0; int ret; if (!cfsrvl_ready(service, &ret)) { cfpkt_destroy(pkt); return ret; } cfpkt_add_head(pkt, &videoheader, 4); /* Add info for MUX-layer to route the packet out */ info = cfpkt_info(pkt); info->channel_id = service->layer.id; info->dev_info = &service->dev_info; return layr->dn->transmit(layr->dn, pkt); }

Contributors

PersonTokensPropCommitsCommitProp
sjur braendelandsjur braendeland10493.69%266.67%
dmitry tarnyagindmitry tarnyagin76.31%133.33%
Total111100.00%3100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
sjur braendelandsjur braendeland32495.29%457.14%
joe perchesjoe perches92.65%228.57%
dmitry tarnyagindmitry tarnyagin72.06%114.29%
Total340100.00%7100.00%
Directory: net/caif
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.