cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

iso-resources.h (1234B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef SOUND_FIREWIRE_ISO_RESOURCES_H_INCLUDED
      3#define SOUND_FIREWIRE_ISO_RESOURCES_H_INCLUDED
      4
      5#include <linux/mutex.h>
      6#include <linux/types.h>
      7
      8struct fw_unit;
      9
     10/**
     11 * struct fw_iso_resources - manages channel/bandwidth allocation
     12 * @channels_mask: if the device does not support all channel numbers, set this
     13 *                 bit mask to something else than the default (all ones)
     14 *
     15 * This structure manages (de)allocation of isochronous resources (channel and
     16 * bandwidth) for one isochronous stream.
     17 */
     18struct fw_iso_resources {
     19	u64 channels_mask;
     20	/* private: */
     21	struct fw_unit *unit;
     22	struct mutex mutex;
     23	unsigned int channel;
     24	unsigned int bandwidth; /* in bandwidth units, without overhead */
     25	unsigned int bandwidth_overhead;
     26	int generation; /* in which allocation is valid */
     27	bool allocated;
     28};
     29
     30int fw_iso_resources_init(struct fw_iso_resources *r,
     31			  struct fw_unit *unit);
     32void fw_iso_resources_destroy(struct fw_iso_resources *r);
     33
     34int fw_iso_resources_allocate(struct fw_iso_resources *r,
     35			      unsigned int max_payload_bytes, int speed);
     36int fw_iso_resources_update(struct fw_iso_resources *r);
     37void fw_iso_resources_free(struct fw_iso_resources *r);
     38
     39#endif