本文整理汇总了C++中PN函数的典型用法代码示例。如果您正苦于以下问题:C++ PN函数的具体用法?C++ PN怎么用?C++ PN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PN函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FS_r_set_alarm
static ZERO_OR_ERROR FS_r_set_alarm(struct one_wire_query *owq)
{
BYTE c;
OWQ_allocate_struct_and_pointer(owq_alarm);
OWQ_create_temporary(owq_alarm, (char *) &c, 1, 0x0200, PN(owq));
if (COMMON_read_memory_F0(owq_alarm, 0, 0)) {
return -EINVAL;
}
OWQ_U(owq) = Avals[(c >> 3) & 0x07];
return 0;
}
示例2: print_rt_rq
void print_rt_rq(struct seq_file *m, int cpu, struct rt_rq *rt_rq)
{
#ifdef CONFIG_RT_GROUP_SCHED
SEQ_printf(m, "\nrt_rq[%d]:%s\n", cpu, task_group_path(rt_rq->tg));
#else
SEQ_printf(m, "\nrt_rq[%d]:\n", cpu);
#endif
#define P(x) \
SEQ_printf(m, " .%-30s: %Ld\n", #x, (long long)(rt_rq->x))
#define PN(x) \
SEQ_printf(m, " .%-30s: %Ld.%06ld\n", #x, SPLIT_NS(rt_rq->x))
P(rt_nr_running);
P(rt_throttled);
PN(rt_time);
PN(rt_runtime);
#undef PN
#undef P
}
示例3: FS_w_mem
static ZERO_OR_ERROR FS_w_mem(struct one_wire_query *owq)
{
size_t pagesize = 32;
ZERO_OR_ERROR error_code = COMMON_readwrite_paged(owq, 0, pagesize, OW_w_mem) ;
/* paged write */
if (error_code != 0) {
error_code = -EFAULT ;
}
OW_reset(PN(owq)) ; // DS2404 needs this to release for 3-wire communication
return error_code ;
}
示例4: setup
void setup(void) {
/*
Test Envionment, ATMEGA with the following settings:
CS: PORTB, Bit 2
A0: PORTB, Bit 1
SCK: PORTB, Bit 5
MOSI: PORTB, Bit 3
*/
/* 1. Setup and create u8g device */
/* u8g_InitSPI(&u8g, &u8g_dev_st7565_dogm132_sw_spi, PN(1, 5), PN(1, 3), PN(1, 2), PN(1, 1), U8G_PIN_NONE); */
u8g_InitHWSPI(&u8g, &u8g_dev_st7565_dogm132_hw_spi, PN(1, 2), PN(1, 1), U8G_PIN_NONE);
/* 2. Setup m2 */
m2_Init(&el_top, m2_es_avr_u8g, m2_eh_4bs, m2_gh_u8g_bfs);
/* 3. Connect u8g display to m2 */
m2_SetU8g(&u8g, m2_u8g_box_icon);
/* 4. Set a font, use normal u8g_font's */
m2_SetFont(0, (const void *)u8g_font_5x8r);
/* 5. Define keys */
m2_SetPin(M2_KEY_EXIT, PN(3, 5));
m2_SetPin(M2_KEY_SELECT, PN(3, 6));
m2_SetPin(M2_KEY_NEXT, PN(3, 7));
m2_SetPin(M2_KEY_PREV, PN(1, 7));
}
示例5: setup
void setup(void)
{
/*
Test Envionment, ATMEGA with the following settings:
CS: PORTB, Bit 2
A0: PORTB, Bit 1
SCK: PORTB, Bit 5
MOSI: PORTB, Bit 3
*/
/* 1. Setup and create u8g device: http://code.google.com/p/u8glib/wiki/avr#U8glib_Init */
/* u8g_InitSPI(&u8g, &u8g_dev_st7565_dogm132_sw_spi, PN(1, 5), PN(1, 3), PN(1, 2), PN(1, 1), U8G_PIN_NONE); */
u8g_InitHWSPI(&u8g, &u8g_dev_st7565_dogm132_hw_spi, PN(1, 2), PN(1, 1), U8G_PIN_NONE);
/* 2. Setup m2 */
m2_Init(&top_el_pin_list, m2_es_avr_u8g, m2_eh_4bs, m2_gh_u8g_bfs);
//m2_Init(&top_el_pin_list, m2_es_avr_rotary_encoder_u8g, m2_eh_4bd, m2_gh_u8g_bfs);
/* 3. Connect u8g display to m2 */
m2_SetU8g(&u8g, m2_u8g_box_icon);
/* 4. Set a font, use normal u8g_font's */
m2_SetFont(0, (const void *)u8g_font_5x8r);
/* 5. Define keys (PN() description, see http://code.google.com/p/u8glib/wiki/avr#U8glib_Init) */
m2_SetPin(M2_KEY_EXIT, PN(3, 5));
m2_SetPin(M2_KEY_SELECT, PN(3, 6));
m2_SetPin(M2_KEY_NEXT, PN(3, 7));
m2_SetPin(M2_KEY_PREV, PN(1, 7));
}
示例6: FS_w_screenX
static ZERO_OR_ERROR FS_w_screenX(struct one_wire_query *owq)
{
struct one_wire_query * owq_line ;
int extension;
struct parsedname *pn = PN(owq);
int width = pn->selected_filetype->data.i;
int rows = (width == 40) ? 2 : 4; /* max number of rows */
char *start_of_remaining_text = OWQ_buffer(owq);
char *pointer_after_all_text = OWQ_buffer(owq) + OWQ_size(owq);
if (OWQ_offset(owq)) {
return -ERANGE;
}
if (BAD( OW_clear(pn) ) ) {
return -EFAULT;
}
owq_line = OWQ_create_separate( 0, owq ) ;
if ( owq_line == NO_ONE_WIRE_QUERY ) {
return -ENOMEM ;
}
for (extension = 0; extension < rows; ++extension) {
char *newline_location = memchr(start_of_remaining_text, '\n',
pointer_after_all_text - start_of_remaining_text);
OWQ_pn(owq_line).extension = extension;
OWQ_buffer(owq_line) = start_of_remaining_text;
if ((newline_location != NULL)
&& (newline_location < start_of_remaining_text + width)) {
OWQ_size(owq_line) = newline_location - start_of_remaining_text;
start_of_remaining_text = newline_location + 1; /* skip over newline */
} else {
char *lineend_location = start_of_remaining_text + width;
if (lineend_location > pointer_after_all_text) {
lineend_location = pointer_after_all_text;
}
OWQ_size(owq_line) = lineend_location - start_of_remaining_text;
start_of_remaining_text = lineend_location;
}
if (FS_w_lineX(owq_line)) {
OWQ_destroy( owq_line ) ;
return -EINVAL;
}
if (start_of_remaining_text >= pointer_after_all_text)
break;
}
OWQ_destroy( owq_line ) ;
return 0;
}
示例7: sched_debug_show
static int sched_debug_show(struct seq_file *m, void *v)
{
u64 ktime, sched_clk, cpu_clk;
unsigned long flags;
int cpu;
local_irq_save(flags);
ktime = ktime_to_ns(ktime_get());
sched_clk = sched_clock();
cpu_clk = local_clock();
local_irq_restore(flags);
SEQ_printf(m, "Sched Debug Version: v0.10, %s %.*s\n",
init_utsname()->release,
(int)strcspn(init_utsname()->version, " "),
init_utsname()->version);
#define P(x) \
SEQ_printf(m, "%-40s: %Ld\n", #x, (long long)(x))
#define PN(x) \
SEQ_printf(m, "%-40s: %Ld.%06ld\n", #x, SPLIT_NS(x))
PN(ktime);
PN(sched_clk);
PN(cpu_clk);
P(jiffies);
#ifdef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
P(sched_clock_stable);
#endif
#undef PN
#undef P
SEQ_printf(m, "\n");
SEQ_printf(m, "sysctl_sched\n");
#define P(x) \
SEQ_printf(m, " .%-40s: %Ld\n", #x, (long long)(x))
#define PN(x) \
SEQ_printf(m, " .%-40s: %Ld.%06ld\n", #x, SPLIT_NS(x))
PN(sysctl_sched_latency);
PN(sysctl_sched_min_granularity);
PN(sysctl_sched_wakeup_granularity);
P(sysctl_sched_child_runs_first);
P(sysctl_sched_features);
#undef PN
#undef P
SEQ_printf(m, " .%-40s: %d (%s)\n", "sysctl_sched_tunable_scaling",
sysctl_sched_tunable_scaling,
sched_tunable_scaling_names[sysctl_sched_tunable_scaling]);
read_lock_irqsave(&tasklist_lock, flags);
//for_each_online_cpu(cpu)
for_each_possible_cpu(cpu)
print_cpu(m, cpu);
read_unlock_irqrestore(&tasklist_lock, flags);
SEQ_printf(m, "\n");
return 0;
}
示例8: FS_redefchar
static ZERO_OR_ERROR FS_redefchar(struct one_wire_query *owq)
{
struct parsedname *pn = PN(owq);
if ( OWQ_size(owq) != LCD_REDEFCHAR_LENGTH ) {
return -ERANGE ;
}
if ( OWQ_offset(owq) != 0 ) {
return -ERANGE ;
}
return GB_to_Z_OR_E( OW_redefchar( OWQ_buffer(owq), pn ) ) ;
}
示例9: FS_Honoff
// 0x01 => blinking cursor on
// 0x02 => cursor on
// 0x04 => display on
static ZERO_OR_ERROR FS_Honoff(struct one_wire_query *owq)
{
struct parsedname *pn = PN(owq);
BYTE onoff[] = { NIBBLE_DATA(OWQ_U(owq)) };
RETURN_ERROR_IF_BAD( OW_Hinit(pn) ) ;
// onoff
if ( BAD( OW_w_pios(onoff, 2, pn) ) ) {
LEVEL_DEBUG("Error setting LCD state");
return -EINVAL;
}
return 0;
}
示例10: FS_w_s_alarm
/* data[0] selection */
static ZERO_OR_ERROR FS_w_s_alarm(struct one_wire_query *owq)
{
BYTE data[3];
int i;
UINT p;
UINT U = OWQ_U(owq);
for (i = 0, p = 1; i < 8; ++i, p *= 10) {
UT_setbit(&data[1], i, ((int) (U / p) % 10) & 0x01);
UT_setbit(&data[0], i, (((int) (U / p) % 10) & 0x02) >> 1);
}
data[2] = ((U / 100000000) % 10) & 0x03;
return GB_to_Z_OR_E(OW_w_s_alarm(data, PN(owq))) ;
}
示例11: OW_r_counter
/* Nathan Holmes helped troubleshoot this one! */
static GOOD_OR_BAD OW_r_counter(struct one_wire_query *owq, size_t page, size_t pagesize)
{
BYTE extra[8];
if (COMMON_read_memory_plus_counter(extra, page, pagesize, PN(owq))) {
return gbBAD;
}
if (extra[4] != _1W_COUNTER_FILL || extra[5] != _1W_COUNTER_FILL || extra[6] != _1W_COUNTER_FILL || extra[7] != _1W_COUNTER_FILL) {
return gbBAD;
}
/* counter is held in the 4 bytes after the data */
OWQ_U(owq) = UT_uint32(extra);
return gbGOOD;
}
示例12: _print_owq
void _print_owq(struct one_wire_query *owq)
{
char c[32];
fprintf(stderr,"OWQ OneWireQuery structure of %s\n", PN(owq)->path);
fprintf(stderr," OneWireQuery size=%lu offset=%lu, extension=%d\n",
(unsigned long) OWQ_size(owq), (unsigned long) OWQ_offset(owq), (int) OWQ_pn(owq).extension);
if ( OWQ_buffer(owq) != NULL ) {
Debug_Bytes("OneWireQuery buffer", (BYTE *) OWQ_buffer(owq), OWQ_size(owq));
}
fprintf(stderr," Cleanup = %.4X",OWQ_cleanup(owq));
fprintf(stderr," OneWireQuery I=%d U=%u F=%G Y=%d D=%s\n", OWQ_I(owq), OWQ_U(owq), OWQ_F(owq), OWQ_Y(owq), SAFESTRING(ctime_r(&OWQ_D(owq), c)));
fprintf(stderr,"--- OneWireQuery done\n");
}
示例13: FS_w_mem
static ZERO_OR_ERROR FS_w_mem(struct one_wire_query *owq)
{
/* paged access */
size_t pagesize;
switch (PN(owq)->sn[0]) {
case 0x2D:
pagesize = 8 ;
return GB_to_Z_OR_E(COMMON_readwrite_paged(owq, 0, pagesize, OW_w_2Dpage)) ;
default:
pagesize = 8 ;
return GB_to_Z_OR_E(COMMON_readwrite_paged(owq, 0, pagesize, OW_w_23page)) ;
}
}
示例14: FS_w_interface
/* Write to interface dir */
static ZERO_OR_ERROR FS_w_interface(struct one_wire_query *owq)
{
struct parsedname *pn = PN(owq);
if ( pn->selected_connection == NO_CONNECTION ) {
LEVEL_DEBUG("Attempt to write to no bus for /settings");
return -ENODEV ;
} else if ( SpecifiedLocalBus(pn) ) {
return FS_w_local(owq);
} else {
return ServerWrite(owq);
}
}
示例15: FS_r_ds2490status
static ZERO_OR_ERROR FS_r_ds2490status(struct one_wire_query *owq)
{
struct parsedname *pn = PN(owq);
char res[256];
char buffer[ DS9490_getstatus_BUFFER_LENGTH ];
int ret;
res[0] = '\0';
if (get_busmode(pn->selected_connection) == bus_usb) {
#if OW_USB
ret = DS9490_getstatus(buffer, 0, PN(owq));
if (ret < 0) {
sprintf(res, "DS9490_getstatus failed: %d\n", ret);
} else {
sprintf(res,
"%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\n",
buffer[0], buffer[1], buffer[2], buffer[3],
buffer[4], buffer[5], buffer[6], buffer[7],
buffer[8], buffer[9], buffer[10], buffer[11], buffer[12], buffer[13], buffer[14], buffer[15]);
}
/*
uchar EnableFlags;
uchar OneWireSpeed;
uchar StrongPullUpDuration;
uchar ProgPulseDuration;
uchar PullDownSlewRate;
uchar Write1LowTime;
uchar DSOW0RecoveryTime;
uchar Reserved1;
uchar StatusFlags;
uchar CurrentCommCmd1;
uchar CurrentCommCmd2;
uchar CommBufferStatus; // Buffer for COMM commands
uchar WriteBufferStatus; // Buffer we write to
uchar ReadBufferStatus; // Buffer we read from
*/
#endif
}
return OWQ_format_output_offset_and_size_z(res, owq);
}