Articles of 枚举

在Linux上重新扫描PCIe之后未分配BAR区域

我有一个FPGA卡连接到Linux系统上的PCIe。 我可以对FPGA进行重新编程,然后echo 1 > /sys/bus/pci/rescan并在lspci显示我的卡。 但是BAR区域没有分配任何内存: Region 0: Memory at <unassigned> (64-bit, prefetchable) [disabled] [size=32M] Region 2: Memory at <unassigned> (64-bit, prefetchable) [disabled] [size=64M] 我已经尝试了Linux启动命令行上的各种pci=标志,没有太大的影响。 我怀疑BAR区域太大,因此Linux无法在地址空间find适当的alignment范围来映射BAR,因为它们在启动时不存在。 这是一个正确的理论吗? 是否有可能告诉Linux为我的设备预留空间?

枚举数据types在bash中似乎不可用

有了bash,创build了简单的脚本来访问它的索引数组元素,如下所示 #! /bin/bash OK_INDEX=0 CANCEL_INDEX=1 ERROR_INDEX=2 CONFIRM_INDEX=3 SAVE_INDEX=4 EXIT_INDEX=5 declare -a messageList=("ok" "cancel" "error" "confirm" "save" "exit") printf "%s \n" ${messageList[$CANCEL_INDEX]} 从上面的脚本我需要声明适当的索引variables从数组列表中检索有效的消息,但它可能不便于我声明每个variables,并给他们的索引。很好,如果variablesautometically获得像C中的ENUM数据types 在C中是可能的 enum index { OK_INDEX, CANCEL_INDEX, ERROR_INDEX,CONFIRM_INDEX,SAVE_INDEX,EXIT_INDEX}; ENUM在bash中有没有其他select? 我发现很多,但没有成功,然后尝试一些伎俩来实现这一点如下 ENUM=(OK_INDEX CANCEL_INDEX ERROR_INDEX CONFIRM_INDEX SAVE_INDEX EXIT_INDEX) maxArg=${#ENUM[@]} for ((i=0; i < $maxArg; i++)); do name=${ENUM[i]} declare -r ${name}=$i done 所以形成上面的代码片段,我成功地创build了常量,但似乎冗长的意思就是声明variables我需要写5-10行代码,这是不公平的。 那么任何一个有另一个解决scheme

Eclipse中的Enum声明

我在Eclipse,Linux中编译一个c ++项目。 这个项目过去是在Windows下编译的。 我有这样的枚举声明: enum nameofenum:UINT32 { one=0, two=1 } 结果是日食中的错误。 :UINT32是什么意思? 我怎样才能把这个声明切换到Linux? 谢谢!!

基地址寄存器如何获取地址?

我已经完成了在linux下的FPGA开发FPGA的pcie驱动程序。 一切工作正常。 但是我想知道FPGA的PCI端点的基地址寄存器在哪里得到基地址。 当我生成PCIe端点时,我可以设置BAR的长度,但不是更多。 在PCIe驱动程序中,我执行像pci_enable_device这样的标准function,但是我没有专门设置基地址。 那么操作系统在启动过程中是否设置了基地址? 或者它是如何工作的? 就我而言,我想知道如果一个pcie设备连接,操作系统一般会做什么初始化。 因为我确实在卸载驱动程序的时候在lspci中看到了我的pci设备。 亲爱的托马斯

在VB.NET中validation枚举值是有效的

我的英语可能不太好,所以请原谅,如果我没有意义。 我负责validation枚举包含递增的值。 代码如下所示: Public Enum AccountMessageDescriptor AccountInvalid = 1001 AccountReviewPending=1002 … InvalidOperationOnAccount=1382 End Enum 每个Enum值也有一个描述(Custom)属性。 文件和描述属性在其他地方使用…它看起来像程序员更新枚举和使用自定义属性的帮助消息,而不是资源文件等与一个新的整数值… 例如,可能会添加另一个错误: NewEnumItem = 1383 我需要确保(在编译期间,我们有一个自定义的MSBuild任务,做很多其他处理),如果枚举递增顺序,而且它还没有被使用。 有人build议使用集合,检查枚举值是否已经存在,如果不插入。 我正在考虑迭代并检查当前值是否为前一个值的+1(因此它是连续的,因为必须始终为+1,所以它不能被使用)。 这似乎有瑕疵或我不了解有关.NET枚举的东西? 埃米

batch file/ Powershell – 枚举文件夹中的文件

注:没有必要使用批量说,但我只是熟悉批处理,Powershell会更好,我想象,所以如果有更容易的解决scheme,在PowerShell的这个问题,请大喊! 我为testing所有客户端的灾难恢复备份,即安装ShadowProtect快照最新增量,写入和读取文件,卸载映像等任务艰巨。 批量的实际ShadowProtect部分是相当简单的,但我想devise一个批处理,可以自动执行此操作。 基本上我的问题是: 如何在batch file中,我可以首先枚举文件夹中的文件,然后将给定文件名的特定部分放入一个variables? 原因是ShadowProtect增量有一个命名约定,如: SERVERNAME_DRIVELETTER_b00X_i000x – whereby b = base image, i = incremental number 我需要安装最新的增量映像,因此需要parsing文件夹并根据文件名后面的数字find最新的增量映像。 这是可能的批量? 谢谢!

为什么枚举会话在Windows 7上增加了额外的function?

如果我使用LsaEnumerateLogonSessions()列举会话给我一个会话LUID列表,然后LsaGetLogonSessionData()以获取每个会话的详细信息(如MSDN上所述),那么在Windows XP上它的行为完全如我所愿,显示一个login的会话为我加上一些login服务。 在Windows 7上运行相同的程序为我显示两个login会话,再加上服务会话。 对我来说这两个会话显示为相同的用户和相同的login时间。 我正在运行一些升级的进程,所以我认为可能是这样,但是当我closures这些进程甚至重新启动后,第二个进程仍然在那里。 那么有没有人知道为什么每个真正的login用户有第二个会话? 你怎么知道哪一个是“真正的”? 谢谢 蒂姆

如何获得Windows 7中的所有电源scheme的名称在C + +?

我必须得到Windows 7中所有可用的电源scheme的名称。我尝试枚举他们的电源pipe理function,我得到正确的金额,但是当我打电话“PowerReadFriendlyName”( http://msdn.microsoft.com/ en-us / library / windows / desktop / aa372740%28v = vs.85%29.aspx )有时会起作用,有时会失败: UCHAR displayBuffer[256]; DWORD displayBufferSize = sizeof(displayBuffer); GUID buffer; DWORD bufferSize = sizeof(buffer); int index; int fail=0,ok=0; // for(index = 0 ; ; index++) { ZeroMemory(&buffer, sizeof(buffer)); ZeroMemory(&displayBuffer, sizeof(displayBuffer)); if (PowerEnumerate(NULL,NULL,NULL, ACCESS_SCHEME,index,(UCHAR*)&buffer,&bufferSize) == ERROR_SUCCESS) { if (PowerReadFriendlyName(NULL, &buffer,&NO_SUBGROUP_GUID,NULL,displayBuffer,&displayBufferSize) == ERROR_SUCCESS) { […]

在C#上使用枚举

大家好,感谢您的帮助! 首先我告诉你的背景。 我必须做一个Windows 8的通用应用程序,饮料自动售货机模拟器。 我的课程是: 经理(谁创造机器,放入配料和饮料), VendingMachine(拥有配料和饮料清单,检查是否有足够的饮料等) 含有名称和数量的成分类别, 一个抽象的基类与名称,价格等的饮料和 茶,咖啡和巧克力从饮料inheritance,并有自己的成分实例列表。 现在,当我在机器中select一种饮料时,我正在检查每一种成分的名称,如果机器上有一个同名的成分,我正在检查是否有剩余,我正在检查一个成分。 事情是,应该很容易添加一种新的饮料,但(!)如果配料的名称是不完全相同,它将无法正常工作。 所以我想做一个枚举,我做到了这样的机器,如: public enum IngredientsNames { Coffee, Tea, Chocolate, Sugar, Milk } 成分类是: class Ingredient { public string name { get; private set; } public int amount; public Ingredient(string _name) { name = _name; } } 但问题是如果我想在自动售货机类中做: IngredientNames.Coffee = "Coffee" ; 它说 “任务的左手边必须是一个variables,属性或索引器” 要清楚的是,我想如果有人打开一个新的types的饮料,并且做Ingredient.Coffee它给他自动string的名字“咖啡”,他不必自己给名字,没有之后出错。 […]

DirectInput模拟游戏杆范围

我使用DirectInput来处理input设备,我列举了每个设备上的设备和元素。 在我的游戏手柄上使用模拟棒时,它们报告0-65535范围内的值。 这对于所有types的绝对轴始终是这种情况吗? 如果没有:有什么办法找出DX8input元素的DIDEVICEOBJECTDATA :: dwData(用DIDFT_ABSAXIS枚举)的范围? 我能想到的唯一的另一个select是在我的应用程序中使用一些自制的内部校准,而且这听起来也是80年代的事实。