mirror of https://github.com/ipxe/ipxe.git
Merge branch 'master' into iscsi-update
commit
cc80750694
|
@ -29,18 +29,18 @@
|
||||||
* Increment reference count
|
* Increment reference count
|
||||||
*
|
*
|
||||||
* @v refcnt Reference counter, or NULL
|
* @v refcnt Reference counter, or NULL
|
||||||
|
* @ret refcnt Reference counter
|
||||||
*
|
*
|
||||||
* If @c refcnt is NULL, no action is taken.
|
* If @c refcnt is NULL, no action is taken.
|
||||||
*/
|
*/
|
||||||
void ref_get ( struct refcnt *refcnt ) {
|
struct refcnt * ref_get ( struct refcnt *refcnt ) {
|
||||||
|
|
||||||
if ( ! refcnt )
|
if ( refcnt ) {
|
||||||
return;
|
refcnt->refcnt++;
|
||||||
|
DBGC2 ( refcnt, "REFCNT %p incremented to %d\n",
|
||||||
refcnt->refcnt++;
|
refcnt, refcnt->refcnt );
|
||||||
|
}
|
||||||
DBGC2 ( refcnt, "REFCNT %p incremented to %d\n",
|
return refcnt;
|
||||||
refcnt, refcnt->refcnt );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -279,6 +279,31 @@ size_t strspn(const char *s, const char *accept)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __HAVE_ARCH_STRCSPN
|
||||||
|
/**
|
||||||
|
* strcspn - Calculate the length of the initial substring of @s which only
|
||||||
|
* contain letters not in @reject
|
||||||
|
* @s: The string to be searched
|
||||||
|
* @accept: The string to search for
|
||||||
|
*/
|
||||||
|
size_t strcspn(const char *s, const char *reject)
|
||||||
|
{
|
||||||
|
const char *p;
|
||||||
|
const char *r;
|
||||||
|
size_t count = 0;
|
||||||
|
|
||||||
|
for (p = s; *p != '\0'; ++p) {
|
||||||
|
for (r = reject; *r != '\0'; ++r) {
|
||||||
|
if (*p == *r)
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_STRPBRK
|
#ifndef __HAVE_ARCH_STRPBRK
|
||||||
/**
|
/**
|
||||||
* strpbrk - Find the first occurrence of a set of characters
|
* strpbrk - Find the first occurrence of a set of characters
|
||||||
|
@ -541,9 +566,21 @@ void * memchr(const void *s, int c, size_t n)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char * strdup(const char *s) {
|
char * strndup(const char *s, size_t n)
|
||||||
char *new = malloc(strlen(s)+1);
|
{
|
||||||
if (new)
|
size_t len = strlen(s);
|
||||||
strcpy(new,s);
|
char *new;
|
||||||
|
|
||||||
|
if (len>n)
|
||||||
|
len = n;
|
||||||
|
new = malloc(len+1);
|
||||||
|
if (new) {
|
||||||
|
new[len] = '\0';
|
||||||
|
memcpy(new,s,len);
|
||||||
|
}
|
||||||
return new;
|
return new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char * strdup(const char *s) {
|
||||||
|
return strndup(s, ~((size_t)0));
|
||||||
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ struct refcnt {
|
||||||
void ( * free ) ( struct refcnt *refcnt );
|
void ( * free ) ( struct refcnt *refcnt );
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void ref_get ( struct refcnt *refcnt );
|
extern struct refcnt * ref_get ( struct refcnt *refcnt );
|
||||||
extern void ref_put ( struct refcnt *refcnt );
|
extern void ref_put ( struct refcnt *refcnt );
|
||||||
|
|
||||||
#endif /* _GPXE_REFCNT_H */
|
#endif /* _GPXE_REFCNT_H */
|
||||||
|
|
|
@ -30,6 +30,7 @@ char * strrchr(const char * s, int c);
|
||||||
size_t strlen(const char * s);
|
size_t strlen(const char * s);
|
||||||
size_t strnlen(const char * s, size_t count);
|
size_t strnlen(const char * s, size_t count);
|
||||||
size_t strspn(const char *s, const char *accept);
|
size_t strspn(const char *s, const char *accept);
|
||||||
|
size_t strcspn(const char *s, const char *reject);
|
||||||
char * strpbrk(const char * cs,const char * ct);
|
char * strpbrk(const char * cs,const char * ct);
|
||||||
char * strtok(char * s,const char * ct);
|
char * strtok(char * s,const char * ct);
|
||||||
char * strsep(char **s, const char *ct);
|
char * strsep(char **s, const char *ct);
|
||||||
|
@ -41,6 +42,7 @@ void * memscan(void * addr, int c, size_t size);
|
||||||
char * strstr(const char * s1,const char * s2);
|
char * strstr(const char * s1,const char * s2);
|
||||||
void * memchr(const void *s, int c, size_t n);
|
void * memchr(const void *s, int c, size_t n);
|
||||||
char * strdup(const char *s);
|
char * strdup(const char *s);
|
||||||
|
char * strndup(const char *s, size_t n);
|
||||||
|
|
||||||
extern const char * strerror ( int errno );
|
extern const char * strerror ( int errno );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue